Dapatkan Bitculator di Android
Kapitalisasi pasar:
$2,052,274,338,825
Volume 24 jam:
$172,142,001,369
Jun 04 Likuidasi:
$0
24J Panjang/Pendek:
Segera hadir
Reentrancy Attack
Apa arti Reentrancy Attack dalam istilah kripto?
Sebuah Reentrancy Attack adalah sebuah kelemahan keamanan dalam kontrak pintar di mana seorang penyerang memanfaatkan kerentanan kontrak dengan memanggilnya berulang kali sebelum eksekusi awal selesai.

Apa itu Reentrancy Attack?
Reentrancy Attack terjadi ketika sebuah kontrak menyerahkan kontrol ke kontrak lain saat pemanggilan dan kode eksternal tersebut kembali masuk ke kontrak pertama sebelum selesai memperbarui catatannya. Trik timing itu memungkinkan penyerang mengulang tindakan sensitif seperti penarikan berulang kali. Bayangkan meminta pengembalian uang, lalu menyelinap kembali ke meja sebelum kasir mengunci laci.
“Hanya kode lama yang bisa diserang oleh Reentrancy Attack.” Tidak benar. Kontrak apa pun yang melakukan panggilan eksternal sebelum mengunci statusnya sendiri bisa rentan jika logikanya ceroboh.
Bagaimana Reentrancy Attack bekerja
Singkat cerita. Sebuah kontrak pintar umum memiliki fungsi withdraw yang mengirim dana ke pemanggil. Jika fungsi mengirim dana terlebih dahulu dan mengosongkan saldo kemudian, penyerang bisa menyusupkan callback dan meminta lebih sebelum saldo diatur ke nol.
- Start: Penyerang menyetor sejumlah dana untuk tampak sah.
- Call: Penyerang memicu withdraw pada kontrak target.
- Fallback: Target mengirim dana, yang menjalankan fungsi fallback penyerang.
- Repeat: Fallback itu memanggil withdraw lagi sebelum saldo diperbarui.
- Drain: Loop berlanjut sampai kontrak kehabisan dana atau gas. Ya, itu triknya.
Satu kesalahan urutan kecil, masalah besar.
Mengapa Reentrancy Attack penting
Anda perlu peduli karena bug terkait waktu dapat memindahkan uang nyata dengan cepat. Selain itu, ini adalah salah satu eksploitasi klasik yang harus dikenali langsung oleh setiap pengembang dan pengguna yang ingin tahu.
- Benefit: Mengetahui pola membantu Anda menemukan kode berisiko dan menjaga dana tetap aman.
- Perspective: Masalah ini mudah terjadi karena transparansi publik, karena semuanya pada blockchain terlihat dan dapat dipanggil.
- Relevance: Anda akan melihatnya di DeFi, bridges, treasuries, bahkan pembayaran tata kelola untuk DAO.
Ikuti urutan checks then effects then interactions. Perbarui saldo terlebih dahulu, lalu lakukan panggilan eksternal. Tambahkan reentrancy guard sederhana untuk keamanan tambahan.
Karakteristik Utama Reentrancy Attack
Berikut yang membuatnya bekerja:
- Recursion: Kode eksternal memanggil kembali kontrak yang sama sebelum selesai.
- Ordering: Bug muncul ketika pengiriman dana atau pemanggilan keluar terjadi sebelum pembaruan status.
- Cross: Bisa memantul antar beberapa kontrak, bukan hanya satu fungsi.
- Assets: Bekerja pada ETH, token, bahkan kredit akuntansi jika dikodekan dengan buruk.
Variasi
Berbagai variasi, masalah yang sama untuk kode yang ceroboh:
- Single: Memasuki kembali fungsi yang sama berulang kali.
- Cross: Memasuki kembali lewat fungsi berbeda dalam kontrak yang sama.
- Multi: Memasuki kembali melintasi dua atau lebih kontrak dalam sebuah loop.
- ReadOnly: Mempengaruhi view atau oracle harga untuk menipu penulisan selanjutnya.
Memperbaiki Reentrancy Attack bukan hanya soal satu fungsi. Tinjau setiap panggilan eksternal, tambahkan tes untuk rantai panggilan yang aneh, dan jadwalkan audit secara berkala.
Contoh
Eksploit The DAO 2016 menggunakan loop reentrancy pada withdraw sebelum saldo dikosongkan, menguras kas besar dalam hitungan menit.
Fakta Menarik
Slogan komunitas checks then effects then interactions berasal dari panduan keamanan awal dan bertahan karena singkat, mudah diingat, dan efektif.
Ringkasan
Versi singkat yang bisa Anda ingat: jika kode luar bisa memanggil Anda sebelum Anda menyelesaikan pembukuan sendiri, anggap itu mungkin dan Anda bisa menyerahkan uang gratis. Itulah Reentrancy Attack.
Jelajahi Istilah Kripto Lainnya
Apakah Anda menemukan istilah ini dijelaskan dengan jelas?
Apakah ada yang kami lupakan??
Masukan Anda membantu kami menjaga semuanya tetap benar. Hubungi kami jika ada yang salah atau hilang.
Hubungi











