Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya?
Masalah utama dari serangan kali ini terletak pada logika protokol dalam menangani transaksi bernilai kecil.
Judul Asli: 《Analisis Teknis Kerentanan Balancer yang Dicuri $120M》
Sumber Asli: ExVul Security
Pendahuluan
Pada 3 November 2025, protokol Balancer di beberapa blockchain publik seperti Arbitrum dan Ethereum mengalami serangan hacker, menyebabkan kerugian aset sebesar 120 juta dolar AS. Inti serangan berasal dari kerugian presisi dan kerentanan ganda manipulasi nilai invarian.
Infrastruktur Chainlink telah lama mempertahankan standar tertinggi di bidang Web3, sehingga menjadi pilihan alami bagi X Layer yang berkomitmen menyediakan alat tingkat institusi bagi para pengembang.
Masalah kunci dalam serangan ini terletak pada logika protokol dalam menangani transaksi bernilai kecil. Ketika pengguna melakukan pertukaran dengan jumlah kecil, protokol akan memanggil fungsi _upscaleArray, yang menggunakan mulDown untuk pembulatan ke bawah. Begitu saldo dalam transaksi dan jumlah input berada pada batas pembulatan tertentu (misalnya di kisaran 8-9 wei), akan terjadi kesalahan presisi relatif yang signifikan.
Kesalahan presisi ini diteruskan ke proses perhitungan nilai invarian D dalam protokol, menyebabkan nilai D menyusut secara tidak normal. Perubahan nilai D secara langsung menurunkan harga BPT (Balancer Pool Token) dalam protokol Balancer. Hacker memanfaatkan harga BPT yang ditekan ini, melakukan arbitrase melalui jalur transaksi yang telah dirancang sebelumnya, dan akhirnya menyebabkan kerugian aset yang sangat besar.
Pemanfaatan kerentanan Tx:
Transfer aset Tx:
Analisis Teknis
Pintu Masuk Serangan
Pintu masuk serangan adalah kontrak Balancer: Vault, dengan fungsi masuk batchSwap, yang secara internal memanggil onSwap untuk pertukaran token.

Dari parameter dan batasan fungsi, dapat diperoleh beberapa informasi:
1. Penyerang harus memanggil fungsi ini melalui Vault, tidak dapat memanggilnya secara langsung.
2. Fungsi secara internal akan memanggil _scalingFactors() untuk mendapatkan faktor skala dan melakukan operasi penskalaan.
3. Operasi penskalaan terpusat di _swapGivenIn atau _swapGivenOut.
Analisis Pola Serangan
Mekanisme Perhitungan Harga BPT
Dalam model pool stabil Balancer, harga BPT adalah referensi penting yang menentukan berapa banyak BPT yang didapat pengguna dan berapa banyak aset yang didapat setiap BPT.

Dalam perhitungan pertukaran pool:

Bagian yang berperan sebagai patokan harga BPT adalah nilai invarian D, sehingga untuk memanipulasi harga BPT harus memanipulasi D. Berikut analisis proses perhitungan D:

Pada kode di atas, proses perhitungan D bergantung pada array balances yang telah diskalakan. Artinya, harus ada operasi yang mengubah presisi balances ini, sehingga menyebabkan kesalahan perhitungan D.
Akar Kerugian Presisi

Operasi penskalaan:

Seperti terlihat di atas, saat menggunakan _upscaleArray, jika saldo sangat kecil (misalnya 8-9 wei), pembulatan ke bawah oleh mulDown akan menyebabkan kerugian presisi yang signifikan.
Penjelasan Rinci Proses Serangan
Tahap 1: Menyesuaikan ke Batas Pembulatan

Tahap 2: Memicu Kerugian Presisi (Kerentanan Inti)

Tahap 3: Memanfaatkan Harga BPT yang Ditekan untuk Mendapatkan Keuntungan

Seperti terlihat di atas, penyerang menggunakan Batch Swap untuk melakukan beberapa pertukaran dalam satu transaksi:
1. Pertukaran pertama: BPT → cbETH (menyesuaikan saldo)
2. Pertukaran kedua: wstETH (8) → cbETH (memicu kerugian presisi)
3. Pertukaran ketiga: aset dasar → BPT (mengambil keuntungan)
Semua pertukaran ini terjadi dalam satu transaksi batch swap, berbagi status saldo yang sama, namun setiap pertukaran akan memanggil _upscaleArray untuk mengubah array balances.
Ketiadaan Mekanisme Callback
Proses utama dimulai oleh Vault, bagaimana hal ini menyebabkan akumulasi kerugian presisi? Jawabannya ada pada mekanisme transmisi array balances.

Menganalisis kode di atas, meskipun setiap kali memanggil onSwap Vault akan membuat array currentBalances baru, namun dalam Batch Swap:
1. Setelah pertukaran pertama, saldo diperbarui (namun karena kerugian presisi, nilai yang diperbarui mungkin tidak akurat)
2. Pertukaran kedua dihitung berdasarkan hasil pertukaran pertama
3. Kerugian presisi terakumulasi, akhirnya menyebabkan nilai invarian D menyusut secara signifikan
Masalah Kunci:

Kesimpulan
Serangan terhadap Balancer kali ini dapat dirangkum menjadi beberapa alasan berikut:
1. Fungsi penskalaan menggunakan pembulatan ke bawah: _upscaleArray menggunakan mulDown untuk penskalaan, ketika saldo sangat kecil (misalnya 8-9 wei), akan terjadi kerugian presisi relatif yang signifikan.
2. Perhitungan nilai invarian sangat sensitif terhadap presisi: Perhitungan nilai invarian D bergantung pada array balances yang telah diskalakan, kerugian presisi akan langsung diteruskan ke perhitungan D, menyebabkan D menyusut.
3. Tidak ada verifikasi perubahan nilai invarian: Dalam proses pertukaran, tidak ada verifikasi apakah perubahan nilai invarian D berada dalam rentang yang wajar, sehingga penyerang dapat berulang kali memanfaatkan kerugian presisi untuk menekan harga BPT.
4. Akumulasi kerugian presisi dalam Batch Swap: Dalam satu batch swap, kerugian presisi dari beberapa pertukaran akan terakumulasi, akhirnya membesar menjadi kerugian finansial yang sangat besar.
Dua masalah ini, yaitu kerugian presisi + kurangnya verifikasi, ditambah dengan desain cermat penyerang terhadap kondisi batas, menyebabkan kerugian kali ini.
Disclaimer: Konten pada artikel ini hanya merefleksikan opini penulis dan tidak mewakili platform ini dengan kapasitas apa pun. Artikel ini tidak dimaksudkan sebagai referensi untuk membuat keputusan investasi.
Kamu mungkin juga menyukai
Skandal Penahanan Bitcoin senilai 100 juta TWD oleh Jay Chou: Raja Pop pun Tak Luput dari Perangkap Pajak Kripto
Jay Chou mengalami kerugian aset karena mempercayakan teman untuk memegang Bitcoin atas namanya, peristiwa ini menyoroti risiko pajak dan regulasi terhadap praktik pemegangan aset kripto oleh pihak ketiga di wilayah Taiwan. Artikel ini menganalisis kebijakan pajak kripto di Taiwan serta potensi risiko dari praktik pemegangan aset oleh pihak ketiga. Ringkasan ini dibuat oleh Mars AI Model dan akurasinya masih dalam tahap pengembangan.

Beli di dasar atau melarikan diri, di mana titik terendah BTC?

Apakah pasar bearish benar-benar telah tiba?

