Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wuzhu, Golden Finance
Rollups baru-baru ini menjadi fokus perluasan BTC dan menjadi sesuatu yang benar-benar mencuri perhatian dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollups bertujuan untuk menjadi lapisan off-chain yang tidak terbatas atau terbatas oleh Likuiditas inti Jaringan Lighting, yang berarti pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjam’) terlebih dahulu untuk menerima pembayaran, atau Node perantara perlu memiliki saldo kanal untuk memfasilitasi aliran pembayaran dari pengirim ke penerima secara keseluruhan.
Sistem-sistem ini awalnya dijalankan pada Ethereum dan sistem Turing Complete lainnya, tetapi akhir-akhir ini fokus telah beralih ke porting mereka ke blockchain yang berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud membahas status quo implementasi saat ini di BTC, tetapi membahas fitur idealis Rollup yang telah lama dicari orang, yang tergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) secara langsung di BTC, yang saat ini tidak didukung oleh BTC.
Struktur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo pengguna dari semua pengguna di Rollup. UTXO ini berisi komitmen yang ada dalam bentuk akar Merkle dari pohon Merkle, yang berkomitmen pada semua saldo akun Rollup yang ada. Semua akun ini diotorisasi menggunakan Kunci Publik/Kunci Pribadi, sehingga pengguna masih harus menggunakan Kunci Rahasia untuk menandatangani konten tertentu agar dapat melakukan pengeluaran di luar rantai. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa izin, hanya perlu membuat bukti transaksi bahwa akun mereka adalah bagian dari pohon Merkle, dan mereka dapat keluar dari Rollup secara unilateral tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui akun on-chain saldo akun merkle root selama proses transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan dalam Blokchain. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada akun off-chain telah mendapatkan otorisasi yang tepat dari pemilik akun dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau tidak jujur dalam mengalokasikannya kepada pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan di on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka dapat 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 kembali pohon. Dalam implementasi sederhana, ringkasan semua akun yang ada di Rollup akan mencakup saldo, 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 dari saldo akun saat ini.
Dengan cara ini, dapat menghemat banyak biaya dan ruang Blok (sehingga menghemat dana), sambil tetap memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar sepihak. Aturan rollup mengharuskan data ini dimasukkan ke dalam rollup resmi yang disediakan oleh Blok chain kepada pengguna, dengan transaksi yang tidak mencakup ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa Berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan menyimpan data di tempat lain di luar Blok. Ini memunculkan masalah halus, rollup masih perlu memastikan data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data sistem seperti rollup.
Ini menciptakan dilema yang sama kuatnya dalam hal keamanan. Ketika data dipublikasikan langsung ke rantai Blok BTC, aturan Konsensus dapat menjamin kebenarannya secara mutlak. Namun, ketika data dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi data ada di luar on-chain bukti, ini pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Bloknya sendiri on-chain, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang mengandung data rollup benar-benar disiarkan secara terbuka setelah dibuat. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu menciptakan janji terhadap data yang dipublikasikan dan menggunakannya untuk mendorong 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.
Terjepit di antara dua pilihan
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara dasarnya ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok Blok sebagai lapisan ketersediaan data akan memberikan batasan maksimum yang keras untuk skalabilitas rollup. Ruang Blok terbatas, yang membatasi jumlah rollup yang dapat ada sekaligus serta jumlah transaksi yang dapat ditangani off-chain secara total. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang telah mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data untuk dikompresi hingga batas tertentu, di mana tidak akan ada lagi potensi ekspansi lebih lanjut.
Di sisi lain, penggunaan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan maksimum 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 secara otomatis dipublikasikan ke blockchain, maka status Rollup tidak dapat berubah. Dalam Validium, jaminan ini sepenuhnya tergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, produsen Blok mana pun pada sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dengan benar-benar mewujudkan penarikan unidireksional pengguna, 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: Apa kesulitan yang dihadapi oleh Rollup?
Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wuzhu, Golden Finance
Rollups baru-baru ini menjadi fokus perluasan BTC dan menjadi sesuatu yang benar-benar mencuri perhatian dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollups bertujuan untuk menjadi lapisan off-chain yang tidak terbatas atau terbatas oleh Likuiditas inti Jaringan Lighting, yang berarti pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjam’) terlebih dahulu untuk menerima pembayaran, atau Node perantara perlu memiliki saldo kanal untuk memfasilitasi aliran pembayaran dari pengirim ke penerima secara keseluruhan.
Sistem-sistem ini awalnya dijalankan pada Ethereum dan sistem Turing Complete lainnya, tetapi akhir-akhir ini fokus telah beralih ke porting mereka ke blockchain yang berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud membahas status quo implementasi saat ini di BTC, tetapi membahas fitur idealis Rollup yang telah lama dicari orang, yang tergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) secara langsung di BTC, yang saat ini tidak didukung oleh BTC.
Struktur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo pengguna dari semua pengguna di Rollup. UTXO ini berisi komitmen yang ada dalam bentuk akar Merkle dari pohon Merkle, yang berkomitmen pada semua saldo akun Rollup yang ada. Semua akun ini diotorisasi menggunakan Kunci Publik/Kunci Pribadi, sehingga pengguna masih harus menggunakan Kunci Rahasia untuk menandatangani konten tertentu agar dapat melakukan pengeluaran di luar rantai. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa izin, hanya perlu membuat bukti transaksi bahwa akun mereka adalah bagian dari pohon Merkle, dan mereka dapat keluar dari Rollup secara unilateral tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui akun on-chain saldo akun merkle root selama proses transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan dalam Blokchain. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada akun off-chain telah mendapatkan otorisasi yang tepat dari pemilik akun dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau tidak jujur dalam mengalokasikannya kepada pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan di on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka dapat 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 kembali pohon. Dalam implementasi sederhana, ringkasan semua akun yang ada di Rollup akan mencakup saldo, 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 dari saldo akun saat ini.
Dengan cara ini, dapat menghemat banyak biaya dan ruang Blok (sehingga menghemat dana), sambil tetap memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar sepihak. Aturan rollup mengharuskan data ini dimasukkan ke dalam rollup resmi yang disediakan oleh Blok chain kepada pengguna, dengan transaksi yang tidak mencakup ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa Berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan menyimpan data di tempat lain di luar Blok. Ini memunculkan masalah halus, rollup masih perlu memastikan data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data sistem seperti rollup.
Ini menciptakan dilema yang sama kuatnya dalam hal keamanan. Ketika data dipublikasikan langsung ke rantai Blok BTC, aturan Konsensus dapat menjamin kebenarannya secara mutlak. Namun, ketika data dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi data ada di luar on-chain bukti, ini pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Bloknya sendiri on-chain, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang mengandung data rollup benar-benar disiarkan secara terbuka setelah dibuat. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu menciptakan janji terhadap data yang dipublikasikan dan menggunakannya untuk mendorong 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.
Terjepit di antara dua pilihan
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara dasarnya ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok Blok sebagai lapisan ketersediaan data akan memberikan batasan maksimum yang keras untuk skalabilitas rollup. Ruang Blok terbatas, yang membatasi jumlah rollup yang dapat ada sekaligus serta jumlah transaksi yang dapat ditangani off-chain secara total. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang telah mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data untuk dikompresi hingga batas tertentu, di mana tidak akan ada lagi potensi ekspansi lebih lanjut.
Di sisi lain, penggunaan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan maksimum 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 secara otomatis dipublikasikan ke blockchain, maka status Rollup tidak dapat berubah. Dalam Validium, jaminan ini sepenuhnya tergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, produsen Blok mana pun pada sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dengan benar-benar mewujudkan penarikan unidireksional pengguna, bagaimana itu akan terjadi?