Ditulis oleh Robin Linux Translator: Denlink Community Translation Group
Ringkasan
BitVM adalah paradigma komputasi yang digunakan untuk mengekspresikan kontrak Bitcoin Turing-complete. Ini tidak memerlukan perubahan apa pun pada aturan konsensus jaringan Bitcoin. Tidak seperti melakukan perhitungan pada Bitcoin, mereka hanya diverifikasi, mirip dengan rollup optimis. Prover menyatakan bahwa fungsi yang diberikan mengevaluasi input tertentu ke output tertentu. Jika klaim itu salah, maka verifikator dapat membuat bukti penipuan yang ringkas dan menghukum provers. Dengan menggunakan mekanisme ini, fungsi komputasi apa pun dapat diverifikasi pada Bitcoin.
Menjanjikan program besar pada alamat Taproot membutuhkan banyak perhitungan dan komunikasi off-chain, tetapi jejaknya pada rantai kecil. Selama kedua pihak bekerja sama, mereka dapat melakukan perhitungan off-chain yang rumit dan stateful secara sewenang-wenang tanpa meninggalkan jejak apa pun pada rantai. Penegakan on-chain hanya diperlukan jika terjadi perselisihan.
1 Pengantar
Secara desain, fungsi kontrak pintar Bitcoin terbatas pada operasi dasar seperti tanda tangan, kunci waktu, dan kunci hash. BitVM menciptakan ruang desain baru untuk kontrak Bitcoin yang lebih ekspresif dan komputasi off-chain. Aplikasi potensial termasuk permainan seperti catur, Go, atau poker, serta verifikasi bukti validitas dalam kontrak Bitcoin. Selain itu, dimungkinkan untuk menjembatani Bitcoin ke rantai eksternal, membangun pasar prediksi, atau mensimulasikan opcode baru.
Kerugian utama dari model yang disajikan di sini adalah bahwa ia hanya bekerja dengan dua pengaturan, prover dan verifier. Keterbatasan lain adalah bahwa untuk provers dan verifiers, banyak perhitungan off-chain dan komunikasi diperlukan untuk menjalankan program. Namun, masalah ini tampaknya menjanjikan untuk ditangani dengan penelitian lebih lanjut. Dalam pekerjaan ini, kami hanya fokus pada komponen kunci dari BitVM dua pihak.
2 Skema
Dengan Rollups optimis 1[2] [3] dan proposal MATT (Merkelize All The Things) 2 Demikian pula, sistem kami didasarkan pada protokol bukti penipuan dan respons tantangan. Namun, BitVM tidak memerlukan perubahan apa pun pada aturan konsensus Bitcoin. Primitif yang mendasarinya relatif sederhana. Ini terutama didasarkan pada kunci hash, kunci waktu, dan pohon akar tunggang besar.
Prover mengirimkan program sedikit demi sedikit ke rantai, tetapi memvalidasi semua on-chain akan mengkonsumsi sumber daya komputasi yang berlebihan, sehingga verifier melakukan serangkaian tantangan rumit untuk secara ringkas memalsukan klaim palsu prover. Bersama-sama, prover dan verifier menandatangani serangkaian tantangan – menanggapi transaksi untuk menyelesaikan perselisihan apa pun nanti.
Model ini bertujuan untuk hanya menggambarkan bahwa pendekatan ini memungkinkan perhitungan universal pada Bitcoin. Untuk aplikasi praktis, kita harus mempertimbangkan model yang lebih efisien.
Protokolnya sederhana: pertama, prover dan verifier mengkompilasi program ke dalam sirkuit biner raksasa. Prover mengirimkan sirkuit ke alamat Taproot dengan skrip daun untuk setiap gerbang logika di alamat itu. Selain itu, mereka menandatangani serangkaian transaksi untuk mendukung permainan tantangan-respons antara provers dan verifikator. Sekarang mereka telah bertukar semua data yang diperlukan, mereka dapat mentransfer setoran on-chain mereka ke alamat Taproot yang dihasilkan.
Ini mengaktifkan kontrak dan mereka dapat mulai menukar data off-chain untuk memicu perubahan status di sirkuit. Jika prover membuat klaim palsu, verifikator dapat mengambil deposit mereka. Ini memastikan bahwa penyerang akan selalu kehilangan deposit mereka.
Komitmen Nilai 3 Bit
Komitmen nilai bit adalah komponen paling dasar dari sistem ini. Ini memungkinkan prover untuk mengatur nilai bit tertentu menjadi "0" atau "1". Secara khusus, ini memungkinkan prover untuk mengatur nilai variabel antara skrip yang berbeda dan UTXO. Ini sangat penting karena menskalakan runtime eksekusi dengan membagi waktu eksekusi mesin virtual Bitcoin menjadi beberapa transaksi.
Janji tersebut berisi dua nilai hash, hash0 dan hash1. Pada titik selanjutnya, prover menetapkan nilai bit ke "0" dengan mengungkapkan preimage0 (preimage hash0) atau ke "1" dengan mengungkapkan preimage1 (preimage hash1). Jika, pada titik tertentu, mereka mengungkapkan preimage0 dan preimage1, maka validator dapat menggunakannya sebagai bukti penipuan dan mengambil deposit prover. Ini disebut pernyataan yang kontradiktif. Mampu menghukum pernyataan yang kontradiktif adalah apa yang membuat komitmen mengikat – ini adalah "komitmen berbasis insentif."
Menggabungkan janji bit-value dengan timelock memungkinkan validator untuk memaksa prover untuk memutuskan nilai bit tertentu dalam jangka waktu tertentu.
Gambar 1: Implementasi komitmen bit-valueGambar 1: Implementasi komitmen 1-bit. Untuk membuka kunci skrip ini, prover harus mengungkapkan salah satu preimages hash0 atau hash1. Dalam contoh eksekusi ini, prover mengungkapkan hash1 dan menetapkan nilai bit ke "1". Kita dapat mereplikasi janji ini untuk menerapkan nilai tertentu dalam skrip yang berbeda.
UNTUK PENYEDERHANAAN, DARI SINI, MARI KITA ASUMSIKAN BAHWA ADA OPCODE YANG DISEBUT OP BITCOMMITMENT, YANG MERUPAKAN SINGKATAN DARI SKRIP DI ATAS. Opcode mengkonsumsi dua hash dan satu preimage hash. Berdasarkan hash yang cocok dengan preimage, ia menempatkan nilai bit pada tumpukan.
4 Janji gerbang logika
Setiap fungsi komputasi dapat direpresentasikan sebagai sirkuit Boolean. Gerbang NAND adalah gerbang logika universal, sehingga setiap fungsi Boolean dapat terdiri darinya. Agar model kami tetap sederhana, kami menunjukkan bagaimana pendekatan kami bekerja dengan gerbang NAND sederhana. Selain itu, kami menunjukkan cara menggabungkan pintu secara sewenang-wenang. Semua ini membuktikan bahwa BitVM dapat mewakili sirkuit apa pun.
Realisasi janji gerbang NAND sederhana. Ini berisi dua janji bit yang mewakili dua input dan satu komitmen bit yang mewakili output. Skrip menghitung nilai NAND dari dua input untuk memastikan bahwa itu cocok dengan bit output yang dijanjikan.
Gambar 2: Komitmen Gerbang untuk Operasi NAND Gambar 2: Komitmen Gerbang untuk Operasi NAND. Menjalankan skrip ini perlu mengungkapkan nilai-nilai janji bit A, B, dan C sedemikian rupa sehingga A NAND B = C benar.
(Di sini, untuk mempermudah, mari kita asumsikan bahwa opcode bernama OP NAND ada.) SEBENARNYA, ITU TIDAK ADA, TETAPI DAPAT DENGAN MUDAH DIIMPLEMENTASIKAN MENGGUNAKAN OP BOOLAND DAN OP NOT. )
5 Janji sirkuit biner
Di bagian sebelumnya, kami mendefinisikan komitmen gerbang NAND. Kita dapat mewakili sirkuit apa pun dengan menggabungkan janji gerbang. Setiap langkah eksekusi dilakukan di Tapleaf. Mereka semua digabungkan ke alamat Taproot yang sama sehingga prover dapat mengeksekusi gerbang apa pun di sirkuit. Mengeksekusi gerbang mengharuskan prover untuk membuka janji gerbang yang sesuai dan menetapkan nilai untuk bit input dan outputnya.
Taptree mungkin menjadi besar dan memiliki satu miliar skrip Tapleaf, tetapi jejak on-chain-nya kecil.
Gambar 3: Contoh rangkaian acak Gambar 3: Contoh rangkaian acak dengan 8 gerbang NAND yang berbeda dan 4 input A, B, C, dan D. Menggunakan miliaran gerbang, pada dasarnya fungsi apa pun dapat didefinisikan.
Gambar 4Gambar 4: Untuk setiap gerbang, alamat akar tunggang prover berisi skrip daun dengan janji gerbang yang sesuai. Ini memungkinkan prover untuk mengatur nilai input sirkuit kapan saja (di sini A, B, C, dan D).
6 Tantangan dan Tanggapan
Tidak cukup hanya berkomitmen pada sirkuit. Untuk membantah klaim yang salah, verifikator harus dapat menantang pernyataan pepatah. Ini dapat dicapai dengan menandatangani serangkaian transaksi selama penyiapan. Transaksi ini menanggapi tantangan → →→ menanggapi →... cara terhubung. Jika salah satu pihak berhenti berpartisipasi, maka setelah periode waktu habis, pihak lain memenangkan tantangan dan dapat mengambil deposit kedua belah pihak. Selama kedua belah pihak bekerja sama, mereka dapat bekerja sama untuk menyelesaikan kontrak apa pun melalui tanda tangan 2-dari-2. Mekanisme berikut hanya diperlukan jika ada penipuan.
Gambar 5: Serangkaian transaksi yang telah ditandatangani sebelumnyaGambar 5: Serangkaian transaksi yang telah ditandatangani sebelumnya untuk melakukan beberapa putaran tantangan dan respons. Urutan ini dihasilkan selama pengaturan.
Vicky memilih tantangan dengan membuka kunci hash di daun Tap miliknya. Ini akan membuka Tap khusus untuk Paul dan memaksanya untuk mengeksekusinya. Naskah memaksa Paul untuk mengungkapkan janji pintu tantangan Vicky. Dengan mengulangi proses ini untuk beberapa putaran kueri, Anda dapat dengan cepat membantah klaim yang tidak konsisten.
Jika prover berhenti bekerja sama off-chain dengan validator, validator membutuhkan cara untuk memaksa prover bertindak on-chain. Validator mencapai ini dengan membuka kunci hash: setiap NAND Tapleaf di UTXO prover hanya dapat dihabiskan jika prover mengetahui preimage yang dipegang oleh pemberi sertifikat. Dengan demikian, prover dapat membuktikan bahwa Tapleaf yang diberikan berkinerja benar dengan mengungkapkan input dan outputnya, tetapi hanya jika verifier "membukanya" dengan mengungkapkan preimage hash yang melindungi Tapleaf itu. Dengan menerapkan pencarian biner, validator dapat dengan cepat mengidentifikasi kesalahan pembuktian setelah hanya beberapa putaran tantangan dan tanggapan.
Gambar 6: Setelah setiap tanggapan, Vicky dapat menghukum perilaku ambigu. Jika Paul memaparkan dua nilai yang bertentangan ke variabel, Vicky segera memenangkan tantangan dan diizinkan untuk mengambil depositnya. Vicky membuktikan ambiguitas Paul dengan mengungkapkan salah satu dari dua protoimages yang dijanjikan oleh bagian-bagiannya.
7 Input dan output
Prover dapat mengatur input dengan mengungkapkan janji bit yang sesuai. Idealnya, mereka mengungkapkan komitmen off-chain untuk meminimalkan hunian on-chain. Dalam kasus non-kooperatif, validator dapat memaksa prover untuk mengungkapkan input mereka secara on-chain.
Sejumlah besar data dapat diproses dengan bertukar enkripsi terlebih dahulu. Dengan cara ini, prover dapat mengungkapkan kunci dekripsi di lain waktu.
Masukan multi-pihak juga dimungkinkan. Pintu dapat memiliki sedikit komitmen dari kedua sisi.
8 Batasan dan Outlook
Tidak efisien untuk mewakili fungsi dalam sirkuit NAND sederhana. Dengan menggunakan opcode yang lebih canggih, program dapat direpresentasikan dengan lebih efisien. Misalnya, Bitcoin Script mendukung penambahan angka 32-bit, jadi kita tidak memerlukan sirkuit biner. Kita juga dapat memiliki janji bit yang lebih besar, misalnya, 32 bit dalam satu hash. Selain itu, ukuran skripnya bisa mencapai sekitar 4 MB. Dengan demikian, kita dapat mengimplementasikan lebih dari satu instruksi NAND di setiap skrip daun.
Model yang disajikan di sini terbatas pada dua pihak. Namun, dimungkinkan untuk memiliki saluran dua arah dan menghubungkannya bersama untuk membentuk jaringan yang mirip dengan Jaringan Petir. Menjelajahi kedua pengaturan dapat menghasilkan kemungkinan generalisasi yang menarik. Misalnya, kita dapat menjelajahi topologi star 1 hingga n untuk jaringan. Pertanyaan penelitian lain adalah apakah kita dapat menerapkan model kita ke pengaturan n-to-n dan membuat pabrik saluran yang lebih kompleks. Selain itu, kami dapat menggabungkan sistem kami dengan protokol off-chain yang berbeda seperti Lightning Network atau Rollups.
Arah penelitian lainnya termasuk memori aplikasi silang, cara membuat pernyataan tentang data sewenang-wenang yang terukir pada rantai, atau sirkuit yang dapat diprogram di luar rantai, yaitu mesin virtual off-chain. Teknik pengambilan sampel yang lebih canggih, mirip dengan STARK, juga dapat diterapkan, untuk memeriksa sirkuit dalam satu putaran.
Tonggak besar berikutnya adalah penyelesaian desain dan implementasi BitVM yang konkret, serta Tree ++, bahasa tingkat tinggi untuk menulis dan men-debug kontrak Bitcoin.
9 Kesimpulan
Bitcoin adalah Turing-complete dalam arti tertentu, karena bukti penipuan pengkodean di Taptrees besar memverifikasi pelaksanaan program apa pun. Keterbatasan utama dari model ini adalah bahwa ia hanya berfungsi dalam kasus kedua belah pihak. Diharapkan generalisasi dapat dilakukan dalam pekerjaan selanjutnya.
Ucapan Terima Kasih
Terima kasih khusus kepada Super Testnet dan Sam Parker, yang selalu percaya bahwa Bitcoin tidak akan lengkap Turing.
Referensi
[1] Penelitian Ethereum. Rollup optimis. 2022.
[2] Salvatore Ingala. Merkleize semua hal. , 2022.
Sumber daya
[1] Tim Penerjemah:
[2] Rollups Optimis 1:
[3] MATT 提案(Merkelize All The Things)2:
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.
BitVM: Hitung apa pun di Bitcoin
Ditulis oleh Robin Linux Translator: Denlink Community Translation Group
Ringkasan
BitVM adalah paradigma komputasi yang digunakan untuk mengekspresikan kontrak Bitcoin Turing-complete. Ini tidak memerlukan perubahan apa pun pada aturan konsensus jaringan Bitcoin. Tidak seperti melakukan perhitungan pada Bitcoin, mereka hanya diverifikasi, mirip dengan rollup optimis. Prover menyatakan bahwa fungsi yang diberikan mengevaluasi input tertentu ke output tertentu. Jika klaim itu salah, maka verifikator dapat membuat bukti penipuan yang ringkas dan menghukum provers. Dengan menggunakan mekanisme ini, fungsi komputasi apa pun dapat diverifikasi pada Bitcoin.
Menjanjikan program besar pada alamat Taproot membutuhkan banyak perhitungan dan komunikasi off-chain, tetapi jejaknya pada rantai kecil. Selama kedua pihak bekerja sama, mereka dapat melakukan perhitungan off-chain yang rumit dan stateful secara sewenang-wenang tanpa meninggalkan jejak apa pun pada rantai. Penegakan on-chain hanya diperlukan jika terjadi perselisihan.
1 Pengantar
Secara desain, fungsi kontrak pintar Bitcoin terbatas pada operasi dasar seperti tanda tangan, kunci waktu, dan kunci hash. BitVM menciptakan ruang desain baru untuk kontrak Bitcoin yang lebih ekspresif dan komputasi off-chain. Aplikasi potensial termasuk permainan seperti catur, Go, atau poker, serta verifikasi bukti validitas dalam kontrak Bitcoin. Selain itu, dimungkinkan untuk menjembatani Bitcoin ke rantai eksternal, membangun pasar prediksi, atau mensimulasikan opcode baru.
Kerugian utama dari model yang disajikan di sini adalah bahwa ia hanya bekerja dengan dua pengaturan, prover dan verifier. Keterbatasan lain adalah bahwa untuk provers dan verifiers, banyak perhitungan off-chain dan komunikasi diperlukan untuk menjalankan program. Namun, masalah ini tampaknya menjanjikan untuk ditangani dengan penelitian lebih lanjut. Dalam pekerjaan ini, kami hanya fokus pada komponen kunci dari BitVM dua pihak.
2 Skema
Dengan Rollups optimis 1[2] [3] dan proposal MATT (Merkelize All The Things) 2 Demikian pula, sistem kami didasarkan pada protokol bukti penipuan dan respons tantangan. Namun, BitVM tidak memerlukan perubahan apa pun pada aturan konsensus Bitcoin. Primitif yang mendasarinya relatif sederhana. Ini terutama didasarkan pada kunci hash, kunci waktu, dan pohon akar tunggang besar.
Prover mengirimkan program sedikit demi sedikit ke rantai, tetapi memvalidasi semua on-chain akan mengkonsumsi sumber daya komputasi yang berlebihan, sehingga verifier melakukan serangkaian tantangan rumit untuk secara ringkas memalsukan klaim palsu prover. Bersama-sama, prover dan verifier menandatangani serangkaian tantangan – menanggapi transaksi untuk menyelesaikan perselisihan apa pun nanti.
Model ini bertujuan untuk hanya menggambarkan bahwa pendekatan ini memungkinkan perhitungan universal pada Bitcoin. Untuk aplikasi praktis, kita harus mempertimbangkan model yang lebih efisien.
Protokolnya sederhana: pertama, prover dan verifier mengkompilasi program ke dalam sirkuit biner raksasa. Prover mengirimkan sirkuit ke alamat Taproot dengan skrip daun untuk setiap gerbang logika di alamat itu. Selain itu, mereka menandatangani serangkaian transaksi untuk mendukung permainan tantangan-respons antara provers dan verifikator. Sekarang mereka telah bertukar semua data yang diperlukan, mereka dapat mentransfer setoran on-chain mereka ke alamat Taproot yang dihasilkan.
Ini mengaktifkan kontrak dan mereka dapat mulai menukar data off-chain untuk memicu perubahan status di sirkuit. Jika prover membuat klaim palsu, verifikator dapat mengambil deposit mereka. Ini memastikan bahwa penyerang akan selalu kehilangan deposit mereka.
Komitmen Nilai 3 Bit
Komitmen nilai bit adalah komponen paling dasar dari sistem ini. Ini memungkinkan prover untuk mengatur nilai bit tertentu menjadi "0" atau "1". Secara khusus, ini memungkinkan prover untuk mengatur nilai variabel antara skrip yang berbeda dan UTXO. Ini sangat penting karena menskalakan runtime eksekusi dengan membagi waktu eksekusi mesin virtual Bitcoin menjadi beberapa transaksi.
Janji tersebut berisi dua nilai hash, hash0 dan hash1. Pada titik selanjutnya, prover menetapkan nilai bit ke "0" dengan mengungkapkan preimage0 (preimage hash0) atau ke "1" dengan mengungkapkan preimage1 (preimage hash1). Jika, pada titik tertentu, mereka mengungkapkan preimage0 dan preimage1, maka validator dapat menggunakannya sebagai bukti penipuan dan mengambil deposit prover. Ini disebut pernyataan yang kontradiktif. Mampu menghukum pernyataan yang kontradiktif adalah apa yang membuat komitmen mengikat – ini adalah "komitmen berbasis insentif."
Menggabungkan janji bit-value dengan timelock memungkinkan validator untuk memaksa prover untuk memutuskan nilai bit tertentu dalam jangka waktu tertentu.
Gambar 1: Implementasi komitmen bit-valueGambar 1: Implementasi komitmen 1-bit. Untuk membuka kunci skrip ini, prover harus mengungkapkan salah satu preimages hash0 atau hash1. Dalam contoh eksekusi ini, prover mengungkapkan hash1 dan menetapkan nilai bit ke "1". Kita dapat mereplikasi janji ini untuk menerapkan nilai tertentu dalam skrip yang berbeda.
UNTUK PENYEDERHANAAN, DARI SINI, MARI KITA ASUMSIKAN BAHWA ADA OPCODE YANG DISEBUT OP BITCOMMITMENT, YANG MERUPAKAN SINGKATAN DARI SKRIP DI ATAS. Opcode mengkonsumsi dua hash dan satu preimage hash. Berdasarkan hash yang cocok dengan preimage, ia menempatkan nilai bit pada tumpukan.
4 Janji gerbang logika
Setiap fungsi komputasi dapat direpresentasikan sebagai sirkuit Boolean. Gerbang NAND adalah gerbang logika universal, sehingga setiap fungsi Boolean dapat terdiri darinya. Agar model kami tetap sederhana, kami menunjukkan bagaimana pendekatan kami bekerja dengan gerbang NAND sederhana. Selain itu, kami menunjukkan cara menggabungkan pintu secara sewenang-wenang. Semua ini membuktikan bahwa BitVM dapat mewakili sirkuit apa pun.
Realisasi janji gerbang NAND sederhana. Ini berisi dua janji bit yang mewakili dua input dan satu komitmen bit yang mewakili output. Skrip menghitung nilai NAND dari dua input untuk memastikan bahwa itu cocok dengan bit output yang dijanjikan.
Gambar 2: Komitmen Gerbang untuk Operasi NAND Gambar 2: Komitmen Gerbang untuk Operasi NAND. Menjalankan skrip ini perlu mengungkapkan nilai-nilai janji bit A, B, dan C sedemikian rupa sehingga A NAND B = C benar.
(Di sini, untuk mempermudah, mari kita asumsikan bahwa opcode bernama OP NAND ada.) SEBENARNYA, ITU TIDAK ADA, TETAPI DAPAT DENGAN MUDAH DIIMPLEMENTASIKAN MENGGUNAKAN OP BOOLAND DAN OP NOT. )
5 Janji sirkuit biner
Di bagian sebelumnya, kami mendefinisikan komitmen gerbang NAND. Kita dapat mewakili sirkuit apa pun dengan menggabungkan janji gerbang. Setiap langkah eksekusi dilakukan di Tapleaf. Mereka semua digabungkan ke alamat Taproot yang sama sehingga prover dapat mengeksekusi gerbang apa pun di sirkuit. Mengeksekusi gerbang mengharuskan prover untuk membuka janji gerbang yang sesuai dan menetapkan nilai untuk bit input dan outputnya.
Taptree mungkin menjadi besar dan memiliki satu miliar skrip Tapleaf, tetapi jejak on-chain-nya kecil.
Gambar 3: Contoh rangkaian acak Gambar 3: Contoh rangkaian acak dengan 8 gerbang NAND yang berbeda dan 4 input A, B, C, dan D. Menggunakan miliaran gerbang, pada dasarnya fungsi apa pun dapat didefinisikan.
6 Tantangan dan Tanggapan
Tidak cukup hanya berkomitmen pada sirkuit. Untuk membantah klaim yang salah, verifikator harus dapat menantang pernyataan pepatah. Ini dapat dicapai dengan menandatangani serangkaian transaksi selama penyiapan. Transaksi ini menanggapi tantangan → →→ menanggapi →... cara terhubung. Jika salah satu pihak berhenti berpartisipasi, maka setelah periode waktu habis, pihak lain memenangkan tantangan dan dapat mengambil deposit kedua belah pihak. Selama kedua belah pihak bekerja sama, mereka dapat bekerja sama untuk menyelesaikan kontrak apa pun melalui tanda tangan 2-dari-2. Mekanisme berikut hanya diperlukan jika ada penipuan.
Vicky memilih tantangan dengan membuka kunci hash di daun Tap miliknya. Ini akan membuka Tap khusus untuk Paul dan memaksanya untuk mengeksekusinya. Naskah memaksa Paul untuk mengungkapkan janji pintu tantangan Vicky. Dengan mengulangi proses ini untuk beberapa putaran kueri, Anda dapat dengan cepat membantah klaim yang tidak konsisten.
Jika prover berhenti bekerja sama off-chain dengan validator, validator membutuhkan cara untuk memaksa prover bertindak on-chain. Validator mencapai ini dengan membuka kunci hash: setiap NAND Tapleaf di UTXO prover hanya dapat dihabiskan jika prover mengetahui preimage yang dipegang oleh pemberi sertifikat. Dengan demikian, prover dapat membuktikan bahwa Tapleaf yang diberikan berkinerja benar dengan mengungkapkan input dan outputnya, tetapi hanya jika verifier "membukanya" dengan mengungkapkan preimage hash yang melindungi Tapleaf itu. Dengan menerapkan pencarian biner, validator dapat dengan cepat mengidentifikasi kesalahan pembuktian setelah hanya beberapa putaran tantangan dan tanggapan.
7 Input dan output
Prover dapat mengatur input dengan mengungkapkan janji bit yang sesuai. Idealnya, mereka mengungkapkan komitmen off-chain untuk meminimalkan hunian on-chain. Dalam kasus non-kooperatif, validator dapat memaksa prover untuk mengungkapkan input mereka secara on-chain.
Sejumlah besar data dapat diproses dengan bertukar enkripsi terlebih dahulu. Dengan cara ini, prover dapat mengungkapkan kunci dekripsi di lain waktu.
Masukan multi-pihak juga dimungkinkan. Pintu dapat memiliki sedikit komitmen dari kedua sisi.
8 Batasan dan Outlook
Tidak efisien untuk mewakili fungsi dalam sirkuit NAND sederhana. Dengan menggunakan opcode yang lebih canggih, program dapat direpresentasikan dengan lebih efisien. Misalnya, Bitcoin Script mendukung penambahan angka 32-bit, jadi kita tidak memerlukan sirkuit biner. Kita juga dapat memiliki janji bit yang lebih besar, misalnya, 32 bit dalam satu hash. Selain itu, ukuran skripnya bisa mencapai sekitar 4 MB. Dengan demikian, kita dapat mengimplementasikan lebih dari satu instruksi NAND di setiap skrip daun.
Model yang disajikan di sini terbatas pada dua pihak. Namun, dimungkinkan untuk memiliki saluran dua arah dan menghubungkannya bersama untuk membentuk jaringan yang mirip dengan Jaringan Petir. Menjelajahi kedua pengaturan dapat menghasilkan kemungkinan generalisasi yang menarik. Misalnya, kita dapat menjelajahi topologi star 1 hingga n untuk jaringan. Pertanyaan penelitian lain adalah apakah kita dapat menerapkan model kita ke pengaturan n-to-n dan membuat pabrik saluran yang lebih kompleks. Selain itu, kami dapat menggabungkan sistem kami dengan protokol off-chain yang berbeda seperti Lightning Network atau Rollups.
Arah penelitian lainnya termasuk memori aplikasi silang, cara membuat pernyataan tentang data sewenang-wenang yang terukir pada rantai, atau sirkuit yang dapat diprogram di luar rantai, yaitu mesin virtual off-chain. Teknik pengambilan sampel yang lebih canggih, mirip dengan STARK, juga dapat diterapkan, untuk memeriksa sirkuit dalam satu putaran.
Tonggak besar berikutnya adalah penyelesaian desain dan implementasi BitVM yang konkret, serta Tree ++, bahasa tingkat tinggi untuk menulis dan men-debug kontrak Bitcoin.
9 Kesimpulan
Bitcoin adalah Turing-complete dalam arti tertentu, karena bukti penipuan pengkodean di Taptrees besar memverifikasi pelaksanaan program apa pun. Keterbatasan utama dari model ini adalah bahwa ia hanya berfungsi dalam kasus kedua belah pihak. Diharapkan generalisasi dapat dilakukan dalam pekerjaan selanjutnya.
Ucapan Terima Kasih
Terima kasih khusus kepada Super Testnet dan Sam Parker, yang selalu percaya bahwa Bitcoin tidak akan lengkap Turing.
Referensi
[1] Penelitian Ethereum. Rollup optimis. 2022.
[2] Salvatore Ingala. Merkleize semua hal. , 2022.
Sumber daya
[1] Tim Penerjemah:
[2] Rollups Optimis 1:
[3] MATT 提案(Merkelize All The Things)2: