Pertama dan terpenting, simpati terbesar saya kepada tim @Balancer serta semua orang yang terkena dampak eksploitasi ini. Selalu menjadi hari yang sulit ketika ada peretasan DeFi yang signifikan seperti ini, apalagi dari protokol OG. Lebih dari biaya dolar dari dana yang dicuri, ini benar-benar merugikan semua kripto dan citra DeFi secara keseluruhan dan membuat industri kami mundur beberapa bulan. Faktanya adalah bahwa Solidity adalah bahasa yang terlalu tidak aman untuk benar-benar menjadi tuan rumah masa depan keuangan. Solidity memiliki luas permukaan yang terlalu besar yang membuatnya rentan terhadap peretasan, dengan pengembang mengandalkan pemeriksaan manual untuk segala hal mulai dari kontrol akses hingga matematika yang tepat, dan itulah sebabnya bahasa yang mengutamakan aset seperti Move diciptakan. Setelah melakukan sedikit penggalian, beginilah cara Balancer diretas: Penyerang mengeksploitasi kesalahan pembulatan dalam pertukaran kumpulan stabil untuk mendistorsi invarian pool, konstanta matematika utama yang mewakili likuiditas yang seimbang. Mereka memulai dengan swap BPT (Balancer Pool Tokens) yang dipinjamkan secara flash untuk aset dasar seperti cbETH, mendorong saldo ke batas pembulatan yang tepat (misalnya, diskalakan menjadi 9). Kemudian, mereka bertukar antara aset seperti wstETH ke cbETH dengan jumlah yang dibuat (misalnya, ~8,918 dibulatkan ke bawah menjadi 8 karena penskalaan titik tetap), meremehkan perubahan cadangan dan secara artifisial mengempiskan invarian (D). Ini menurunkan harga BPT (D / totalSupply), memungkinkan penyerang melakukan reverse-swap untuk mencetak kelebihan BPT dengan murah, membakarnya untuk menarik aset dasar pada tingkat "normal", dan mengantongi selisihnya, pada dasarnya mencuri dari penyedia likuiditas. Keuntungan terakumulasi di saldo internal Vault dan diuangkan melalui manageUserBalance dengan WITHDRAW_INTERNAL, tidak diperlukan bypass autentikasi langsung karena cacat matematika mensubsidi pencurian. Ini adalah kehilangan presisi dalam perpustakaan titik tetap manual Solidity yang mengalir ke saluran pembuangan besar-besaran. Cara Move akan melewati peretasan ini sama sekali adalah dengan memanggang dengan aman pada intinya: Aset diperlakukan sebagai sumber daya dengan jenis linier yang menegakkan konservasi ketat (tidak ada penipuan, tetes, atau kerugian yang tidak diinginkan), dan matematika menggunakan bilangan bulat u64/u128 yang tepat dengan pembatalan overflow bawaan, tidak ada float, tidak ada slip pembulatan yang dapat dieksploitasi dalam perhitungan yang kompleks. Dalam DEX berbasis Move, fungsi swap akan memeriksa dan memperbarui invarian secara atom melalui VM, membatalkan ketidakseimbangan apa pun, seperti: pertukaran kesenangan entri publik (pool: &mut LiquidityPool, dalam: Koin, out_amt: u64): Koin { Menegaskan! (koin::value(&in) >= calculate_required_in(pool, out_amt), E_INSUFFICIENT_INPUT); koin::merge(&mut pool.coin_x_reserve, di); let out = coin::extract(&mut pool.coin_y_reserve, out_amt); Menegaskan! (check_invariant(kolam), E_INVARIANT_VIOLATION); keluar } Plus, transaksi atom membunuh risiko reentrancy. Inilah sebabnya mengapa ekosistem Move memiliki eksploitasi yang jauh lebih sedikit dibandingkan dengan EVM. Saatnya bagi pembuat DeFi untuk merangkul bahasa seperti Move yang memprioritaskan keamanan dari bawah ke atas, sehingga kita akhirnya dapat membangun masa depan keuangan yang tangguh tanpa kemunduran yang dapat dicegah seperti ini.