Bitget App
Trading lebih cerdas
Beli kriptoPasarTradingFuturesEarnWeb3WawasanSelengkapnya
Trading
Spot
Beli dan jual kripto dengan mudah
Margin
Perkuat modalmu dan maksimalkan efisiensi dana
Onchain
Trading Onchain, Tanpa On-Chain
Konversi & perdagangan blok
Konversi kripto dengan satu klik dan tanpa biaya
Jelajah
Launchhub
Dapatkan keunggulan lebih awal dan mulailah menang
Copy
Salin elite trader dengan satu klik
Bot
Bot trading AI yang mudah, cepat, dan andal
Trading
Futures USDT-M
Futures diselesaikan dalam USDT
Futures USDC-M
Futures diselesaikan dalam USDC
Futures Koin-M
Futures diselesaikan dalam mata uang kripto
Jelajah
Panduan futures
Perjalanan pemula hingga mahir di perdagangan futures
Promosi Futures
Hadiah berlimpah menantimu
Ringkasan
Beragam produk untuk mengembangkan aset Anda
Earn Sederhana
Deposit dan tarik kapan saja untuk mendapatkan imbal hasil fleksibel tanpa risiko
Earn On-chain
Dapatkan profit setiap hari tanpa mempertaruhkan modal pokok
Earn Terstruktur
Inovasi keuangan yang tangguh untuk menghadapi perubahan pasar
VIP dan Manajemen Kekayaan
Layanan premium untuk manajemen kekayaan cerdas
Pinjaman
Pinjaman fleksibel dengan keamanan dana tinggi
Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya?

Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya?

BlockBeatsBlockBeats2025/11/04 06:24
Tampilkan aslinya
Oleh:BlockBeats

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.


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 0


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.


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 1


Dalam perhitungan pertukaran pool:


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 2


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


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 3


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


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 4


Operasi penskalaan:


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 5


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


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 6


Tahap 2: Memicu Kerugian Presisi (Kerentanan Inti)


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 7


Tahap 3: Memanfaatkan Harga BPT yang Ditekan untuk Mendapatkan Keuntungan


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 8


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.


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 9


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:


Analisis teknis: Balancer diretas sebesar 120 juta dolar, di mana letak celah keamanannya? image 10


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.


0

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.

PoolX: Raih Token Baru
APR hingga 12%. Selalu aktif, selalu dapat airdrop.
Kunci sekarang!

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.

MarsBit2025/11/05 19:12
Skandal Penahanan Bitcoin senilai 100 juta TWD oleh Jay Chou: Raja Pop pun Tak Luput dari Perangkap Pajak Kripto