Baru-baru ini, Rollups telah menjadi fokus peningkatan kapasitas 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 ada yang mengalokasikan (atau ‘meminjamkan’) dana terlebih dahulu untuk menerima pembayaran, atau Node perantara perlu saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan pada Ethereum dan sistem Turing Complete lainnya, namun belakangan ini fokus telah beralih ke porting sistem-sistem ini ke blockchain berbasis UTXO (seperti BTC). Artikel ini tidak bermaksud membahas implementasi saat ini pada BTC, tetapi membahas fitur idealisasi Rollup yang telah lama dikejar, yang bergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) langsung di BTC yang saat ini tidak didukung.
Struktur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen, yang ada dalam bentuk akar Merkle dari pohon Merkle, yang menjanjikan semua saldo saat ini akun dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan 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 pohon Merkle, mereka dapat keluar dari Rollup secara sepihak tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui akun saldo off-chain ke root merkle on-chain saat menyelesaikan transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blockchain. Bukti ini memungkinkan orang untuk memverifikasi bahwa semua perubahan akun off-chain telah mendapatkan otorisasi yang tepat dari pemegang akun, dan bahwa operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau secara tidak jujur mengalokasikannya ulang ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle dipublikasikan di atas rantai, pengguna dapat melihat dan mengaksesnya, bagaimana mereka bisa menempatkan cabang mereka di dalam pohon, sehingga mereka dapat keluar kapan pun tanpa izin yang mereka inginkan?
Rollup yang Sesuai
Dalam Rollup yang tepat, setiap kali ada konfirmasi transaksi off-chain baru dan status Rollupakun berubah, informasinya 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 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, ini memungkinkan mereka untuk membangun kembali pohon Merkle dari saldo akun saat ini.
Dengan cara ini, penghematan biaya besar-besaran dan ruang Blok (sehingga menghemat dana) dapat dicapai sambil masih memungkinkan pengguna untuk menjamin informasi yang diperlukan untuk keluar dari satu sisi. Aturan rollup memerlukan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blok chain kepada pengguna, sehingga transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang 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 menghadirkan masalah yang rumit, rollup masih perlu memastikan bahwa data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menciptakan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke rantai Blok BTC, aturan Konsensus dapat memastikan kebenarannya mutlak. 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 membutuhkan bukti bahwa data ada di on-chain lain, ini pada akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun kecuali hal-hal yang terjadi di Bloknya sendiri di on-chain, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup benar-benar diumumkan 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 akan diterbitkan dan menggunakannya untuk memajukan rollup, tetapi data sebenarnya tidak tersedia. Ini mengakibatkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar efektif adalah bergantung sepenuhnya pada nilai dan struktur insentif sistem di luar BTC.
Dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, pada dasarnya ada pilihan biner untuk mempublikasikan data ke rantai blok BTC atau tempat lain. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlockchain sebagai lapisan ketersediaan data akan memberikan batasan keras pada skalabilitas rollup. Ruang Blok terbatas, yang menetapkan batasan pada jumlah rollup yang dapat ada sekali dan total transaksi yang dapat ditangani off-chain oleh semua rollup. Setiap pembaruan rollup membutuhkan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan sebelumnya. Teori informasi hanya memungkinkan kompresi data hingga tingkat tertentu, pada titik ini, tidak ada lagi potensi ekspansi.
Di sisi lain, penggunaan 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 diekstrak oleh pengguna tidak dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak akan berubah. Dalam Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, produsen Blok apa pun di sistem ketersediaan data eksternal dapat menculik dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiar Blok tersebut, sehingga membuat data tersedia.
Jadi, bagaimana jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dengan benar-benar menerapkan penarikan satu sisi pengguna?
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 oleh Rollup?
Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wuzhu, Jinse Keuangan
Baru-baru ini, Rollups telah menjadi fokus peningkatan kapasitas 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 ada yang mengalokasikan (atau ‘meminjamkan’) dana terlebih dahulu untuk menerima pembayaran, atau Node perantara perlu saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan pada Ethereum dan sistem Turing Complete lainnya, namun belakangan ini fokus telah beralih ke porting sistem-sistem ini ke blockchain berbasis UTXO (seperti BTC). Artikel ini tidak bermaksud membahas implementasi saat ini pada BTC, tetapi membahas fitur idealisasi Rollup yang telah lama dikejar, yang bergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) langsung di BTC yang saat ini tidak didukung.
Struktur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen, yang ada dalam bentuk akar Merkle dari pohon Merkle, yang menjanjikan semua saldo saat ini akun dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan 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 pohon Merkle, mereka dapat keluar dari Rollup secara sepihak tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui akun saldo off-chain ke root merkle on-chain saat menyelesaikan transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blockchain. Bukti ini memungkinkan orang untuk memverifikasi bahwa semua perubahan akun off-chain telah mendapatkan otorisasi yang tepat dari pemegang akun, dan bahwa operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau secara tidak jujur mengalokasikannya ulang ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle dipublikasikan di atas rantai, pengguna dapat melihat dan mengaksesnya, bagaimana mereka bisa menempatkan cabang mereka di dalam pohon, sehingga mereka dapat keluar kapan pun tanpa izin yang mereka inginkan?
Rollup yang Sesuai
Dalam Rollup yang tepat, setiap kali ada konfirmasi transaksi off-chain baru dan status Rollupakun berubah, informasinya 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 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, ini memungkinkan mereka untuk membangun kembali pohon Merkle dari saldo akun saat ini.
Dengan cara ini, penghematan biaya besar-besaran dan ruang Blok (sehingga menghemat dana) dapat dicapai sambil masih memungkinkan pengguna untuk menjamin informasi yang diperlukan untuk keluar dari satu sisi. Aturan rollup memerlukan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blok chain kepada pengguna, sehingga transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang 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 menghadirkan masalah yang rumit, rollup masih perlu memastikan bahwa data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menciptakan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke rantai Blok BTC, aturan Konsensus dapat memastikan kebenarannya mutlak. 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 membutuhkan bukti bahwa data ada di on-chain lain, ini pada akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun kecuali hal-hal yang terjadi di Bloknya sendiri di on-chain, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup benar-benar diumumkan 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 akan diterbitkan dan menggunakannya untuk memajukan rollup, tetapi data sebenarnya tidak tersedia. Ini mengakibatkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar efektif adalah bergantung sepenuhnya pada nilai dan struktur insentif sistem di luar BTC.
Dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, pada dasarnya ada pilihan biner untuk mempublikasikan data ke rantai blok BTC atau tempat lain. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlockchain sebagai lapisan ketersediaan data akan memberikan batasan keras pada skalabilitas rollup. Ruang Blok terbatas, yang menetapkan batasan pada jumlah rollup yang dapat ada sekali dan total transaksi yang dapat ditangani off-chain oleh semua rollup. Setiap pembaruan rollup membutuhkan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan sebelumnya. Teori informasi hanya memungkinkan kompresi data hingga tingkat tertentu, pada titik ini, tidak ada lagi potensi ekspansi.
Di sisi lain, penggunaan 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 diekstrak oleh pengguna tidak dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak akan berubah. Dalam Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, produsen Blok apa pun di sistem ketersediaan data eksternal dapat menculik dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiar Blok tersebut, sehingga membuat data tersedia.
Jadi, bagaimana jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dengan benar-benar menerapkan penarikan satu sisi pengguna?