Keamanan
Terakhir diperbarui: Januari 2025
Pendahuluan: Masalah $20 Miliar
Sejak awal berdirinya DeFi, miliaran dolar telah hilang karena eksploitasi. Audit telah menjadi dasar namun tetap menjadi bagian dari siklus hidup keamanan yang lebih besar yang mencakup bug bounty, verifikasi formal, dan pemantauan aktif.
Apa itu Audit Kontrak Cerdas?
Audit adalah tinjauan keamanan mendalam yang menggabungkan tinjauan kode manual, analisis otomatis, dan terkadang verifikasi formal serta pemodelan ekonomi. Outputnya adalah laporan yang diprioritaskan dengan langkah-langkah remediasi dan rekomendasi untuk penerapan yang lebih aman.
- Tinjauan kode manual
- Pemindaian otomatis
- Verifikasi formal (opsional)
- Ekonomi & analisis teori permainan
- Laporan Akhir & remediasi
Proses Audit: Langkah & Garis Waktu
Persiapan Pra-Audit
Pengembang harus membekukan kode, mendokumentasikan arsitektur, memberikan pengujian dan menentukan cakupan yang jelas sebelum menyerahkannya kepada auditor.
Analisis Otomatis
Alat seperti Slither, Mythril, Echidna, dan Manticore menghasilkan temuan otomatis. Ini berharga tetapi dapat mencakup hasil positif palsu dan harus dilengkapi dengan tinjauan manual.
Tinjauan Manual & Verifikasi Formal
Auditor berpengalaman melakukan tinjauan baris demi baris dan, bila diperlukan, metode formal memberikan jaminan matematis dengan biaya tinggi untuk sistem yang kritis terhadap misi.
Laporan & Remediasi
Laporan mengklasifikasikan temuan berdasarkan tingkat keparahan dan memberikan perbaikan yang dapat ditindaklanjuti; remediasi dan audit ulang merupakan langkah akhir standar.
Kerentanan Umum Kontrak Cerdas
Memahami kelas eksploitasi yang umum membantu tim memprioritaskan pertahanan: reentrancy, kesalahan kontrol akses, bug integer, manipulasi oracle, kesalahan logika bisnis, dan MEV/front-running semuanya termasuk dalam daftar teratas.
Masuk kembali
Reentrancy terjadi ketika panggilan eksternal mengaktifkan callback yang memanipulasi status kontrak — pola interaksi-efek-interaksi dan ReentrancyGuard adalah pertahanan utama.
fungsi penarikan (jumlah uint256) publik {
memerlukan(saldo[pesan.pengirim] >= jumlah);
saldo[pesan.pengirim] -= jumlah; // perbarui status terlebih dahulu
(bool sukses, ) = msg.sender.call{value: amount}("");
membutuhkan (sukses);
}
Kegagalan Kontrol Akses
Hilangnya pemeriksaan peran atau kunci admin yang tidak terekspos dengan benar sering kali menjadi penyebab masalah besar — penerapan multi-sig, timelock, dan hak istimewa rendah mengurangi risiko ini.
Manipulasi Oracle
Protokol harus bergantung pada TWAP, feed terdesentralisasi, dan pemeriksaan kewarasan untuk membatasi serangan manipulasi harga yang sering dilakukan melalui pinjaman kilat.
Logika Bisnis & MEV
Bug teori permainan dan front-running (MEV) memerlukan analisis ekonomi yang cermat, simulasi, dan strategi mitigasi yang sadar akan mempool.
Firma Audit & Memilih Auditor
Perusahaan papan atas (Trail of Bits, OpenZeppelin, ConsenSys Diligence, Certora) menyediakan layanan verifikasi teknis dan formal yang mendalam. Perusahaan yang lebih kecil memberikan cakupan yang sangat baik untuk anggaran yang lebih rendah — auditor yang tepat bergantung pada profil risiko proyek dan jangka waktu.
Jejak Bit
Mengkhususkan diri dalam analisis teknis mendalam dan alat formal — terbaik untuk TVL tinggi, sistem kritis misi.
BukaZeppelin
Pakar Soliditas Tepercaya dengan alat ekosistem dan layanan pembela yang luas.
Melampaui Audit: Bounty, Pemantauan & Peluncuran
Audit perlu dilengkapi dengan bug bounty (Immunefi, HackerOne), verifikasi formal jika diperlukan, praktik peluncuran yang cermat, dan pemantauan berkelanjutan menggunakan alat seperti Forta, Tenderly, dan Defender.
- Hadiah bug memberi insentif pada penemuan yang sedang berlangsung
- Verifikasi formal memberikan jaminan matematis untuk sistem kritis
- Peluncuran bertahap membatasi radius ledakan
- Pemantauan waktu nyata memungkinkan respons insiden yang cepat
Bagi Investor: Cara Membaca Laporan Audit
Carilah beberapa audit yang bereputasi baik, temuan penting yang terselesaikan, program bounty publik, laporan terkini dan bukti pemantauan aktif serta peningkatan dalam jangka waktu tertentu. Tanda bahayanya mencakup tidak adanya audit, laporan tersembunyi, atau masalah kritis yang belum terselesaikan.
Kesimpulan: Keamanan sebagai Proses, Bukan Produk
Audit diperlukan namun tidak cukup. Keamanan sedang berlangsung — menggabungkan audit, bug bounty, pemantauan, rilis bertahap, dan metode formal untuk sistem bernilai tinggi guna menjaga protokol tetap aman dalam lanskap yang bermusuhan.