Kode Bukan Hukum Jika Memiliki Bug
Janji DeFi adalah bahwa smart contract dijalankan secara otomatis dan tanpa kepercayaan. Kenyataannya adalah bahwa smart contract adalah program yang ditulis oleh manusia, dan manusia menulis kode yang buggy. Karena protokol DeFi menyimpan aset jutaan atau miliaran, bug menjadi bencana secara finansial. Lebih dari $3 miliar telah hilang karena eksploitasi smart contract sejak DeFi dimulai, dan jumlahnya terus bertambah.
Kategori Risiko Smart Contract
Serangan reentrancy adalah salah satu yang tertua dan paling terkenal. Peretasan DAO 2016 mengeksploitasi kerentanan reentrancy untuk menguras sekitar $60 juta (dalam harga ETH 2016). Pola serangan melibatkan kontrak yang memanggil fungsi eksternal yang kemudian memanggil kembali ke kontrak asli sebelum panggilan pertama selesai, memungkinkan penarikan berulang.
Manipulasi oracle semakin umum. Banyak protokol DeFi mengandalkan oracle harga (Chainlink, Uniswap TWAP) untuk menentukan nilai aset. Jika penyerang dapat sementara memanipulasi harga oracle, mereka dapat menipu protokol untuk mengeksekusi trading atau likuidasi pada harga yang salah. Serangan flash loan sering mengeksploitasi manipulasi oracle karena penyerang dapat meminjam modal besar-besaran, memanipulasi harga, mengeksploitasi protokol, dan membayar kembali pinjaman dalam satu transaksi.
Kesalahan logika adalah bug dalam logika bisnis kontrak. Kode mengkompilasi dan berjalan tanpa crash, tetapi tidak melakukan apa yang dimaksudkan pengembang dalam kondisi edge tertentu. Ini adalah kerentanan yang paling sulit ditemukan karena memerlukan pemahaman baik kode maupun perilaku yang dimaksudkan.
Serangan tata kelola terjadi ketika penyerang mengumpulkan cukup token tata kelola untuk meloloskan proposal jahat. Jika tata kelola protokol dapat mengubah parameter kunci (struktur biaya, rasio agunan, pengeluaran treasury), mengendalikan tata kelola setara dengan mengendalikan protokol.
Cara Menilai Risiko
Status audit itu perlu tetapi tidak cukup. Protokol yang telah diaudit oleh firma terkemuka (Trail of Bits, OpenZeppelin, Consensys Diligence) lebih aman daripada yang tidak, tetapi audit tidak menjamin keamanan. Banyak protokol yang dieksploitasi telah diaudit.
Waktu dalam produksi penting. Protokol yang telah memegang TVL $500 juta selama dua tahun tanpa insiden secara signifikan lebih aman daripada yang diluncurkan bulan lalu, terlepas dari status audit. Berlalunya waktu tanpa eksploitasi adalah bukti (bukan pembuktian) bahwa vektor serangan utama telah tertutup.
Kompleksitas kode adalah faktor risiko. Protokol yang lebih sederhana dengan lebih sedikit baris kode dan lebih sedikit ketergantungan eksternal memiliki permukaan serangan yang lebih kecil. Protokol yang menyusun beberapa protokol lain (menumpuk imbal hasil di tiga atau empat lapisan DeFi) melipatgandakan risiko karena kerentanan di lapisan mana pun dapat mempengaruhi seluruh tumpukan.
Menentukan Ukuran Eksposur DeFi Anda
Implikasi praktisnya adalah bahwa imbal hasil DeFi harus dievaluasi terhadap risiko smart contract, bukan secara terpisah. Imbal hasil 5% di Aave (teruji pertempuran, beberapa audit, bertahun-tahun operasi, miliaran dalam TVL) adalah proposisi risiko yang sangat berbeda dari imbal hasil 50% pada protokol baru yang belum diaudit dengan $2 juta di TVL. Hargakan risiko ke dalam penilaian Anda, dan tentukan ukuran posisi DeFi Anda sesuai.