Saksikan sejarah hari ini. Protokol DEX yang terkenal, CurveFinance, diserang dan likuiditas beberapa pool terkuras. Investigasi awal mengungkapkan bahwa itu ternyata kesalahan pembuat kontrak pintar Vyper! Itu sangat keterlaluan sehingga orang tidak bisa tidak menyebutnya sebagai orang baik. Statistik awal menunjukkan bahwa kerugian melebihi 50 juta dolar AS, dan harga instan token platform CRV pernah mendekati nol!
Untuk menjelaskan secara singkat kepada teman-teman yang tidak paham teknis, ketika kita menggunakan blockchain, kita sering berurusan dengan kode-kode yang berjalan di blockchain.
Untuk rantai publik seperti Ethereum yang berfokus pada kontrak pintar, ia memiliki serangkaian kode standar untuk kontrak pintar bagi mereka yang mengembangkan aplikasi di dalamnya (juga disebut dApp, Aplikasi terdesentralisasi) untuk menulis dan menjalankan aplikasi. Misalnya, Uniswap dan Curve adalah aplikasi dApp yang berjalan di Ethereum.
Karena komputer harus mudah dijalankan dan menghemat ruang penyimpanan, kode standar yang disimpan dalam rantai adalah bilangan biner yang sangat kompak yang mendekati bahasa mesin, sehingga tidak nyaman bagi manusia untuk membaca dan menulis secara langsung.
Untuk membuat pembukaan aplikasi lebih nyaman, banyak "bahasa tingkat tinggi" yang nyaman bagi manusia untuk membaca dan menulis telah diciptakan untuk menulis program. Dulu ada tiga jenis di Ethereum. Sintaks yang sama mirip dengan bahasa LISP dan belum menjadi populer. Yang lainnya mirip dengan bahasa Python karena dipromosikan oleh Vitalik (pendiri Ethereum), yang disebut Vyper sintaksnya mirip dengan bahasa Javascript, disebut Solidity
Setelah pemrogram menulis program kontrak pintar dalam bahasa tingkat tinggi ini, mereka perlu menggunakan alat yang disebut "kompiler" untuk "menerjemahkan" program tersebut ke dalam "bahasa mesin" yang dapat berjalan di blockchain Ethereum, yaitu kode standar.
Jelasnya, bahasa tingkat tinggi yang berbeda memiliki kompiler yang berbeda pula. Ini mudah dimengerti. Terjemahan bahasa Jepang dan terjemahan bahasa Inggris pasti berbeda. Kesalahannya terletak pada kompiler/penerjemah.
Kali ini Curve diserang karena adanya cacat pada versi spesifik kompiler Vyper yang digunakan oleh beberapa kumpulan Curve (diduga, masih dalam penyelidikan lebih lanjut.) Ini seperti mengatakan "Saya ingin minum" dalam bahasa Jepang dan penerjemah menerjemahkannya ke dalam bahasa Jepang. Cina Jika diterjemahkan menjadi "Saya ingin makan kepiting". Ini keterlaluan
Untungnya, popularitas Vyper tidak tinggi. Saat ini, Solidity adalah yang paling banyak digunakan di Ethereum dan rantai yang kompatibel. Penerjemah bahasa inggrisnya lebih jelas dan tidak ada kesalahan terjemahan alhamdulillah
Pada masa awal Uniswap, pemimpin DEX, pendiri Hayden menggunakan bahasa Vyper untuk menulis kode. Untungnya, Hayden kemudian menyewa CTO profesional dan mengubah kodenya menjadi Solidity. Jadi kali ini mengatasi masalah kompiler Vyper, Uniswap aman dan sehat. Curve Finance, yang banyak menggunakan bahasa Vyper, menderita.
Masalah yang disebabkan oleh cacat ini adalah “masalah masuk kembali” klasik. Mengingat kembali tahun itu, pada tahun 2015, insiden DAO secara langsung menyebabkan hard fork Ethereum, terpecah menjadi ETH dan ETC. Masalah masuk kembali ini benar-benar merupakan kutukan sejarah!
Namun masalah masuk kembali DAO terjadi pada tingkat bahasa tingkat tinggi. Artinya, Anda salah berbicara bahasa Inggris. Awalnya Anda ingin minum tetapi malah mengatakan ingin makan kepiting terjemahannya.
Adapun kejadian Curve ini, hal yang menakutkan adalah Anda melakukannya dengan benar, tetapi penerjemahnya salah, dan Anda tidak dapat memahaminya (perusahaan audit tidak akan meninjau kode biner yang dikompilasi), jadi diperkenalkan tanpa siapa pun. memperhatikan. Hal ini juga menjadi peringatan bagi seluruh industri DeFi saat ini dan bahkan seluruh industri blockchain!
Saat ini, semua orang mulai dari penulis kode, peninjau kode, hingga auditor pihak ketiga tidak akan melihat kode biner yang dikompilasi. Semua orang berasumsi bahwa tidak akan ada masalah dengan kompiler selama mereka melihat bahwa bahasa tingkat tinggi ditulis dengan benar, mereka berpikir tidak akan ada masalah.
Mengapa Satoshi Nakamoto tidak menambahkan fungsi kontrak pintar yang terlalu kuat ke skrip BTC? Hal ini untuk menghindari kesalahan yang tidak dapat dimaafkan akibat meningkatnya kompleksitas. Beberapa orang mengkritik BTC karena konservatif, namun dalam menghadapi aset bernilai jutaan, puluhan atau bahkan miliaran dolar, kehati-hatian dan konservatisme tidak pernah berlebihan. Kebanyakan orang masih manusia biasa. Kerugian puluhan atau jutaan dolar akan menjadi pukulan fatal bagi siapapun yang menimpanya.
Hal ini juga menyoroti peringatan Hukum Murphy: Tautan apa pun yang salah pasti akan salah selama waktu berlalu. Kali ini Vyper, yang merupakan berkah. Bagaimana dengan masa depan? Bagaimana jika ada kerentanan fatal di Solidity? Seluruh DeFi, dengan ribuan protokol, puluhan miliar aset, dan bangunan cemerlang dibangun di atas pasir hisap. dan mereka semua pingsan. Bukankah itu mengerikan?
Mengapa sulit untuk melakukan perjalanan melalui siklus? Sebelum mengejar tujuan impian ini atau itu, Anda harus terlebih dahulu memikirkan apakah Anda dapat "hidup sampai hari itu." Berkali-kali, yang bertahan adalah pemenangnya, dan sisanya adalah raja.