Smart Contract adalah sepotong kode yang dapat dieksekusi secara otomatis dan dengan cara deterministik. Kode Smart Contract biasanya disimpan dan dijalankan di blockchain agar tidak dapat dipercaya dan aman. Smart Contract juga memiliki kemampuan untuk menerima, menyimpan dan mengirim dana dan bahkan memanggil Smart Contract lainnya. Mereka mengikuti semantik jika-maka yang membuatnya cukup mudah untuk diprogram.
Smart Contract bertujuan menghilangkan faktor manusia dari pengambilan keputusan. Faktor manusia sering kali terbukti sebagai elemen standar yang paling rentan terhadap kesalahan dan tidak dapat diandalkan, kontrak tradisional.
Mesin penjual otomatis sering kali menjadi analogi yang baik untuk Smart Contract karena memiliki beberapa kesamaan. Mesin penjual otomatis diprogram sedemikian rupa sehingga memungkinkan tindakan tertentu dan transisi status berdasarkan masukan. Ini juga bekerja dengan cara yang sepenuhnya deterministik. Misalnya, jika Anda ingin membeli sekaleng coke seharga $ 2 dan Anda hanya memiliki $ 1, berapa kali pun Anda mencobanya, Anda tidak akan bisa mendapatkan minuman tersebut. Di sisi lain, jika Anda memasukkan $ 3, mesin akan memberi Anda sekaleng coke dan uang kembalian yang sesuai. Bahkan perubahan yang diberikan dipilih dengan cara yang telah ditentukan dan diprogram berdasarkan koin mana yang tersedia dan koin mana yang ingin disingkirkan oleh mesin terlebih dahulu.
Smart Contract hanya dapat mengandalkan informasi yang tersedia di blockchain, misalnya, jika Anda memberi saya 10 token A, saya akan memberi Anda 10 token B (dengan asumsi kedua token tersedia di blockchain yang sama) atau dapat bergantung pada eksternal sumber data, misalnya tentang harga Ethereum atau S & P500. Contoh terakhir membuat Smart Contract lebih sulit karena mereka harus mempercayai data dunia nyata. Kepercayaan yang dibutuhkan dapat diminimalkan dengan menggunakan layanan oracle, tetapi layanan oracle pun harus dipercaya. Sudah ada beberapa proyek yang dengan menggunakan insentif tertentu membuat oracle lebih mungkin untuk memberikan data yang benar. Chainlink adalah proyek yang menonjol dalam kategori ini.
Ethereum adalah contoh bagus dari blockchain yang mendukung Smart Contract dan memungkinkan programmer untuk mengimplementasikan Smart Contract mereka sendiri. Smart Contract dapat ditulis dalam bahasa pemrograman yang disebut Solidity yang dibuat khusus untuk tujuan itu. Di Ethereum, semua Smart Contract yang diterapkan tidak dapat diubah. Ini berarti bahwa setelah diterapkan, mereka tidak dapat dimodifikasi yang menimbulkan risiko tertentu yang akan kita bahas nanti. Smart Contract di Ethereum juga terdesentralisasi yang berarti tidak ada satu mesin pun yang mengendalikan kontrak. Faktanya, semua node jaringan Ethereum menyimpan kontrak yang sama dengan keadaan yang persis sama.
Meskipun Ethereum saat ini adalah platform Smart Contract serba guna yang paling populer, ini bukan satu-satunya dan memiliki beberapa pesaing. Beberapa di antaranya adalah Cardano, Tezos, EOS, Tron, tetapi tidak semuanya memiliki karakteristik yang sama.
Istilah Smart Contract diciptakan oleh kriptografer terkenal Nick Szabo pada awal 1990-an. Namanya meskipun bukan yang paling jelas macet dan biasanya digunakan, terutama di industri blockchain.
Smart Contract vs kontrak tradisional
Untuk melihat manfaat Smart Contract, mari kita bandingkan Smart Contract hipotetis dengan padanannya di ruang tradisional.
Misalkan kita ingin menulis kontrak berikut.
Jika Alice mengirim X sejumlah token A dan Bob mengirimkan jumlah yang sama dari token B, token tersebut akan ditukar dan Alice akan menerima token Bob dan Bob akan menerima token Alice.
Dalam dunia non-smart contract, salah satu cara untuk mencapainya tanpa Alice harus mempercayai Bob dan Bob harus mempercayai Alice adalah dengan membuat kontrak escrow dengan pihak ketiga. Pihak ketiga akan mengumpulkan token A dari Alice, menunggu jumlah yang sama dari token B dari Bob dan mengirim Alice dan Bob masing-masing, token yang ditukar. Pendekatan ini sudah menunjukkan beberapa masalah yang mungkin dihadapi Alice dan Bob.
Perantara yang tepercaya. Tidak ada jaminan bahwa pihak ketiga tidak akan kabur (atau kalah) dengan token setelah menerima dana dari Alice dan Bob. Kami harus mengandalkan reputasi perantara dan potensi asuransi. Pendekatan ini tidak deterministik dan jika terjadi kesalahan mungkin memiliki keluaran yang berbeda tergantung pada beberapa faktor termasuk yurisdiksi di mana kasus potensial akan diselesaikan. Di sisi lain, Smart Contract akan bekerja dengan cara yang sepenuhnya otomatis dan deterministik untuk memastikan bahwa kedua belah pihak menerima dana ketika mereka memenuhi kriteria awal penyetoran koin. Smart Contract juga dapat menyimpan dana di dalam dirinya sendiri yang tidak mungkin dicapai di dunia tradisional.
Kecepatan. Bergantung pada perantara, Alice dan Bob mungkin harus menunggu hingga beberapa hari atau minggu untuk menyelesaikan transisi token. Bagaimana jika mereka ingin menukar token pada hari Minggu? Apakah perantara bahkan beroperasi? Dengan Smart Contract, masalah semacam ini hilang dan kontrak dapat dipenuhi beberapa detik setelah kriteria awal terpenuhi.
Biaya. Kontrak tradisional tidak hanya mahal karena perantara yang harus mendapat untung, ada juga risiko besar biaya tersembunyi untuk hal-hal seperti arbitrase dan penegakan hukum jika ada masalah dengan kontrak.
Dapat digunakan kembali. Smart Contract yang sama yang bertanggung jawab untuk menukar token Alice dan Bob dapat digunakan oleh siapa pun yang ingin menukar token. Dalam dunia tradisional, mereka semua harus menandatangani kontrak terpisah dan membayar biaya masing-masing kepada perantara.
Penipuan. Ini adalah biaya tersembunyi lainnya kali ini untuk perantara itu sendiri. Perantara harus memastikan bahwa token Alice dan Bob sah sebelum menginisialisasi swap. Penipuan sangat umum dalam keuangan tradisional dan sebagian besar perusahaan memiliki tim besar yang bekerja murni untuk mencegah penipuan. Dengan Smart Contract, token dapat diverifikasi di blockchain dan dengan tanda tangan digital, jelas langsung jika Alice dan Bob memenuhi syarat untuk membelanjakan token mereka.
Apa kasus penggunaan?
Smart Contract memiliki semakin banyak kasus penggunaan mulai dari pembayaran dan keuangan terdesentralisasi hingga rantai pasokan dan crowdfunding. Smart Contract juga merupakan blok bangunan dasar untuk aplikasi terdesentralisasi atau Dapps. Mari kita bahas tentang beberapa contoh Smart Contract.
Keuangan terdesentralisasi atau DeFi adalah salah satu industri baru yang sangat bergantung pada Smart Contract. Beberapa hal yang telah dibangun di ruang ini antara lain.
– Koin stabil terdesentralisasi
Dengan penggunaan smart contract yang cerdik dan insentif tertentu, kita dapat membuat koin stabil yang dipatok ke Dolar AS tanpa harus menyimpan dolar di dunia nyata. MakerDAO adalah salah satu perusahaan yang memungkinkan.
– Penyediaan likuiditas otomatis
Seperangkat Smart Contract dapat memungkinkan pengguna untuk menyediakan likuiditas dan menukar token dengan cara yang sepenuhnya tanpa izin dan terdesentralisasi. Uniswap atau Kyber Network adalah contoh bagus dari protokol semacam itu.
Kasus penggunaan lainnya adalah memberikan lebih banyak transparansi ke rantai pasokan tempat protokol seperti OrginTrail ikut bermain.
Dalam hal crowdfunding, Anda dapat membayangkan kontrak yang membuka dana segera setelah tujuan tertentu dipenuhi dan diverifikasi oleh komunitas.
Ini tidak berhenti sampai di sini. Waktunya untuk contoh yang lebih futuristik.
Bagaimana jika Smart Contract dapat memfasilitasi hal-hal seperti berbagi tumpangan, penyewaan apartemen, dan banyak lagi?
Bagaimana dengan amal? Anda dapat membayangkan dana yang sepenuhnya otomatis yang akan mengirim uang langsung ke orang-orang yang paling membutuhkannya tanpa perantara. Misalnya, dana dapat menentukan bahwa wilayah tertentu dilanda badai dan mengalihkan dana ke bagian dunia tersebut. Untuk saat ini, kedengarannya sangat tidak mungkin, tetapi semua elemen yang diperlukan untuk membuat sesuatu seperti ini terjadi sedang dibangun saat kita berbicara.
Kasus penggunaan untuk Smart Contract hampir tidak terbatas, tetapi sebelum kami dapat mencapai semua itu, kami harus mengatasi beberapa masalah.
Apa resikonya?
Salah satu risiko utama terkait Smart Contract adalah sesuatu yang menghantui setiap perangkat lunak lainnya adalah
– BUG. atau kesalahan Kode.
Contoh terbaik dari bug dalam Smart Contract adalah peretasan DAO yang mengakibatkan hilangnya Ether senilai jutaan dolar karena penyerang dapat menguras dana dari Smart Contract. Ini menyebabkan Ethereum bekerja keras dan menciptakan banyak ketidaksepakatan di komunitas Ethereum.
Sejak DAO hack, komunitas Ethereum menghasilkan banyak tindakan keamanan ekstra. Saat ini hampir semua Smart Contract populer telah melalui audit keamanan, seringkali oleh banyak tim. Selain itu, terdapat kecenderungan penggunaan metode verifikasi formal untuk membuktikan bahwa kontrak tertentu akan selalu berjalan sesuai dengan yang diharapkan.
– Perubahan protokol.
Meskipun Smart Contract tidak memiliki bug dan telah diaudit, kami tetap tidak dapat menjamin bahwa perubahan pada tingkat platform tidak akan menimbulkan masalah. Kita dapat membayangkan situasi di mana peningkatan ke Ethereum itu sendiri menyebabkan Smart Contract tertentu mulai berperilaku berbeda dari yang diharapkan sebelumnya.
Masalah dunia nyata yang tidak dapat dikomunikasikan dengan mudah oleh layanan oracle.
Memang benar bahwa layanan oracle dapat memberikan cara yang andal untuk mendapatkan informasi dari dunia nyata ke dalam blockchain. Misalnya, seperti yang kami sebutkan sebelumnya, mereka dapat memberikan harga Ethereum atau S & P500. Sekarang bayangkan Anda menyewa apartemen atau mobil dan membuat kerusakan yang tidak disengaja. Bagaimana Smart Contract tanpa campur tangan manusia bisa mengetahuinya? Ada banyak contoh seperti itu ketika sulit membayangkan bagaimana sesuatu yang tidak terduga yang terjadi di dunia nyata dapat terlihat oleh Smart Contract.
Selain semua hal di atas, ada juga risiko lain yang terlibat dalam hal-hal seperti regulasi atau pajak, tetapi saya yakin semuanya pada akhirnya dapat diselesaikan.
Dalam bahasa indonesia Smart Contract diartikan Kontrak Pintar.