Kontrak Pintar untuk Rakyat

This page is machine-translated.
Alex Chepurnoy

19 Oktober 2018

Banyak berita terkait blockchain saat ini yang mengatakan kepada kita bahwa sebuah bank X atau perusahaan Y akan menggunakan "blockchain" untuk "mengurangi biaya". Pada dasarnya, ini berarti bahwa hanya sekadar kata kunci lain yang dianggap oleh para bankir besar sebagai alat lain untuk mengekstrak nilai dari mana saja dengan cara yang lebih efisien, dan juga untuk menghemat pemotongan posisi pekerjaan.

Sementara saya menghindari untuk mengatakan apa pun tentang "visi Satoshi" (tidak ada yang lebih dari spekulasi yang bisa digali di sana setelah pengasingannya), pandangan luas yang saya saksikan di tahun-tahun awal di sekitar pengguna forum online adalah bahwa cryptocurrency harus menyediakan alat untuk memperkaya orang biasa di balik usaha kecil mereka yang tidak banyak di atas membuat ends meet, bukan modal keuangan besar yang tidak personal. Alat dari cryptocurrency di mata visi komunitas asli yang luas harus memungkinkan orang untuk melakukan aktivitas ekonomi tanpa tergantung pada ukuran bisnis, lokasi geografis, suku bunga yang ditetapkan oleh pemain besar, dan sebagainya. Alat tersebut harus memungkinkan orang untuk melakukan kontrak (bukan kontrak kertas, tetapi kontrak digital, yang menegakkan diri, dan kontrak pintar yang wajar) tanpa tergantung pada perbedaan dalam yurisdiksi, tradisi, praktik bisnis yang diikuti, dll.

Saya berharap Ergo akan berguna di sini. Ribuan koperasi kecil dan pengusaha individu lebih penting untuk pertumbuhan kekayaan yang sehat dan berkelanjutan di seluruh dunia daripada beberapa perusahaan yang menyembunyikan keuntungan di surga offshore.

Sebagai contoh, mari kita pertimbangkan sebuah federasi koperasi (seperti Radical Routes) yang ingin memberikan bantuan keuangan kepada seorang pengusaha ribuan kilometer jauhnya (katakanlah, di Rojava).

Kita perlu mengasumsikan beberapa detail sekarang. Pertama-tama, anggaplah ada empat koperasi dalam jaringan. Mereka secara kolektif mengunci 10,000 Ergs (dalam bagian yang sama, jadi 2,500 Ergs masing-masing) dalam sebuah kontrak, yang mengatakan sebagai berikut:

  1. Koperasi terkait dengan kunci publik pubkeyA, pubkeyB, pubkeyC, pubkeyD. Pengusaha terkait dengan kunci publik businessKey.
  2. Koperasi mengunci uang dalam koin yang dilindungi oleh kontrak pendanaan, kemudian melakukan uji tuntas dan memberikan suara apakah akan mendanai pengusaha atau tidak. Semua dana kontrak (10,000 Ergs) akan diberikan kepada pengusaha jika 3 suara dari 4 mendukung itu. Secara teknis, pemungutan suara dilakukan melalui tanda tangan ambang 3-dari-4. Jika pemungutan suara tidak berhasil (3 dari 4 tanda tangan tidak terkumpul) sebelum nomor blok 1,000, koperasi mana pun (sebenarnya, siapa pun) dapat mengajukan transaksi penarikan, yang mengembalikan 2,500 Ergs (setidaknya) kepada setiap koperasi. Selanjutnya, kontrak pendanaan juga akan disebut kontrak pemungutan suara.
  3. Investasi dapat digunakan untuk tiga tujuan, dengan beberapa batasan ketat. Yaitu, pengusaha harus menghabiskan setidaknya 5,000 Ergs untuk peralatan, setidaknya 2,000 Ergs untuk pembangunan gedung yang diperlukan, dana lainnya dapat dibelanjakan oleh pengusaha secara sewenang-wenang.
  4. Untuk memastikan bahwa uang peralatan akan dibelanjakan untuk peralatan, federasi koperasi menggunakan kunci publik dari penjual peralatan yang dikenal di area pengusaha. Misalnya, anggaplah ada penjual peralatan dengan kunci publik pubkeyTool1, pubkeyTool2, pubkeyTool3, pubkeyTool4 di area tersebut. Secara teknis, transfer diorganisir sebagai tanda tangan kolektif dari salah satu penjual peralatan (sehingga tanda tangan cincin dari cincin penjual peralatan DAN tanda tangan pengusaha)
  5. Demikian pula, anggaplah ada 3 pembangun di area yang diakui oleh federasi koperasi, terkait dengan kunci publik pubkeyConstr1, pubkeyConstr2, dan pubkeyConstr3.
  6. Mirip dengan kontrak pemungutan suara, jika kontrak peralatan dan konstruksi tidak ditandatangani bersama sebelum nomor blok 5000, koperasi federasi dapat menarik dana.

Ada berbagai cara untuk mendefinisikan kontrak di Ergo. Sebuah skrip dalam bahasa tingkat rendah, ErgoTree, menggambarkan kondisi logis (tunggal) tentang apakah sebuah koin dapat dibelanjakan sesuai dengan itu, dan juga bukti pengeluaran yang diberikan oleh transaksi pengeluaran. Secara internal, kondisi tersebut direpresentasikan sebagai pohon sintaksis bertipe sehingga namanya. Struktur ini memungkinkan kita untuk melakukan analisis biaya sebelumnya, dll. Bahasa tingkat tinggi yang disebut ErgoScript memungkinkan untuk memiliki deskripsi yang lebih tradisional dan dapat dibaca, menggunakan variabel dan memecah logika menjadi subrutin.

Mari kita mulai dengan kontrak utama yang didefinisikan dalam (1-3) di atas:

{
 val votingSuccess  = atLeast(3, Array(pubkeyA, pubkeyB, pubkeyC, pubkeyD))
 val properSpending = OUTPUTS(0).value >= 5000L &&
                      blake2b256(OUTPUTS(0).propositionBytes) == spendingContract1Hash &&
                      OUTPUTS(1).value >= 2000L &&
                      blake2b256(OUTPUTS(1).propositionBytes) == spendingContract2Hash

 val withdrawCondition = HEIGHT >= 1000L &&
                         OUTPUTS(0).value >= 2500L && OUTPUTS(0).propositionBytes == pubkeyA.propBytes &&
                         OUTPUTS(1).value >= 2500L && OUTPUTS(1).propositionBytes == pubkeyB.propBytes &&
                         OUTPUTS(2).value >= 2500L && OUTPUTS(2).propositionBytes == pubkeyC.propBytes &&
                         OUTPUTS(3).value >= 2500L && OUTPUTS(3).propositionBytes == pubkeyD.propBytes 

 (votingSuccess && properSpending) || withdrawCondition
}

Skrip ini dalam ErgoScript akan dikompilasi menjadi pohon sintaksis (yang akan ditulis ke dalam blockchain dalam bentuk terserial) dengan mengikatnya dengan nilai konkret untuk variabel (pubkeyA, pubkeyB, pubkeyC, pubkeyD, spendingContract1Hash, spendingContract2Hash). spendingContract1Hash adalah hash dari skrip pengeluaran peralatan (terserial) yang akan disediakan di bawah ini, spendingContract2Hash adalah hash dari skrip pengeluaran konstruksi.

Skrip pengeluaran peralatan adalah sebagai berikut:

{
 val spendingSuccess = (pubkeyTool1 || pubkeyTool2 || pubkeyTool3 || pubkeyTool4) && businessKey

 val withdrawCondition = HEIGHT > 5000L &&
                         OUTPUTS(0).value >= 1250L && OUTPUTS(0).propositionBytes == pubkeyA.propBytes &&
                         OUTPUTS(1).value >= 1250L && OUTPUTS(1).propositionBytes == pubkeyB.propBytes &&
                         OUTPUTS(2).value >= 1250L && OUTPUTS(2).propositionBytes == pubkeyC.propBytes &&
                         OUTPUTS(3).value >= 1250L && OUTPUTS(3).propositionBytes == pubkeyD.propBytes 

 spendingSuccess || withdrawCondition
}

Dan skrip konstruksi adalah:

{
 val spendingSuccess = (pubkeyConstr1 || pubkeyConstr2 || pubkeyConstr3) && businessKey

 val withdrawCondition = HEIGHT > 5000L &&
                         OUTPUTS(0).value >= 500L && OUTPUTS(0).propositionBytes == pubkeyA.propBytes &&
                         OUTPUTS(1).value >= 500L && OUTPUTS(1).propositionBytes == pubkeyB.propBytes &&
                         OUTPUTS(2).value >= 500L && OUTPUTS(2).propositionBytes == pubkeyC.propBytes &&
                         OUTPUTS(3).value >= 500L && OUTPUTS(3).propositionBytes == pubkeyD.propBytes 

 spendingSuccess || withdrawCondition
}

Sekarang anggaplah bahwa federasi koperasi telah membuat koin yang dilindungi oleh kontrak pemungutan suara. Di bawah ini adalah bagaimana pengusaha dapat menjalankan bisnisnya:

  1. Buat transaksi yang mengkonsumsi koin dan membuat setidaknya tiga koin, satu dengan kontrak pengeluaran peralatan, satu lagi dengan kontrak pengeluaran konstruksi, ketiga adalah membuat koin yang dilindungi oleh kunci publik pengusaha.
  2. Kirim transaksi ke koperasi, tunggu transaksi dengan input yang ditandatangani ambang diterbitkan di blockchain.
  3. Pertimbangkan kontrak dengan penjual peralatan, tanda tangani bersama transaksi pengeluaran.
  4. Pertimbangkan kontrak dengan pembangun, tanda tangani bersama transaksi pengeluaran.

Pengusaha dapat dengan mudah melarikan diri tanpa melakukan bisnis, tetapi tidak lebih dari 3,000 Ergs. Ini dapat diperbaiki, misalnya, uang ini dapat dibuat dapat dibelanjakan hanya setelah nomor blok 5,000, dan sebelum itu uang dapat ditarik oleh koperasi. Untuk pengeluaran peralatan dan konstruksi, pengusaha bekerja sama dengan beberapa bisnis, yang kemungkinan sudah memiliki reputasi. Dengan demikian, investor mengurangi risikonya.

Anda dapat menemukan kode dan contoh transaksi secara online. Harap dicatat bahwa kami memiliki lebih banyak contoh skema tanda tangan kompleks, kontrak multi-langkah (dengan jalur eksekusi yang muncul, seperti MAST di Bitcoin, tetapi dengan siklus yang diizinkan), orakel, crowdfunding, dan sebagainya. Silakan periksa repositori contoh kami.

Share post

Ergo Infrastructure DAO: Mendekentralisasi Tulang Punggung Ekosistem Ergo

Ergo Infrastructure DAO: Mendekentralisasi Tulang Punggung Ekosistem Ergo

Misi Ergo selalu berakar pada desentralisasi, tidak hanya di lapisan konsensus, tetapi di seluruh tumpukan.

Ergo Platform

13 Agustus 2025

Mew Finance: Alat DeFi yang Menyenangkan untuk Ekosistem Ergo

Mew Finance: Alat DeFi yang Menyenangkan untuk Ekosistem Ergo

Mew Finance adalah rangkaian aplikasi terdesentralisasi di Blockchain Ergo.

Ergo Platform

12 Agustus 2025

Lithos: Mendekentralisasi Penambangan dengan Kolam On-Chain

Lithos: Mendekentralisasi Penambangan dengan Kolam On-Chain

Lithos adalah protokol baru yang dirancang untuk merombak cara kerja kolam penambangan dengan memindahkannya ke on-chain, memberik.

Ergo Platform

24 Juli 2025

Sigma 6.0: Ergo yang Lebih Cerdas dan Fleksibel

Sigma 6.0: Ergo yang Lebih Cerdas dan Fleksibel

Sigma 6.0 adalah peningkatan besar yang diusulkan untuk blockchain Ergo.

Ergo Platform

23 Juli 2025

Membentuk Masa Depan Rosen: Panggilan Komunitas tentang Lima Proposal Kunci Perbendaharaan

Membentuk Masa Depan Rosen: Panggilan Komunitas tentang Lima Proposal Kunci Perbendaharaan

Pendiri bersama Rosen, Armeanio, telah mengajukan lima proposal baru ke Perbendaharaan Rosen.

Ergo Platform

9 Juli 2025

UTXO Diperluas Ergo dan Kebangkitan Kecerdasan Ekonomi Buatan

UTXO Diperluas Ergo dan Kebangkitan Kecerdasan Ekonomi Buatan

Visi Praktis untuk Agen Ekonomi Otonom Agen ekonomi otonom di blockchain Ergo melakukan pekerjaan berguna dalam ekonomi digital y.

Ergo Platform

12 Mei 2025

ErgoHACK X: Kecerdasan Buatan di Blockchain Ergo

ErgoHACK X: Kecerdasan Buatan di Blockchain Ergo

Merayakan Satu Dekade Inovasi Terdesentralisasi Bergabunglah dengan ulang tahun ke-10 ErgoHACK dan jadilah yang terdepan dalam rev.

Ergo Platform

10 April 2025