Apa Itu Smart Contract?
Beranda
Artikel
Apa Itu Smart Contract?

Apa Itu Smart Contract?

Tingkat Menengah
Diterbitkan Sep 16, 2019Diperbarui Jun 9, 2023
9m

Pendahuluan

Nick Szabo menjelaskan smart contract untuk pertama kali pada tahun 1990-an. Pada saat itu, ia mendefinisikan smart contract sebagai alat yang memformalkan dan mengamankan jaringan komputer melalui penggabungan protokol dengan antarmuka pengguna.

Szabo membahas potensi penggunaan smart contract dalam berbagai bidang yang mencakup perjanjian kontraktual, seperti sistem kredit, pemrosesan pembayaran, dan manajemen hak konten.

Dalam dunia mata uang kripto, kita dapat mendefinisikan smart contract sebagai aplikasi atau program yang berjalan di sebuah blockchain. Biasanya, smart contract berfungsi sebagai perjanjian digital yang dijalankan oleh serangkaian aturan tertentu. Aturan ini ditentukan oleh kode komputer yang direplikasi dan dieksekusi oleh semua node jaringan.

Smart contract blockchain memungkinkan pembuatan protokol trustless (tanpa trust). Artinya, dua pihak dapat melakukan komitmen melalui blockchain tanpa harus mengetahui atau memercayai satu sama lain. Mereka dapat merasa yakin bahwa jika persyaratan tidak terpenuhi, maka kontrak tidak akan dieksekusi. Selain itu, penggunaan smart contract dapat menghilangkan keperluan akan pihak penengah, sehingga mengurangi biaya operasional secara signifikan.

Meskipun protokol Bitcoin telah mendukung smart contract selama beberapa tahun, smart contract dipopulerkan oleh kreator dan co-founder Ethereum, yaitu Vitalik Buterin. Namun, perlu diperhatikan bahwa setiap blockchain dapat memakai metode yang berbeda dalam menerapkan smart contract. 

Artikel ini akan berfokus pada smart contract yang dijalankan pada Mesin Virtual Ethereum / Ethereum Virtual Machine (EVM), yang juga merupakan bagian penting pada blockchain Ethereum.


Bagaimana cara kerjanya?

Dalam istilah yang sederhana, smart contract berfungsi sebagai program deterministik. program ini menyelesaikan tugas tertentu ketika dan jika kondisi tertentu terpenuhi. Dengan demikian, sistem smart contract sering kali mengikuti pernyataan "jika… maka…". Namun terlepas dari terminologi yang populer, smart contract bukanlah kontrak hukum, juga tidak cerdas(smart). Hanya sepotong kode yang berjalan pada sistem terdistribusi (blockchain).

Di jaringan Ethereum, smart contract bertanggung jawab untuk mengeksekusi dan mengelola operasi blockchain yang terjadi ketika pengguna (alamat) berinteraksi satu sama lain. Alamat apa pun yang bukan merupakan smart contract dikategorikan sebagai akun milik eksternal (externally owned account/EOA). Dengan demikian, smart contract dikendalikan oleh kode komputer, dan EOA dikendalikan oleh pengguna.

Pada dasarnya, smart contract Ethereum dibuat dari kode kontrak dan dua kunci publik (public key). Kunci publik pertama adalah yang disediakan oleh pencipta kontrak. Kunci lainnya mewakili kontrak itu sendiri, bertindak sebagai pengidentifikasi digital yang unik untuk setiap smart contract.

Penempatan setiap smart contract dibuat melalui transaksi blockchain, dan hanya dapat diaktivasi dengan EOA (atau smart contract lainnya). Namun, pemicu pertama selalu disebabkan oleh EOA (pengguna).


Fitur-fitur utama

Smart contract Ethereum sering kali menunjukkan karakteristik berikut:

Terdistribusi. Smart contract direplikasi dan didistribusikan di semua node jaringan Ethereum. Ini adalah salah satu perbedaan utama dari solusi lain yang didasarkan pada server terpusat.

Deterministik. Smart contract hanya melakukan tindakan yang dirancang untuknya, jika semua persyaratan yang diberikan terpenuhi. Hasilnya juga akan selalu sama, tidak peduli siapa yang mengeksekusinya.

Otonom. Smart contract dapat mengotomatisasi semua jenis tugas, bekerja seperti program yang dijalankan sendiri. Namun dalam kebanyakan kasus, jika tidak dipicu, smart contract akan bersifat tidak aktif atau "dormant" dan tidak akan melakukan tindakan apa pun.

Abadi. Tidak dapat diubah setelah digunakan, smart contract hanya dapat "dihapus" jika fungsi tertentu sebelumnya diterapkan. Dengan demikian, kita dapat mengatakan bahwa smart contract dapat memberikan kode yang tidak dapat diubah (tamper-proof).

Dapat dikustomisasi. Sebelum diterapkan, smart contract dapat dikodekan dalam berbagai cara. Oleh karena itu, smart contract dapat digunakan untuk membuat berbagai jenis aplikasi terdesentralisasi (DApp). Hal ini berkaitan dengan fakta bahwa Ethereum merupakan blockchain dengan karakteristik Turing Complete.

Trustless. Dua atau lebih pihak dapat berinteraksi melalui smart contract tanpa mengetahui atau mempercayai satu sama lain. Selain itu, teknologi blockchain memastikan bahwa data benar-benar akurat.

Transparan. Karena smart contract didasarkan pada blockchain publik, kode sumbernya tidak hanya abadi tetapi juga dapat dilihat oleh siapa pun.


Apakah saya dapat mengubah atau menghapus smart contract?

Mustahil untuk menambahkan fungsi baru ke sebuah smart contract Ethereum setelah diterapkan. Namun, jika kreatornya menyertakan fungsi yang disebut SELFDESTRUCT dalam kodenya, ia dapat "menghapus" smart contract tersebut di waktu mendatang dan menggantinya dengan yang baru. Sebaliknya, jika fungsi tersebut tidak disertakan dalam kodenya terlebih dahulu, ia tidak akan dapat menghapusnya.

Khususnya, smart contract yang dapat ditingkatkan memungkinkan pengembang memiliki lebih banyak fleksibilitas terhadap sifat kekekalan kontrak. Ada banyak cara untuk membuat smart contract yang dapat ditingkatkan, dengan berbagai tingkat kompleksitas.

Mengambil contoh yang sederhana, mari kita bayangkan bahwa smart contract dibagi menjadi beberapa kontrak kecil. Beberapa di antaranya dirancang agar tetap abadi, sementara yang lain memiliki fungsi 'hapus' yang aktif. Ini berarti bahwa bagian dari kode (smart contract) dapat dihapus dan diganti, sementara fungsi lainnya tetap utuh.


Manfaat dan penggunaan

Sebagai kode yang dapat diprogram, smart contract sangat mudah untuk disesuaikan dan dapat didesain dengan cara yang berbeda-beda, menawarkan banyak jenis layanan dan pemecahan masalah.

Sebagai program yang terdesentralisasi dan mandiri, smart contract dapat memberikan peningkatan transparansi dan mengurangi biaya operasional. Tergantung pada implementasinya, smart contract juga dapat meningkatkan efisiensi dan mengurangi biaya birokrasi.

Smart contract khususnya sangat berguna pada keadaan yang melibatkan pengiriman atau pertukaran aset di antara dua pihak atau lebih.

Dengan kata lain, smart contract dapat dirancang untuk berbagai macam kegunaan. Beberapa contohnya adalah pembuatan aset tokenisasi, sistem voting, dompet kripto, bursa terdesentralisasi, game, dan aplikasi seluler. Smart contract juga dapat diterapkan beserta dengan solusi blockchain lainnya yang menangani bidang kesehatan, amal, rantai pasokan, tata kelola, dan keuangan terdesentralisasi (DeFi).


ERC-20

Token yang diterbitkan pada blockchain Ethereum mengikuti standar yang disebut ERC-20. Standar ini menjelaskan fungsi inti dari semua token berbasis Ethereum. Oleh karena itu, aset digital ini sering kali disebut token ERC-20. Token ini mewakili sebagian besar mata uang kripto yang ada.
Kebanyakan perusahaan dan startup blockchain menerapkan smart contract untuk menerbitkan token digital mereka di jaringan Ethereum. Setelah penerbitan, sebagian besar dari perusahaan ini mendistribusikan token ERC-20 mereka melalui acara Penawaran Koin Perdana (ICO). Dalam sebagian besar kasus, penggunaan smart contract memungkinkan penukaran dan distribusi token secara trustless dan efisien.


Keterbatasan

Smart contract dibuat dengan kode komputer yang ditulis oleh manusia. Ini membawa risiko yang tinggi karena kode sangat rentan terhadap bug. Idealnya, smart contract harus ditulis dan digunakan oleh programmer yang berpengalaman, terutama ketika melibatkan informasi sensitif atau uang dalam jumlah besar.

Selain itu, beberapa orang berpendapat bahwa sistem tersentralisasi dapat menyediakan sebagian besar solusi dan fungsionalitas yang ditawarkan oleh smart contract. Perbedaan utamanya adalah smart contract berjalan di jaringan P2P terdesentralisasi, bukan server tersentralisasi. Dan karena didasarkan pada sistem blockchain, smart contract cenderung tidak dapat diubah atau sangat sulit untuk diubah.

Menjadi tidak dapat diubah akan menguntungkan dalam situasi tertentu, tetapi dapat juga merugikan dalam situasi lainnya. Misalnya, ketika Organisasi Otonom Terdesentralisasi (DAO) yang disebut "The DAO" diretas pada tahun 2016, jutaan ether (ETH) dicuri karena kelemahan dalam kode smart contract mereka.

Karena smart contract tidak dapat diubah, para pengembang tidak dapat memperbaiki kodenya. Pada akhirnya, hal ini berujung pada hard fork yang menghasilkan chain Ethereum kedua. Sederhananya, chain yang satu "membalikkan" peretasan tersebut dan mengembalikan dana ke pemiliknya yang sah (hal ini merupakan bagian dari blockchain Ethereum saat ini). Chain yang lain memutuskan untuk tidak ikut campur dengan peretasan tersebut dan menyatakan bahwa segala sesuatu yang terjadi pada blockchain tidak boleh berubah (chain ini kini disebut Ethereum Classic).

Sangat penting untuk mengetahui bahwa masalah tidak datang dari blockchain Ethereum, melainkan dari implementasi smart contract yang salah.

Batasan lain yang dihadapi smart contract adalah terkait dengan status hukumnya yang tidak pasti. Bukan hanya karena berada di wilayah abu-abu di sebagian besar negara, tetapi juga karena smart contract tidak sesuai dengan kerangka hukum saat ini.

Sebagai contoh, banyak kontrak mengharuskan kedua belah pihak untuk diidentifikasi dengan benar dan berusia di atas 18 tahun. Nama samaran yang disediakan oleh teknologi blockchain, dikombinasikan dengan kurangnya perantara, tidak memenuhi persyaratan tersebut. Walaupun ada solusi potensial untuk ini, penegakan hukum dari smart contract adalah tantangan nyata yang harus dihadapi - terutama ketika menyangkut jaringan tanpa batas yang terdistribusi.


Kritik

Beberapa penggemar blockchain melihat smart contract sebagai solusi yang akan segera menggantikan dan mengotomatisasi sebagian besar sistem komersial dan birokrasi di dunia. Meskipun ini adalah sesuatu yang mungkin terjadi, ini kemungkinan tidak akan mejadi sebuah standar umum.

Smart contract tentunya adalah sebuah teknologi yang sangat menarik. Tetapi, dengan sifat terdistribusi, deterministik, transparan, dan agak tidak berubah dapat membuatnya kurang menarik dalam beberapa keadaan.

Pada dasarnya, kritik bersandar pada kenyataan bahwa smart contract bukanlah solusi yang cocok untuk banyak masalah di dunia nyata. Bahkan, beberapa organisasi lebih baik menggunakan alternatif berbasis server konvensional. 

Jika dibandingkan dengan smart contract, server terpusat lebih mudah dan lebih murah untuk dipelihara, dan cenderung menawarkan efisiensi yang lebih tinggi dalam hal kecepatan dan komunikasi lintas jaringan (interoperabilitas).


Penutup

Tidak ada keraguan bahwa smart contract memberikan dampak besar dalam dunia mata uang kripto, dengan cara merevolusi lingkungan blockchain. Meskipun pengguna akhir mungkin tidak berinteraksi langsung dengan smart contract, teknologi ini berpotensi memberi peluang dan ruang pada berbagai aplikasi di masa depan, mulai dari layanan keuangan hingga manajemen rantai pasokan.

Jika digabungkan, smart contract dan blockchain memiliki potensi untuk mendisrupsi semua aspek dalam kehidupan masyarakat. Hanya waktu yang dapat membuktikan apakah teknologi terobosan ini akan berhasil mengatasi banyaknya hambatan untuk adopsi skala besar.