Smart Contract


[12] Smart contract merupakan program komputer yang memiliki
self-verifying, self-executing, dan tamper-resistant. Konsep awal dari smart
contract sendiri diperkenalkan oleh Nick Szabo pada tahun 1994.
Kemunculan blockchain bukan hanya sekedar menjadi buku besar yang
mencatat transaksi yang terjadi dan menyebarkannya ke seluruh jaringan
namun perkembangannya telah membawa kemungkinan untuk
menjalankan suatu program di atas jaringan blockchain. Kehadiran
jaringan Ethereum sebagai jaringan terbesar kedua setelah Bitcoin telah
memungkinkan sebuah kontrak yang berupa program komputer untuk
disimpan di dalam jaringan. Dengan men-deploy smart contract, maka kita
dapat melakukan kustomisasi terhadap sebuah persetujuan yang harus
disepakati kedua belah pihak dalam proses transaksi, bahkan transaksi
yang dikirimkan bukan lagi berbentuk nilai mata uang melainkan
data-data.
Saat ini ada aplikasi yang menggunakan smart contract sebagai
pusat logika dalam proses kontrol atau yang sering kita sebut sebagai
backend pada konsep lingkungan centralized. Aplikasi yang dinamai
sebagai Decentralized Applications (DApps) ini berinteraksi dengan smart
contract melalui ABI (Application Binary Interface) yakni layaknya API
untuk machine language level. Hal ini disebabkan karena smart contract
hidup dan berjalan di atas blockchain yang komunikasinya masih berada di
low-level language. Smart contract akan menjadi interface antara
ByteCode dan JSON RPC dimana ByteCode hasil kompilasi smart
contract akan di simpan di jaringan blockchain dan protokol JSON RPC
digunakan saat frontend memanggil function dari smart contract.
Terdapat beberapa opsi pilihan bahasa yang dapat digunakan untuk
membuat smart contract namun salah satu bahasa yang paling umum dan
banyak digunakan adalah Solidity. Selain Solidity ada juga bahasa lain
seperti Vyper dan Rust. Dari segi framework dan blockchain tools terdapat
beberapa yang umum digunakan seperti Hardhat, Truffle, dan
OpenZepelline