Untuk penskalaan Bitcoin, teknologi utama meliputi saluran keadaan, sisi rantai, dan validasi sisi klien. Saluran keadaan menyediakan solusi pembayaran yang aman dan beragam tetapi memiliki kapasitas terbatas untuk memverifikasi perhitungan yang sangat kompleks secara sembarangan. Keterbatasan ini mengurangi aplikabilitasnya dalam berbagai skenario yang memerlukan logika dan interaksi kompleks, bersyarat. Sisi rantai mendukung berbagai aplikasi dan menawarkan keberagaman di luar kemampuan Bitcoin, tetapi memiliki keamanan yang lebih rendah. Perbedaan keamanan ini berasal dari sisi rantai menggunakan mekanisme konsensus independen, yang jauh lebih kurang kuat dibandingkan mekanisme konsensus Bitcoin. Validasi sisi klien, dengan menggunakan model UTXO Bitcoin, dapat menangani transaksi yang lebih kompleks, tetapi kurang dalam pemeriksaan dan kendala dua arah dengan Bitcoin, sehingga mengakibatkan keamanan yang lebih rendah. Desain luar rantai dari protokol validasi sisi klien bergantung pada server atau infrastruktur cloud, yang dapat mengakibatkan sentralisasi atau potensi sensorship melalui server yang kompromi. Desain luar rantai validasi sisi klien juga memperkenalkan lebih banyak kompleksitas ke dalam infrastruktur blockchain, yang mungkin mengakibatkan masalah skalabilitas.
Pada Desember 2023, Robin Linus, pemimpin proyek ZeroSync, menerbitkan white paper berjudul "BitVM: Hitung Apa Pun Di Bitcoin”, yang memicu pemikiran yang cukup besar tentang meningkatkan pemrograman Bitcoin. Paper ini mengusulkan solusi kontrak Bitcoin yang lengkap Turing yang dapat menjalankan perhitungan kompleks apa pun di Bitcoin tanpa mengubah aturan konsensus jaringan atau mengubah prinsip dasar Bitcoin. BitVM memanfaatkan skrip Bitcoin dan Taproot untuk mengimplementasikan Optimistic Rollups. Ini menggunakan tanda tangan Lamport (juga dikenal sebagai komitmen bit) untuk membangun koneksi antara dua UTXO Bitcoin, memungkinkan skrip Bitcoin yang stateful. Program besar dijamin dalam alamat Taproot, dan operator dan validator terlibat dalam interaksi off-chain yang ekstensif, meninggalkan jejak minimal pada blockchain. Jika kedua pihak bekerja sama, perhitungan off-chain kompleks dan stateful apa pun dapat dilakukan tanpa meninggalkan jejak pada blockchain. Namun, jika pihak-pihak tidak bekerja sama, eksekusi on-chain diperlukan dalam kasus perselisihan. Oleh karena itu, BitVM secara signifikan memperluas kasus penggunaan potensial Bitcoin, memungkinkannya tidak hanya berfungsi sebagai mata uang tetapi juga sebagai platform verifikasi untuk berbagai aplikasi terdesentralisasi dan tugas komputasi kompleks.
Namun, meskipun memiliki kelebihan teknologi BitVM dalam skalabilitas Bitcoin, teknologi ini masih berada dalam tahap awal dan menghadapi beberapa isu efisiensi dan keamanan, seperti: (1) Tantangan dan tanggapan memerlukan interaksi ganda, menyebabkan biaya transaksi tinggi dan periode tantangan yang panjang; (2) Tanda tangan sekali pakai Lamport memiliki panjang data yang lama, memerlukan pengurangan ukuran data; (3) Kompleksitas fungsi hash yang tinggi memerlukan fungsi hash ramah Bitcoin untuk mengurangi biaya; (4) Kontrak BitVM yang ada besar, dan kapasitas blok Bitcoin terbatas, sehingga menggunakan skrip tanpa skrip bisa membantu mencapai BitVM Skrip Tanpa Skrip, menghemat ruang blok Bitcoin dan meningkatkan efisiensi BitVM; (5) BitVM saat ini beroperasi pada model izin, dengan tantangan yang diinisiasi hanya oleh anggota konsorsium dan terbatas pada dua pihak, yang seharusnya diperluas menjadi model tantangan multi-pihak tanpa izin untuk lebih mengurangi asumsi kepercayaan. Untuk mengatasi masalah ini, paper tersebut menyarankan beberapa ide optimisasi untuk meningkatkan efisiensi dan keamanan BitVM.
Perhitungan BitVM terjadi di luar rantai, sementara verifikasi perhitungan ini berlangsung di rantai. Mengingat batas 1MB blok Bitcoin, ketika verifikasi perhitungan kompleks diperlukan, teknologi OP dapat digunakan dalam mode tantangan-tanggapan untuk mendukung verifikasi perhitungan yang lebih kompleks.
Sistem BitVM, mirip dengan Optimistic Rollup dan proposal MATT (Merkelize Semua Hal), didasarkan pada bukti penipuan dan protokol tantangan-tanggapan tetapi tidak memerlukan perubahan pada aturan konsensus Bitcoin. Primitif dasar BitVM sederhana, terutama berdasarkan kunci hash, kunci waktu, dan pohon Taproot besar.
Prover melakukan komitmen ke byte program, tetapi memverifikasi semua perhitungan on-chain akan terlalu mahal. Oleh karena itu, verifier melakukan serangkaian tantangan yang dirancang dengan hati-hati untuk secara ringkas menolak klaim palsu dari prover. Prover dan verifier bersama-sama menandatangani serangkaian transaksi tantangan dan respons untuk menyelesaikan perselisihan, memungkinkan verifikasi perhitungan umum pada Bitcoin.
Komponen kunci dari BitVM meliputi:
Dengan asumsi jumlah langkah maksimum untuk program tantangan BitVM adalah 2^{32}, diperlukan sekitar 17GB memori (2^{32}×4 byte). Dalam skenario terburuk, sekitar 40 putaran tantangan dan tanggapan mungkin memakan waktu sekitar enam bulan, dengan ukuran skrip total sekitar 150KB. Skenario seperti itu akan memberikan insentif yang tidak mencukupi, tetapi jarang terjadi dalam praktik.
Menggunakan Bukti Pengetahuan Nol untuk mengurangi jumlah tantangan dalam BitVM dapat meningkatkan efisiensinya. Menurut teori Bukti Pengetahuan Nol, jika Data memenuhi algoritma F, maka bukti tersebut memenuhi algoritma verifikasi Verify, mengeluarkan True. Sebaliknya, jika Data tidak memenuhi F, maka bukti tidak akan memenuhi Verify, mengeluarkan False. Dalam sistem BitVM, jika penantang tidak menerima data dari pembuktian, sebuah tantangan dimulai.
Untuk algoritma F, dengan pendekatan pencarian biner, diasumsikan diperlukan 2^n iterasi untuk menemukan titik kesalahan. Jika kompleksitas algoritma terlalu tinggi, n besar, dan membutuhkan waktu lama untuk diselesaikan. Namun, kompleksitas algoritma verifikasi Zero-Knowledge Proof Verify tetap. Dengan mengungkapkan secara publik bukti dan proses verifikasi Verify, dimungkinkan untuk melihat keluaran False. Keuntungan dari Zero-Knowledge Proofs terletak pada kompleksitas komputasi yang lebih rendah yang diperlukan untuk membuka algoritma verifikasi Verify dibanding membuka algoritma asli F menggunakan pencarian biner. Dengan demikian, dengan Zero-Knowledge Proofs, BitVM tidak lagi menantang algoritma asli F, melainkan algoritma verifikasi Verify, mengurangi jumlah putaran tantangan dan mempersingkat periode tantangan.
Meskipun validitas Bukti Zero Pengetahuan dan Bukti Penipuan bergantung pada asumsi keamanan yang berbeda, keduanya dapat digabungkan untuk membangun Bukti Penipuan ZK dan menerapkan Bukti ZK On-Demand. Tidak seperti ZK Rollup penuh, model On-Demand memerlukan Bukti ZK hanya ketika ada tantangan, menjaga desain optimis di mana status yang dihasilkan diasumsikan valid sampai ditantang. Jika suatu status tidak ditantang, tidak ada Bukti ZK yang dibutuhkan. Namun, jika ada tantangan, Bukti ZK harus dihasilkan untuk kebenaran semua transaksi dalam blok yang ditantang. Di masa depan, mungkin bisa menghasilkan Bukti Penipuan ZK untuk instruksi yang dipertentangkan secara individual, menghindari biaya komputasi dari terus-menerus menghasilkan Bukti ZK.
Menurut aturan konsensus, ukuran maksimum untuk transaksi warisan (non-Segwit) adalah 1MB, yang dapat mengisi seluruh blok. Namun, batas standar untuk transaksi warisan diatur pada 100kB. Untuk transaksi Segwit, ukuran maksimum yang diizinkan oleh aturan konsensus adalah 4MB, dikenal sebagai batas berat, namun batas standarnya adalah 400kB.
Tanda tangan Lamport adalah komponen dasar dari BitVM, dan mengurangi panjang tanda tangan dan kunci publik membantu mengurangi ukuran data transaksi, sehingga mengurangi biaya transaksi. Tanda tangan satu kali Lamport memerlukan fungsi hash (seperti fungsi permutasi satu arah f). Dalam skema tanda tangan satu kali Lamport, panjang pesan adalah v bit, dan panjang kunci publik dan tanda tangan keduanya adalah 2v bit. Tanda tangan dan kunci publik panjang ini mengonsumsi sejumlah besar gas penyimpanan. Oleh karena itu, penting untuk menjelajahi skema tanda tangan yang dapat mengurangi panjang tanda tangan dan kunci publik. Dibandingkan dengan tanda tangan satu kali Lamport, tanda tangan satu kali Winternitz sangat mengurangi panjang tanda tangan dan kunci publik, tetapi mereka meningkatkan kompleksitas komputasi dari penandatanganan dan verifikasi.
Dalam skema tanda tangan satu kali Winternitz, fungsi khusus P memetakan pesan v-bit ke vektor s dengan panjang n, dengan setiap elemen s mengambil nilai dalam {0,…,d}. Skema tanda tangan satu kali Lamport adalah kasus khusus dari skema Winternitz, di mana d=1. Dalam skema Winternitz, hubungan antara n, d, dan v kurang lebih n≈v/log2(d+1). Ketika d=15, n≈(v/4)+1. Untuk tanda tangan Winternitz dengan n elemen, panjang kunci publik dan tanda tangan empat kali lebih pendek daripada skema tanda tangan satu kali Lamport, tetapi kompleksitas verifikasi empat kali lebih tinggi. Menggunakan d=15,v=160,f=ripemd160(x) di BitVM untuk tanda tangan satu kali Winternitz dapat mengurangi ukuran komitmen bit sebesar 50%, sehingga mengurangi biaya transaksi BitVM setidaknya 50%. Di masa depan, saat mengoptimalkan implementasi skrip Bitcoin Winternitz yang ada, eksplorasi skema tanda tangan satu kali yang lebih ringkas yang dapat diekspresikan dalam skrip Bitcoin bisa dikejar.
Saat ini, jaringan Bitcoin tidak mendukung OP_CAT, sehingga tidak memungkinkan untuk menggabungkan string untuk verifikasi jalur Merkle. Oleh karena itu, diperlukan untuk menerapkan fungsi hash yang ramah terhadap Bitcoin menggunakan skrip Bitcoin yang ada, dengan cara yang paling efisien dalam hal ukuran skrip dan ukuran saksi skrip, untuk mendukung verifikasi bukti inklusi Merkle.
BLAKE3 adalah versi dioptimalkan dari fungsi hash BLAKE2 dan memperkenalkan mode pohon Bao. Dibandingkan dengan BLAKE2s, jumlah putaran fungsi kompresinya telah dikurangi dari 10 menjadi 7. Fungsi hash BLAKE3 membagi inputnya menjadi potongan-potongan sebesar 1024 byte, dengan potongan terakhir mungkin lebih pendek tetapi tidak kosong. Ketika hanya ada satu potongan, potongan tersebut berfungsi sebagai simpul akar dan satu-satunya simpul pohon. Potongan-potongan ini disusun sebagai simpul daun dari pohon biner, dan setiap potongan dikompresi secara independen.
Ketika BitVM digunakan untuk memverifikasi bukti inklusi Merkle, masukan untuk operasi hash terdiri dari dua nilai hash 256-bit yang digabungkan, dengan total 64 byte. Dengan fungsi hash BLAKE3, 64 byte ini dapat muat dalam satu chunk, artinya operasi hash BLAKE3 hanya perlu menerapkan fungsi kompresi sekali ke chunk tunggal ini. Dalam fungsi kompresi BLAKE3, tujuh fungsi putaran dan enam fungsi permutasi diperlukan.
BitVM telah mengimplementasikan operasi dasar seperti XOR, penambahan modular, dan pergeseran bit kanan berdasarkan nilai u32, sehingga mudah untuk merakit fungsi hash BLAKE3 menggunakan skrip Bitcoin. Tumpukan menggunakan empat byte terpisah untuk mewakili kata u32, memfasilitasi penambahan u32, XOR bit u32, dan rotasi bit u32 yang diperlukan oleh BLAKE3. Fungsi hash BLAKE3 dalam skrip Bitcoin saat ini sekitar 100kB, cukup untuk membuat versi mainan dari BitVM.
Selain itu, dengan membagi kode-kode BLAKE3 ini, Verifier dan Prover dapat secara signifikan mengurangi persyaratan data on-chain dengan membagi eksekusi menjadi permainan tantangan-respons daripada melakukannya secara keseluruhan. Akhirnya, menerapkan fungsi hash seperti Keccak-256 dan Grøstl dalam skrip Bitcoin akan mengidentifikasi fungsi hash yang paling ramah Bitcoin dan mengeksplorasi fungsi hash Bitcoin baru lainnya.
Keuntungan dari Scriptless Scripts meliputi fungsionalitas, privasi, dan efisiensi:
Scriptless Scripts dapat digunakan untuk menerapkan komitmen gerbang logika dalam sirkuit BitVM, menghemat ruang skrip BitVM dan meningkatkan efisiensi BitVM, menggunakan tandatangan multi-Schnorr dan tandatangan Adaptor alih-alih menyediakan nilai hash dan pre-image seperti solusi BitVM. Meskipun skema Scriptless Scripts saat ini dapat mengurangi ruang skrip BitVM, mereka memerlukan interaksi yang luas antara pemberi bukti dan penantang untuk menggabungkan kunci publik. Perbaikan di masa depan akan bertujuan untuk mengintegrasikan Scriptless Scripts ke dalam modul fungsional BitVM yang spesifik.
Tantangan multi-pihak tanpa izin memungkinkan siapa pun untuk berpartisipasi tanpa whitelist, artinya pengguna dapat menarik dana dari L2 tanpa melibatkan pihak ketiga yang terpercaya. Selain itu, pengguna mana pun yang ingin terlibat dalam protokol tantangan OP dapat mempertanyakan dan menghapus penarikan dana yang tidak valid.
Memperluas BitVM ke dalam model tantangan multi-pihak tanpa izin melibatkan penanganan serangan berikut:





