Baru-baru ini, rollups telah menjadi fokus perluasan BTC, menjadi sesuatu yang benar-benar mencuri perhatian dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollups bertujuan untuk menjadi lapisan kedua off-chain yang tidak terbatas atau terikat 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 saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan di Ethereum dan sistem Turing Complete lainnya, tetapi baru-baru 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 yang ideal yang telah lama dicari, yang tergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) secara langsung di BTC yang saat ini tidak didukung.
Arsitektur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna di dalam Rollup. UTXO ini berisi komitmen yang ada dalam bentuk akar Merkle dari pohon Merkle, yang menjanjikan semua saldo saat ini dari akun Rollup yang ada. Semua akun ini diotorisasi menggunakan Kunci Publik/Kunci Pribadi, sehingga pengguna masih harus menggunakan Kunci Rahasia untuk menandatangani konten tertentu untuk mengeluarkan pengeluaran off-chain. 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 sepihak tanpa izin operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui akun on-chain akun saldo merkle root selama proses transaksi off-chain. Jika tidak ada ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blokchain. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada akun off-chain telah mendapat otorisasi yang tepat dari pemegang akun, dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau dengan tidak jujur mengalokasikannya ulang kepada pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan on-chain, pengguna dapat melihat dan mengaksesnya, tetapi bagaimana mereka menempatkan cabang mereka di dalam pohon sehingga dapat keluar kapan saja tanpa izin?
Rollup yang Sesuai
Dalam Rollup yang sesuai, setiap kali transaksi off-chain baru dikonfirmasi dan status Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi informasi yang diperlukan untuk membangun kembali pohon. Dalam implementasi yang sederhana, ringkasan dari semua akun yang ada di Rollup akan mencakup saldo, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih tinggi, menggunakan selisih saldo akun. Ini pada dasarnya adalah ringkasan dari akun mana yang mengalami penambahan atau pengurangan dana selama proses pembaruan. Ini memungkinkan setiap pembaruan Rollup hanya mengandung perubahan saldo akun yang terjadi. Kemudian, pengguna dapat dengan mudah memindai rantai dan ‘menghitung’ dari awal Rollup untuk mendapatkan status saldo akun saat ini, yang memungkinkan mereka untuk membangun kembali pohon Merkle saldo saat ini.
Dengan demikian, ini dapat menghemat banyak pengeluaran dan ruang Blok (sehingga menghemat dana), sambil masih memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar satu arah. Aturan rollup mengharuskan data ini disertakan dalam rollup resmi yang disediakan oleh Blok untuk pengguna, sehingga transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa berlaku
Salah satu cara lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di luar Blok rantai. Ini memperkenalkan masalah yang halus, di mana rollup masih harus memastikan bahwa data tersedia di tempat lain. Secara tradisional, rantai Blok lainnya digunakan untuk tujuan ini, yang secara khusus dirancang sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke BTCBlok, aturan Konsensus dapat menjamin kebenarannya. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi bahwa data ada di luar Blok-on-chain, yang pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Blok-on-chain, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup dari Blok setelah dibuat benar-benar disiarkan secara publik. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Serangan Penahanan Data telah membuka pintu, yaitu menciptakan janji untuk data yang diterbitkan dan menggunakannya untuk mendorong rollup, tetapi data sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar dapat diandalkan adalah nilai dan struktur insentif sistem yang sepenuhnya bergantung pada sistem selain BTC.
Dilemma
Ini menciptakan dilema untuk rollup. Ketika berurusan dengan masalah ketersediaan data, ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak besar pada keamanan dan kedaulatan rollup serta skalabilitasnya.
Di satu sisi, menggunakan BTCBlok Blockchain sebagai lapisan ketersediaan data akan menetapkan batas maksimum pada skalabilitas rollup. Ruang Blok terbatas, yang menetapkan batas pada jumlah rollup yang dapat ada pada satu waktu dan jumlah total transaksi yang dapat diproses off-chain oleh semua rollup. Setiap pembaharuan rollup membutuhkan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaharuan terakhir. Teori informasi hanya memungkinkan data dikompresi hingga sebatas tertentu, dan pada titik itu, tidak ada lagi potensi untuk skala lebih lanjut.
Di sisi lain, menggunakan berbagai lapisan untuk mencapai ketersediaan data akan menghilangkan batasan keras dari manfaat 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 akan dapat berubah. Dengan menggunakan Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan penyembunyian data.
Sekarang, produsen Blok mana pun pada sistem ketersediaan data eksternal dapat menculik dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiar Blok tersebut, sehingga membuat data menjadi tersedia.
Jadi, jika kita benar-benar dapat mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar dapat melakukan penarikan secara satu arah oleh 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 masalah yang dihadapi oleh Rollup?
Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wu Zhu, Jinse Finance
Baru-baru ini, rollups telah menjadi fokus perluasan BTC, menjadi sesuatu yang benar-benar mencuri perhatian dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollups bertujuan untuk menjadi lapisan kedua off-chain yang tidak terbatas atau terikat 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 saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan di Ethereum dan sistem Turing Complete lainnya, tetapi baru-baru 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 yang ideal yang telah lama dicari, yang tergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) secara langsung di BTC yang saat ini tidak didukung.
Arsitektur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna di dalam Rollup. UTXO ini berisi komitmen yang ada dalam bentuk akar Merkle dari pohon Merkle, yang menjanjikan semua saldo saat ini dari akun Rollup yang ada. Semua akun ini diotorisasi menggunakan Kunci Publik/Kunci Pribadi, sehingga pengguna masih harus menggunakan Kunci Rahasia untuk menandatangani konten tertentu untuk mengeluarkan pengeluaran off-chain. 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 sepihak tanpa izin operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui akun on-chain akun saldo merkle root selama proses transaksi off-chain. Jika tidak ada ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blokchain. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada akun off-chain telah mendapat otorisasi yang tepat dari pemegang akun, dan apakah operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau dengan tidak jujur mengalokasikannya ulang kepada pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan on-chain, pengguna dapat melihat dan mengaksesnya, tetapi bagaimana mereka menempatkan cabang mereka di dalam pohon sehingga dapat keluar kapan saja tanpa izin?
Rollup yang Sesuai
Dalam Rollup yang sesuai, setiap kali transaksi off-chain baru dikonfirmasi dan status Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi informasi yang diperlukan untuk membangun kembali pohon. Dalam implementasi yang sederhana, ringkasan dari semua akun yang ada di Rollup akan mencakup saldo, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih tinggi, menggunakan selisih saldo akun. Ini pada dasarnya adalah ringkasan dari akun mana yang mengalami penambahan atau pengurangan dana selama proses pembaruan. Ini memungkinkan setiap pembaruan Rollup hanya mengandung perubahan saldo akun yang terjadi. Kemudian, pengguna dapat dengan mudah memindai rantai dan ‘menghitung’ dari awal Rollup untuk mendapatkan status saldo akun saat ini, yang memungkinkan mereka untuk membangun kembali pohon Merkle saldo saat ini.
Dengan demikian, ini dapat menghemat banyak pengeluaran dan ruang Blok (sehingga menghemat dana), sambil masih memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar satu arah. Aturan rollup mengharuskan data ini disertakan dalam rollup resmi yang disediakan oleh Blok untuk pengguna, sehingga transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa berlaku
Salah satu cara lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di luar Blok rantai. Ini memperkenalkan masalah yang halus, di mana rollup masih harus memastikan bahwa data tersedia di tempat lain. Secara tradisional, rantai Blok lainnya digunakan untuk tujuan ini, yang secara khusus dirancang sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke BTCBlok, aturan Konsensus dapat menjamin kebenarannya. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi bahwa data ada di luar Blok-on-chain, yang pada akhirnya adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Blok-on-chain, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup dari Blok setelah dibuat benar-benar disiarkan secara publik. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Serangan Penahanan Data telah membuka pintu, yaitu menciptakan janji untuk data yang diterbitkan dan menggunakannya untuk mendorong rollup, tetapi data sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar dapat diandalkan adalah nilai dan struktur insentif sistem yang sepenuhnya bergantung pada sistem selain BTC.
Dilemma
Ini menciptakan dilema untuk rollup. Ketika berurusan dengan masalah ketersediaan data, ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak besar pada keamanan dan kedaulatan rollup serta skalabilitasnya.
Di satu sisi, menggunakan BTCBlok Blockchain sebagai lapisan ketersediaan data akan menetapkan batas maksimum pada skalabilitas rollup. Ruang Blok terbatas, yang menetapkan batas pada jumlah rollup yang dapat ada pada satu waktu dan jumlah total transaksi yang dapat diproses off-chain oleh semua rollup. Setiap pembaharuan rollup membutuhkan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaharuan terakhir. Teori informasi hanya memungkinkan data dikompresi hingga sebatas tertentu, dan pada titik itu, tidak ada lagi potensi untuk skala lebih lanjut.
Di sisi lain, menggunakan berbagai lapisan untuk mencapai ketersediaan data akan menghilangkan batasan keras dari manfaat 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 akan dapat berubah. Dengan menggunakan Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan penyembunyian data.
Sekarang, produsen Blok mana pun pada sistem ketersediaan data eksternal dapat menculik dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiar Blok tersebut, sehingga membuat data menjadi tersedia.
Jadi, jika kita benar-benar dapat mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar dapat melakukan penarikan secara satu arah oleh pengguna, bagaimana itu akan terjadi?