Artikel ini mencoba memberikan deskripsi singkat tentang RGB, sebuah protokol penerbitan aset pada Bitcoin (dapat juga dipahami sebagai sistem kontrak pintar off-chain), dan menunjukkan bahwa ini sangat berbeda dari proyek lain yang bertujuan untuk mencapai protokol Fungsional yang sama atau serupa, perbedaan ini membuat protokol RGB jauh lebih skalabel dibandingkan protokol tersebut, dan memberikan ruang pemrograman yang lebih luas. Selain memperkenalkan desain lengkap RGB, kami juga akan mengeksplorasi kemungkinan pemrograman ini.
Apa itu protokol RGB?
Ide penerbitan aset dalam Bitcoin sudah ada sejak lama. Namun protokol Bitcoin mempunyai karakteristiknya sendiri: statusnya dinyatakan oleh dan hanya Bitcoin UTXO ("output transaksi yang belum terpakai"); UTXO hanya membawa dua data: denominasinya sendiri (nilai Bitcoin), dan "kunci publik skrip" (juga dikenal sebagai "skrip pengunci"), digunakan untuk memprogram kondisi pembelanjaan dana ini, misalnya: memberikan tanda tangan kunci publik tertentu; mengizinkan opcode yang digunakan untuk memprogram skrip pengunci ditentukan oleh aturan konsensus Bitcoin dengan ketentuan bahwa mereka tidak dapat digunakan untuk menerapkan aturan keamanan sewenang-wenang. Oleh karena itu, tidak mungkin membuat aset lain di dalam UTXO - skrip Bitcoin tidak dapat memprogram pemeriksaan keamanan untuk aset ini. Ini berarti bahwa semua ide untuk menerbitkan aset pada Bitcoin pada dasarnya adalah penggunaan ruang blok Bitcoin secara kreatif. Artinya, kita perlu merancang sistem kontrak pintar off-chain dan memerlukan langkah-langkah untuk mengubah status kontrak - misalnya, kontrak A mengubah parameter, dan B mentransfer sejumlah aset tertentu ke C —— Informasi tersebut diunggah ke blockchain, sehingga status terbaru dari sistem kontrak pintar dapat diperoleh dengan mengumpulkan informasi ini.
Ide desain kasarnya adalah mengunggah informasi langkah-langkah yang mengubah status kontrak ke blockchain Bitcoin secara utuh. Ini tentu berhasil, namun menghadapi beberapa masalah:
(1) Karena informasi lengkap diunggah, mungkin memerlukan lebih banyak ruang blok. Ketika pengguna perlu mengubah status kontrak (seperti transfer), mereka juga perlu membayar lebih banyak biaya penanganan on-chain. Secara khusus, ketika kita berharap bahwa sistem kontrak off-chain memiliki kemampuan program yang lebih baik daripada Bitcoin, peningkatan kemampuan program mungkin akan mengorbankan lebih banyak ruang blok;
(2) Hampir semua informasi dalam blok dapat mengubah kontrak pintar di luar rantai. Oleh karena itu, pengguna harus mendapatkan semua data blok Bitcoin untuk mendapatkan status terbaru dari sistem kontrak off-chain, yaitu lebih mahal untuk memverifikasi;
(3) Tergantung pada desain sistem kontrak pintar off-chain, Anda mungkin hanya bisa mendapatkan privasi yang sebanding dengan Bitcoin, atau bahkan lebih buruk lagi; dan jika Anda dapat memberikan lebih banyak privasi, Anda mungkin perlu menggunakan lebih banyak ruang. ruang blok.
Di masa lalu, protokol yang banyak digunakan bernama "Omni" tidak mengunggah informasi lengkap tentang transaksi kontrak off-chain, tetapi hanya nilai hash dari transaksi tersebut. Pendekatan ini memecahkan masalah di atas dan memisahkan kompleksitas transaksi kontrak off-chain dari biaya ekonominya; namun, pengguna masih perlu mendapatkan seluruh jumlah data blok Bitcoin untuk mendapatkan status terbaru dari protokol Omni; selain itu, hal ini juga diperlukan. tidak dirancang khusus untuk meningkatkan privasi.
RGB menggunakan paradigma baru yang disebut "segel sekali pakai". Penggunaannya sangat sederhana: RGB mengharuskan setiap status dari setiap kontrak harus diikat ke UTXO Bitcoin tertentu; dan begitu Anda ingin mengubah status ini, Anda harus membelanjakan UTXO ini dan membiarkan transaksi yang membelanjakannya mendapatkan Konfirmasi di blockchain; selain itu, transaksi Bitcoin yang membelanjakannya juga harus memberikan hash dari konten transisi negara untuk menunjukkan UTXO yang melekat pada negara yang diubah.
Bagi pengembang RGB, desainnya mirip dengan segel plastik bernomor: mudah untuk mengetahui apakah sudah dilepas, dan setelah dilepas, tidak dapat digunakan kembali. Namun, perspektif lain adalah menganggap UTXO yang dimiliki sebagai wadah atau celengan keramik di negara bagian ini - jika ingin mengambil uang di celengan tersebut, Anda harus memecahkan celengan tersebut, lalu memasukkan uang tersebut ke dalam. ke dalam toples baru.
Desain ini sangat kontras dengan protokol sebelumnya yang memperlakukan seluruh blok sebagai papan tulis besar: menggunakan UTXO sebagai wadah berarti bahwa transaksi yang tidak menggunakan UTXO ini tidak dapat berdampak apa pun pada status kontrak dalam wadah tersebut. keadaan tertentu dari kontrak tertentu, kita tidak perlu mendapatkan data semua blok. Yang kita butuhkan hanyalah serangkaian transaksi Bitcoin, bukti bahwa transaksi Bitcoin ini ada di blok tertentu, dan bit-bit ini Konversi status RGB yang dijanjikan oleh pertukaran mata uang (pasangan satu-ke-satu dengan transaksi Bitcoin yang relevan) sudah cukup. Data ini, yang dapat dihubungkan ke dalam sebuah rantai, akan memungkinkan kita untuk menelusuri kembali keadaan awal kontrak ini, sehingga memungkinkan kita untuk mengidentifikasi esensi dari keadaan ini.
Bagi pembaca yang familiar dengan sistem kontrak pintar on-chain (seperti Ethereum), satu hal yang sulit dipahami tentang proses ini adalah jika tidak bergantung pada konsensus dari blockchain (yang berarti keadaan awal dari kontrak tersebut). kontrak dan setiap perubahan status akan Diverifikasi oleh setiap node), bagaimana keamanan sistem kontrak pintar ini terjamin? Bagaimana memastikan bahwa aset yang Anda terima adalah yang Anda inginkan, dan bagaimana memastikan bahwa aset tersebut tidak dikeluarkan secara ilegal?
Jawabannya juga sangat sederhana, ini disebut "validasi sisi klien" - Anda memverifikasinya sendiri. Dalam sistem kontrak on-chain, node memverifikasi setiap operasi transisi keadaan sesuai dengan aturan transisi keadaan publik, menolak operasi yang tidak valid, dan kemudian menghitung keadaan terbaru berdasarkan keadaan awal. Namun, selama aturan transisi keadaan dan keadaan awal diketahui, verifikasi melalui konsensus on-chain bukanlah satu-satunya cara.Pengguna dapat memverifikasi apakah setiap langkah transisi keadaan mengikuti transisi keadaan yang telah ditentukan sebelumnya berdasarkan informasi yang diberikan oleh pembayar aturan. Dengan cara ini, pihak yang memverifikasi (diasumsikan sebagai penerima aset) juga dapat mendeteksi transisi negara yang ilegal dan menolak untuk menerimanya.
Terakhir, kami menggunakan contoh untuk mendemonstrasikan karakteristik protokol RGB:
Sekarang, Alice memiliki UTXO A, yang menyimpan X unit aset Y yang diterbitkan sesuai dengan protokol RGB. Dia ingin mentransfer Z unit Y ke Bob. Kumpulan aset ini melewati total 5 pemilik sebelumnya (termasuk penerbit aset) sebelum sampai ke tangan Alice. Oleh karena itu, Alice perlu memberikan Bob bukti dari empat transisi keadaan ini (tiga yang pertama diberikan kepada Alice oleh pemilik sebelumnya), termasuk keadaan awal kontrak dan aturan transisi keadaan, dan bit yang digunakan untuk setiap transfer. Transaksi Bitcoin, transaksi RGB yang dilakukan oleh setiap bursa Bitcoin, dan bukti bahwa transaksi Bitcoin tersebut telah dikonfirmasi oleh blok tertentu dikirimkan ke Bob. Bob akan memverifikasi bahwa keempat transfer tersebut tidak melanggar aturan sesuai aturan transisi negara. kontrak., dan kemudian memutuskan apakah akan menerimanya. Ketika Alice membangun transaksi RGB, karena Z lebih kecil dari X, dia juga harus mengatur UTXO untuk dirinya sendiri untuk menerima bagian sisanya. Terakhir, Alice menyematkan nilai hash dari transaksi RGB ini ke dalam transaksi Bitcoin yang memerlukan biaya UTXO A' untuk menyelesaikan pembayaran.
Terakhir, karena penggunaan wadah UTXO, status terbaru dari kontrak RGB dapat direpresentasikan sebagai sebuah titik pada grafik asiklik terarah yang tidak memiliki turunan (setiap titik mewakili status yang disimpan dalam wadah UTXO). Apalagi bagi pemilik P pada gambar di bawah ini, ia hanya akan mengetahui proses dari keadaan awal kontrak G untuk mencapainya, yaitu proses yang ditandai dengan lingkaran merah, dan tidak akan mengetahui apa pun tentang titik abu-abu:
#KELEBIHAN RGB
Status ringan yang dapat diverifikasi
Seperti disebutkan di atas, dibandingkan dengan protokol penerbitan aset sebelumnya (sistem kontrak off-chain) yang muncul di Bitcoin, RGB secara signifikan mengurangi biaya verifikasi (status kontrak tertentu). Selama transaksi, penerima tidak perlu lagi melintasi semua blok untuk mengumpulkan informasi tentang perubahan status kontrak, tetapi hanya perlu mendapatkan serangkaian transaksi Bitcoin, serta transaksi RGB yang dijanjikan oleh bursa tersebut, dan blok-blok Bitcoin tersebut. transaksi berisi Bukti (berdasarkan bukti Merkle di header blok), Anda dapat yakin bahwa pembayar benar-benar memiliki sejumlah aset tertentu.
Pengurangan biaya verifikasi ini juga sangat mengurangi ketergantungan (kepercayaan) pengguna terhadap penyedia infrastruktur besar. Pada protokol sebelumnya, karena tingginya biaya verifikasi, sulit bagi pengguna untuk menghitung sendiri status kontrak terbaru, sehingga pengguna harus mempercayai beberapa penyedia (seperti penyedia status kontrak yang digunakan oleh dompet mereka); pada saat yang sama waktu, karena mereka mampu membelinya. Jumlah pemasok yang menghitung biaya lebih sedikit, yang juga berarti sentralisasi pemasok. Namun di RGB, pengguna hanya perlu menggunakan klien ringan Bitcoin untuk memeriksa bagian transaksi dengan Bitcoin dan protokol RGB untuk memeriksa bagian transaksi RGB, dan mereka mampu membelinya.
Dibandingkan dengan beberapa sistem kontrak on-chain, RGB juga lebih ringan. Hal ini tercermin dalam fakta bahwa RGB dapat secara spesifik memverifikasi status kontrak tertentu; pada sistem yang tidak berbasis UTXO, karena kurangnya mekanisme untuk mengontrol akses seperti UTXO, transaksi apa pun dapat mengubah status apa pun, jadi Anda Hampir tidak mungkin untuk memverifikasi keadaan tertentu secara spesifik, tetapi hanya dapat menentukan keadaan tertentu sambil menghitung semua keadaan terbaru - dalam hal ini, karakteristik yang dinyatakan sebagai "negara global" seharusnya disebut "keadaan seragam". Memberikan fitur akses silang antar kontrak, hal ini juga menentukan bahwa biaya verifikasi akan lebih tinggi dan akan lebih sulit untuk mendapatkan ketidakpercayaan.
Pada protokol kontrak on-chain ini, ukuran pengoptimalan utama adalah mengharuskan header blok untuk berkomitmen pada status terbaru ("root status"), sehingga memungkinkan klien ringan untuk memverifikasi status kontrak tertentu yang diperoleh dari node penuh berdasarkan komitmen ini. . Ini adalah metode penggunaan kembali perhitungan yang telah terjadi (perhitungan yang telah dijalankan oleh node penuh), dan juga sangat efisien, sehingga jika tidak memperhitungkan kepercayaan, dapat dianggap lebih efisien daripada RGB. Namun, ini berarti bahwa light node mengandalkan node penuh untuk verifikasi transaksi dasar dan penghitungan status kontrak. Pada dompet RGB yang menggunakan klien ringan Bitcoin, asumsi kepercayaan yang diandalkan adalah bahwa transaksi Bitcoin yang relevan adalah transaksi yang valid, dan bagian yang terkait dengan status kontrak telah diverifikasi secara pribadi oleh klien, sehingga lebih dapat dipercaya- gratis. . Kerugiannya adalah penundaan verifikasi lebih lama dan lebih banyak data yang perlu disimpan.
Skalabilitas
Skalabilitas RGB tercermin dalam dua aspek:
Yang tertanam dalam transaksi Bitcoin hanyalah nilai hash, yang berarti tidak ada batasan volume transaksi RGB (kecuali untuk aturan khusus kontrak) - bahkan jika Anda membagi satu aset RGB menjadi 100 bagian (transaksi RGB sendirinya akan sangat besar), dan hanya ada satu nilai hash yang perlu ditanamkan dalam sebuah transaksi Bitcoin. Seperti disebutkan dalam Catatan 6, ada dua cara untuk menyematkan nilai hash tersebut: satu adalah dengan menggunakan output OP_RETURN, yang berarti akan menggunakan ruang on-chain dari nilai hash; yang lainnya adalah dengan menyembunyikan output publik skrip di kunci Taproot - ini tidak menghabiskan ruang di rantai apa pun. Ini juga berarti bahwa pengguna tidak perlu mengorbankan faktor ekonomi demi kemampuan program—hanya mempertimbangkan biaya on-chain.
Keadaan terbaru dari kontrak RGB adalah titik independen pada grafik asiklik berarah tanpa turunan - ini berarti bahwa keadaan ini dapat diubah secara independen tanpa mempengaruhi satu sama lain, yang berarti konkurensi diperbolehkan. Ini sebenarnya adalah fitur yang diwarisi dari UTXO. Artinya juga perubahan tidak sah (transaksi tidak sah) yang terjadi pada satu cabang tidak akan berdampak pada cabang lain, apalagi menyebabkan macetnya keseluruhan kontrak, sehingga bisa juga dianggap sebagai keuntungan keamanan.
Satu hal yang dikritik oleh RGB dalam hal skalabilitas adalah bahwa setiap transfer mengharuskan penerima untuk memverifikasi semua transaksi yang terlibat dari keadaan awal hingga negara pembayar - karena jumlah perpindahan aset meningkat, beban verifikasi pada penerima berikutnya meningkat. Ini akan menjadi semakin berat. Kritik ini ada benarnya. Mengoptimalkannya berarti kita juga perlu menemukan cara untuk menggunakan kembali operasi yang telah terjadi. Teknologi sistem bukti seperti SNARK menjanjikan solusi seperti itu.
Diferensiasi definisi aset dan mekanisme penyimpanan
Manfaat terakhir masih berkaitan dengan UTXO dan bergantung pada bagaimana kita memahami mekanisme penguncian skrip UTXO.
Skrip penguncian dapat digunakan untuk memprogram kondisi pembukaan dana dan, oleh karena itu, dapat menerapkan aturan penyimpanan. Misalnya, jika skrip penguncian berisi satu dan hanya satu kunci publik, itu berarti hanya pemilik kunci privat terkait yang dapat mengontrolnya. Namun, aturan penyimpanan tersebut juga menjadi dasar pemrograman protokol kontrak Bitcoin. Misalnya, UTXO yang menggunakan skrip penguncian multi-tanda tangan 2-dari-2 dapat menjadi saluran kilat; selama pengoperasian saluran, kedua pihak dapat saling membayar berkali-kali tanpa ada perubahan dalam bentuk on-chain. dana. Dengan kata lain, saat ini, skrip penguncian multi-tanda tangan 2-dari-2 merupakan mekanisme transfer nilai yang memungkinkan kedua belah pihak untuk mentransfer nilai tanpa mengubah bentuk dana dalam rantai.
Mekanisme seperti itu dapat digunakan untuk nilai Bitcoin yang dibawa oleh UTXO, dan tentu saja juga dapat digunakan untuk aset RGB yang dibawa olehnya. Kita dapat menerbitkan aset RGB dan melampirkannya ke UTXO multi-tanda tangan 2-dari-2, sehingga menggunakan mekanisme saluran petir untuk membayar aset ini satu sama lain dalam jumlah yang tidak terbatas. Dengan cara yang sama, aset RGB juga dapat dimasukkan ke dalam kontrak lain berdasarkan skrip Bitcoin.
Di sini, skrip UTXO dan protokol RGB membentuk diferensiasi fungsional: yang pertama berkomitmen untuk mewujudkan aturan penjagaan nilai dan transfer nilai; sementara yang kedua berfokus pada definisi aset. Dengan demikian, penitipan harta dan pengertian harta dapat dipisahkan. Ini adalah peningkatan keamanan yang penting dan sesuatu yang telah diperjuangkan oleh banyak orang di beberapa sistem kontrak on-chain lainnya.
Desain RGB Sudah Dibuat
Karakteristik di atas sebenarnya berlaku untuk semua protokol berdasarkan penyegelan satu kali UTXO dan verifikasi klien. Namun atas dasar ini, protokol RGB telah dirancang lebih lanjut.
Dalam perkembangan protokol RGB saat ini, pengembang sangat memperhatikan privasi protokol, sehingga RGB memperkuat privasi dalam dua aspek:
UTXO buta. Dalam transaksi RGB, penerima hanya perlu menggunakan pengidentifikasi UTXO yang dikaburkan untuk menerima aset tanpa memaparkan karakteristik UTXO yang sebenarnya menerima aset tersebut. Hal ini tidak mengganggu kemampuan penerima untuk memberikan bukti kepada pemilik berikutnya, sekaligus memungkinkan penerima aset berikutnya untuk membela diri dari pengintaian pemilik aset sebelumnya.
Antipeluru. Dapat digunakan untuk menyembunyikan jumlah tertentu dalam setiap transaksi. Namun, pemilik aset berikutnya masih dapat memverifikasi bahwa belum pernah terjadi penerbitan tambahan.
Ruang untuk dijelajahi
Pada bagian ini, saya akan membahas ruang yang dapat terus dieksplorasi oleh protokol RGB, terutama terkait dengan kemampuan program.
Saat ini, template kontrak (skema) RGB yang diusulkan fokus pada penerbitan aset. Namun, karena RGB menggunakan paradigma "verifikasi sisi klien", kami sebenarnya dapat menambahkan karakteristik apa pun ke dalamnya yang dapat dijamin oleh verifikasi sisi klien - hanya dibatasi oleh struktur UTXO.
Pembatasan
Berdasarkan UTXO, sebuah konsep yang dapat memperluas kemampuan program disebut "perjanjian". Maksud awal dari klausul pembatasan adalah untuk membatasi tujuan pengiriman sejumlah uang. Dengan kemampuan tersebut kita dapat memprogram banyak aplikasi menarik, seperti:
Kumpulan dana untuk penarikan non-interaktif. Kami dapat mengumpulkan dana banyak orang dalam UTXO yang sama dan menggunakan klausul pembatasan untuk memastikan bahwa salah satu dari mereka dapat menarik dananya sendiri tanpa bantuan orang lain. Hal ini dapat memberikan efek membantu masyarakat keluar dari tempat-tempat berisiko tinggi dengan biaya rendah ketika permintaan akan ruang blok tinggi.
Kontrak Gudang. Dana harus dibelanjakan terlebih dahulu di suatu tempat dan melalui kunci waktu sebelum dapat dibelanjakan secara bebas; selama periode kunci waktu, pemilik brankas dapat menghentikan proses ini dengan kunci darurat dan segera mentransfer dana ke tempat lain. Perangkat ini dapat sangat membantu untuk hak asuh otonom.
Bitcoin Script saat ini tidak memiliki kemampuan ini, jadi mengaktifkan pembatasan pada Bitcoin Script memerlukan soft fork.
Namun, selama kita bersedia mengorbankan beberapa manfaat yang dibawa oleh "diferensiasi definisi aset dan mekanisme penyimpanan", kita dapat bereksperimen dengan fitur-fitur tersebut pada aset RGB. Kita dapat mengimplementasikan fungsi-fungsi tersebut pada tingkat kontrak RGB - meskipun hal ini dapat dilakukan. hanya Tidak berfungsi untuk aset RGB yang menggunakannya (dan bukan Bitcoin), tetapi pasti akan membuka ruang yang menarik.
Penelitian yang ada mengenai klausul pembatasan menunjukkan bahwa hal itu dapat memperluas ruang pemrograman transaksi berbasis UTXO dan menyediakan banyak fitur. Namun penelitian ini pada dasarnya didasarkan pada Bitcoin, dan pada protokol seperti Bitcoin, kami akan lebih konservatif. Di RGB, kita dapat dengan berani menggeneralisasi kemampuan inti dari klausul pembatasan - kemampuan untuk membaca transaksi yang dilakukan pada tingkat skrip - untuk memberikan kemampuan program yang lebih fleksibel: kemampuan untuk mengakses kontrak secara silang.
Akses silang
Istilah pembatasan minimal berarti bahwa ketika UTXO dibelanjakan, skripnya dapat membaca keluaran transaksi pembelanjaan. Namun batasan yang digeneralisasikan berarti dapat membaca seluruh bagian transaksi yang menghabiskannya. Artinya bisa juga membaca input transaksi lainnya, jika kita tidak membatasi input lain yang berasal dari kontrak yang sama, berarti bisa membaca status kontrak lain.
Dalam RGB, kami menetapkan secara default bahwa setiap kontrak adalah semesta independen dengan grafik asiklik terarahnya sendiri. Namun, pengguna masih dapat memegang status dua kontrak berbeda secara bersamaan. Jika transaksi RGB memungkinkan pembelanjaan aset secara bersamaan dari kedua kontrak, kemampuan akses silang tersebut mungkin dapat diterapkan (walaupun hal ini dapat membuat verifikasi transaksi menjadi lebih rumit).
Faktanya, sudah ada sistem kontrak on-chain berdasarkan struktur serupa UTXO (misalnya: Jaringan Nervos), yang menggunakannya untuk mencapai kemampuan akses silang kontrak. Ini adalah bidang yang sangat baru, membuka ke area yang jarang disinggung oleh penelitian Bitcoin sebelumnya, dan mungkin ada beberapa kejutan yang terkubur di sana.
Kesimpulannya
Dalam artikel ini, pembaca akan menemukan bahwa ada sebuah konsep yang sering disebutkan dan dijalankan melalui semua proses penalaran dan fantasi: "UTXO". Inilah niat saya. Jika Anda tidak memahami UTXO, Anda tidak dapat memahami titik awal desain protokol seperti RGB, Anda juga tidak dapat memahami kelebihan desain protokol RGB, dan Anda juga tidak dapat membayangkan cara orang menggunakannya. Karakteristik protokol RGB sebagian besar dibentuk oleh bentuk UTXO yang hanya tersegel satu kali. Sejalan dengan itu, penelitian tentang UTXO yang dikumpulkan di bidang penelitian Bitcoin juga dapat diterapkan pada penelitian tentang RGB.
Hal ini juga menjelaskan mengapa orang yang tidak memahami Bitcoin akan kesulitan memahami RGB. Orang yang menyukai Bitcoin akan mengenali desain yang dibuat RGB.
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
Pahami potensi sebenarnya dari protokol penerbitan aset RGB dalam satu artikel
Penulis: A Jian
Artikel ini mencoba memberikan deskripsi singkat tentang RGB, sebuah protokol penerbitan aset pada Bitcoin (dapat juga dipahami sebagai sistem kontrak pintar off-chain), dan menunjukkan bahwa ini sangat berbeda dari proyek lain yang bertujuan untuk mencapai protokol Fungsional yang sama atau serupa, perbedaan ini membuat protokol RGB jauh lebih skalabel dibandingkan protokol tersebut, dan memberikan ruang pemrograman yang lebih luas. Selain memperkenalkan desain lengkap RGB, kami juga akan mengeksplorasi kemungkinan pemrograman ini.
Apa itu protokol RGB?
Ide penerbitan aset dalam Bitcoin sudah ada sejak lama. Namun protokol Bitcoin mempunyai karakteristiknya sendiri: statusnya dinyatakan oleh dan hanya Bitcoin UTXO ("output transaksi yang belum terpakai"); UTXO hanya membawa dua data: denominasinya sendiri (nilai Bitcoin), dan "kunci publik skrip" (juga dikenal sebagai "skrip pengunci"), digunakan untuk memprogram kondisi pembelanjaan dana ini, misalnya: memberikan tanda tangan kunci publik tertentu; mengizinkan opcode yang digunakan untuk memprogram skrip pengunci ditentukan oleh aturan konsensus Bitcoin dengan ketentuan bahwa mereka tidak dapat digunakan untuk menerapkan aturan keamanan sewenang-wenang. Oleh karena itu, tidak mungkin membuat aset lain di dalam UTXO - skrip Bitcoin tidak dapat memprogram pemeriksaan keamanan untuk aset ini. Ini berarti bahwa semua ide untuk menerbitkan aset pada Bitcoin pada dasarnya adalah penggunaan ruang blok Bitcoin secara kreatif. Artinya, kita perlu merancang sistem kontrak pintar off-chain dan memerlukan langkah-langkah untuk mengubah status kontrak - misalnya, kontrak A mengubah parameter, dan B mentransfer sejumlah aset tertentu ke C —— Informasi tersebut diunggah ke blockchain, sehingga status terbaru dari sistem kontrak pintar dapat diperoleh dengan mengumpulkan informasi ini.
Ide desain kasarnya adalah mengunggah informasi langkah-langkah yang mengubah status kontrak ke blockchain Bitcoin secara utuh. Ini tentu berhasil, namun menghadapi beberapa masalah:
(1) Karena informasi lengkap diunggah, mungkin memerlukan lebih banyak ruang blok. Ketika pengguna perlu mengubah status kontrak (seperti transfer), mereka juga perlu membayar lebih banyak biaya penanganan on-chain. Secara khusus, ketika kita berharap bahwa sistem kontrak off-chain memiliki kemampuan program yang lebih baik daripada Bitcoin, peningkatan kemampuan program mungkin akan mengorbankan lebih banyak ruang blok;
(2) Hampir semua informasi dalam blok dapat mengubah kontrak pintar di luar rantai. Oleh karena itu, pengguna harus mendapatkan semua data blok Bitcoin untuk mendapatkan status terbaru dari sistem kontrak off-chain, yaitu lebih mahal untuk memverifikasi;
(3) Tergantung pada desain sistem kontrak pintar off-chain, Anda mungkin hanya bisa mendapatkan privasi yang sebanding dengan Bitcoin, atau bahkan lebih buruk lagi; dan jika Anda dapat memberikan lebih banyak privasi, Anda mungkin perlu menggunakan lebih banyak ruang. ruang blok.
Di masa lalu, protokol yang banyak digunakan bernama "Omni" tidak mengunggah informasi lengkap tentang transaksi kontrak off-chain, tetapi hanya nilai hash dari transaksi tersebut. Pendekatan ini memecahkan masalah di atas dan memisahkan kompleksitas transaksi kontrak off-chain dari biaya ekonominya; namun, pengguna masih perlu mendapatkan seluruh jumlah data blok Bitcoin untuk mendapatkan status terbaru dari protokol Omni; selain itu, hal ini juga diperlukan. tidak dirancang khusus untuk meningkatkan privasi.
RGB menggunakan paradigma baru yang disebut "segel sekali pakai". Penggunaannya sangat sederhana: RGB mengharuskan setiap status dari setiap kontrak harus diikat ke UTXO Bitcoin tertentu; dan begitu Anda ingin mengubah status ini, Anda harus membelanjakan UTXO ini dan membiarkan transaksi yang membelanjakannya mendapatkan Konfirmasi di blockchain; selain itu, transaksi Bitcoin yang membelanjakannya juga harus memberikan hash dari konten transisi negara untuk menunjukkan UTXO yang melekat pada negara yang diubah.
Bagi pengembang RGB, desainnya mirip dengan segel plastik bernomor: mudah untuk mengetahui apakah sudah dilepas, dan setelah dilepas, tidak dapat digunakan kembali. Namun, perspektif lain adalah menganggap UTXO yang dimiliki sebagai wadah atau celengan keramik di negara bagian ini - jika ingin mengambil uang di celengan tersebut, Anda harus memecahkan celengan tersebut, lalu memasukkan uang tersebut ke dalam. ke dalam toples baru.
Desain ini sangat kontras dengan protokol sebelumnya yang memperlakukan seluruh blok sebagai papan tulis besar: menggunakan UTXO sebagai wadah berarti bahwa transaksi yang tidak menggunakan UTXO ini tidak dapat berdampak apa pun pada status kontrak dalam wadah tersebut. keadaan tertentu dari kontrak tertentu, kita tidak perlu mendapatkan data semua blok. Yang kita butuhkan hanyalah serangkaian transaksi Bitcoin, bukti bahwa transaksi Bitcoin ini ada di blok tertentu, dan bit-bit ini Konversi status RGB yang dijanjikan oleh pertukaran mata uang (pasangan satu-ke-satu dengan transaksi Bitcoin yang relevan) sudah cukup. Data ini, yang dapat dihubungkan ke dalam sebuah rantai, akan memungkinkan kita untuk menelusuri kembali keadaan awal kontrak ini, sehingga memungkinkan kita untuk mengidentifikasi esensi dari keadaan ini.
Bagi pembaca yang familiar dengan sistem kontrak pintar on-chain (seperti Ethereum), satu hal yang sulit dipahami tentang proses ini adalah jika tidak bergantung pada konsensus dari blockchain (yang berarti keadaan awal dari kontrak tersebut). kontrak dan setiap perubahan status akan Diverifikasi oleh setiap node), bagaimana keamanan sistem kontrak pintar ini terjamin? Bagaimana memastikan bahwa aset yang Anda terima adalah yang Anda inginkan, dan bagaimana memastikan bahwa aset tersebut tidak dikeluarkan secara ilegal?
Jawabannya juga sangat sederhana, ini disebut "validasi sisi klien" - Anda memverifikasinya sendiri. Dalam sistem kontrak on-chain, node memverifikasi setiap operasi transisi keadaan sesuai dengan aturan transisi keadaan publik, menolak operasi yang tidak valid, dan kemudian menghitung keadaan terbaru berdasarkan keadaan awal. Namun, selama aturan transisi keadaan dan keadaan awal diketahui, verifikasi melalui konsensus on-chain bukanlah satu-satunya cara.Pengguna dapat memverifikasi apakah setiap langkah transisi keadaan mengikuti transisi keadaan yang telah ditentukan sebelumnya berdasarkan informasi yang diberikan oleh pembayar aturan. Dengan cara ini, pihak yang memverifikasi (diasumsikan sebagai penerima aset) juga dapat mendeteksi transisi negara yang ilegal dan menolak untuk menerimanya.
Terakhir, kami menggunakan contoh untuk mendemonstrasikan karakteristik protokol RGB:
Sekarang, Alice memiliki UTXO A, yang menyimpan X unit aset Y yang diterbitkan sesuai dengan protokol RGB. Dia ingin mentransfer Z unit Y ke Bob. Kumpulan aset ini melewati total 5 pemilik sebelumnya (termasuk penerbit aset) sebelum sampai ke tangan Alice. Oleh karena itu, Alice perlu memberikan Bob bukti dari empat transisi keadaan ini (tiga yang pertama diberikan kepada Alice oleh pemilik sebelumnya), termasuk keadaan awal kontrak dan aturan transisi keadaan, dan bit yang digunakan untuk setiap transfer. Transaksi Bitcoin, transaksi RGB yang dilakukan oleh setiap bursa Bitcoin, dan bukti bahwa transaksi Bitcoin tersebut telah dikonfirmasi oleh blok tertentu dikirimkan ke Bob. Bob akan memverifikasi bahwa keempat transfer tersebut tidak melanggar aturan sesuai aturan transisi negara. kontrak., dan kemudian memutuskan apakah akan menerimanya. Ketika Alice membangun transaksi RGB, karena Z lebih kecil dari X, dia juga harus mengatur UTXO untuk dirinya sendiri untuk menerima bagian sisanya. Terakhir, Alice menyematkan nilai hash dari transaksi RGB ini ke dalam transaksi Bitcoin yang memerlukan biaya UTXO A' untuk menyelesaikan pembayaran.
Terakhir, karena penggunaan wadah UTXO, status terbaru dari kontrak RGB dapat direpresentasikan sebagai sebuah titik pada grafik asiklik terarah yang tidak memiliki turunan (setiap titik mewakili status yang disimpan dalam wadah UTXO). Apalagi bagi pemilik P pada gambar di bawah ini, ia hanya akan mengetahui proses dari keadaan awal kontrak G untuk mencapainya, yaitu proses yang ditandai dengan lingkaran merah, dan tidak akan mengetahui apa pun tentang titik abu-abu:
#KELEBIHAN RGB
Status ringan yang dapat diverifikasi
Seperti disebutkan di atas, dibandingkan dengan protokol penerbitan aset sebelumnya (sistem kontrak off-chain) yang muncul di Bitcoin, RGB secara signifikan mengurangi biaya verifikasi (status kontrak tertentu). Selama transaksi, penerima tidak perlu lagi melintasi semua blok untuk mengumpulkan informasi tentang perubahan status kontrak, tetapi hanya perlu mendapatkan serangkaian transaksi Bitcoin, serta transaksi RGB yang dijanjikan oleh bursa tersebut, dan blok-blok Bitcoin tersebut. transaksi berisi Bukti (berdasarkan bukti Merkle di header blok), Anda dapat yakin bahwa pembayar benar-benar memiliki sejumlah aset tertentu.
Pengurangan biaya verifikasi ini juga sangat mengurangi ketergantungan (kepercayaan) pengguna terhadap penyedia infrastruktur besar. Pada protokol sebelumnya, karena tingginya biaya verifikasi, sulit bagi pengguna untuk menghitung sendiri status kontrak terbaru, sehingga pengguna harus mempercayai beberapa penyedia (seperti penyedia status kontrak yang digunakan oleh dompet mereka); pada saat yang sama waktu, karena mereka mampu membelinya. Jumlah pemasok yang menghitung biaya lebih sedikit, yang juga berarti sentralisasi pemasok. Namun di RGB, pengguna hanya perlu menggunakan klien ringan Bitcoin untuk memeriksa bagian transaksi dengan Bitcoin dan protokol RGB untuk memeriksa bagian transaksi RGB, dan mereka mampu membelinya.
Dibandingkan dengan beberapa sistem kontrak on-chain, RGB juga lebih ringan. Hal ini tercermin dalam fakta bahwa RGB dapat secara spesifik memverifikasi status kontrak tertentu; pada sistem yang tidak berbasis UTXO, karena kurangnya mekanisme untuk mengontrol akses seperti UTXO, transaksi apa pun dapat mengubah status apa pun, jadi Anda Hampir tidak mungkin untuk memverifikasi keadaan tertentu secara spesifik, tetapi hanya dapat menentukan keadaan tertentu sambil menghitung semua keadaan terbaru - dalam hal ini, karakteristik yang dinyatakan sebagai "negara global" seharusnya disebut "keadaan seragam". Memberikan fitur akses silang antar kontrak, hal ini juga menentukan bahwa biaya verifikasi akan lebih tinggi dan akan lebih sulit untuk mendapatkan ketidakpercayaan.
Pada protokol kontrak on-chain ini, ukuran pengoptimalan utama adalah mengharuskan header blok untuk berkomitmen pada status terbaru ("root status"), sehingga memungkinkan klien ringan untuk memverifikasi status kontrak tertentu yang diperoleh dari node penuh berdasarkan komitmen ini. . Ini adalah metode penggunaan kembali perhitungan yang telah terjadi (perhitungan yang telah dijalankan oleh node penuh), dan juga sangat efisien, sehingga jika tidak memperhitungkan kepercayaan, dapat dianggap lebih efisien daripada RGB. Namun, ini berarti bahwa light node mengandalkan node penuh untuk verifikasi transaksi dasar dan penghitungan status kontrak. Pada dompet RGB yang menggunakan klien ringan Bitcoin, asumsi kepercayaan yang diandalkan adalah bahwa transaksi Bitcoin yang relevan adalah transaksi yang valid, dan bagian yang terkait dengan status kontrak telah diverifikasi secara pribadi oleh klien, sehingga lebih dapat dipercaya- gratis. . Kerugiannya adalah penundaan verifikasi lebih lama dan lebih banyak data yang perlu disimpan.
Skalabilitas
Skalabilitas RGB tercermin dalam dua aspek:
Yang tertanam dalam transaksi Bitcoin hanyalah nilai hash, yang berarti tidak ada batasan volume transaksi RGB (kecuali untuk aturan khusus kontrak) - bahkan jika Anda membagi satu aset RGB menjadi 100 bagian (transaksi RGB sendirinya akan sangat besar), dan hanya ada satu nilai hash yang perlu ditanamkan dalam sebuah transaksi Bitcoin. Seperti disebutkan dalam Catatan 6, ada dua cara untuk menyematkan nilai hash tersebut: satu adalah dengan menggunakan output OP_RETURN, yang berarti akan menggunakan ruang on-chain dari nilai hash; yang lainnya adalah dengan menyembunyikan output publik skrip di kunci Taproot - ini tidak menghabiskan ruang di rantai apa pun. Ini juga berarti bahwa pengguna tidak perlu mengorbankan faktor ekonomi demi kemampuan program—hanya mempertimbangkan biaya on-chain.
Keadaan terbaru dari kontrak RGB adalah titik independen pada grafik asiklik berarah tanpa turunan - ini berarti bahwa keadaan ini dapat diubah secara independen tanpa mempengaruhi satu sama lain, yang berarti konkurensi diperbolehkan. Ini sebenarnya adalah fitur yang diwarisi dari UTXO. Artinya juga perubahan tidak sah (transaksi tidak sah) yang terjadi pada satu cabang tidak akan berdampak pada cabang lain, apalagi menyebabkan macetnya keseluruhan kontrak, sehingga bisa juga dianggap sebagai keuntungan keamanan.
Satu hal yang dikritik oleh RGB dalam hal skalabilitas adalah bahwa setiap transfer mengharuskan penerima untuk memverifikasi semua transaksi yang terlibat dari keadaan awal hingga negara pembayar - karena jumlah perpindahan aset meningkat, beban verifikasi pada penerima berikutnya meningkat. Ini akan menjadi semakin berat. Kritik ini ada benarnya. Mengoptimalkannya berarti kita juga perlu menemukan cara untuk menggunakan kembali operasi yang telah terjadi. Teknologi sistem bukti seperti SNARK menjanjikan solusi seperti itu.
Diferensiasi definisi aset dan mekanisme penyimpanan
Manfaat terakhir masih berkaitan dengan UTXO dan bergantung pada bagaimana kita memahami mekanisme penguncian skrip UTXO.
Skrip penguncian dapat digunakan untuk memprogram kondisi pembukaan dana dan, oleh karena itu, dapat menerapkan aturan penyimpanan. Misalnya, jika skrip penguncian berisi satu dan hanya satu kunci publik, itu berarti hanya pemilik kunci privat terkait yang dapat mengontrolnya. Namun, aturan penyimpanan tersebut juga menjadi dasar pemrograman protokol kontrak Bitcoin. Misalnya, UTXO yang menggunakan skrip penguncian multi-tanda tangan 2-dari-2 dapat menjadi saluran kilat; selama pengoperasian saluran, kedua pihak dapat saling membayar berkali-kali tanpa ada perubahan dalam bentuk on-chain. dana. Dengan kata lain, saat ini, skrip penguncian multi-tanda tangan 2-dari-2 merupakan mekanisme transfer nilai yang memungkinkan kedua belah pihak untuk mentransfer nilai tanpa mengubah bentuk dana dalam rantai.
Mekanisme seperti itu dapat digunakan untuk nilai Bitcoin yang dibawa oleh UTXO, dan tentu saja juga dapat digunakan untuk aset RGB yang dibawa olehnya. Kita dapat menerbitkan aset RGB dan melampirkannya ke UTXO multi-tanda tangan 2-dari-2, sehingga menggunakan mekanisme saluran petir untuk membayar aset ini satu sama lain dalam jumlah yang tidak terbatas. Dengan cara yang sama, aset RGB juga dapat dimasukkan ke dalam kontrak lain berdasarkan skrip Bitcoin.
Di sini, skrip UTXO dan protokol RGB membentuk diferensiasi fungsional: yang pertama berkomitmen untuk mewujudkan aturan penjagaan nilai dan transfer nilai; sementara yang kedua berfokus pada definisi aset. Dengan demikian, penitipan harta dan pengertian harta dapat dipisahkan. Ini adalah peningkatan keamanan yang penting dan sesuatu yang telah diperjuangkan oleh banyak orang di beberapa sistem kontrak on-chain lainnya.
Desain RGB Sudah Dibuat
Karakteristik di atas sebenarnya berlaku untuk semua protokol berdasarkan penyegelan satu kali UTXO dan verifikasi klien. Namun atas dasar ini, protokol RGB telah dirancang lebih lanjut.
Dalam perkembangan protokol RGB saat ini, pengembang sangat memperhatikan privasi protokol, sehingga RGB memperkuat privasi dalam dua aspek:
UTXO buta. Dalam transaksi RGB, penerima hanya perlu menggunakan pengidentifikasi UTXO yang dikaburkan untuk menerima aset tanpa memaparkan karakteristik UTXO yang sebenarnya menerima aset tersebut. Hal ini tidak mengganggu kemampuan penerima untuk memberikan bukti kepada pemilik berikutnya, sekaligus memungkinkan penerima aset berikutnya untuk membela diri dari pengintaian pemilik aset sebelumnya.
Antipeluru. Dapat digunakan untuk menyembunyikan jumlah tertentu dalam setiap transaksi. Namun, pemilik aset berikutnya masih dapat memverifikasi bahwa belum pernah terjadi penerbitan tambahan.
Ruang untuk dijelajahi
Pada bagian ini, saya akan membahas ruang yang dapat terus dieksplorasi oleh protokol RGB, terutama terkait dengan kemampuan program.
Saat ini, template kontrak (skema) RGB yang diusulkan fokus pada penerbitan aset. Namun, karena RGB menggunakan paradigma "verifikasi sisi klien", kami sebenarnya dapat menambahkan karakteristik apa pun ke dalamnya yang dapat dijamin oleh verifikasi sisi klien - hanya dibatasi oleh struktur UTXO.
Pembatasan
Berdasarkan UTXO, sebuah konsep yang dapat memperluas kemampuan program disebut "perjanjian". Maksud awal dari klausul pembatasan adalah untuk membatasi tujuan pengiriman sejumlah uang. Dengan kemampuan tersebut kita dapat memprogram banyak aplikasi menarik, seperti:
Kumpulan dana untuk penarikan non-interaktif. Kami dapat mengumpulkan dana banyak orang dalam UTXO yang sama dan menggunakan klausul pembatasan untuk memastikan bahwa salah satu dari mereka dapat menarik dananya sendiri tanpa bantuan orang lain. Hal ini dapat memberikan efek membantu masyarakat keluar dari tempat-tempat berisiko tinggi dengan biaya rendah ketika permintaan akan ruang blok tinggi.
Kontrak Gudang. Dana harus dibelanjakan terlebih dahulu di suatu tempat dan melalui kunci waktu sebelum dapat dibelanjakan secara bebas; selama periode kunci waktu, pemilik brankas dapat menghentikan proses ini dengan kunci darurat dan segera mentransfer dana ke tempat lain. Perangkat ini dapat sangat membantu untuk hak asuh otonom.
Bitcoin Script saat ini tidak memiliki kemampuan ini, jadi mengaktifkan pembatasan pada Bitcoin Script memerlukan soft fork.
Namun, selama kita bersedia mengorbankan beberapa manfaat yang dibawa oleh "diferensiasi definisi aset dan mekanisme penyimpanan", kita dapat bereksperimen dengan fitur-fitur tersebut pada aset RGB. Kita dapat mengimplementasikan fungsi-fungsi tersebut pada tingkat kontrak RGB - meskipun hal ini dapat dilakukan. hanya Tidak berfungsi untuk aset RGB yang menggunakannya (dan bukan Bitcoin), tetapi pasti akan membuka ruang yang menarik.
Penelitian yang ada mengenai klausul pembatasan menunjukkan bahwa hal itu dapat memperluas ruang pemrograman transaksi berbasis UTXO dan menyediakan banyak fitur. Namun penelitian ini pada dasarnya didasarkan pada Bitcoin, dan pada protokol seperti Bitcoin, kami akan lebih konservatif. Di RGB, kita dapat dengan berani menggeneralisasi kemampuan inti dari klausul pembatasan - kemampuan untuk membaca transaksi yang dilakukan pada tingkat skrip - untuk memberikan kemampuan program yang lebih fleksibel: kemampuan untuk mengakses kontrak secara silang.
Akses silang
Istilah pembatasan minimal berarti bahwa ketika UTXO dibelanjakan, skripnya dapat membaca keluaran transaksi pembelanjaan. Namun batasan yang digeneralisasikan berarti dapat membaca seluruh bagian transaksi yang menghabiskannya. Artinya bisa juga membaca input transaksi lainnya, jika kita tidak membatasi input lain yang berasal dari kontrak yang sama, berarti bisa membaca status kontrak lain.
Dalam RGB, kami menetapkan secara default bahwa setiap kontrak adalah semesta independen dengan grafik asiklik terarahnya sendiri. Namun, pengguna masih dapat memegang status dua kontrak berbeda secara bersamaan. Jika transaksi RGB memungkinkan pembelanjaan aset secara bersamaan dari kedua kontrak, kemampuan akses silang tersebut mungkin dapat diterapkan (walaupun hal ini dapat membuat verifikasi transaksi menjadi lebih rumit).
Faktanya, sudah ada sistem kontrak on-chain berdasarkan struktur serupa UTXO (misalnya: Jaringan Nervos), yang menggunakannya untuk mencapai kemampuan akses silang kontrak. Ini adalah bidang yang sangat baru, membuka ke area yang jarang disinggung oleh penelitian Bitcoin sebelumnya, dan mungkin ada beberapa kejutan yang terkubur di sana.
Kesimpulannya
Dalam artikel ini, pembaca akan menemukan bahwa ada sebuah konsep yang sering disebutkan dan dijalankan melalui semua proses penalaran dan fantasi: "UTXO". Inilah niat saya. Jika Anda tidak memahami UTXO, Anda tidak dapat memahami titik awal desain protokol seperti RGB, Anda juga tidak dapat memahami kelebihan desain protokol RGB, dan Anda juga tidak dapat membayangkan cara orang menggunakannya. Karakteristik protokol RGB sebagian besar dibentuk oleh bentuk UTXO yang hanya tersegel satu kali. Sejalan dengan itu, penelitian tentang UTXO yang dikumpulkan di bidang penelitian Bitcoin juga dapat diterapkan pada penelitian tentang RGB.
Hal ini juga menjelaskan mengapa orang yang tidak memahami Bitcoin akan kesulitan memahami RGB. Orang yang menyukai Bitcoin akan mengenali desain yang dibuat RGB.