Mengapa keamanan kontrak pintar berbeda dari keamanan perangkat lunak biasa?

Keamanan kontrak pintar berbeda karena kodenya terbuka untuk umum, sering kali menyimpan uang secara langsung, dan biasanya tidak dapat diubah setelah diterapkan. Kesalahan dalam aplikasi web dapat diperbaiki dalam semalam; kesalahan dalam kontrak dapat ditemukan oleh siapa pun yang membaca kodenya dan dimanfaatkan sebelum tim terbangun. Ethereum.org memperkirakan kerugian akibat cacat kontrak pintar mencapai lebih dari satu miliar dolar dan menyebut peretasan DAO pada 2016 sebagai salah satu contoh awal.

Bayangkan sebuah studio fiktif dengan empat orang, Larkspur Labs, yang sedang membangun sistem tabungan bersama sederhana tempat anggota menyetorkan dana dan menarik bagian mereka. Pengembangnya, Kofi, meninggalkan catatan peninjauan sebelum penerapan: 'withdraw mengirim dana lalu mengatur saldo ke 0. setFee dapat diakses publik, akan dibatasi nanti. memakai versi kompilator lama dari tutorial. harga token imbalan dibaca dari satu kumpulan likuiditas kecil di bursa. pengujian: mencoba deposit + withdraw sekali secara manual, berhasil'. Setiap baris merupakan jenis kerentanan yang sudah dikenal.

Apa saja kerentanan kontrak pintar yang paling umum?

Kerentanan kontrak pintar yang paling umum adalah kelemahan kontrol akses, manipulasi oracle harga, kesalahan logika, tidak adanya validasi masukan, dan pemanggilan ulang sebelum eksekusi sebelumnya selesai, yang menempati posisi teratas dalam OWASP Smart Contract Top 10 untuk 2025. Ethereum.org membahas kategori utama yang sama.

Reentransi

Sebuah kontrak mengirim dana atau memanggil kontrak lain sebelum memperbarui catatannya sendiri. Penerima yang berniat jahat melakukan panggilan balik saat saldo lama masih tercatat, lalu menarik dana lagi. Fungsi penarikan milik Kofi, yang membayarkan dana sebelum mengatur saldo menjadi nol, adalah contoh klasik pola ini. Perbaikan yang umum adalah memperbarui status terlebih dahulu dan berinteraksi dengan kontrak lain pada tahap terakhir, yang sering disebut pola pemeriksaan, perubahan status, interaksi.

Kontrol akses

Fungsi sensitif yang dapat dipanggil siapa saja. Fungsi setFee publik milik Kofi memungkinkan orang yang tidak dikenal mengubah biaya. Ethereum.org menjelaskan pola seperti peran pemilik, akses berbasis peran, dan persetujuan multitanda tangan.

Luapan dan limpahan bawah bilangan bulat

Operasi aritmetika yang berputar kembali setelah melewati batasnya, sehingga saldo di bawah nol berubah menjadi angka yang sangat besar. Ethereum.org menjelaskan bahwa Solidity 0.8.0 dan versi sesudahnya menolak hal ini secara bawaan, sedangkan kode lama memerlukan pemeriksaan eksplisit. Itulah sebabnya versi lama kompilator yang digunakan Kofi perlu diperhatikan.

Manipulasi orakel

Mengambil harga dari satu pasar dengan likuiditas rendah yang dapat dimanipulasi penyerang, sering kali melalui pinjaman kilat, yaitu pinjaman yang diambil dan dilunasi dalam satu transaksi. Rancangan yang tangguh menggunakan orakel terdesentralisasi atau harga rata-rata selama periode tertentu.

Kesalahan logika dan validasi

Aturan yang tidak sesuai dengan rancangan yang dimaksud, atau masukan yang tidak pernah diperiksa, seperti jumlah nol atau alamat yang tidak terduga.

Bagaimana tim menguji dan mengaudit kontrak pintar?

Tim menguji dan mengaudit kontrak pintar secara berlapis karena tidak ada satu metode pun yang dapat mendeteksi semuanya: pengujian otomatis, alat analisis, penerapan ke jaringan uji, peninjauan independen, serta, untuk kontrak yang menyimpan nilai besar, audit eksternal dan program imbalan penemuan celah.

1. Pengujian unit dan properti

Tulis pengujian untuk setiap fungsi, termasuk kasus berbahaya seperti penerima yang memanggil kembali fungsi asal. Pengujian fuzz mencoba ribuan masukan acak secara otomatis.

2. Analisis statis

Ethereum.org menyebutkan alat seperti Slither, Mythril, dan Aderyn, yang memindai kode untuk menemukan pola berisiko yang sudah diketahui.

3. Uji jaringan

Terapkan ke jaringan uji publik sebelum ke jaringan utama. Ethereum.org merekomendasikan Sepolia untuk pengembangan aplikasi dan kontrak; ether di jaringan uji memang dimaksudkan tidak memiliki nilai nyata, sehingga kesalahan tidak menimbulkan biaya.

4. Tinjauan sejawat dan pustaka yang telah diaudit

Gunakan kontrol versi, peninjau independen untuk setiap perubahan, dan pustaka yang telah ditinjau dengan baik seperti OpenZeppelin Contracts, alih-alih menulis kontrol akses dari awal.

5. Audit, imbalan pelaporan celah keamanan, dan pemantauan

Audit independen menambah lapisan pemeriksaan, tetapi, seperti dicatat ethereum.org, tidak menemukan setiap kutu perangkat lunak. Program imbalan penemuan celah, fungsi penghentian sementara darurat, dan pemantauan peristiwa membantu menangani risiko yang tersisa.

Seperti apa tinjauan keamanan yang lemah dan yang telah diperbaiki?

Peninjauan lemah: 'Setoran dan penarikan diuji secara manual, berfungsi baik, siap diterapkan.' Pengujian alur normal menunjukkan bahwa kontrak berfungsi untuk pengguna yang jujur, padahal penyerang justru bukan pengguna seperti itu.

Tinjauan yang diperbaiki: Pemanggilan ulang: withdraw kini mengatur saldo menjadi nol sebelum mengirim, dan sebuah pengujian menggunakan kontrak penerima berbahaya untuk mencoba memanggilnya kembali. Kontrol akses: setFee dibatasi untuk peran pemilik dari pustaka yang telah diaudit, dengan pengujian yang memastikan panggilan dari pihak luar gagal. Kompiler: ditingkatkan ke versi 0.8 terkini sehingga pemeriksaan luapan aktif. Orakel: harga dari satu kumpulan likuiditas diganti dengan umpan harga terdesentralisasi, ditambah batas kewajaran untuk perubahan mendadak. Pengujian: pengujian unit, pengujian dengan masukan acak, dan analisis statis dengan penjelasan untuk setiap temuan, lalu dua minggu di Sepolia dengan seorang rekan yang mencoba mencari kelemahannya. Audit eksternal dijadwalkan sebelum dana nyata apa pun diterima.

Apa saja kesalahan umum dalam keamanan kontrak pintar?

Kesalahan paling umum adalah hanya menguji alur ketika semua berjalan sesuai harapan, seolah setiap pemanggil fungsi bersikap jujur. Kesalahan lainnya: membiarkan fungsi administrator terbuka untuk dibatasi nanti, menyalin kode tutorial dengan pengompilasi yang sudah usang, memercayai satu sumber harga, menganggap audit sebagai jaminan, melewatkan tahap jaringan uji, dan menerapkan sistem tanpa rencana untuk menjeda atau memperbaruinya.

Di bagian mana pelajaran ini berada di Tosheo.ai?

Ini adalah pelajaran pemrograman dalam kategori Rantai Blok dan kursus rantai blok. Halaman gratis ini menjelaskan setiap langkah dalam bentuk uraian; versi praktik lengkapnya, tempat Anda meninjau dan memperbaiki kode kontrak nyata serta menjalankan pengujian pada jaringan uji, tersedia di jalur Pemrograman opsional setelah mendaftar. Mulailah dengan penjelasan kontrak pintar jika Anda belum memahami dasarnya. Tosheo.ai bukan pelatihan intensif penuh waktu atau program kualifikasi auditor profesional, dan tidak ada materi di sini yang merupakan saran investasi; kontrak yang menyimpan nilai nyata memerlukan audit spesialis.

Sumber dan cakupan

ethereum.org, keamanan kontrak pintar (diperiksa 19 October 2026) ↗

10 risiko utama kontrak pintar menurut OWASP, 2025 (diperiksa 19 October 2026) ↗

ethereum.org, jaringan dan jaringan uji (diperiksa 19 October 2026) ↗