Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollups telah menjadi fokus perluasan BTC baru-baru ini, 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 terikat atau terbatas oleh pembatasan inti Likuiditas Jaringan Lighting, yang berarti pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjamkan’) sebelum mereka dapat menerima uang, atau Node penghubung perlu memiliki saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem-sistem Turing Complete lainnya, tetapi baru-baru ini fokus telah beralih untuk memindahkannya ke blockchain berbasis UTXO (misalnya 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 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 di BTC) menyimpan saldo semua pengguna di Rollup. UTXO ini berisi suatu komitmen, yang ada dalam bentuk Merkle root dari pohon Merkle, yang menjamin semua saldo saat ini dari akun di Rollup. Semua akun ini diotorisasi 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 sepihak tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui saldo akun on-chain selama proses transaksi off-chain, jika tidak transaksi tersebut akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi bahwa semua perubahan saldo akun off-chain telah diotorisasi dengan benar oleh 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 yang dipublikasikan di on-chain, bagaimana pengguna dapat menempatkan cabang mereka di dalam pohon agar dapat keluar kapan pun mereka mau tanpa izin?
Rollup yang Cocok
Dalam Rollup yang tepat, 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 pembaruan Rollup.
Dalam implementasi yang lebih canggih, gunakan perbedaan saldo. Pada dasarnya ini adalah ringkasan dana mana akun yang ditambahkan atau dikurangi selama proses pembaruan. Ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang terjadi. Kemudian, pengguna dapat dengan mudah memindai rantai dan ‘menghitung ulang’ dari awal Rollup untuk mengetahui status saldo akun saat ini, yang memungkinkan mereka membangun kembali pohon Merkle dari saldo saat ini.
Ini akan menghemat biaya dan ruang Blok yang besar (sehingga menghemat dana), sambil masih memungkinkan pengguna untuk memastikan akses informasi yang diperlukan untuk keluar satu arah. Aturan rollup mengharuskan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, yaitu transaksi yang tidak mencakup 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 memperkenalkan 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 rollup dan lainnya.
Ini menciptakan dilema keamanan yang sama kuatnya. Ketika data langsung dipublikasikan ke jaringan Blok BTCB, aturan Konsensus dapat memastikan kebenarannya secara mutlak. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang dapat dilakukan hanyalah memverifikasi bukti SPV, yaitu bahwa data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi data ada di Blok on-chain lain, akhirnya ini adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang tidak terjadi di Blok on-chain mereka sendiri, 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 dengan menciptakan janji 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 mengandalkan nilai dan struktur insentif dari sistem di luar BTC.
Terjebak dalam Dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara dasarnya ada dua pilihan biner yaitu mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok sebagai lapisan ketersediaan data akan memberi batasan keras pada skalabilitas rollup. Ruang Blok terbatas, yang mengatur jumlah rollup yang dapat ada secara bersamaan dan total transaksi yang dapat diolah off-chain oleh semua rollup. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan sebelumnya. Teori informasi hanya memungkinkan data untuk dikompresi hingga batas tertentu, di mana tidak ada lagi potensi ekspansi.
Di sisi lain, menggunakan lapisan yang berbeda 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 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, produsen Blok apa pun di dalam sistem ketersediaan data eksternal dapat mencuri dana pengguna BTCRollup dengan memproduksi Blok tanpa benar-benar menyiarakan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar dapat mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan unilateral 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; Terjemahan: Wu Zhu, Golden Finance
Rollups telah menjadi fokus perluasan BTC baru-baru ini, 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 terikat atau terbatas oleh pembatasan inti Likuiditas Jaringan Lighting, yang berarti pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjamkan’) sebelum mereka dapat menerima uang, atau Node penghubung perlu memiliki saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem-sistem Turing Complete lainnya, tetapi baru-baru ini fokus telah beralih untuk memindahkannya ke blockchain berbasis UTXO (misalnya 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 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 di BTC) menyimpan saldo semua pengguna di Rollup. UTXO ini berisi suatu komitmen, yang ada dalam bentuk Merkle root dari pohon Merkle, yang menjamin semua saldo saat ini dari akun di Rollup. Semua akun ini diotorisasi 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 sepihak tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui saldo akun on-chain selama proses transaksi off-chain, jika tidak transaksi tersebut akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi bahwa semua perubahan saldo akun off-chain telah diotorisasi dengan benar oleh 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 yang dipublikasikan di on-chain, bagaimana pengguna dapat menempatkan cabang mereka di dalam pohon agar dapat keluar kapan pun mereka mau tanpa izin?
Rollup yang Cocok
Dalam Rollup yang tepat, 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 pembaruan Rollup.
Dalam implementasi yang lebih canggih, gunakan perbedaan saldo. Pada dasarnya ini adalah ringkasan dana mana akun yang ditambahkan atau dikurangi selama proses pembaruan. Ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang terjadi. Kemudian, pengguna dapat dengan mudah memindai rantai dan ‘menghitung ulang’ dari awal Rollup untuk mengetahui status saldo akun saat ini, yang memungkinkan mereka membangun kembali pohon Merkle dari saldo saat ini.
Ini akan menghemat biaya dan ruang Blok yang besar (sehingga menghemat dana), sambil masih memungkinkan pengguna untuk memastikan akses informasi yang diperlukan untuk keluar satu arah. Aturan rollup mengharuskan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, yaitu transaksi yang tidak mencakup 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 memperkenalkan 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 rollup dan lainnya.
Ini menciptakan dilema keamanan yang sama kuatnya. Ketika data langsung dipublikasikan ke jaringan Blok BTCB, aturan Konsensus dapat memastikan kebenarannya secara mutlak. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang dapat dilakukan hanyalah memverifikasi bukti SPV, yaitu bahwa data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi data ada di Blok on-chain lain, akhirnya ini adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang tidak terjadi di Blok on-chain mereka sendiri, 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 dengan menciptakan janji 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 mengandalkan nilai dan struktur insentif dari sistem di luar BTC.
Terjebak dalam Dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara dasarnya ada dua pilihan biner yaitu mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak signifikan pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlok sebagai lapisan ketersediaan data akan memberi batasan keras pada skalabilitas rollup. Ruang Blok terbatas, yang mengatur jumlah rollup yang dapat ada secara bersamaan dan total transaksi yang dapat diolah off-chain oleh semua rollup. Setiap pembaruan rollup memerlukan ruang Blok yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan sebelumnya. Teori informasi hanya memungkinkan data untuk dikompresi hingga batas tertentu, di mana tidak ada lagi potensi ekspansi.
Di sisi lain, menggunakan lapisan yang berbeda 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 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, produsen Blok apa pun di dalam sistem ketersediaan data eksternal dapat mencuri dana pengguna BTCRollup dengan memproduksi Blok tanpa benar-benar menyiarakan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar dapat mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan unilateral pengguna, bagaimana itu akan terjadi?