Sumber: Bitcoin Magazine; Terjemahan: Wuzhu, 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-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 implementasi saat ini di BTC, tetapi membahas fitur Rollup ideal yang telah lama dicari oleh orang, yang bergantung pada kemampuan BTC yang saat ini tidak didukung, yaitu kemampuan untuk secara langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Arsitektur dasar Roll adalah sebagai berikut: Sebuah akun tunggal (disebut UTXO dalam BTC) menyimpan saldo semua pengguna di dalam Rollup. UTXO ini berisi suatu komitmen yang ada dalam bentuk root Merkle dari pohon Merkle, yang berkomitmen terhadap semua saldo saat ini dari akun di Rollup. Semua akun ini menggunakan Kunci Publik/Kunci Pribadi untuk otorisasi, 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 perlu izin, hanya dengan membuat bukti transaksi bahwa akun mereka adalah bagian dari pohon Merkle, mereka dapat keluar dari Rollup secara unilateral tanpa perlu 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 mendapatkan otorisasi yang tepat dari pemilik akun, dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau dengan tidak jujur mendistribusikannya kembali ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan secara on-chain, pengguna dapat melihat dan mengaksesnya, tetapi bagaimana mereka bisa menempatkan cabang mereka di dalam pohon sehingga mereka dapat keluar kapan saja tanpa izin?
Rollup yang Sesuai
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 kembali pohon. Dalam implementasi sederhana, ringkasan akun Rollup akan mencakup saldo dari semua akun yang ada di dalam Rollup, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih maju, varians keseimbangan digunakan. Ini pada dasarnya adalah ringkasan akun mana yang mengalami peningkatan atau penurunan pendanaan selama proses pembaruan. Hal ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang telah terjadi. Pengguna kemudian dapat dengan mudah memindai rantai dan “menghitung” dari awal Rollup untuk mendapatkan keadaan saldo akun saat ini, yang memungkinkan mereka untuk membangun kembali pohon Merkle dari saldo saat ini.
Ini akan menghemat biaya dan ruang Blok secara signifikan (dan pada gilirannya menghemat dana), sambil tetap memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar sepihak. Aturan rollup mengharuskan data ini termasuk dalam rollup resmi yang diberikan kepada pengguna menggunakan Blokchain, sehingga transaksi tanpa ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Hal ini memperkenalkan masalah yang rumit, rollup tetap perlu memastikan dengan tegas bahwa data tersebut tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke BTCBlok chain, aturan Konsensus dapat memastikan kebenarannya mutlak. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang dapat dilakukan hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti data ada di on-chain lain, akhirnya ini adalah masalah Mesin Oracle. Blok BTC tidak bisa sepenuhnya memverifikasi apa pun yang terjadi di luar bloknya sendiri, yang terbaik yang bisa dilakukan hanyalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup Blok setelah dibuat benar-benar disiarkan secara publik. 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 memajukan rollup, tetapi data sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar adalah bergantung sepenuhnya pada nilai dan struktur insentif sistem di luar BTC.
Masuk atau mundur
Ini menciptakan dilema bagi rollup. Ketika masalah ketersediaan data muncul, secara dasarnya ada pilihan biner antara mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok chain sebagai lapisan ketersediaan data akan memberikan batasan maksimum untuk skalabilitas rollup. Ruang Blok terbatas, yang mengatur jumlah rollup yang dapat ada pada satu waktu dan jumlah total transaksi yang dapat diproses di luar chain. Setiap pembaruan rollup membutuhkan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data dikompresi hingga batas tertentu, pada titik ini, tidak ada potensi ekspansi 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 pengguna tidak secara otomatis dipublikasikan 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 penyembunyian data.
Saat ini, produsen Blok di sistem ketersediaan data eksternal dapat mengambil dana pengguna BTCRollup dengan memproduksi Blok daripada secara aktual menyiar Blok tersebut, sehingga membuat data dapat diakses.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan pengguna satu arah, 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; Terjemahan: Wuzhu, 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-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 implementasi saat ini di BTC, tetapi membahas fitur Rollup ideal yang telah lama dicari oleh orang, yang bergantung pada kemampuan BTC yang saat ini tidak didukung, yaitu kemampuan untuk secara langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Arsitektur dasar Roll adalah sebagai berikut: Sebuah akun tunggal (disebut UTXO dalam BTC) menyimpan saldo semua pengguna di dalam Rollup. UTXO ini berisi suatu komitmen yang ada dalam bentuk root Merkle dari pohon Merkle, yang berkomitmen terhadap semua saldo saat ini dari akun di Rollup. Semua akun ini menggunakan Kunci Publik/Kunci Pribadi untuk otorisasi, 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 perlu izin, hanya dengan membuat bukti transaksi bahwa akun mereka adalah bagian dari pohon Merkle, mereka dapat keluar dari Rollup secara unilateral tanpa perlu 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 mendapatkan otorisasi yang tepat dari pemilik akun, dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau dengan tidak jujur mendistribusikannya kembali ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan secara on-chain, pengguna dapat melihat dan mengaksesnya, tetapi bagaimana mereka bisa menempatkan cabang mereka di dalam pohon sehingga mereka dapat keluar kapan saja tanpa izin?
Rollup yang Sesuai
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 kembali pohon. Dalam implementasi sederhana, ringkasan akun Rollup akan mencakup saldo dari semua akun yang ada di dalam Rollup, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih maju, varians keseimbangan digunakan. Ini pada dasarnya adalah ringkasan akun mana yang mengalami peningkatan atau penurunan pendanaan selama proses pembaruan. Hal ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang telah terjadi. Pengguna kemudian dapat dengan mudah memindai rantai dan “menghitung” dari awal Rollup untuk mendapatkan keadaan saldo akun saat ini, yang memungkinkan mereka untuk membangun kembali pohon Merkle dari saldo saat ini.
Ini akan menghemat biaya dan ruang Blok secara signifikan (dan pada gilirannya menghemat dana), sambil tetap memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar sepihak. Aturan rollup mengharuskan data ini termasuk dalam rollup resmi yang diberikan kepada pengguna menggunakan Blokchain, sehingga transaksi tanpa ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Hal ini memperkenalkan masalah yang rumit, rollup tetap perlu memastikan dengan tegas bahwa data tersebut tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke BTCBlok chain, aturan Konsensus dapat memastikan kebenarannya mutlak. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang dapat dilakukan hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti data ada di on-chain lain, akhirnya ini adalah masalah Mesin Oracle. Blok BTC tidak bisa sepenuhnya memverifikasi apa pun yang terjadi di luar bloknya sendiri, yang terbaik yang bisa dilakukan hanyalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup Blok setelah dibuat benar-benar disiarkan secara publik. 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 memajukan rollup, tetapi data sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar adalah bergantung sepenuhnya pada nilai dan struktur insentif sistem di luar BTC.
Masuk atau mundur
Ini menciptakan dilema bagi rollup. Ketika masalah ketersediaan data muncul, secara dasarnya ada pilihan biner antara mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok chain sebagai lapisan ketersediaan data akan memberikan batasan maksimum untuk skalabilitas rollup. Ruang Blok terbatas, yang mengatur jumlah rollup yang dapat ada pada satu waktu dan jumlah total transaksi yang dapat diproses di luar chain. Setiap pembaruan rollup membutuhkan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data dikompresi hingga batas tertentu, pada titik ini, tidak ada potensi ekspansi 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 pengguna tidak secara otomatis dipublikasikan 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 penyembunyian data.
Saat ini, produsen Blok di sistem ketersediaan data eksternal dapat mengambil dana pengguna BTCRollup dengan memproduksi Blok daripada secara aktual menyiar Blok tersebut, sehingga membuat data dapat diakses.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan pengguna satu arah, bagaimana itu akan terjadi?