Di DeFi, penyetoran, peminjaman, dan penukaran semuanya dilakukan otomatis oleh smart contract. Tidak ada pemeriksaan manual, dan tidak ada layanan pelanggan yang bisa mengembalikan uang yang salah kirim. Jika kontraknya ditulis dengan benar, kontrak itu menjadi aturan yang paling dapat diandalkan; jika salah, kerentanannya pun akan “dijalankan” dengan cermat.
$ETH Ethereum adalah salah satu blockchain publik paling awal yang mendukung smart contract umum. Saat ini 2239.05 (24 jam -5.02%).
▍Kode adalah aturan, begitu juga kerentanannya
Setelah smart contract diterapkan di blockchain, kontrak itu akan berjalan otomatis sesuai kode. Ini menghadirkan transparansi dan kepastian: siapa pun dapat membaca kodenya, dan aturan dalam kontrak yang tidak dapat di-upgrade tidak akan berubah hanya karena seseorang berubah pikiran.
Sebaliknya, jika seseorang menemukan dan mengeksploitasi kerentanan dalam kode, dana bisa dialihkan hanya dalam beberapa transaksi dan akan sangat sulit untuk mendapatkannya kembali. The DAO pada 2016 adalah salah satu contohnya: kontraknya diserang melalui kerentanan reentrancy. Ethereum kemudian menanganinya dengan hard fork, sementara rantai asli yang tidak melakukan fork berlanjut sebagai Ethereum Classic (ETC).
▍Apa saja yang diperiksa dalam audit
Audit keamanan adalah pemeriksaan yang dilakukan oleh tim keamanan pihak ketiga terhadap versi kode tertentu pada waktu tertentu. Laporan audit biasanya mencantumkan masalah yang ditemukan, tingkat keparahan masing-masing, dan apakah pihak proyek telah memperbaikinya.
Hal-hal yang umum diperiksa mencakup reentrancy, kesalahan pengaturan izin, masalah presisi perhitungan, serta kemungkinan manipulasi oracle. Audit membantu menemukan dan mengurangi kerentanan umum semacam ini, tetapi tetap dibatasi oleh waktu, tenaga, dan cakupan audit.
▍Mengapa masalah tetap terjadi meski sudah diaudit
Pertama, audit hanya mencakup kode dalam cakupan yang ditentukan. Kontrak di luar cakupan dan fitur yang ditambahkan kemudian tidak termasuk di dalamnya. Jika kode diubah setelah audit, atau versi yang benar-benar diterapkan berbeda dari versi yang diaudit, kesimpulan audit tidak bisa langsung diterapkan.
Kedua, beberapa risiko tidak berasal dari kode itu sendiri: oracle atau protokol lain yang diandalkan protokol mengalami masalah, kunci administrator yang memiliki izin upgrade dicuri, atau antarmuka web dimanipulasi sehingga pengguna diarahkan untuk menandatangani transaksi berbahaya—semuanya dapat menyebabkan kerugian.
▍Apa yang bisa dilakukan pengguna biasa
Saat membaca laporan audit, perhatikan tanggal, cakupan, dan masalah yang belum diperbaiki. Jangan hanya melihat kata “sudah diaudit”. Anda juga bisa memeriksa apakah kontrak dapat di-upgrade secara sepihak dan apakah izin upgrade dikendalikan oleh multisig serta timelock.
Protokol yang telah beroperasi lama dan teruji dengan dana dalam jumlah besar biasanya dianggap lebih andal, tetapi itu bukan berarti bebas dari kerentanan. Jadi, di DeFi, hanya tempatkan dana yang kerugiannya masih sanggup Anda tanggung. Sebarkan dana dalam jumlah besar ke beberapa protokol, dan cabut izin untuk protokol yang sudah tidak digunakan.
▍Sebagai penutup
Audit adalah awal dari keamanan, bukan akhirnya. Menganggap risiko smart contract sebagai biaya yang harus dihadapi saat berpartisipasi dalam DeFi lebih realistis daripada memercayai kata “sudah diaudit”. Bersikap hati-hati bukan hal yang memalukan; bertahan hidup jauh lebih penting daripada berapa banyak yang bisa diperoleh sekali waktu.
Kalau mendapat wawasan, tinggalkan komentar. Kalau masih belum paham, silakan bertanya lagi di kolom komentar.