Lanjut ke konten utama

Daftar periksa integrasi token

soliditykontrak pintarkeamanantoken
Tingkat menengah
Trailofbits
Membuat kontrak yang aman(opens in a new tab)
13 Agustus 2020
4 bacaan singkat minute read

Ikuti daftar periksa ini ketika berinteraksi dengan token arbitrari. Pastikan Anda mengerti risiko yang terkait dengan setiap item, dan buat justifikasi terhadap pengecualian apa pun untuk aturan ini.

Untuk kenyamanan, semua utilitas(opens in a new tab) Slither dapat di jalankan langsung pada alamat token, seperti:

Tutorial Menggunakan Slither

slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken

Untuk mengikuti daftar periksa ini, Anda mungkin ingin memiliki output ini dari Slither untuk token:

- slither-check-erc [target] [contractName] [optional: --erc ERC_NUMBER]
- slither [target] --print human-summary
- slither [target] --print contract-summary
- slither-prop . --contract ContractName # memerlukan konfigurasi, dan menggunakan Echidna dan Manticore

Pertimbangan umum

Kesesuaian dengan ERC

Slither memasukkan utilitas, slither-check-erc(opens in a new tab), yang mengulas kesesuaian token dengan banyak standar ERC terkait. Gunakan slither-check-erc untuk mengulas bahwa:

Slither memasukkan utilitas, slither-prop(opens in a new tab), yang membuat tes unit dan properti keamanan yang bisa menemukan banyak kelemahan ERC umum. Gunakan slither-prop untuk mengulas bahwa:

Akhirnya, ada beberapa karakteristik yang sulit dikenali secara otomatis. Ulas kondisi ini secara manual:

  • Transfer dan transferFrom tidak boleh memungut biaya. Token deflasi bisa menyebabkan perilaku tak terduga.
  • Potensi bunga yang diperoleh dari token diperhitungkan. Beberapa token mendistribusikan bunga ke pemegang token. Bunga ini mungkin terjebak dalam kontrak jika tidak diperhitungkan.

Komposisi kontrak

Hak istimewa pemilik

Kelangkaan token

Ulasan untuk masalah kelangkaan token memerlukan ulasan manual. Periksalah untuk menemukan kondisi ini:

  • Tidak ada pengguna yang memiliki sebagian besar pasokan. Jika beberapa pengguna memiliki sebagian besar token, mereka bisa memengaruhi operasi yang didasarkan pada partisi ulang token.
  • Total pasokannya cukup. Token dengan total pasokan yang rendah bisa dengan mudah dimanipulasi.
  • Token berada di beberapa bursa. Jika semua token berada di satu bursa, menyusupi bursa bisa membahayakan kontrak yang mengandalkan token.
  • Pengguna memahami risiko terkait dengan dana yang besar atau pinjaman cepat. Kontrak yang mengandalkan saldo token harus mempertimbangkan penyerang dengan dana besar atau serangan lewat pinjaman cepat dengan hati-hati.
  • Token tidak mengizinkan pencetakan cepat. Pencetakan cepat bisa menyebabkan ayunan substansial pada saldo dan pasokan total, yang mengharuskan pemeriksaan overflow yang ketat dan menyeluruh dalam operasi tokennya.

Terakhir diedit: @nhsz(opens in a new tab), 15 Agustus 2023

Apakah tutorial ini membantu?