Smart contract pada jaringan Ethereum Virtual Machine (EVM) merupakan kode terdesentralisasi yang bersifat immutable (tidak dapat diubah) begitu dideploy ke mainnet. Karakteristik ini menuntut pengembang untuk memiliki standar keamanan dan optimasi kode yang sangat tinggi sejak hari pertama.
Salah satu kerentanan paling klasik dan berbahaya dalam smart contract adalah Reentrancy Attack, seperti yang pernah menimpa The DAO pada tahun 2016.
// Contoh pencegahan Reentrancy dengan Checks-Effects-Interactions Pattern
function withdraw(uint256 amount) external nonReentrant {
// 1. Checks
require(balances[msg.sender] >= amount, "Saldo tidak mencukupi");
// 2. Effects
balances[msg.sender] -= amount;
// 3. Interactions
(bool success, ) = msg.sender.call{value: amount}("");
require(success, "Transfer gagal");
}
Pola Checks-Effects-Interactions (CEI) memastikan bahwa perubahan state internal akun dieksekusi sebelum memanggil alamat eksternal, sehingga upaya recursive re-entry tidak dapat mengeksploitasi saldo kontrak.
Biaya gas pada Ethereum ditentukan oleh opcode EVM. Instruksi penyimpanan storage (SSTORE) merupakan salah satu operasi paling mahal (hingga 20,000 gas saat menulis slot baru).
uint128, uint64, bool) agar muat dalam satu slot 32-byte.immutable dan constant untuk nilai statis agar nilainya langsung diinjeksikan ke dalam bytecode runtime tanpa membaca storage.Yul) untuk kalkulasi matematika intensif jika diperlukan efisiensi maksimal.Framework modern seperti Foundry memungkinkan Property-Based Testing dan Invariant Fuzzing:
# Menjalankan 100,000 permutasi fuzzing acak
forge test --fuzz-runs 100000
Dengan mengombinasikan analisis statis (Slither), fuzzing, dan verifikasi formal, kita dapat meminimalisir risiko kegagalan protokol saat smart contract mengelola likuiditas di dunia nyata.