Siaran
avatar

Reentrancy Dipecahkan - Kebocoran Kontrak Pintar yang Masih Menguras Jutaan Pada 2026, dan Pola Checks-Effects-Interactions yang Menghentikannya dalam Kod Reentrancy bukanlah sihir. Ia adalah kesilapan urutan: kontrak anda mengemas kini keadaannya SETELAH ia membuat panggilan luaran, bukan sebelumnya, dan penyerang memanggil semula semasa jurang itu. Perbaiki urutannya, dan kecacatan itu hilang. DAO kehilangan sekitar 3.6 juta ETH (kira-kira $60 juta, sekitar 5% daripada semua ETH yang wujud ketika itu) akibat kesilapan tepat ini pada 17 Jun 2016. Akibatnya, Ethereum terpecah menjadi ETH dan ETC. Sepuluh tahun kemudian, ia masih menguras dana. Solv Protocol kehilangan $2.73 juta akibat reentrancy pada 5 Mac 2026, dan sekitar $52 juta dicuri daripada pelbagai protokol onchain pada Mei 2026 (DeFiLlama melalui CryptoTimes, 31 Mei 2026). Pola rentan: baca baki, hantar ETH dengan panggilan aras rendah, KEMUDIAN tetapkan baki kepada sifar. Fungsi receive() penyerang memasuki semula withdraw() sebelum sifar itu sampai, dan berulang sehingga kontrak menjadi kosong. Dua penyelesaian, digunakan bersama: Checks-Effects-Interactions. Sahkan, kemas kini SEMUA keadaan, kemudian buat panggilan luaran TERAKHIR. Pindahkan balances[msg.sender] = 0 ke atas panggilan, maka panggilan re-entrant akan membaca sifar dan membatalkan. Pengawal nonReentrant OpenZeppelin. Sebuah mutex penyimpanan (NOT_ENTERED ke ENTERED) yang membatalkan pada masuk semula. Gunakan ia DAN CEI, bukan salah satu sahaja. Dua perkara yang masih salah oleh kebanyakan pembangun. 1. .transfer() bukan lagi perisai: subsidi gas 2300 berhenti menjadi anggapan selamat apabila EIP-1884 meningkatkan gas SLOAD pada 2019. Gunakan .call{value:}("") dengan CEI. 2. Reentrancy baca-sahaja melintasi pengawal piawai, kerana fungsi view yang membaca semasa pengemaskinian mengembalikan keadaan rosak dan boleh meracuni oracle harga (dForce, $3.64 juta). Hanya untuk tujuan pendidikan. Bukan nasihat kewangan. Ikuti untuk wawasan harian - di mana blok rantai bertemu AI, satu sapuan memuaskan pada satu masa. #Solidity #SmartContractSecurity #Web3Security #Ethereum #DeFi #SmartContracts #BlockchainDeveloper #SolidityDev #EVM #OpenZeppelin #Reentrancy #Web3Dev #BlockchainSecurity #DeFiSecurity #SmartContractAudit #CodeSecurity #OnChain #BlockchainEducation

Kandungan ini adalah bagi tujuan maklumat dan pendidikan sahaja. Ia mungkin termasuk pandangan pihak ketiga, kandungan tajaan, atau bahan promosi yang mana pencipta mungkin menerima pampasan. Tiada apa-apa dalam suapan ini yang merupakan nasihat pelaburan atau jaminan pulangan. Anda bertanggungjawab sepenuhnya ke atas keputusan pelaburan anda sendiri. Sentiasa jalankan penyelidikan anda sendiri dan berhati-hati sebelum berdagang. Kami tidak menjamin ketepatan maklumat pihak ketiga dan tidak bertanggungjawab ke atas sebarang kerugian yang ditanggung. Prestasi masa lalu tidak menunjukkan hasil masa hadapan. Sila rujuk Terma Komuniti dan Penyata Pendedahan Risiko kami untuk mendapatkan butiran.

avatarSiarkan balasan anda

Komen