Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wu Zhu, Jinse Keuangan Emas
Rollups baru-baru ini telah menjadi fokus perluasan BTC, menjadi sesuatu yang benar-benar mengambil perhatian dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollups bertujuan untuk menjadi lapisan kedua off-chain yang tidak terbatas atau terbatas oleh Likuiditas inti Jaringan Lighting, yang berarti pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjam’) sebelumnya untuk menerima uang, atau Node rute tengah perlu memiliki saldo saluran untuk memfasilitasi aliran 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 membahas status implementasi saat ini di BTC, tetapi membahas fitur Rollup ideal 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 (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen, yang hadir dalam bentuk akar Merkle dari pohon Merkle, komitmen ini memuat semua saldo saat ini dari akun dalam Rollup. Semua akun ini diberi wewenang menggunakan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih harus menandatangani beberapa konten menggunakan 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 pohon Merkle, mereka dapat keluar dari Rollup secara unilateral 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 tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan terhadap saldo akun off-chain telah mendapat otorisasi yang tepat dari pemegang akun dan apakah operator tidak memperbarui saldo secara jahat untuk mencuri dana pengguna atau tidak jujur dalam mendistribusikannya kembali ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka bisa menempatkan cabang mereka di dalam pohon sehingga mereka dapat keluar kapan pun tanpa izin?
Rollup yang Tepat
Dalam Rollup yang tepat, setiap kali ada konfirmasi transaksi off-chain baru dan status Rollup akun berubah, informasinya akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi informasi yang diperlukan untuk membangun ulang pohon. Dalam implementasi sederhana, ringkasan akun Rollup akan mencakup saldo dari semua akun yang ada dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih canggih, gunakan perbedaan 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’ 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 masih memungkinkan pengguna untuk memastikan akses informasi yang dibutuhkan untuk keluar bersama. Aturan rollup mensyaratkan bahwa data ini harus dimasukkan ke dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, sehingga transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Periode berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan menyimpan data di tempat lain di luar Blok. Ini menghadirkan masalah yang rumit, rollup masih perlu memastikan data tetap tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Hal ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke rantai Blok BTC, aturan Konsensus dapat menjamin keabsolutan data tersebut. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, hal terbaik yang dapat dilakukannya hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti bahwa data tersebut ada di Blok on-chain lain, ini pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun selain dari apa yang terjadi di dalam Blok on-chain mereka sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup benar-benar disiarkan secara terbuka setelah dibuat. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Serangan penahanan data ini membuka pintu lebar, yaitu membuat janji terhadap data yang dipublikasikan dan menggunakannya untuk mendorong rollup, tetapi data sebenarnya tidak tersedia. Ini membuat pengguna tidak dapat menarik dana. Satu-satunya solusi nyata adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Dua belas langkah
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, pada dasarnya ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak besar pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok Blockchain sebagai lapisan ketersediaan data akan memberikan batasan maksimal yang keras bagi skalabilitas rollup. Ruang Blok terbatas, ini mengatur batas jumlah rollup yang dapat ada dan total transaksi yang dapat diproses off-chain oleh semua rollup. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data dikompresi hingga tingkat tertentu, pada titik ini tidak ada potensi skalabilitas lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan keras dari keuntungan skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang ingin diekstraksi pengguna tidak dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak akan berubah. Dengan menggunakan Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, setiap produsen Blok pada sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok tersebut tanpa benar-benar menyiarkan Blok tersebut, sehingga membuat data menjadi tersedia.
Jadi, jika kita benar-benar mencapai implementasi Rollup yang ideal di BTC, dengan penarikan dana pengguna secara satu arah yang sebenarnya, bagaimana 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: Menghadapi Kendala Apa Rollup?
Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wu Zhu, Jinse Keuangan Emas
Rollups baru-baru ini telah menjadi fokus perluasan BTC, menjadi sesuatu yang benar-benar mengambil perhatian dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollups bertujuan untuk menjadi lapisan kedua off-chain yang tidak terbatas atau terbatas oleh Likuiditas inti Jaringan Lighting, yang berarti pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjam’) sebelumnya untuk menerima uang, atau Node rute tengah perlu memiliki saldo saluran untuk memfasilitasi aliran 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 membahas status implementasi saat ini di BTC, tetapi membahas fitur Rollup ideal 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 (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen, yang hadir dalam bentuk akar Merkle dari pohon Merkle, komitmen ini memuat semua saldo saat ini dari akun dalam Rollup. Semua akun ini diberi wewenang menggunakan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih harus menandatangani beberapa konten menggunakan 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 pohon Merkle, mereka dapat keluar dari Rollup secara unilateral 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 tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan terhadap saldo akun off-chain telah mendapat otorisasi yang tepat dari pemegang akun dan apakah operator tidak memperbarui saldo secara jahat untuk mencuri dana pengguna atau tidak jujur dalam mendistribusikannya kembali ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka bisa menempatkan cabang mereka di dalam pohon sehingga mereka dapat keluar kapan pun tanpa izin?
Rollup yang Tepat
Dalam Rollup yang tepat, setiap kali ada konfirmasi transaksi off-chain baru dan status Rollup akun berubah, informasinya akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi informasi yang diperlukan untuk membangun ulang pohon. Dalam implementasi sederhana, ringkasan akun Rollup akan mencakup saldo dari semua akun yang ada dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih canggih, gunakan perbedaan 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’ 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 masih memungkinkan pengguna untuk memastikan akses informasi yang dibutuhkan untuk keluar bersama. Aturan rollup mensyaratkan bahwa data ini harus dimasukkan ke dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, sehingga transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Periode berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan menyimpan data di tempat lain di luar Blok. Ini menghadirkan masalah yang rumit, rollup masih perlu memastikan data tetap tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Hal ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke rantai Blok BTC, aturan Konsensus dapat menjamin keabsolutan data tersebut. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, hal terbaik yang dapat dilakukannya hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti bahwa data tersebut ada di Blok on-chain lain, ini pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun selain dari apa yang terjadi di dalam Blok on-chain mereka sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup benar-benar disiarkan secara terbuka setelah dibuat. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Serangan penahanan data ini membuka pintu lebar, yaitu membuat janji terhadap data yang dipublikasikan dan menggunakannya untuk mendorong rollup, tetapi data sebenarnya tidak tersedia. Ini membuat pengguna tidak dapat menarik dana. Satu-satunya solusi nyata adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Dua belas langkah
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, pada dasarnya ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak besar pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok Blockchain sebagai lapisan ketersediaan data akan memberikan batasan maksimal yang keras bagi skalabilitas rollup. Ruang Blok terbatas, ini mengatur batas jumlah rollup yang dapat ada dan total transaksi yang dapat diproses off-chain oleh semua rollup. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data dikompresi hingga tingkat tertentu, pada titik ini tidak ada potensi skalabilitas lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan keras dari keuntungan skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang ingin diekstraksi pengguna tidak dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak akan berubah. Dengan menggunakan Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, setiap produsen Blok pada sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok tersebut tanpa benar-benar menyiarkan Blok tersebut, sehingga membuat data menjadi tersedia.
Jadi, jika kita benar-benar mencapai implementasi Rollup yang ideal di BTC, dengan penarikan dana pengguna secara satu arah yang sebenarnya, bagaimana itu akan terjadi?