Analisis Curve Finance Hack 2023: Kerentanan Vyper Compiler ($70+ Juta)
Sejumlah pool Curve Finance kehilangan lebih dari $70 juta pada Juli 2023 akibat bug reentrancy di compiler Vyper, bukan celah logika Curve sendiri.
Beberapa pool likuiditas Curve Finance kehilangan lebih dari $70 juta pada 30 Juli 2023 akibat bug reentrancy yang bersumber bukan dari logika Curve sendiri, melainkan dari bug di compiler Vyper — bahasa pemrograman smart contract yang digunakan untuk menulis pool-pool tersebut. Kasus ini penting dipahami karena menunjukkan bahwa risiko keamanan smart contract tidak selalu berasal dari kesalahan desain protokol, tapi juga bisa datang dari lapisan alat pengembangan (compiler) yang digunakan untuk membangunnya.
Kronologi
Curve Finance adalah salah satu AMM (automated market maker) terbesar untuk stablecoin dan aset yang saling terpatok (pegged assets) di Ethereum. Sejumlah pool Curve — termasuk pool CRV/ETH — ditulis menggunakan versi compiler Vyper tertentu: 0.2.15, 0.2.16, dan 0.3.0.
Pada 30 Juli 2023, penyerang mulai mengeksploitasi bug pada ketiga versi compiler tersebut, menargetkan tidak hanya Curve tapi juga sejumlah protokol lain yang kebetulan memakai versi Vyper yang sama untuk pool berbasis native ETH, termasuk Alchemix, Metronome, JPEG’d, dan sejumlah pool di Ellipsis (fork Curve di BNB Chain). Serangan berlangsung dalam hitungan jam sebelum tim masing-masing protokol menyadari dan mem-pause kontrak yang terdampak.
Insiden ini memicu kekhawatiran sistemik tambahan karena pendiri Curve, Michael Egorov, saat itu memiliki posisi pinjaman besar di berbagai protokol lending dengan token CRV sebagai jaminan. Anjloknya harga CRV akibat hack memicu risiko likuidasi besar-besaran yang berpotensi merembet ke protokol lending yang menampung jaminan tersebut. Egorov kemudian menjual sebagian besar kepemilikan CRV-nya secara over-the-counter (OTC) kepada sejumlah pihak untuk melunasi utang dan menghindari likuidasi paksa.
Bagaimana Exploit Terjadi
Akar masalah dari insiden ini adalah bug pada mekanisme reentrancy lock di versi compiler Vyper yang disebutkan. Reentrancy lock adalah mekanisme pengaman standar yang mencegah sebuah fungsi smart contract dipanggil ulang sebelum eksekusi pertamanya selesai — bug klasik yang seharusnya sudah dipahami luas di industri sejak insiden The DAO pada 2016.
Pada versi compiler yang terdampak, mekanisme reentrancy lock ini gagal dikompilasi dengan benar ke dalam bytecode akhir kontrak, khususnya untuk pool yang menangani transfer ETH native (bukan wrapped ETH/WETH). Akibatnya, meskipun kode sumber Vyper terlihat sudah menyertakan pengaman reentrancy, bytecode yang benar-benar berjalan di blockchain tidak benar-benar memblokir panggilan ulang tersebut.
Penyerang memanfaatkan celah ini dengan memicu transfer ETH ke kontrak yang rentan, lalu di tengah proses transfer tersebut (melalui fallback function) memanggil ulang fungsi pool sebelum saldo internal ter-update, sehingga bisa menarik dana lebih dari yang seharusnya secara berulang dalam satu transaksi. Karena bug ini ada di level compiler, bukan di kode Curve, semua protokol lain yang kebetulan memakai versi Vyper yang sama untuk pool serupa ikut terdampak — ini menjadi salah satu contoh konkret risiko rantai pasok (supply chain) di dunia smart contract, di mana kerentanan pada satu alat pengembangan bisa menyebar ke banyak proyek independen sekaligus.
Dampak
Total kerugian di seluruh protokol yang terdampak diperkirakan lebih dari $70 juta berdasarkan laporan pasca-insiden yang dipublikasikan berbagai firma analitik on-chain, dengan pool CRV/ETH Curve menyumbang porsi terbesar. Sebagian dana berhasil diselamatkan: sejumlah white hat dan bot MEV berhasil melakukan front-running terhadap transaksi eksploitasi lanjutan dan mengamankan sebagian dana untuk dikembalikan ke protokol. Beberapa protokol, termasuk Alchemix, juga berhasil bernegosiasi langsung dengan pihak yang melakukan eksploitasi untuk pengembalian sebagian dana.
Curve dan komunitas Vyper merilis pembaruan compiler serta memperingatkan seluruh proyek yang menggunakan versi bermasalah untuk melakukan migrasi. Insiden ini juga mendorong diskusi lebih luas soal pentingnya audit ulang secara berkala terhadap dependency di luar kode utama protokol, termasuk compiler dan library.
Pelajaran
Beberapa pelajaran konkret yang bisa diterapkan pengguna dan pengamat DeFi:
- Risiko smart contract tidak berhenti di audit kode protokol. Compiler, library, dan tooling pengembangan adalah bagian dari permukaan risiko yang sama pentingnya, meski jarang dibahas dalam laporan audit standar.
- Ketergantungan pada infrastruktur bersama menciptakan risiko korelasi. Ketika banyak protokol berbeda memakai compiler atau library yang sama, satu bug bisa berdampak ke banyak proyek independen sekaligus — pertimbangkan ini saat menilai apakah “diversifikasi” ke beberapa protokol benar-benar mengurangi risiko jika mereka berbagi dependency yang sama.
- Insiden pada satu protokol besar bisa merembet ke pasar luas lewat jalur tak terduga, seperti posisi pinjaman pendiri protokol yang memakai token native sebagai jaminan. Ini relevan saat mengevaluasi risiko sistemik sebuah token, bukan cuma risiko teknis kontraknya — lihat juga analisis risiko stablecoin untuk konteks risiko yang saling terkait di DeFi.
- Cek riwayat protokol dan versi tooling yang digunakan sebelum menaruh dana besar, terutama di pool yang menangani aset native chain (seperti ETH langsung, bukan wrapped token), karena riwayat menunjukkan pool semacam ini pernah menjadi target spesifik dari bug kelas ini.
Untuk gambaran umum protokol Curve di luar insiden ini, baca review Curve Finance.
⚠️ Disclaimer: Artikel ini bersifat edukatif dan disusun berdasarkan laporan publik serta pemberitaan yang telah terverifikasi. Bukan saran keuangan atau investasi personal. Selalu lakukan riset mandiri sebelum menggunakan protokol atau bridge apa pun.
Anda sudah paham konsepnya — saatnya eksekusi dengan pendampingan langsung. Join WhaleX Membership: akses kelas, mentor, dan komunitas investor crypto Indonesia.
Join Membership WhaleX →Pertanyaan Umum
Apa penyebab utama Curve Finance hack 2023?
Bukan celah logika di Curve, melainkan bug reentrancy pada beberapa versi compiler Vyper (0.2.15, 0.2.16, dan 0.3.0) yang membuat mekanisme reentrancy lock gagal berfungsi di sejumlah pool tertentu.
Berapa total kerugian dari insiden ini?
Berdasarkan laporan pasca-insiden yang dipublikasikan, total kerugian di beberapa pool dan protokol yang terdampak diperkirakan lebih dari $70 juta, dengan sebagian dana berhasil dikembalikan lewat negosiasi dan aksi white hat.