Apa yang Dimaksud dengan Smart Contract?

Bagikan
Copied to clipboard!
Apa yang Dimaksud dengan Smart Contract?

Nick Szabo pertama kali mendiskripsikan smart contract pada tahun 1990an. Pada waktu itu, dia mendefinisikan sebuah smart contract sebagai alat yang memformalisasi dan mengamankan jaringan komputer dengan cara mengkombinasikan protokol-protokol dengan antarmuka pengguna. Szabo mendiskusikan potensi penggunaan smart contract dalam berbagai bidang yang melibatkan persetujuan kontraktual - seperti sistem kredit, proses pembayaran, dan manajemen hak cipta konten.

Dalam dunia mata uang kripto, kita dapat mendefinisikan smart contract sebagai sebuah aplikasi atau program yang berjalan pada blockchain. Secara khusus, smart contract bekerja sebagai persetujuan digital yang diikat oleh aturan-aturan tertentu. Aturan-aturan ini sudah ditentukan sebelumnya oleh kode komputer, yang direplikasi dan dieksekusi oleh semua node jaringan.

Pada intinya, smart contract blockchain memungkinkan terciptanya protokol yang tidak membutuhkan kepercayaan. Artinya bahwa dua pihak dapat membuat komitmen via blockchain tanpa harus mengetahui atau mempercayai satu sama lain. Mereka dapat memastikan bahwa jika persyaratan-persyaratan tidak dipenuhi, kontrak tidak akan dieksekusi. Selain itu, kegunaan smart contract dapat menghapus kebutuhan akan pihak perantara, menghilangkan biaya operasional secara signifikan.

Walaupun Bitcoin sudah mendukung selama bertahun-tahun, smart contract menjadi populer justru oleh pencipta dan salah satu pendiri Ethereum, Vitalik Buterin. Perlu dicatat, bahwa setiap blockchain dapat menyajikan metode 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 Kunci

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. Juga, hasilnya 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 disesuaikan. Sebelum penyebaran, smart contract dapat dikodekan dengan berbagai cara. Jadi, smart contract dapat digunakan untuk membuat banyak jenis aplikasi terdesentralisasi (DApps). Ini terkait dengan fakta bahwa Ethereum adalah blockchain Turing complete.

Tidak butuh kepercayaan. 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?

Tidak mungkin untuk menambahkan fungsi baru ke ksmart contract Ethereum setelah digunakan. Namun, jika penciptanya menyertakan fungsi yang disebut SELFDESTRUCT dalam kode, mereka dapat "menghapus" smart contract di masa mendatang - dan menggantinya dengan yang baru. Sebaliknya, jika fungsi tersebut tidak termasuk dalam kode sebelumnya, maka mereka tidak akan dapat menghapusnya.

Khususnya, apa yang disebut smart contract yang dapat diupgrade memungkinkan pengembang memiliki lebih banyak fleksibilitas terhadap sifat kekekalan kontrak. Ada banyak cara untuk membuat smart contract yang dapat diupgrade, 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 pada khususnya sangat berguna pada keadaan yang melibatkan pengiriman atau penukaran aset di antara dua pihak atau lebih.

Dengan kata lain, smart contract dapat dirancang untuk berbagai macam penggunaan. Beberapa contoh termasuk penciptaan aset yang ditokenkan, sistem pemungutan suara, dompet kripto, bursa terdesentralisasi, game, dan aplikasi ponsel. Smart contract juga dapat digunakan bersama dengan solusi blockchain lain yang menangani bidang kesehatanamalrantai pasokanpemerintahan, dan keuangan terdesentralisasi/decentralized finance (DeFi).


ERC-20

Token yang diterbitkan pada blockchain Ethereum mengikuti standar yang dikenal dengan ERC-20. Standar ini menggambarkan fungsi-fungsi inti dari semua token yang didasarkan pada Ethereum. Dengan demikian, aset-aset digital ini biasanya dikenal dengan token ERC-20, dan aset-aset ini mewakili sebagian besar mata uang kripto yang ada saat ini.

Banyak perusahaan dan startup blockchain menggunakan smart contract untuk menerbitkan token digital mereka di jaringan Ethereum. Setelah penerbitan, mayoritas perusahaan-perusahaan ini mendistribusikan token ERC-20 mereka melalui program Initial Coin Offering (ICO). Dalam kebanyakan kasus, penggunaan smart contract memungkinkan pertukaran dana dan distribusi token dengan cara yang efisien dan tidak membutuhkan kepercayaan (trustless).


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 berpendapat bahwa sistem terpusat dapat memberikan sebagian besar solusi dan fungsionalitas yang ditawarkan oleh smart contract. Perbedaan utama adalah bahwa smart contract berjalan pada jaringan P2P terdistribusi, bukan server terpusat. Dan karena didasarkan pada sistem blockchain, smart contract cenderung tidak berubah atau sangat sulit untuk diubah.

Sifat tidak dapat diubah (abadi) merupakan hal yang baik di keadaan tertentu, tetapi juga dapat menjadi hal yang buruk di keadaan lainnya. Sebagai contoh, ketika Organisasi Otonomi Terdesentralisasi / Decentralized Autonomous Organization (DAO) yang disebut dengan "The DAO" diretas pada tahun 2016, jutaan ether (ETH) dicuri karena lemahnya kode smart contract mereka.

Karena smart contract mereka tidak dapat diubah, para pengembang tidak dapat memperbaiki kode. Pada akhirnya ini membawa pada hard fork, melahirkan chain Ethereum yang kedua. Sederhananya, satu chain "membalikkan" retasan dan mengembalikan dana ke pemilik yang sah (ini adalah bagian dari blockchain Ethereum saat ini). Chain lainnya memutuskan untuk tidak mencampuri peretasan, menyatakan bahwa hal-hal yang terjadi pada blockchain tidak boleh diubah (chain ini sekarang disebut sebagai 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, tapi ini kemungkinan tidak akan mejadi sebuah norma.

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. Keadaan di mana pengguna akhir mungkin tidak berinteraksi langsung dengan smart contract, cenderung memberi peluang dan ruang pada berbagai aplikasi di masa depan, mulai dari layanan keuangan hingga manajemen rantai pasokan.

Bersama-sama, smart contract dan blockchain berpotensi terlibat dalam hampir semua bidang masyarakat kita. Tetapi hanya waktu yang akan menjelaskan apakah teknologi terobosan ini akan berhasil mengatasi banyak hambatan untuk adopsi skala besar.

Loading