Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wuzhu, Golden Finance
Baru-baru ini, rollups telah menjadi fokus perluasan BTC, 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 terbatas atau terbatas oleh Likuiditas inti Jaringan Lighting, yang berarti pengguna akhir perlu dialokasikan dana terlebih dahulu (atau “meminjam”) untuk menerima pembayaran, atau Node perantara perlu memiliki saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan pada Ethereum dan sistem Turing Complete lainnya, tetapi fokus baru-baru ini telah beralih ke porting mereka ke blockchain berbasis UTXO seperti BTC. Artikel ini tidak bermaksud membahas status quo implementasi di BTC saat ini, tetapi membahas fitur idealisasi Rollup yang telah lama dicari orang, yang tergantung pada kemampuan langsung untuk memverifikasi bukti Zero-Knowledge Proof (ZKP) di BTC, yang saat ini tidak didukung.
Arsitektur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen dalam bentuk root Merkle tree, yang berkomitmen pada saldo saat ini dari semua akun yang ada di Rollup. Semua akun ini diberi otorisasi menggunakan Kunci Publik/Kunci Pribadi, sehingga pengguna masih harus menggunakan Kunci Rahasia untuk menandatangani konten tertentu dalam melakukan pengeluaran off-chain. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa perlu izin, hanya dengan membuat transaksi yang membuktikan akun mereka adalah bagian dari Merkle tree, mereka dapat keluar dari Rollup secara unilateral tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui saldo akun on-chain saat melakukan transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi bahwa semua perubahan akun off-chain telah diotorisasi dengan benar oleh pemilik akun, dan bahwa operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau secara tidak jujur membaginya 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 sehingga mereka dapat keluar kapan saja tanpa izin?
Rollup yang Tepat
Dalam Rollup yang tepat, setiap kali ada konfirmasi transaksi off-chain baru dan status Rollup akun berubah, informasinya langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi informasi yang diperlukan untuk membangun kembali pohon. Dalam implementasi yang sederhana, ringkasan akun Rollup yang ada akan mencakup saldo, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih canggih, gunakan perbedaan saldo akun. Ini pada dasarnya 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’ dari awal Rollup untuk mengetahui status saldo akun saat ini, yang memungkinkan mereka membangun kembali pohon Merkle saldo saat ini.
Dengan cara 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 memerlukan data-data ini dimasukkan dalam rollup resmi yang disediakan oleh Blok chain kepada pengguna, sehingga transaksi tanpa ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa Berlaku
Metode lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Hal ini memunculkan masalah yang rumit, di mana rollup masih perlu memastikan bahwa data tetap tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Hal ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data langsung dipublikasikan ke rantai Blok BTC, aturan Konsensus dapat memastikan bahwa itu benar-benar benar. Namun, ketika itu dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti data ada di luar on-chain, akhirnya ini adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Bloknya sendiri di-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 dihasilkan. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu membuat 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 efektif adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Masuk atau Mundur
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara mendasar ada dua pilihan yaitu mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak besar 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 pada satu waktu serta total transaksi yang dapat ditangani 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 kompresi data hingga tingkat tertentu, di mana tidak ada lagi potensi ekspansi.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas keras pada keuntungan 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 berubah. Dalam penggunaan 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 mengambil alih dana pengguna BTCRollup dengan memproduksi Blok daripada secara aktif menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar berhasil menerapkan Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan satu arah pengguna, bagaimana hasilnya?
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
Baru-baru ini, rollups telah menjadi fokus perluasan BTC, 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 terbatas atau terbatas oleh Likuiditas inti Jaringan Lighting, yang berarti pengguna akhir perlu dialokasikan dana terlebih dahulu (atau “meminjam”) untuk menerima pembayaran, atau Node perantara perlu memiliki saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan pada Ethereum dan sistem Turing Complete lainnya, tetapi fokus baru-baru ini telah beralih ke porting mereka ke blockchain berbasis UTXO seperti BTC. Artikel ini tidak bermaksud membahas status quo implementasi di BTC saat ini, tetapi membahas fitur idealisasi Rollup yang telah lama dicari orang, yang tergantung pada kemampuan langsung untuk memverifikasi bukti Zero-Knowledge Proof (ZKP) di BTC, yang saat ini tidak didukung.
Arsitektur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen dalam bentuk root Merkle tree, yang berkomitmen pada saldo saat ini dari semua akun yang ada di Rollup. Semua akun ini diberi otorisasi menggunakan Kunci Publik/Kunci Pribadi, sehingga pengguna masih harus menggunakan Kunci Rahasia untuk menandatangani konten tertentu dalam melakukan pengeluaran off-chain. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa perlu izin, hanya dengan membuat transaksi yang membuktikan akun mereka adalah bagian dari Merkle tree, mereka dapat keluar dari Rollup secara unilateral tanpa perlu izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui saldo akun on-chain saat melakukan transaksi off-chain. Tanpa ZKP ini, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi bahwa semua perubahan akun off-chain telah diotorisasi dengan benar oleh pemilik akun, dan bahwa operator tidak dengan jahat memperbarui saldo untuk mencuri dana pengguna atau secara tidak jujur membaginya 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 sehingga mereka dapat keluar kapan saja tanpa izin?
Rollup yang Tepat
Dalam Rollup yang tepat, setiap kali ada konfirmasi transaksi off-chain baru dan status Rollup akun berubah, informasinya langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi informasi yang diperlukan untuk membangun kembali pohon. Dalam implementasi yang sederhana, ringkasan akun Rollup yang ada akan mencakup saldo, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.
Dalam implementasi yang lebih canggih, gunakan perbedaan saldo akun. Ini pada dasarnya 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’ dari awal Rollup untuk mengetahui status saldo akun saat ini, yang memungkinkan mereka membangun kembali pohon Merkle saldo saat ini.
Dengan cara 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 memerlukan data-data ini dimasukkan dalam rollup resmi yang disediakan oleh Blok chain kepada pengguna, sehingga transaksi tanpa ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa Berlaku
Metode lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Hal ini memunculkan masalah yang rumit, di mana rollup masih perlu memastikan bahwa data tetap tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, yang dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Hal ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data langsung dipublikasikan ke rantai Blok BTC, aturan Konsensus dapat memastikan bahwa itu benar-benar benar. Namun, ketika itu dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti data ada di luar on-chain, akhirnya ini adalah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Bloknya sendiri di-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 dihasilkan. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu membuat 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 efektif adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Masuk atau Mundur
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara mendasar ada dua pilihan yaitu mempublikasikan data ke blockchain BTC atau tempat lain. Pilihan ini memiliki dampak besar 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 pada satu waktu serta total transaksi yang dapat ditangani 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 kompresi data hingga tingkat tertentu, di mana tidak ada lagi potensi ekspansi.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas keras pada keuntungan 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 berubah. Dalam penggunaan 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 mengambil alih dana pengguna BTCRollup dengan memproduksi Blok daripada secara aktif menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar berhasil menerapkan Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan satu arah pengguna, bagaimana hasilnya?