Ergo dan crowdfunding

This page is machine-translated.
Robert Wolf

6 September 2019

Apa itu Crowdfunding?

Crowdfunding adalah cara untuk mengumpulkan modal melalui upaya kolektif individu. Kampanye biasanya dimulai melalui internet dan memungkinkan proyek serta bisnis untuk didanai dengan mengumpulkan sejumlah kecil uang dari banyak orang.
Salah satu contoh paling terkenal dari startup crowdfunding yang sukses adalah Oculus Rift, sebuah headset realitas virtual. Perusahaan Oculus VR memulai kampanyenya pada tahun 2012 dan hanya dua tahun kemudian diakuisisi oleh Facebook seharga total $2 miliar. Selain startup biasa, ada juga banyak proyek blockchain yang mengikuti jalur crowdfunding, misalnya, Ethereum, Tron, dan EOS. Saat ini, banyak platform yang ada yang memungkinkan Anda untuk menerbitkan kampanye Anda. Beberapa yang lebih besar adalah Indiegogo, Kickstarter, dan Gofundme, hanya untuk menyebutkan beberapa.
Crowdfunding memiliki banyak manfaat: jangkauan yang luas, efisiensi, dan aspek pemasaran menjadi yang paling meyakinkan... Tapi untuk saat ini, mari kita beralih ke apa yang benar-benar penting!

Memperkenalkan Crowdfunding di Ergo

Beberapa hari yang lalu, pada 28 Agustus, pengembang inti Kushti menyatakan di (forum Ergo)[www.ergoforum.org] bahwa dia berhasil menulis dan menerapkan kode yang memungkinkan pengguna untuk memulai kampanye crowdfunding di atas blockchain Ergo (seperti yang disebutkan di halaman whitepaper 6. Kode ini bahkan bekerja dengan API dompet saat ini. Di sini adalah panduan cepat tentang cara mengatur dompet.
Dalam artikel ini, Anda akan belajar bagaimana melakukan hal itu: crowdfunding di atas Ergo! Ini juga membawa Anda melalui proposal kampanye pertama yang pernah ada, yaitu untuk mendanai pengembangan skrip crowdfunding post-EIP1.
Jika Anda ingin masuk ke semua detail, silakan baca bagian berikut, “Skrip”. Jika tidak, Anda dapat langsung melanjutkan membaca bagian “Cara Mendonasikan”, “Cara Mengumpulkan Donasi”, dan “Proposal Proyek Crowdfunding” di bawah ini.

Skrip

Skrip crowdfunding yang paling sederhana, menurut ErgoScript White Paper (halaman 6), adalah “sebuah skrip untuk situasi crowdfunding berikut: seorang pendukung proyek (dengan kunci backerPubKey) ingin memberikan uang kepada sebuah proyek (dengan kunci projectPubKey), tetapi hanya jika proyek tersebut mengumpulkan cukup uang (setidaknya minToRaise) dari sumber lain sebelum batas waktu (diekspresikan dalam istilah HEIGHT).
Untuk memberikan uang kepada proyek, pendukung akan membuat kotak output yang dilindungi oleh skrip berikut. Skrip ini berisi dua kondisi: satu untuk kasus ketika batas waktu telah berlalu (memungkinkan pendukung untuk mendapatkan uang kembali) dan satu untuk kasus ketika berhasil (memungkinkan proyek untuk membelanjakan uang jika jumlahnya setidaknya minToRaise sebelum batas waktu).

Untuk memastikan cukup uang telah dikumpulkan, skrip akan mencari koleksi output untuk kotak dengan nilai yang cukup yang menuju ke projectPubKey. Untuk memeriksa ke mana nilai kotak output pergi, skrip akan membaca skrip yang melindungi kotak output dan membandingkannya dengan skrip yang sesuai untuk proveDlog(projectPubKey); skrip ini dapat diperoleh dengan projectPubKey.propBytes.

Karena saat ini API tidak mendukung penyisipan variabel lingkungan kustom (hanya yang telah ditentukan seperti HEIGHT), satu-satunya cara untuk mengompilasi skrip adalah dengan mengganti variabel tersebut dalam skrip dari white-paper dengan nilai konkret. Misalnya, anggaplah bahwa kampanye crowdfunding dianggap berhasil jika mengumpulkan 500 Ergs sebelum nomor blok 50.000. Untuk backerPubKey dan projectPubKey kita dapat menggunakan fungsi PK() yang saat ini hanya menerima kunci terserial P2PK. Maka skrip yang dimodifikasi dari WhitePaper menjadi sebagai berikut:

{
   val backerPubKey = PK("9h7DHKSDgE4uvP8313GVGdsEg3AvdAWSSTG7XZsLwBfeth4aePG")
   val projectPubKey = PK("9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq") 
    
   val deadline = 50000
   val minToRaise = 500L * 1000000000 
   
   val fundraisingFailure = HEIGHT >= deadline && backerPubKey
   val enoughRaised = {(outBox: Box) =>outBox.value >= minToRaise 
                              && outBox.propositionBytes == projectPubKey.propBytes
                      }
        
   val fundraisingSuccess = HEIGHT < deadline && projectPubKey && OUTPUTS.exists(enoughRaised)
   fundraisingFailure || fundraisingSuccess                     
 }                              

Cara Mendonasikan

Pertama-tama, JSON tidak mendukung string multi-baris, jadi Anda perlu mengganti pemisah baris dengan \n.
Juga, tanda kutip harus di-escape, jadi gunakan " alih-alih ". JSON yang dihasilkan akan dikirim ke /script/p2sAddress.
Untuk mendonasikan kepada sebuah proyek, pertama dapatkan alamat Anda dari /wallet/addresses, ambil misalnya yang pertama dari mereka. Masukkan alamat ke dalam backerPubKey, sehingga permintaan ke /script/p2sAddress akan terlihat seperti berikut setelah langkah ini:

{
  "source": "{ 
    val backerPubKey = PK(\"9...\")
    val projectPubKey = PK(\"9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq\")
    val deadline = 50000
    val minToRaise = 500L * 1000000000
    val fundraisingFailure = HEIGHT >= deadline && backerPubKey
    val enoughRaised = {
      (outBox: Box) => 
        outBox.value >= minToRaise && outBox.propositionBytes == projectPubKey.propBytes
    } 
    val fundraisingSuccess = HEIGHT < deadline && projectPubKey && OUTPUTS.exists(enoughRaised) 
    fundraisingFailure || fundraisingSuccess 
  }"
}    

dengan alamat Anda menggantikan “9…”.

Kirim string tersebut ke /script/p2sAddress untuk mendapatkan respons seperti:

{
  "address": "GB3kh2izpWKvyZfMboQwsEscjPaZcz9WrzGqZB4ZrkzRreiFMV6HZYWXGMK3rqCjDCoPgWGNzfnYSUhivW4a1VRYPE7uZXwKnBcqWcRkiuTx6QW55EcPcWeELUsumwdtKoFtWY583nWnKZff"
}     

Salin string alamat (GB3… dalam contoh kami) dan kirim uang ke alamat tersebut melalui /wallet/payment/send. Permintaan ke metode API untuk mengirim 10 Ergs (10 Miliar nanoErgs) akan seperti berikut:

[
 {
   "address": "GB3kh2izpWKvyZfMboQwsEscjPaZcz9WrzGqZB4ZrkzRreiFMV6HZYWXGMK3rqCjDCoPgWGNzfnYSUhivW4a1VRYPE7uZXwKnBcqWcRkiuTx6QW55EcPcWeELUsumwdtKoFtWY583nWnKZff",
   "value": 10000000000
 }
]

Itu saja!

Sekarang dompet akan secara otomatis menemukan kotak di blockchain, karena berisi kunci publik yang dimiliki oleh dompet dalam kondisi pengembalian dana. Dompet kemudian secara berkala memeriksa apakah kotak dapat dibelanjakan dengan membangun transaksi paling sederhana dengan kotak sebagai input dan hanya satu output (ke alamat yang sama). Setelah tinggi pengembalian dana (50.000 dalam contoh kami) dompet akan dapat membelanjakan kotak dan nilai kotak akan ditambahkan ke /wallet/balances.
Harap dicatat bahwa ini tidak akan terjadi setelah implementasi EIP-1 3 karena dompet akan menggunakan pola pengenalan yang lebih sempit saat itu.

Cara Mengumpulkan Donasi

Dompet yang terkait dengan kunci publik proyek akan menemukan kotak masuk di blockchain. Namun, dompet akan gagal memastikan bahwa kotak dapat dibelanjakan, karena saat ini dompet menggunakan transaksi paling sederhana untuk itu, dan skrip gagal untuk transaksi pengeluaran semacam itu.
Sebelum metode /wallet/boxes/uncertain diimplementasikan, satu-satunya cara bagi proyek untuk menemukan kotak masuk. Kemudian /wallet/transaction/send dengan kotak terserial yang disediakan secara manual (dalam “inputsRaw”) (gunakan /utxo/byIdBinary untuk mendapatkan kotak terserial berdasarkan identifikatornya).

Kushti melakukan itu sendiri dan mendapatkan transaksi berikut.

Harap dicatat bahwa EIP-1 juga akan merusak alur kerja ini.

Kushti mengusulkan untuk mengumpulkan 500 Ergs sebelum blok 50.000 untuk mengembangkan skrip baris perintah (dalam Python) untuk mengorganisir dan berpartisipasi dalam kampanye crowdfunding setelah implementasi EIP-1. Skrip baris perintah lebih cocok daripada melakukan permintaan secara manual dan juga dapat digunakan untuk membangun antarmuka grafis di atasnya.

Perbendaharaan telah menyediakan setengah dari dana, jadi yang lainnya perlu berkontribusi 250 Erg yang hilang secara kolektif. Jika kampanye gagal, pengembalian dana akan diberikan secara otomatis. Karena mengumpulkan janji tidaklah mudah saat ini, Kushti akan memimpin peran proyek, jadi silakan gunakan kunci berikut, yang dikendalikan olehnya:

9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq

Untuk mendonasikan jumlah uang berapa pun, silakan ikuti bagian “Cara Mendonasikan” di atas dengan mengganti backerPubKey dengan kunci publik Anda, dan jumlah janji dengan nilai yang sesuai (harap dicatat bahwa ini dalam nanoErgs, 1 Erg = 1.000.000.000 nanoErgs).

Seperti biasa, jika Anda memiliki pertanyaan lebih lanjut, saran, atau ingin berpartisipasi dalam gerakan ini, silakan bergabung dengan saluran media sosial atau forum kami.

t.me/ergoplatform | t.me/ergo_mining | www.ergoforum.org

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