Kontrak pintar

**Kontrak pintar** (*smart contract*) merupakan istilah yang digunakan dalam menggambarkan suatu protokol komputer yang memfasilitasi kontrak atau perjanjian antara satu pihak dengan pihak lainnya tanpa melalui pihak ketiga. Protokol kontrak pintar sedemikian rupa harus dapat melakukan verifikasi terhadap pelaksanaan kewajiban penerima kontrak dari suatu perjanjian. Kontrak pintar juga dapat dikatakan sebagai bentuk paling sederhana dari otomasi terdesentralisasi. Tujuan utama dari kontrak cerdas adalah untuk mengurangi kebutuhan akan perantara terpercaya, menekan biaya arbitase, meminimalkan risiko penipuan, serta menghindari kesalahan baik yang disengaja maupun tidak disengaja. Kontrak cerdas umumnya dikaitkan dengan mata uang kripto. Salah satu contoh paling terkenal adalah kontrak cerdas yang diperkenalkan oleh Ethereum, yang kini menjadi komponen penting dalam ekosistem keuangan terdesentralisasi (DeFi) dan aplikasi token non-fungible (NFT). Beberapa karakteristik penting dari kontrak pintar adalah sebgai berikut:

* Desentralisasi: Kontrak pintar beroperasi diatas rantai blok, yang artinya data dan logika kontrak disimpan dan dijalankan secara terdistribusi di banyak node (komputer) yang membentuk jaringan rantai blok. Tidak ada pihak tunggal yang mengontrol kontrak pintar, sehingga meningkatkan transparansi dan kepercayaan.
* Deterministik: bekerja berdasarkan peraturan dan logika yang telah ditentukan dengan jelas. Setiap kali kondisi tertentu terpenuhi, hasilnya akan selalu sama, dan tidak bergantung pada interpretasi manusia.
* Tidak dapat diubah (*Immutable*): Setelah kontrak pintar dibuat dan diterbitkan di rantai blok, logika dan aturannya tidak dapat diubah oleh siapapun, termasuk oleh pembuat kontrak itu sendiri.
* Keamanan: Kontrak pintar dijalankan di atas platform rantai blok yang memiliki tingkat keamanan yang tinggi karena didukung oleh kriptografi dan konsensus jaringan.
* Biaya transaksi: Setiap operasi atau eksekusi kontrak pintar memerlukan biaya transaksi dalam bentuk gas, yang harus dibayarkan dalam mata uang digital seperti Ethereum atau aset kripto lainnya yang sesuai dengan rantai blok yang digunakan.

Dalam buku putih Ethereum yang ditulis oleh Vitalik Buterin pada tahun 2014, Bitcoin disebut sebagai versi lemah dari konsep kontrak cerdas yang pertama kali dikemukakan oleh Nick Szabo. Buterin kemudian mengusulkan versi yang lebih kuat menggunakan bahasa pemrograman Solidity. Penting untuk membedakan antara *smart contract* dan *legal contract*. Kontrak cerdas (*smart contract*) adalah program yang menjalankan kesepakatan secara otomatis, sedangkan *smart legal contract* adalah perjanjian hukum dalam bahasa alami yang memiliki beberapa ketentuannya dikodekan dalam bentuk yang dapat dibaca oleh mesin.

## Etimologi
Pada tahun 1966, Nick Szabo mulai menggunakan istilah "*smart contract* untuk merujuk pada kontrak yang ditegakkan oleh properti fisik (seperti perangkat keras atau perangkat lunak) alih-alih melalui hukum. Szabo menggambarkan mesin penjual otomatis (*vending machine*) sebagai contoh konsep ini. Pada tahun 1998, istilah ini juga digunakan untuk menggambarkan objek dalam lapisan layanan manajemen hak pada sistem *The Stanford Infobus*, yang merupakan bagian dari Stanford Digital Library Project.

## Status hukum kontrak pintar
Kontrak pintar umumnya tidak dianggap sebagai perjanjian yang sah secara hukum. Beberapa usulan telah diajukan untuk mengatur kontrak pintar.

Kontrak pintar bukanlah perjanjian hukum, melainkan transaksi yang dieksekusi secara otomatis oleh program komputer atau protokol transaksi. Teknologi ini sering digunakan untuk mengotomatiskan kewajiban pembayaran, misalnya dengan mentransfer mata uang kripto atau token lainnya. beberapa ahli berpendapat bahwa sifat imperatif atau deklaratif dari bahasa pemrograman dapat memengaruhi validitas hukum kontrak pintar.

Sejak peluncuran rantai blok Ethereum pada tahun 2015, istilah "kontrak cerdas" mulai digunakan untuk menggambarkan segala bentuk komputasi yang berlangsung di dalam rantai blok. Institut Standar dan Teknologi Nasional AS (NIST) mendefinisikan kontrak cerdas sebagai kumpulan kode dan data (sering disebut sebagai fungsi atau status) yang diterapkan menggunakan transaksi yang ditandatangani secara kriptografi di dalam jaringan rantai blok. Dalam pengertian ini, kontrak cerdas adalah program komputer yang memanfaatkan rantai blok sebagai mendia eksekusinya. Kontrak cerdas juga dapat dianggap sebagai prosedur yang tersimpan dengan aman, karena proses eksekusi dan dampat yang telah dikodekan (seperti transfer token antar pihak) tidak dapat dimanipulasi tanpa mengubah rantai blok itu sendiri. Dengan demikian, eksekusi kontrak diawasi oleh platform rantai blok, bukan oleh program server eksternal yang terhubung ke platform tersebut.

Pada tahun 2018, laporan Senat AS menyatakan: "Meskipun kontrak cerdas terdengar seperti konsep baru, ide dasarnya berakar pada kontrak tradisional. Biasanya, sistem peradilan menangani sengketa kontrak dan menegakkan ketentuannya, tetapi metode arbitrase lain juga umum digunakan, terutama dalam transaksi internasional. Dalam kontrak cerdas, program komputerlah yang menegakkan ketentuan kontrak yang telah dikodekan. "Beberapa negara bagian di AS, seperti Arizona, Iowa, Nevada, Tennessee, dan Wyoming, telah mengesahkan undang-undang terkait penggunaan kontrak cerdas.

Pada April 2021, *UK Jurisdiction Taskforce* (UKJT) di Ingris menerbitkan *Digital Dispute Resolution Rules* (Aturan Penyelesaian Sengketa Digital) yang bertujuan untuk mempecepat penyelesaian sengketa hukum terkait rantai blok dan kripto di Inggris.

## Cara kerja kontrak pintar
Seperti halnya transfer nilai dalam rantai blok, penerapan kontrak pintar di rantai blok dilakukan dengan mengirimkan transaksi dari dompet (*wallet*) rantai blok. Transaksi ini berisi kode yang telah dikompilasi untuk kontrak pintar serta alamat penerima khusus. Setelah transaksi ini dimasukkan ke dalam sebuah blok dan ditambahkan ke dalam rantai blok, kode kontrak pintar akan dieksekusi untuk menetapkan keadaan awalnya.

Kontrak pintar diamankan dengan algoritma toleran terhadap kesalahan Byzantine (*Byzantine fault-tolerant*), yang mencegah upaya manipulasi secara terdesentralisasi. Setelah kontrak pintar diterapkan di rantai blok, kode tersebut tidak dapat diperbarui. Kontrak pintar dapat menyimpan berbagai informasi dan menjalankan berbagai perhitungan sesuai dengan kode yang telah ditentukan. Pengguna dapat berinteraksi dengan kontrak pintar melalui transaksi, yang juga bisa memicu eksekusi kontrak pintar lainnya. Transaksi ini dapat mengubah status dalam rantai blok, mengirim koin dari satu kontrak pintar ke kontrak pintar lainnya, atau dari satu akun ke akun lainnya.

Rantai blok yang paling populer untuk menjalankan kontrak pintar adalah Ethereum. di Ethereum, kontrak pintar biasanya ditulis dalam bahasa pemrograman Solidity, yang bersifat *Turing-Complete*, lalu dikompilasi menjadi *bytecode* untuk dieksekusi oleh *Ethereum Virtual Machine* (EVM). Namun, karena adanya masalah *halting problem* dan risiko keamanan lainnya, beberapa bahasa pemrograman seperti Vyper sengaja menghindari sifat Turing-complete untuk meningkatkan keamanan. Beberapa bahasa pemrograman kontrak pintar lainnya yang tidak memiliki fitur *Turing-complete* adalah Simplicity, Scilla, Ivy, dan Bitcoin Script.

Pada tahun 2020, penelitian yang menggunakan ekspresi reguler menunjukkan bahwa hanya 35,3% dari 53.757 kontrak pintar Ethereum yang menggunakan rekursi dan perulangan, dua fitur yang berkaitan dengan *halting problem*.

Beberapa bahasa pemrograman telah dirancang untuk memungkinkan verifikasi formal, yaitu metode untuk memastikan keamanan dan keandalan kode. Bahasa-bahasa tersebut meliputi Bamboo, IELE, Simplicity, Michelson (dapat diverifikkasi dengan Coq), Liquidity (dapat dikompilasi menjadi Michelson), Scilla, DAML, dan Pact.

Proses dalam rantai blok umumnya bersifat deterministik untuk memastikan toleransi terhadap kesalahan Byzantine. Namun, dalam penerapan nyata seperti lotere dan kasino, diperlukan elemen keacakan yang aman. Teknologi rantai blok sebenarnya dapat mengurangi biaya dalam penyelenggaraan lotere, sehingga menguntungkan para peserta.

Keacakan dalam rantai blok dapat dihasilkan melalui berbagai cara, seperti menggunakan *hash blok* atau cap waktu, oracle, skema komitmen, kontrak pintar khusus seperti RANDAO dan Quanta, serta urutan dari keseimbangan Nash dan strategi campuran.

## Referensi