Dasar
Spot
Perdagangkan kripto dengan bebas
Perdagangan Margin
Perbesar keuntungan Anda dengan leverage
Konversi & Investasi Otomatis
0 Fees
Perdagangkan dalam ukuran berapa pun tanpa biaya dan tanpa slippage
ETF
Dapatkan eksposur ke posisi leverage dengan mudah
Perdagangan Pre-Market
Perdagangkan token baru sebelum listing
Futures
Akses ribuan kontrak perpetual
TradFi
Emas
Satu platform aset tradisional global
Opsi
Hot
Perdagangkan Opsi Vanilla ala Eropa
Akun Terpadu
Memaksimalkan efisiensi modal Anda
Perdagangan Demo
Pengantar tentang Perdagangan Futures
Bersiap untuk perdagangan futures Anda
Acara Futures
Gabung acara & dapatkan hadiah
Perdagangan Demo
Gunakan dana virtual untuk merasakan perdagangan bebas risiko
Peluncuran
CandyDrop
Koleksi permen untuk mendapatkan airdrop
Launchpool
Staking cepat, dapatkan token baru yang potensial
HODLer Airdrop
Pegang GT dan dapatkan airdrop besar secara gratis
Pre-IPOs
Buka akses penuh ke IPO saham global
Poin Alpha
Perdagangkan aset on-chain, raih airdrop
Poin Futures
Dapatkan poin futures dan klaim hadiah airdrop
Investasi
Simple Earn
Dapatkan bunga dengan token yang menganggur
Investasi Otomatis
Investasi otomatis secara teratur
Investasi Ganda
Keuntungan dari volatilitas pasar
Soft Staking
Dapatkan hadiah dengan staking fleksibel
Pinjaman Kripto
0 Fees
Menjaminkan satu kripto untuk meminjam kripto lainnya
Pusat Peminjaman
Hub Peminjaman Terpadu
Promosi
AI
Gate AI
Partner AI serbaguna untuk Anda
Gate AI Bot
Gunakan Gate AI langsung di aplikasi sosial Anda
GateClaw
Gate Blue Lobster, langsung pakai
Gate for AI Agent
Infrastruktur AI, Gate MCP, Skills, dan CLI
Gate Skills Hub
10RB+ Skills
Dari kantor hingga trading, satu platform keterampilan membuat AI jadi lebih mudah digunakan
GateRouter
Pilih secara cerdas dari 40+ model AI, dengan 0% biaya tambahan
Saya baru saja menyelesaikan sebuah artikel analisis tentang reentrancy - masalah keamanan yang masih banyak developer abaikan saat membangun smart contracts.
Sederhananya, reentrancy adalah ketika sebuah kontrak pintar dipanggil kembali berkali-kali sebelum panggilan pertama selesai. Bayangkan seperti ini: ContractA sedang menjalankan sebuah fungsi, dia memanggil ContractB, dan ContractB malah memanggil kembali ContractA sementara ContractA belum selesai. Itu adalah celah yang bisa dieksploitasi oleh penyerang.
Contoh spesifik: EtherStore memiliki 10 Ether, ContractB telah mengirim 1 Ether ke sana. Ketika ContractB memanggil fungsi penarikan, dia memeriksa apakah saldo lebih besar dari 0, jika iya, mengirim Ether kembali. Tapi di sinilah bahaya - pembaruan saldo menjadi 0 terjadi setelah pengiriman Ether. Jadi, penyerang bisa membuat sebuah fungsi fallback yang, saat menerima Ether, akan memanggil lagi fungsi penarikan sekali lagi. Loop ini akan berlanjut sampai semua Ether habis.
Saya akan menunjukkan tiga cara untuk mencegah reentrancy:
Pertama adalah menggunakan modifier nonReentrant. Cara ini mengunci kontrak saat fungsi sedang berjalan, sehingga tidak ada yang bisa memanggil kembali. Sederhana tapi efektif untuk satu fungsi saja.
Kedua adalah menerapkan pola Checks-Effects-Interactions. Alih-alih memperbarui saldo setelah mengirim uang, lakukan sebelum. Dengan cara ini, bahkan jika terjadi panggilan kembali, saldo sudah menjadi 0 sehingga pemeriksaan akan gagal.
Ketiga adalah membuat kontrak GlobalReentrancyGuard terpisah. Cara ini menggunakan sebuah variabel status bersama untuk mengendalikan reentrancy di banyak kontrak sekaligus. Sangat berguna jika proyek Anda memiliki banyak kontrak yang berinteraksi satu sama lain. Alih-alih memeriksa di setiap kontrak, Anda memeriksa di satu tempat terpusat.
Masalah reentrancy bukanlah hal baru, tetapi tetap menjadi salah satu celah paling umum. Saya melihat banyak developer yang belum menerapkan langkah-langkah ini secara konsisten. Jika Anda bekerja dengan Solidity, pastikan Anda memahami masalah ini dan menerapkan minimal satu dari tiga metode di atas dalam proyek Anda. Keamanan smart contract bukanlah pilihan, itu adalah keharusan.