Lanjut ke konten utama

Panduan keamanan kontrak pintar

soliditykontrak pintarkeamanan
Tingkat menengah
Trailofbits
Membuat kontrak yang aman(opens in a new tab)
6 September 2020
4 bacaan singkat minute read

Ikuti rekomendasi tingkat tinggi ini untuk membuat kontrak pintar yang lebih aman.

Pedoman desain

Desain sebuah kontrak harus dibahas sebelumnya, sebelum menulis baris kode apa pun.

Dokumentasi dan spesifikasi

Dokumentasi dapat ditulis pada tingkat yang berbeda, dan harus diperbarui saat mengimplementasikan kontrak:

Komputasi on-chain vs off-chain

  • Pertahankan sebanyak mungkin kode secara off-chain. Jaga lapisan on-chain tetap berukuran kecil. Proses data sebelumnya dengan kode off-chain sedemikian rupa sehingga verifikasi on-chain menjadi sederhana. Apakah Anda memerlukan daftar yang berurutan? Urutkan daftarnya secara offchain, lalu hanya periksa urutannya secara onchain.

Kemungkinan peningkatan

Kami membahas berbagai solusi kemungkinan peningkatan di postingan blog kami(opens in a new tab). Buat pilihan secara sengaja untuk mendukung kemungkinan peningkatan atau tidak, sebelum menulis kode apa pun. Keputusan ini akan memengaruhi cara Anda membangun kode kami. Secara umum, kami menyarankan:

Panduan implementasi

Usahakan kesederhanaan. Selalu gunakan solusi yang paling sederhana yang cocok dengan tujuan Anda. Setiap anggota tim Anda harus mampu memahami solusi Anda.

Komposisi fungsi

Arsitektur basis kode Anda harus membuat kode Anda mudah diulas. Hindari pilihan arsitektural yang mengurangi kemampuan penalaran tentang kebenarannya.

  • Pisahkan logika sistem Anda, entah melalui beberapa kontrak atau dengan mengelompokkan fungsi yang sama (sebagai contoh, otentikasi, aritmatika, ...).
  • Tulis fungsi kecil, dengan tujuan yang jelas. Ini akan mendukung pengulasan yang lebih mudah dan memungkinkan pengujian komponen individual.

Warisan

Aksi

  • Buat log semua operasi penting. Aksi akan membantu melakukan debug kontrak saat pengembangannya, dan mengawasinya setelah penggunaan.

Hindari kesalahan umum

Dependensi

Pengujian dan verifikasi

Solidity

Pedoman penggunaan

Setelah kontrak dikembangkan dan digunakan:

Terakhir diedit: @pettinarip(opens in a new tab), 8 Desember 2023

Apakah tutorial ini membantu?