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.
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.
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).
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.
ERC-20
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.
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.