Certified Crypto Market

Apa itu smart contract?

Apa itu smart contract? Pelajari cara kerja program blockchain yang berjalan sendiri, apa saja yang ditenagainya, batasan dan risikonya, serta cara memeriksanya sebelum Anda menggunakannya.

CCM ResearchCertified Crypto Market4 Okt 20265 mnt baca

Smart contract adalah program yang disimpan di blockchain dan berjalan secara otomatis ketika kondisi yang telah ditentukan terpenuhi. Program ini dapat menyimpan dan memindahkan dana sesuai kodenya, tanpa bank, broker, atau perantara lain yang memutuskan apakah setiap langkah akan dijalankan.

Smart contract menjadi fondasi hampir semua hal di dunia kripto yang melampaui pembayaran sederhana: token, bursa terdesentralisasi, protokol pinjaman, NFT, dan DAO. Memahami apa yang bisa dan tidak bisa dilakukannya membantu Anda menilai peluang sekaligus risiko penggunaannya.

Cara kerja smart contract

Gagasan tentang kontrak yang ditegakkan oleh kode dijelaskan oleh ilmuwan komputer Nick Szabo pada 1990-an, dengan analogi mesin penjual otomatis: masukkan koin yang tepat, pilih produk, dan mesin akan mengeluarkannya tanpa perlu penjaga toko.

Di blockchain, prosesnya seperti ini:

  1. 1Pengembang menulis kode, misalnya dalam Solidity untuk Ethereum atau Rust untuk beberapa jaringan lain.
  2. 2Kode di-deploy melalui sebuah transaksi dan mendapatkan alamatnya sendiri.
  3. 3Pengguna memanggil kontrak dengan mengirim transaksi ke alamat tersebut, sering kali disertai token.
  4. 4Setiap node menjalankan kode dan menyepakati hasilnya, sehingga hasilnya sama bagi semua orang.
  5. 5Status kontrak diperbarui — saldo, catatan kepemilikan, atau pengaturan berubah di on-chain.

Setiap langkah dikenai biaya jaringan. Di Ethereum, biaya itu disebut gas; lihat apa itu gas di Ethereum untuk memahami cara kerjanya.

Untuk apa smart contract digunakan

PenggunaanApa yang dilakukan kontrakContoh
TokenMencatat saldo dan transferKontrak token ERC-20
Bursa terdesentralisasiMenyimpan pool token dan menentukan harga transaksi dengan rumusAutomated market maker (AMM)
PinjamanMenerima jaminan, memberikan pinjaman, melikuidasi posisi berisikoPasar uang DeFi
NFTMencatat kepemilikan item unikKontrak NFT sebuah koleksi
DAOMenghitung suara dan menjalankan proposal yang disetujuiKontrak tata kelola on-chain
Dompet multisigMewajibkan beberapa persetujuan untuk memindahkan danaKas (treasury) sebuah proyek

Banyak dari kontrak ini saling memanggil, itulah sebabnya DeFi kadang disebut sebagai “lego uang”. Panduan kami tentang DeFi menunjukkan bagaimana kepingan-kepingan ini saling terhubung.

Smart contract vs kontrak tradisional

Ada baiknya membandingkan smart contract dengan perjanjian kertas yang dikenal kebanyakan orang.

Kontrak tradisionalSmart contract
Ditulis dalamBahasa manusiaKode pemrograman
Ditegakkan olehPengadilan, lembaga, iktikad baik para pihakJaringan blockchain yang menjalankan kode
FleksibilitasDapat dinegosiasikan ulang atau ditafsirkanBerjalan persis seperti yang tertulis kecuali dirancang agar dapat di-upgrade
TransparansiBiasanya bersifat pribadiKode dan aktivitas sering kali publik di on-chain
Penyelesaian sengketaHakim, arbiter, pengacaraTidak ada cara bawaan untuk menangani sengketa di luar kode
KecepatanBerhari-hari hingga berbulan-bulan untuk penyelesaianHitungan detik hingga menit, tergantung jaringan

Kelebihannya adalah kecepatan, transparansi, dan hilangnya perantara. Kelemahannya adalah kekakuan: kode tidak dapat menimbang keadilan atau konteks. Jika terjadi sesuatu yang tak terduga yang tidak direncanakan pengembang, kontrak hanya mengikuti aturannya — bahkan ketika hasilnya jelas bukan yang diinginkan siapa pun. Kami membahasnya lebih rinci di Apa itu testnet dan mainnet?

Siapa yang menulis dan mengendalikan smart contract

Siapa pun dapat men-deploy smart contract; tidak ada proses persetujuan di blockchain publik. Keterbukaan ini memungkinkan inovasi yang cepat, tetapi juga berarti kontrak penipuan sama mudahnya di-deploy seperti kontrak yang sah. Setelah di-deploy, kendali bergantung pada cara kontrak ditulis: ada yang sama sekali tidak memiliki pemilik, ada yang dikendalikan oleh satu dompet, dan ada pula yang dikendalikan oleh multisig atau pemungutan suara DAO dengan jeda waktu. Mengetahui model mana yang berlaku adalah bagian penting dalam menilai risiko aplikasi apa pun. Bacaan terkait: Eksploitasi smart contract.

Apa yang tidak bisa dilakukan smart contract

Smart contract memang andal, tetapi cakupannya sempit.

  • Smart contract hanya mengenal data on-chain. Untuk memakai informasi dunia nyata seperti harga atau hasil pertandingan olahraga, smart contract bergantung pada oracle, yang membawa data eksternal ke on-chain dan bisa gagal atau dimanipulasi.
  • Smart contract tidak memahami niat. Jika Anda mengirim dana ke fungsi yang salah atau menandatangani persetujuan berbahaya, kontrak akan melakukan apa yang diperintahkan kodenya.
  • Smart contract tidak otomatis menjadi kontrak hukum. Eksekusi kode dan keberlakuan hukum adalah dua hal yang berbeda.
  • Smart contract tidak bisa membatalkan kesalahan. Transaksi yang sudah selesai umumnya tetap selesai.

Risiko menggunakan smart contract

Bug dan eksploitasi

Kode ditulis oleh manusia, dan kesalahan bisa terjadi. Penyerang mencari celah dan dapat menguras dana dalam satu transaksi. Audit membantu, tetapi tidak dapat menjamin keamanan — lihat cara menilai laporan audit smart contract.

Kunci admin dan upgrade

Banyak kontrak dapat di-upgrade atau memiliki fungsi pemilik yang dapat menjeda perdagangan, mengubah biaya, atau mencetak token baru. Fungsi ini dapat melindungi pengguna dalam keadaan darurat, tetapi juga membuka kemungkinan penyalahgunaan atau pencurian kunci admin. Bacaan terkait: Penjelasan account abstraction.

Kontrak berbahaya

Token penipuan dapat berisi aturan tersembunyi, misalnya memblokir penjualan atau memungut pajak transfer yang sangat besar. Sebuah kontrak dapat terlihat normal di halaman token, tetapi berperilaku sangat berbeda dalam praktiknya. Lihat juga: ICO vs IEO vs IDO.

Persetujuan (approval)

Menggunakan DeFi sering kali mengharuskan Anda menyetujui sebuah kontrak untuk membelanjakan token Anda. Persetujuan tanpa batas untuk kontrak yang ber-bug atau berbahaya kelak dapat digunakan untuk mengambil token tersebut. Jika ingin mendalami lebih jauh, baca Apa itu mempool?

Cara memeriksa smart contract sebelum menggunakannya

  1. 1Konfirmasikan alamatnya dari situs resmi proyek dan sumber independen.
  2. 2Cari di block explorer untuk melihat tanggal pembuatan, aktivitas, dan apakah kode sumbernya sudah terverifikasi.
  3. 3Periksa audit dari perusahaan ternama, dan baca apakah masalah yang ditemukan sudah diperbaiki.
  4. 4Cari tahu siapa yang mengendalikan fungsi admin — multisig, timelock, atau satu dompet.
  5. 5Mulailah dari jumlah kecil dan batasi persetujuan token sesuai jumlah yang Anda butuhkan.

Panduan kami tentang cara memverifikasi alamat kontrak resmi sebuah token membahas dua langkah pertama secara rinci.

Kesimpulan

Smart contract adalah kode yang berjalan sendiri di blockchain dan dapat menyimpan serta memindahkan nilai tanpa perantara. Hal ini memungkinkan keuangan yang terbuka dan dapat diprogram, tetapi juga berarti bug, wewenang admin tersembunyi, dan kode berbahaya bekerja secara instan dan tidak dapat dibatalkan. Verifikasi alamatnya, pahami siapa yang mengendalikan kontrak, dan setujui hanya yang Anda butuhkan.

Pertanyaan umum

Apakah smart contract mengikat secara hukum?

Tidak secara otomatis. Smart contract adalah perangkat lunak yang dijalankan di blockchain, bukan perjanjian hukum dengan sendirinya. Beberapa sistem hukum mungkin mengakui perjanjian yang dicatat atau dijalankan dengan kode, tetapi hal ini bergantung pada negara dan situasinya. Jika keberlakuan hukum penting, periksa hukum setempat atau tanyakan kepada profesional yang kompeten.

Bisakah smart contract diubah setelah di-deploy?

Kode yang sudah di-deploy biasanya tidak bisa diedit. Namun, banyak proyek menggunakan desain yang dapat ditingkatkan, seperti kontrak proxy, yang memungkinkan admin mengarahkan pengguna ke kode baru. Fleksibilitas itu membantu memperbaiki bug, tetapi juga berarti ada pihak yang berkuasa mengubah aturan. Periksa siapa yang mengendalikan kunci upgrade atau kunci admin.

Blockchain mana saja yang mendukung smart contract?

Ethereum mempopulerkan smart contract serbaguna, dan banyak jaringan lain juga mendukungnya, termasuk BNB Chain, Solana, Avalanche, Cardano, dan jaringan layer-2 Ethereum. Bitcoin sengaja dirancang hanya mendukung scripting terbatas. Setiap platform memakai bahasa dan perangkatnya sendiri, sehingga kontrak tidak otomatis bisa dipindahkan antarplatform.

Apa yang terjadi jika smart contract memiliki bug?

Kode berjalan persis seperti yang tertulis, termasuk bug-nya. Penyerang dapat mengeksploitasinya untuk menguras dana, dan transaksi biasanya tidak dapat dibatalkan. Beberapa proyek dapat menjeda atau meng-upgrade kontrak untuk membatasi kerugian, sedangkan kontrak yang tidak dapat diubah sama sekali tidak bisa diperbaiki. Audit dan program bug bounty mengurangi risiko ini, tetapi tidak menghilangkannya.

Artikel ini hanya untuk edukasi dan bukan nasihat keuangan, hukum, atau pajak. Kripto sangat fluktuatif dan Anda bisa kehilangan uang. Cek harga langsung dan detail proyek di halaman setiap koin sebelum bertindak.