Interpretasi Sederhana dari BitVM: Cara Memverifikasi Bukti Penipuan di Blockchain BTC

Menengah2/23/2024, 7:49:16 AM
Artikel ini menginterpretasikan whitepaper BitVM, menyajikan konsep BitVM: Data tidak perlu on-chain pada awalnya; data dipublikasikan dan disimpan secara off-chain, dengan hanya Komitmen yang disimpan di blockchain.

TL; DR

Pengantar:

Artikel ini memberikan interpretasi terhadap whitepaper BitVM, menjelaskan pendekatan BitVM: Data tidak perlu on-chain pada awalnya; data dipublikasikan dan disimpan secara off-chain, dengan hanya Komitmen yang disimpan di blockchain.

Judul Artikel Asli yang Diteruskan: Interpretasi Sederhana dari BitVM: Cara Memverifikasi Bukti Penipuan di Blockchain BTC (Menjalankan EVM atau Opcode VM Lainnya)

Kata pengantar: Saat ini, Bitcoin Layer 2 telah menjadi tren, dengan lusinan proyek yang mengidentifikasi diri sebagai "Bitcoin Layer 2". Banyak di antaranya, yang mengklaim sebagai "Rollups", menyatakan bahwa mereka menggunakan pendekatan yang diusulkan dalam whitepaper BitVM, memposisikan BitVM sebagai bagian penting dari ekosistem Bitcoin.

Akan tetapi, sebagian besar literatur yang ada mengenai BitVM tidak menjelaskan prinsip-prinsipnya dalam istilah awam. Artikel ini, berdasarkan pembacaan kami terhadap whitepaper BitVM setebal 8 halaman dan setelah membaca sumber-sumber yang berkaitan dengan Taproot, pohon MAST, dan Bitcoin Script, menawarkan sebuah rangkuman yang disederhanakan. Untuk membantu pemahaman, kami telah mengubah beberapa ekspresi dari yang terdapat pada whitepaper BitVM, dengan asumsi bahwa pembaca memiliki pengetahuan tentang Layer 2 dan dapat memahami ide dasar dari "bukti-bukti penipuan".

Konsep awal BitVM dapat diringkas dalam beberapa kalimat: BitVM menghilangkan kebutuhan akan data on-chain, yang pada awalnya menerbitkan dan menyimpan data secara off-chain, dengan hanya Komitmen yang tersimpan di dalam blockchain. Dalam kasus tantangan atau bukti penipuan, hanya data yang diperlukan yang dibawa secara on-chain untuk menunjukkan hubungannya dengan Komitmen pada blockchain. Selanjutnya, mainnet BTC memverifikasi data on-chain untuk setiap masalah dan apakah produsen data (node yang memproses transaksi) telah terlibat dalam aktivitas jahat. Pendekatan ini mengikuti prinsip Occam's Razor - "Entitas tidak boleh digandakan jika tidak perlu" (jika bisa di-off-chain, jaga agar tetap off-chain).

Teks Utama: Skema verifikasi bukti penipuan blockchain BTC yang disebut sebagai BitVM, dalam istilah awam:

1. Pertama, komputer/prosesor adalah sistem input-output yang terdiri dari sejumlah besar rangkaian gerbang logika. Salah satu ide inti dari BitVM adalah menggunakan Skrip Bitcoin untuk mensimulasikan efek input-output dari rangkaian gerbang logika. Selama sirkuit gerbang logika dapat disimulasikan, secara teori, mesin Turing dapat dicapai, menyelesaikan semua tugas yang dapat dikomputasi. Ini berarti bahwa jika Anda memiliki sumber daya dan tenaga kerja yang cukup, Anda dapat mengumpulkan tim insinyur untuk pertama-tama mensimulasikan sirkuit gerbang logika menggunakan kode Skrip Bitcoin yang belum sempurna, dan kemudian menggunakan sirkuit gerbang logika dalam jumlah yang sangat banyak untuk mengimplementasikan fungsi EVM atau WASM.

(Tangkapan layar ini berasal dari sebuah game edukasi: "Turing Complete", di mana konten intinya adalah membangun prosesor CPU yang lengkap, terutama menggunakan sirkuit gerbang logika seperti gerbang NAND).

Beberapa orang menyamakan pendekatan BitVM dengan membangun prosesor M1 di "Minecraft" menggunakan sirkuit redstone. Atau, ini mirip dengan membangun Empire State Building di New York dengan balok-balok LEGO.

(Konon, ada yang menghabiskan waktu satu tahun untuk membangun "prosesor" di "Minecraft").

  1. Jadi, mengapa menggunakan Bitcoin Script untuk mensimulasikan EVM atau WASM? Bukankah itu sangat merepotkan? Alasannya adalah karena sebagian besar solusi Bitcoin Layer 2 sering kali memilih untuk mendukung bahasa tingkat tinggi seperti Solidity atau Move, sementara satu-satunya bahasa yang saat ini dapat berjalan langsung di blockchain Bitcoin adalah Bitcoin Script. Bahasa ini primitif, terdiri dari sekumpulan opcode yang unik, dan bukan Turing yang lengkap.

(Contoh kode Skrip Bitcoin)

Jika Bitcoin Layer 2 bertujuan untuk memverifikasi bukti-bukti penipuan pada Layer 1 seperti solusi Layer 2 Ethereum seperti Arbitrum, untuk mewarisi keamanan BTC, maka perlu untuk secara langsung memverifikasi "transaksi yang disengketakan" atau "opcode yang disengketakan" pada blockchain BTC. Ini berarti bahwa bahasa Solidity / EVM opcode yang digunakan oleh Layer 2 perlu dieksekusi ulang pada blockchain Bitcoin. Tantangannya bermuara pada:

Menggunakan Bitcoin Script, bahasa pemrograman asli namun belum sempurna dari Bitcoin, untuk mencapai efek EVM atau mesin virtual lainnya.

Oleh karena itu, dari perspektif prinsip-prinsip kompilasi, pendekatan BitVM menerjemahkan opcode EVM / WASM / JavaScript ke dalam opcode Bitcoin Script, dengan sirkuit gerbang logika yang berfungsi sebagai representasi perantara (IR) antara "EVM opcodes -> Bitcoin Script opcodes".


(Whitepaper BitVM membahas pendekatan umum untuk mengeksekusi "instruksi yang diperdebatkan" tertentu pada blockchain Bitcoin)

Bagaimanapun, efek utama yang disimulasikan adalah untuk memproses instruksi, yang awalnya hanya dapat ditangani di EVM / WASM, langsung di blockchain Bitcoin. Meskipun solusi ini dapat dilakukan, namun kesulitannya terletak pada cara menggunakan sejumlah besar rangkaian gerbang logika sebagai bentuk perantara untuk mengekspresikan semua opcode EVM/WASM. Selain itu, menggunakan kombinasi rangkaian gerbang logika untuk secara langsung mewakili beberapa alur pemrosesan transaksi yang sangat kompleks dapat mengakibatkan beban kerja yang sangat besar.

  1. Mari kita bahas konsep inti lain yang disebutkan dalam whitepaper BitVM, yaitu "Bukti Penipuan Interaktif" yang sangat mirip dengan yang digunakan oleh Arbitrum.

Bukti Penipuan Interaktif melibatkan istilah yang dikenal dengan istilah assert. Biasanya, pengusul Layer 2 (sering kali dilakukan oleh sequencer) menerbitkan sebuah pernyataan pada Layer 1, menyatakan bahwa data transaksi tertentu dan hasil transisi state adalah valid dan bebas dari kesalahan.

Jika seseorang meyakini bahwa pernyataan yang diajukan oleh pengusul bermasalah (data terkait tidak benar), maka akan terjadi sengketa. Pada titik ini, pengaju dan penantang bertukar informasi dalam putaran dan menggunakan metode pencarian biner pada data yang diperdebatkan untuk dengan cepat menemukan instruksi operasi yang sangat halus dan segmen data yang terkait.

Untuk instruksi operasi yang diperdebatkan (Kode OP), perlu untuk mengeksekusinya secara langsung di Layer 1 bersama dengan parameter inputnya dan memvalidasi hasil outputnya (node-node Layer 1 membandingkan hasil output yang mereka hitung dengan hasil output yang sebelumnya diterbitkan oleh pengusul). Di Arbitrum, hal ini dikenal sebagai "Pembuktian Penipuan Satu Langkah". (Dalam protokol bukti kecurangan interaktif Arbitrum, pencarian biner digunakan untuk dengan cepat menemukan instruksi yang disengketakan dan hasil eksekusinya, dan kemudian bukti kecurangan satu langkah dikirim ke Lapisan 1 untuk verifikasi akhir).

Menindaklanjuti hal ini:

  1. Prosesnya interaktif, dengan kedua belah pihak secara bergantian. Satu pihak melakukan segmentasi data historis yang terkandung dalam Rollup Block, dan pihak lainnya menunjukkan segmen data mana yang bermasalah. Hal ini mirip dengan metode biner (pada kenyataannya, suatu proses penyempitan kisaran secara progresif, N/K).

  2. Selanjutnya, dimungkinkan untuk menemukan lebih lanjut transaksi dan hasil mana yang bermasalah, dan kemudian mempersempit lebih lanjut ke instruksi mesin tertentu dalam transaksi yang dipermasalahkan.

  3. Kontrak ChallengeManager hanya memeriksa apakah "segmen data" yang dihasilkan oleh pembagian data asli adalah valid.

  4. Setelah penantang dan yang ditantang menemukan instruksi mesin yang akan ditantang, penantang memanggil oneStepProveExecution(), mengirimkan bukti kecurangan satu langkah untuk menunjukkan bahwa ada masalah dengan hasil eksekusi instruksi mesin ini.

(Dalam protokol bukti kecurangan interaktif Arbitrum, prosesnya melibatkan penggunaan pencarian biner untuk dengan cepat menemukan instruksi yang disengketakan dan hasil eksekusinya dari data yang dipublikasikan oleh Pengusul. Setelah mengidentifikasi bagian data yang diperdebatkan atau opcode, bukti penipuan satu langkah dikirim ke Layer 1 untuk verifikasi akhir).

Referensi:

Mantan duta teknis Arbitrum menjelaskan struktur komponen Arbitrum (Bagian 1)

(Bagan alur bukti kecurangan interaktif Arbitrum, penjelasannya relatif kasar)

Pada titik ini, konsep bukti penipuan satu langkah menjadi sangat mudah: sebagian besar instruksi transaksi yang terjadi di Layer 2 tidak perlu diverifikasi ulang di blockchain BTC. Namun, jika segmen data/opcode tertentu yang disengketakan ditantang, segmen tersebut harus diulang pada Layer 1.

Jika hasil verifikasi menunjukkan bahwa data yang sebelumnya dipublikasikan oleh Pengusul bermasalah, maka aset yang dipertaruhkan Pengusul akan dipotong. Jika Penantang terbukti bersalah, maka aset yang dipertaruhkan Penantang akan dipotong. Prover yang gagal merespons tantangan secara tepat waktu juga dapat dipangkas.

Arbitrum mengimplementasikan efek yang disebutkan di atas melalui kontrak di Ethereum, sementara BitVM bertujuan untuk mencapai fungsionalitas yang sama dengan menggunakan Skrip Bitcoin untuk mengimplementasikan kunci waktu, multisig, dan fitur lainnya.

4. Setelah membahas "Bukti Penipuan Interaktif" dan "Bukti Penipuan Satu Langkah", kita akan membahas pohon MAST dan Bukti Merkle. Sebelumnya, kami telah menyebutkan bahwa dalam solusi BitVM, sejumlah besar data transaksi dan rangkaian gerbang logika yang diproses secara off-chain di Layer 2 tidak langsung dimasukkan ke dalam on-chain. Hanya sejumlah kecil rangkaian gerbang data/logika yang dipasang secara berantai bila diperlukan. Akan tetapi, kami membutuhkan cara untuk membuktikan bahwa data ini, yang pada awalnya off-chain dan sekarang harus dimasukkan ke dalam on-chain, tidak dibuat-buat. Di sinilah konsep Komitmen dalam kriptografi berperan, dan Merkle Proof adalah salah satu bentuk Komitmen tersebut.

Pertama, mari kita bahas tentang pohon MAST. Nama lengkap MAST adalah Merkelized Abstract Syntax Trees, yang merupakan transformasi AST (Abstract Syntax Trees) dari ranah prinsip-prinsip compiler menjadi Merkle Trees. Jadi, apa yang dimaksud dengan AST? Secara sederhana, ini adalah struktur data seperti pohon yang memecah perintah yang kompleks menjadi sekumpulan unit operasi dasar melalui analisis leksikal.

(Contoh pohon AST adalah memecah kalkulasi sederhana seperti "x = 2, y = x * 3" menjadi kode operasi dan data yang mendasarinya. )

Pohon MAST, dengan demikian, adalah hasil dari penerapan Merkleisasi pada pohon AST, yang mendukung Bukti Merkle. Salah satu keuntungan dari pohon Merkle adalah kemampuannya untuk "mengompres" data secara efisien. Contohnya, jika Anda ingin mempublikasikan sebuah segmen data dari pohon Merkle di blockchain BTC ketika diperlukan, sekaligus membuatnya kredibel bahwa segmen data ini benar-benar ada di pohon Merkle dan tidak dipilih secara sembarangan, apa yang harus Anda lakukan?

Anda cukup mencatat Akar pohon Merkle di blockchain terlebih dahulu. Di masa depan, menyajikan sebuah Bukti Merkle yang membuktikan bahwa sebuah data ada di pohon Merkle yang berhubungan dengan Root sudah cukup.

(Hubungan antara Merkle Proof/Cabang dan Akar)

Dengan demikian, tidak perlu menyimpan pohon MAST secara lengkap di blockchain BTC; cukup dengan mengungkapkan Root-nya terlebih dahulu sebagai sebuah Komitmen. Bila perlu, menyajikan segmen data + Merkle Proof/Branch sudah memadai. Hal ini sangat mengurangi jumlah data on-chain sekaligus memastikan bahwa data on-chain benar-benar ada pada pohon MAST. Selain itu, mengungkapkan hanya sebagian kecil dari segmen data + Merkle Proof pada blockchain BTC, alih-alih semua data, dapat secara signifikan meningkatkan perlindungan privasi.

Referensi:Pemotongan Data dan Pemeriksaan Penipuan: Mengapa Plasma Tidak Mendukung Kontrak Cerdas


(Contoh pohon MAST)

Dalam solusi BitVM, semua rangkaian gerbang logika diekspresikan menggunakan skrip Bitcoin, diorganisasikan ke dalam pohon MAST yang sangat besar. Daun paling bawah dari pohon ini, yang ditunjukkan sebagai Konten dalam diagram, sesuai dengan sirkuit gerbang logika yang diimplementasikan dalam skrip Bitcoin. Pengusul Layer 2 sering kali mempublikasikan akar pohon MAST di blockchain BTC, dengan setiap pohon MAST yang terkait dengan transaksi yang melibatkan semua parameter input/kode operasi/sirkuit gerbang logika. Hal ini agak mirip dengan Pengusul Arbitrum yang menerbitkan Rollup Block pada blockchain Ethereum.

Ketika terjadi perselisihan, penantang menyatakan pada blockchain BTC Root mana yang ingin mereka tantang, kemudian meminta Pengusul untuk mengungkapkan segmen data tertentu yang berhubungan dengan Root tersebut. Selanjutnya, Pengusul menyajikan Bukti Merkle, secara terus menerus mengungkapkan segmen kecil dari data pohon MAST secara berantai hingga sirkuit gerbang logika yang disengketakan berada di lokasi yang sama dengan penantang. Setelah itu, Slash dapat dieksekusi.

(Sumber:https://medium.com/crypto-garage/deep-dive-into-bitvm-computing-paradigm-to-express-turing-complete-bitcoin-contracts-1c6cb05edfca)

  1. Hingga saat ini, aspek yang paling penting dari solusi BitVM telah banyak dibahas. Meskipun beberapa detail mungkin masih agak kabur, diyakini bahwa pembaca dapat memahami esensi dan poin utama BitVM. Mengenai "komitmen nilai bit" yang disebutkan dalam whitepapernya, ini dirancang untuk mencegah Pengusul menetapkan nilai 0 dan 1 ke nilai input gerbang logika ketika ditantang dan dipaksa untuk memverifikasi sirkuit gerbang logika secara on-chain, sehingga menciptakan ambiguitas dan kebingungan.

Singkatnya, skema BitVM dimulai dengan menggunakan skrip Bitcoin untuk mengekspresikan rangkaian gerbang logika, kemudian menggunakan rangkaian ini untuk mengekspresikan opcode EVM/VC lainnya, yang kemudian mengekspresikan alur pemrosesan dari instruksi transaksi yang diberikan, dan akhirnya mengorganisasikannya ke dalam sebuah pohon Merkle/Pohon MAST. Jika alur pemrosesan transaksi yang diwakili oleh pohon tersebut sangat kompleks, maka dapat dengan mudah melebihi 100 juta daun, sehingga sangat penting untuk meminimalisir ruang blok yang ditempati oleh komitmen dan ruang lingkup yang dipengaruhi oleh bukti-bukti kecurangan.

Meskipun bukti penipuan satu langkah hanya membutuhkan data yang sangat kecil dan skrip gerbang logika on-chain, Merkle Tree yang lengkap harus disimpan secara off-chain untuk waktu yang lama, sehingga dapat diakses secara on-chain kapan saja jika ada yang menantangnya. Setiap transaksi dalam Layer 2 menghasilkan Merkle Tree yang besar, dan bisa dibayangkan tekanan komputasi dan penyimpanan pada node. Kebanyakan orang mungkin tidak ingin menjalankan node (namun, data historis seperti itu dapat dihapus secara bertahap, dan jaringan B^2 secara khusus memperkenalkan bukti penyimpanan zk yang mirip dengan Filecoin untuk memberikan insentif kepada node penyimpanan untuk menyimpan data historis dalam jangka panjang).

Namun, Rollup optimis berdasarkan bukti penipuan tidak membutuhkan terlalu banyak node karena model kepercayaan mereka adalah 1/N, yang berarti bahwa selama salah satu dari N node jujur dan dapat memulai bukti penipuan pada saat yang kritis, jaringan Layer 2 aman.

Namun demikian, ada banyak tantangan dalam desain solusi Layer 2 berdasarkan BitVM, seperti:

1) Secara teoritis, untuk mengompresi data lebih lanjut, tidak perlu memverifikasi opcode secara langsung pada Layer 1. Alur pemrosesan opcode dapat dikompresi lebih lanjut ke dalam zk-proof, yang memungkinkan penantang untuk menantang langkah-langkah verifikasi zk-proof. Hal ini dapat secara signifikan mengurangi jumlah data on-chain. Namun demikian, detail pengembangan spesifiknya bisa jadi sangat rumit.

2) Pengusul dan Penantang perlu menghasilkan interaksi di luar rantai berulang kali. Bagaimana protokol harus dirancang, dan bagaimana proses komitmen dan tantangan harus dioptimalkan lebih lanjut dalam alur pemrosesan, akan membutuhkan banyak upaya intelektual.

Penafian: Penafian

  1. Artikel ini dicetak ulang dari[Geek Web3], Meneruskan Judul Asli "Interpretasi minimalis BitVM: Cara memverifikasi bukti penipuan pada rantai BTC (jalankan kode operasi EVM atau VM lainnya)", hak cipta milik penulis asli [Faust & Misty Moon]
    . Jika ada keberatan dengan pencetakan ulang ini, silakan hubungi tim Gate Learn, dan mereka akan segera menanganinya.
  2. Penafian Tanggung Jawab: Pandangan dan pendapat yang diungkapkan dalam artikel ini semata-mata merupakan pandangan dan pendapat penulis dan bukan merupakan saran investasi.
  3. Penerjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel terjemahan dilarang.

Interpretasi Sederhana dari BitVM: Cara Memverifikasi Bukti Penipuan di Blockchain BTC

Menengah2/23/2024, 7:49:16 AM
Artikel ini menginterpretasikan whitepaper BitVM, menyajikan konsep BitVM: Data tidak perlu on-chain pada awalnya; data dipublikasikan dan disimpan secara off-chain, dengan hanya Komitmen yang disimpan di blockchain.

TL; DR

Pengantar:

Artikel ini memberikan interpretasi terhadap whitepaper BitVM, menjelaskan pendekatan BitVM: Data tidak perlu on-chain pada awalnya; data dipublikasikan dan disimpan secara off-chain, dengan hanya Komitmen yang disimpan di blockchain.

Judul Artikel Asli yang Diteruskan: Interpretasi Sederhana dari BitVM: Cara Memverifikasi Bukti Penipuan di Blockchain BTC (Menjalankan EVM atau Opcode VM Lainnya)

Kata pengantar: Saat ini, Bitcoin Layer 2 telah menjadi tren, dengan lusinan proyek yang mengidentifikasi diri sebagai "Bitcoin Layer 2". Banyak di antaranya, yang mengklaim sebagai "Rollups", menyatakan bahwa mereka menggunakan pendekatan yang diusulkan dalam whitepaper BitVM, memposisikan BitVM sebagai bagian penting dari ekosistem Bitcoin.

Akan tetapi, sebagian besar literatur yang ada mengenai BitVM tidak menjelaskan prinsip-prinsipnya dalam istilah awam. Artikel ini, berdasarkan pembacaan kami terhadap whitepaper BitVM setebal 8 halaman dan setelah membaca sumber-sumber yang berkaitan dengan Taproot, pohon MAST, dan Bitcoin Script, menawarkan sebuah rangkuman yang disederhanakan. Untuk membantu pemahaman, kami telah mengubah beberapa ekspresi dari yang terdapat pada whitepaper BitVM, dengan asumsi bahwa pembaca memiliki pengetahuan tentang Layer 2 dan dapat memahami ide dasar dari "bukti-bukti penipuan".

Konsep awal BitVM dapat diringkas dalam beberapa kalimat: BitVM menghilangkan kebutuhan akan data on-chain, yang pada awalnya menerbitkan dan menyimpan data secara off-chain, dengan hanya Komitmen yang tersimpan di dalam blockchain. Dalam kasus tantangan atau bukti penipuan, hanya data yang diperlukan yang dibawa secara on-chain untuk menunjukkan hubungannya dengan Komitmen pada blockchain. Selanjutnya, mainnet BTC memverifikasi data on-chain untuk setiap masalah dan apakah produsen data (node yang memproses transaksi) telah terlibat dalam aktivitas jahat. Pendekatan ini mengikuti prinsip Occam's Razor - "Entitas tidak boleh digandakan jika tidak perlu" (jika bisa di-off-chain, jaga agar tetap off-chain).

Teks Utama: Skema verifikasi bukti penipuan blockchain BTC yang disebut sebagai BitVM, dalam istilah awam:

1. Pertama, komputer/prosesor adalah sistem input-output yang terdiri dari sejumlah besar rangkaian gerbang logika. Salah satu ide inti dari BitVM adalah menggunakan Skrip Bitcoin untuk mensimulasikan efek input-output dari rangkaian gerbang logika. Selama sirkuit gerbang logika dapat disimulasikan, secara teori, mesin Turing dapat dicapai, menyelesaikan semua tugas yang dapat dikomputasi. Ini berarti bahwa jika Anda memiliki sumber daya dan tenaga kerja yang cukup, Anda dapat mengumpulkan tim insinyur untuk pertama-tama mensimulasikan sirkuit gerbang logika menggunakan kode Skrip Bitcoin yang belum sempurna, dan kemudian menggunakan sirkuit gerbang logika dalam jumlah yang sangat banyak untuk mengimplementasikan fungsi EVM atau WASM.

(Tangkapan layar ini berasal dari sebuah game edukasi: "Turing Complete", di mana konten intinya adalah membangun prosesor CPU yang lengkap, terutama menggunakan sirkuit gerbang logika seperti gerbang NAND).

Beberapa orang menyamakan pendekatan BitVM dengan membangun prosesor M1 di "Minecraft" menggunakan sirkuit redstone. Atau, ini mirip dengan membangun Empire State Building di New York dengan balok-balok LEGO.

(Konon, ada yang menghabiskan waktu satu tahun untuk membangun "prosesor" di "Minecraft").

  1. Jadi, mengapa menggunakan Bitcoin Script untuk mensimulasikan EVM atau WASM? Bukankah itu sangat merepotkan? Alasannya adalah karena sebagian besar solusi Bitcoin Layer 2 sering kali memilih untuk mendukung bahasa tingkat tinggi seperti Solidity atau Move, sementara satu-satunya bahasa yang saat ini dapat berjalan langsung di blockchain Bitcoin adalah Bitcoin Script. Bahasa ini primitif, terdiri dari sekumpulan opcode yang unik, dan bukan Turing yang lengkap.

(Contoh kode Skrip Bitcoin)

Jika Bitcoin Layer 2 bertujuan untuk memverifikasi bukti-bukti penipuan pada Layer 1 seperti solusi Layer 2 Ethereum seperti Arbitrum, untuk mewarisi keamanan BTC, maka perlu untuk secara langsung memverifikasi "transaksi yang disengketakan" atau "opcode yang disengketakan" pada blockchain BTC. Ini berarti bahwa bahasa Solidity / EVM opcode yang digunakan oleh Layer 2 perlu dieksekusi ulang pada blockchain Bitcoin. Tantangannya bermuara pada:

Menggunakan Bitcoin Script, bahasa pemrograman asli namun belum sempurna dari Bitcoin, untuk mencapai efek EVM atau mesin virtual lainnya.

Oleh karena itu, dari perspektif prinsip-prinsip kompilasi, pendekatan BitVM menerjemahkan opcode EVM / WASM / JavaScript ke dalam opcode Bitcoin Script, dengan sirkuit gerbang logika yang berfungsi sebagai representasi perantara (IR) antara "EVM opcodes -> Bitcoin Script opcodes".


(Whitepaper BitVM membahas pendekatan umum untuk mengeksekusi "instruksi yang diperdebatkan" tertentu pada blockchain Bitcoin)

Bagaimanapun, efek utama yang disimulasikan adalah untuk memproses instruksi, yang awalnya hanya dapat ditangani di EVM / WASM, langsung di blockchain Bitcoin. Meskipun solusi ini dapat dilakukan, namun kesulitannya terletak pada cara menggunakan sejumlah besar rangkaian gerbang logika sebagai bentuk perantara untuk mengekspresikan semua opcode EVM/WASM. Selain itu, menggunakan kombinasi rangkaian gerbang logika untuk secara langsung mewakili beberapa alur pemrosesan transaksi yang sangat kompleks dapat mengakibatkan beban kerja yang sangat besar.

  1. Mari kita bahas konsep inti lain yang disebutkan dalam whitepaper BitVM, yaitu "Bukti Penipuan Interaktif" yang sangat mirip dengan yang digunakan oleh Arbitrum.

Bukti Penipuan Interaktif melibatkan istilah yang dikenal dengan istilah assert. Biasanya, pengusul Layer 2 (sering kali dilakukan oleh sequencer) menerbitkan sebuah pernyataan pada Layer 1, menyatakan bahwa data transaksi tertentu dan hasil transisi state adalah valid dan bebas dari kesalahan.

Jika seseorang meyakini bahwa pernyataan yang diajukan oleh pengusul bermasalah (data terkait tidak benar), maka akan terjadi sengketa. Pada titik ini, pengaju dan penantang bertukar informasi dalam putaran dan menggunakan metode pencarian biner pada data yang diperdebatkan untuk dengan cepat menemukan instruksi operasi yang sangat halus dan segmen data yang terkait.

Untuk instruksi operasi yang diperdebatkan (Kode OP), perlu untuk mengeksekusinya secara langsung di Layer 1 bersama dengan parameter inputnya dan memvalidasi hasil outputnya (node-node Layer 1 membandingkan hasil output yang mereka hitung dengan hasil output yang sebelumnya diterbitkan oleh pengusul). Di Arbitrum, hal ini dikenal sebagai "Pembuktian Penipuan Satu Langkah". (Dalam protokol bukti kecurangan interaktif Arbitrum, pencarian biner digunakan untuk dengan cepat menemukan instruksi yang disengketakan dan hasil eksekusinya, dan kemudian bukti kecurangan satu langkah dikirim ke Lapisan 1 untuk verifikasi akhir).

Menindaklanjuti hal ini:

  1. Prosesnya interaktif, dengan kedua belah pihak secara bergantian. Satu pihak melakukan segmentasi data historis yang terkandung dalam Rollup Block, dan pihak lainnya menunjukkan segmen data mana yang bermasalah. Hal ini mirip dengan metode biner (pada kenyataannya, suatu proses penyempitan kisaran secara progresif, N/K).

  2. Selanjutnya, dimungkinkan untuk menemukan lebih lanjut transaksi dan hasil mana yang bermasalah, dan kemudian mempersempit lebih lanjut ke instruksi mesin tertentu dalam transaksi yang dipermasalahkan.

  3. Kontrak ChallengeManager hanya memeriksa apakah "segmen data" yang dihasilkan oleh pembagian data asli adalah valid.

  4. Setelah penantang dan yang ditantang menemukan instruksi mesin yang akan ditantang, penantang memanggil oneStepProveExecution(), mengirimkan bukti kecurangan satu langkah untuk menunjukkan bahwa ada masalah dengan hasil eksekusi instruksi mesin ini.

(Dalam protokol bukti kecurangan interaktif Arbitrum, prosesnya melibatkan penggunaan pencarian biner untuk dengan cepat menemukan instruksi yang disengketakan dan hasil eksekusinya dari data yang dipublikasikan oleh Pengusul. Setelah mengidentifikasi bagian data yang diperdebatkan atau opcode, bukti penipuan satu langkah dikirim ke Layer 1 untuk verifikasi akhir).

Referensi:

Mantan duta teknis Arbitrum menjelaskan struktur komponen Arbitrum (Bagian 1)

(Bagan alur bukti kecurangan interaktif Arbitrum, penjelasannya relatif kasar)

Pada titik ini, konsep bukti penipuan satu langkah menjadi sangat mudah: sebagian besar instruksi transaksi yang terjadi di Layer 2 tidak perlu diverifikasi ulang di blockchain BTC. Namun, jika segmen data/opcode tertentu yang disengketakan ditantang, segmen tersebut harus diulang pada Layer 1.

Jika hasil verifikasi menunjukkan bahwa data yang sebelumnya dipublikasikan oleh Pengusul bermasalah, maka aset yang dipertaruhkan Pengusul akan dipotong. Jika Penantang terbukti bersalah, maka aset yang dipertaruhkan Penantang akan dipotong. Prover yang gagal merespons tantangan secara tepat waktu juga dapat dipangkas.

Arbitrum mengimplementasikan efek yang disebutkan di atas melalui kontrak di Ethereum, sementara BitVM bertujuan untuk mencapai fungsionalitas yang sama dengan menggunakan Skrip Bitcoin untuk mengimplementasikan kunci waktu, multisig, dan fitur lainnya.

4. Setelah membahas "Bukti Penipuan Interaktif" dan "Bukti Penipuan Satu Langkah", kita akan membahas pohon MAST dan Bukti Merkle. Sebelumnya, kami telah menyebutkan bahwa dalam solusi BitVM, sejumlah besar data transaksi dan rangkaian gerbang logika yang diproses secara off-chain di Layer 2 tidak langsung dimasukkan ke dalam on-chain. Hanya sejumlah kecil rangkaian gerbang data/logika yang dipasang secara berantai bila diperlukan. Akan tetapi, kami membutuhkan cara untuk membuktikan bahwa data ini, yang pada awalnya off-chain dan sekarang harus dimasukkan ke dalam on-chain, tidak dibuat-buat. Di sinilah konsep Komitmen dalam kriptografi berperan, dan Merkle Proof adalah salah satu bentuk Komitmen tersebut.

Pertama, mari kita bahas tentang pohon MAST. Nama lengkap MAST adalah Merkelized Abstract Syntax Trees, yang merupakan transformasi AST (Abstract Syntax Trees) dari ranah prinsip-prinsip compiler menjadi Merkle Trees. Jadi, apa yang dimaksud dengan AST? Secara sederhana, ini adalah struktur data seperti pohon yang memecah perintah yang kompleks menjadi sekumpulan unit operasi dasar melalui analisis leksikal.

(Contoh pohon AST adalah memecah kalkulasi sederhana seperti "x = 2, y = x * 3" menjadi kode operasi dan data yang mendasarinya. )

Pohon MAST, dengan demikian, adalah hasil dari penerapan Merkleisasi pada pohon AST, yang mendukung Bukti Merkle. Salah satu keuntungan dari pohon Merkle adalah kemampuannya untuk "mengompres" data secara efisien. Contohnya, jika Anda ingin mempublikasikan sebuah segmen data dari pohon Merkle di blockchain BTC ketika diperlukan, sekaligus membuatnya kredibel bahwa segmen data ini benar-benar ada di pohon Merkle dan tidak dipilih secara sembarangan, apa yang harus Anda lakukan?

Anda cukup mencatat Akar pohon Merkle di blockchain terlebih dahulu. Di masa depan, menyajikan sebuah Bukti Merkle yang membuktikan bahwa sebuah data ada di pohon Merkle yang berhubungan dengan Root sudah cukup.

(Hubungan antara Merkle Proof/Cabang dan Akar)

Dengan demikian, tidak perlu menyimpan pohon MAST secara lengkap di blockchain BTC; cukup dengan mengungkapkan Root-nya terlebih dahulu sebagai sebuah Komitmen. Bila perlu, menyajikan segmen data + Merkle Proof/Branch sudah memadai. Hal ini sangat mengurangi jumlah data on-chain sekaligus memastikan bahwa data on-chain benar-benar ada pada pohon MAST. Selain itu, mengungkapkan hanya sebagian kecil dari segmen data + Merkle Proof pada blockchain BTC, alih-alih semua data, dapat secara signifikan meningkatkan perlindungan privasi.

Referensi:Pemotongan Data dan Pemeriksaan Penipuan: Mengapa Plasma Tidak Mendukung Kontrak Cerdas


(Contoh pohon MAST)

Dalam solusi BitVM, semua rangkaian gerbang logika diekspresikan menggunakan skrip Bitcoin, diorganisasikan ke dalam pohon MAST yang sangat besar. Daun paling bawah dari pohon ini, yang ditunjukkan sebagai Konten dalam diagram, sesuai dengan sirkuit gerbang logika yang diimplementasikan dalam skrip Bitcoin. Pengusul Layer 2 sering kali mempublikasikan akar pohon MAST di blockchain BTC, dengan setiap pohon MAST yang terkait dengan transaksi yang melibatkan semua parameter input/kode operasi/sirkuit gerbang logika. Hal ini agak mirip dengan Pengusul Arbitrum yang menerbitkan Rollup Block pada blockchain Ethereum.

Ketika terjadi perselisihan, penantang menyatakan pada blockchain BTC Root mana yang ingin mereka tantang, kemudian meminta Pengusul untuk mengungkapkan segmen data tertentu yang berhubungan dengan Root tersebut. Selanjutnya, Pengusul menyajikan Bukti Merkle, secara terus menerus mengungkapkan segmen kecil dari data pohon MAST secara berantai hingga sirkuit gerbang logika yang disengketakan berada di lokasi yang sama dengan penantang. Setelah itu, Slash dapat dieksekusi.

(Sumber:https://medium.com/crypto-garage/deep-dive-into-bitvm-computing-paradigm-to-express-turing-complete-bitcoin-contracts-1c6cb05edfca)

  1. Hingga saat ini, aspek yang paling penting dari solusi BitVM telah banyak dibahas. Meskipun beberapa detail mungkin masih agak kabur, diyakini bahwa pembaca dapat memahami esensi dan poin utama BitVM. Mengenai "komitmen nilai bit" yang disebutkan dalam whitepapernya, ini dirancang untuk mencegah Pengusul menetapkan nilai 0 dan 1 ke nilai input gerbang logika ketika ditantang dan dipaksa untuk memverifikasi sirkuit gerbang logika secara on-chain, sehingga menciptakan ambiguitas dan kebingungan.

Singkatnya, skema BitVM dimulai dengan menggunakan skrip Bitcoin untuk mengekspresikan rangkaian gerbang logika, kemudian menggunakan rangkaian ini untuk mengekspresikan opcode EVM/VC lainnya, yang kemudian mengekspresikan alur pemrosesan dari instruksi transaksi yang diberikan, dan akhirnya mengorganisasikannya ke dalam sebuah pohon Merkle/Pohon MAST. Jika alur pemrosesan transaksi yang diwakili oleh pohon tersebut sangat kompleks, maka dapat dengan mudah melebihi 100 juta daun, sehingga sangat penting untuk meminimalisir ruang blok yang ditempati oleh komitmen dan ruang lingkup yang dipengaruhi oleh bukti-bukti kecurangan.

Meskipun bukti penipuan satu langkah hanya membutuhkan data yang sangat kecil dan skrip gerbang logika on-chain, Merkle Tree yang lengkap harus disimpan secara off-chain untuk waktu yang lama, sehingga dapat diakses secara on-chain kapan saja jika ada yang menantangnya. Setiap transaksi dalam Layer 2 menghasilkan Merkle Tree yang besar, dan bisa dibayangkan tekanan komputasi dan penyimpanan pada node. Kebanyakan orang mungkin tidak ingin menjalankan node (namun, data historis seperti itu dapat dihapus secara bertahap, dan jaringan B^2 secara khusus memperkenalkan bukti penyimpanan zk yang mirip dengan Filecoin untuk memberikan insentif kepada node penyimpanan untuk menyimpan data historis dalam jangka panjang).

Namun, Rollup optimis berdasarkan bukti penipuan tidak membutuhkan terlalu banyak node karena model kepercayaan mereka adalah 1/N, yang berarti bahwa selama salah satu dari N node jujur dan dapat memulai bukti penipuan pada saat yang kritis, jaringan Layer 2 aman.

Namun demikian, ada banyak tantangan dalam desain solusi Layer 2 berdasarkan BitVM, seperti:

1) Secara teoritis, untuk mengompresi data lebih lanjut, tidak perlu memverifikasi opcode secara langsung pada Layer 1. Alur pemrosesan opcode dapat dikompresi lebih lanjut ke dalam zk-proof, yang memungkinkan penantang untuk menantang langkah-langkah verifikasi zk-proof. Hal ini dapat secara signifikan mengurangi jumlah data on-chain. Namun demikian, detail pengembangan spesifiknya bisa jadi sangat rumit.

2) Pengusul dan Penantang perlu menghasilkan interaksi di luar rantai berulang kali. Bagaimana protokol harus dirancang, dan bagaimana proses komitmen dan tantangan harus dioptimalkan lebih lanjut dalam alur pemrosesan, akan membutuhkan banyak upaya intelektual.

Penafian: Penafian

  1. Artikel ini dicetak ulang dari[Geek Web3], Meneruskan Judul Asli "Interpretasi minimalis BitVM: Cara memverifikasi bukti penipuan pada rantai BTC (jalankan kode operasi EVM atau VM lainnya)", hak cipta milik penulis asli [Faust & Misty Moon]
    . Jika ada keberatan dengan pencetakan ulang ini, silakan hubungi tim Gate Learn, dan mereka akan segera menanganinya.
  2. Penafian Tanggung Jawab: Pandangan dan pendapat yang diungkapkan dalam artikel ini semata-mata merupakan pandangan dan pendapat penulis dan bukan merupakan saran investasi.
  3. Penerjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel terjemahan dilarang.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!