Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollup baru-baru ini menjadi fokus penskalaan BTC, menjadi hal pertama yang benar-benar “mencuri perhatian” dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollup dirancang untuk menjadi lapisan off-chain 2 yang tidak dibatasi atau dibatasi oleh batasan Likuiditas inti Jaringan Lighting, yaitu pengguna akhir membutuhkan seseorang untuk mengalokasikan (atau “meminjamkan”) dana di muka untuk menerima uang, atau node routing perantara membutuhkan saldo saluran untuk memfasilitasi aliran jumlah pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem Turing Complete lainnya, tetapi akhir-akhir ini fokus telah beralih ke porting mereka ke blockchain berbasis UTXO (seperti BTC). Artikel ini tidak bermaksud untuk membahas situasi implementasi saat ini di BTC, tetapi membahas fitur Rollup yang diidealkan yang telah lama dicari orang, yang bergantung pada kemampuan yang saat ini tidak didukung oleh BTC, yaitu kemampuan untuk langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Arsitektur dasar Roll adalah sebagai berikut: Satu akun tunggal (dalam BTC, dikenal sebagai UTXO) menyimpan saldo semua pengguna di dalam Rollup. UTXO ini berisi komitmen dalam bentuk root Merkle tree yang mewakili saldo terkini semua akun yang ada di dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk membuat pengeluaran off-chain, pengguna masih harus menandatangani beberapa konten dengan Kunci Rahasia. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa izin, hanya dengan membuat bukti transaksi bahwa akun mereka adalah bagian dari Merkle tree, mereka dapat keluar dari Rollup secara sepihak tanpa izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui root merkle saldo akun on-chain saat menyelesaikan transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada saldo akun off-chain telah mendapat otorisasi yang sesuai dari pemilik akun, dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau dengan tidak jujur membaginya ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka dapat menempatkan cabang mereka dalam pohon, sehingga mereka dapat keluar kapan pun tanpa izin yang mereka inginkan?
Rollup yang Sesuai
Di dalam Rollup yang sesuai, setiap kali ada transaksi off-chain baru yang dikonfirmasi dan status Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, karena itu terlalu absurd, melainkan hanya informasi yang diperlukan untuk membangun kembali pohon. Dalam implementasi yang sederhana, ringkasan dari semua akun yang ada di dalam Rollup akan mencakup saldo, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih canggih, gunakan selisih saldo akun. Pada dasarnya ini adalah ringkasan dari akun mana yang menambah atau mengurangi dana selama proses pembaruan. Ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang terjadi. Kemudian, pengguna dapat dengan mudah memindai rantai dan ‘menghitung ulang’ dari awal Rollup untuk mengetahui status saldo akun saat ini, yang memungkinkan mereka membangun kembali pohon Merkle saldo saat ini.
Ini dapat menghemat biaya dan ruang Blok yang besar (sehingga menghemat dana), sambil tetap memungkinkan pengguna memastikan akses ke informasi yang diperlukan untuk keluar secara sepihak. Aturan rollup mengharuskan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Periode berlaku
Salah satu cara lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Ini memunculkan masalah yang rumit, karena rollup masih perlu memastikan bahwa data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang secara khusus dirancang sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menciptakan dilema yang sama kuatnya dalam hal keamanan. Ketika data diposting langsung ke jaringan Blok Bitcoin, aturan Konsensus dapat memastikan kebenarannya dengan pasti. Namun, ketika data diposting ke sistem eksternal, yang terbaik yang dapat dilakukan adalah memverifikasi bukti SPV, yaitu bahwa data telah diposting ke sistem lain.
Ini memerlukan verifikasi bahwa data ada di luar on-chain proof, ini pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun di luar dari apa yang terjadi di Blokon-chain mereka sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup yang dihasilkan benar-benar dipublikasikan secara terbuka setelah dihasilkan. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu menciptakan komitmen terhadap data yang dipublikasikan dan menggunakannya untuk mendorong rollup, tetapi data sebenarnya tidak tersedia. Hal ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi nyata adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Dilema
Ini menghadirkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak besar pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan Blockchain Bitcoin sebagai lapisan ketersediaan data akan memberikan batasan keras terhadap skalabilitas rollup. Ruang Blok terbatas, yang mengatur jumlah rollup yang dapat ada pada satu waktu dan total transaksi yang dapat ditangani off-chain oleh semua rollup. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan sebelumnya. Teori informasi hanya memungkinkan kompresi data hingga tingkat tertentu, dan pada titik ini, tidak ada potensi perluasan yang lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas atas keuntungan skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang ingin diekstraksi oleh pengguna tidak dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak dapat berubah. Dalam Validiums, jaminan ini sepenuhnya tergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan penyembunyian data.
Saat ini, produsen Blok pada sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok tanpa benar-benar menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar berhasil mewujudkan implementasi Rollup yang ideal pada BTC, dengan mampu melakukan penarikan satu arah oleh pengguna, bagaimana hal itu akan terjadi?
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.
Bitcoin Magazine: Apa Kendala yang Dihadapi Rollup?
Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollup baru-baru ini menjadi fokus penskalaan BTC, menjadi hal pertama yang benar-benar “mencuri perhatian” dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollup dirancang untuk menjadi lapisan off-chain 2 yang tidak dibatasi atau dibatasi oleh batasan Likuiditas inti Jaringan Lighting, yaitu pengguna akhir membutuhkan seseorang untuk mengalokasikan (atau “meminjamkan”) dana di muka untuk menerima uang, atau node routing perantara membutuhkan saldo saluran untuk memfasilitasi aliran jumlah pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem Turing Complete lainnya, tetapi akhir-akhir ini fokus telah beralih ke porting mereka ke blockchain berbasis UTXO (seperti BTC). Artikel ini tidak bermaksud untuk membahas situasi implementasi saat ini di BTC, tetapi membahas fitur Rollup yang diidealkan yang telah lama dicari orang, yang bergantung pada kemampuan yang saat ini tidak didukung oleh BTC, yaitu kemampuan untuk langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Arsitektur dasar Roll adalah sebagai berikut: Satu akun tunggal (dalam BTC, dikenal sebagai UTXO) menyimpan saldo semua pengguna di dalam Rollup. UTXO ini berisi komitmen dalam bentuk root Merkle tree yang mewakili saldo terkini semua akun yang ada di dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk membuat pengeluaran off-chain, pengguna masih harus menandatangani beberapa konten dengan Kunci Rahasia. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa izin, hanya dengan membuat bukti transaksi bahwa akun mereka adalah bagian dari Merkle tree, mereka dapat keluar dari Rollup secara sepihak tanpa izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui root merkle saldo akun on-chain saat menyelesaikan transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada saldo akun off-chain telah mendapat otorisasi yang sesuai dari pemilik akun, dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau dengan tidak jujur membaginya ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka dapat menempatkan cabang mereka dalam pohon, sehingga mereka dapat keluar kapan pun tanpa izin yang mereka inginkan?
Rollup yang Sesuai
Di dalam Rollup yang sesuai, setiap kali ada transaksi off-chain baru yang dikonfirmasi dan status Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, karena itu terlalu absurd, melainkan hanya informasi yang diperlukan untuk membangun kembali pohon. Dalam implementasi yang sederhana, ringkasan dari semua akun yang ada di dalam Rollup akan mencakup saldo, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih canggih, gunakan selisih saldo akun. Pada dasarnya ini adalah ringkasan dari akun mana yang menambah atau mengurangi dana selama proses pembaruan. Ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang terjadi. Kemudian, pengguna dapat dengan mudah memindai rantai dan ‘menghitung ulang’ dari awal Rollup untuk mengetahui status saldo akun saat ini, yang memungkinkan mereka membangun kembali pohon Merkle saldo saat ini.
Ini dapat menghemat biaya dan ruang Blok yang besar (sehingga menghemat dana), sambil tetap memungkinkan pengguna memastikan akses ke informasi yang diperlukan untuk keluar secara sepihak. Aturan rollup mengharuskan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Periode berlaku
Salah satu cara lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Ini memunculkan masalah yang rumit, karena rollup masih perlu memastikan bahwa data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang secara khusus dirancang sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menciptakan dilema yang sama kuatnya dalam hal keamanan. Ketika data diposting langsung ke jaringan Blok Bitcoin, aturan Konsensus dapat memastikan kebenarannya dengan pasti. Namun, ketika data diposting ke sistem eksternal, yang terbaik yang dapat dilakukan adalah memverifikasi bukti SPV, yaitu bahwa data telah diposting ke sistem lain.
Ini memerlukan verifikasi bahwa data ada di luar on-chain proof, ini pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun di luar dari apa yang terjadi di Blokon-chain mereka sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup yang dihasilkan benar-benar dipublikasikan secara terbuka setelah dihasilkan. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu menciptakan komitmen terhadap data yang dipublikasikan dan menggunakannya untuk mendorong rollup, tetapi data sebenarnya tidak tersedia. Hal ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi nyata adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Dilema
Ini menghadirkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak besar pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan Blockchain Bitcoin sebagai lapisan ketersediaan data akan memberikan batasan keras terhadap skalabilitas rollup. Ruang Blok terbatas, yang mengatur jumlah rollup yang dapat ada pada satu waktu dan total transaksi yang dapat ditangani off-chain oleh semua rollup. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan sebelumnya. Teori informasi hanya memungkinkan kompresi data hingga tingkat tertentu, dan pada titik ini, tidak ada potensi perluasan yang lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas atas keuntungan skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang ingin diekstraksi oleh pengguna tidak dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak dapat berubah. Dalam Validiums, jaminan ini sepenuhnya tergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan penyembunyian data.
Saat ini, produsen Blok pada sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok tanpa benar-benar menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar berhasil mewujudkan implementasi Rollup yang ideal pada BTC, dengan mampu melakukan penarikan satu arah oleh pengguna, bagaimana hal itu akan terjadi?