Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollups baru-baru ini menjadi fokus skala Bitcoin, 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 terbatas oleh batasan inti Likuiditas Jaringan Lighting, yaitu pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjam’) terlebih dahulu untuk menerima pembayaran, atau saluran Node perantara membutuhkan saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan di Ethereum dan sistem Turing Complete lainnya, tetapi belakangan ini fokus telah beralih ke pemindahan mereka ke blockchain berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud membahas status quo implementasi saat ini di BTC, melainkan membahas fitur idealis Rollup yang telah lama dikejar orang, yang tergantung pada kemampuan untuk memverifikasi Zero-Knowledge Proof (ZKP) secara langsung di BTC, yang saat ini tidak didukung.
Arsitektur dasar dari Roll adalah sebagai berikut: satu akun tunggal (UTXO di BTC) menyimpan saldo semua pengguna di Rollup. UTXO ini berisi suatu komitmen, yang hadir dalam bentuk akar Merkle dari pohon Merkle, mengkomitkan semua saldo saat ini dari akun di Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih perlu menandatangani suatu 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 izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui root merkle saldo akun on-chain saat menyelesaikan 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 saldo akun off-chain telah mendapatkan otorisasi yang tepat dari pemilik 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 di on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka kemudian dapat menempatkan cabang mereka di pohon sehingga mereka dapat keluar kapan pun tanpa izin?
Rollup yang Sesuai
Dalam Rollup yang tepat, setiap kali ada transaksi off-chain baru yang dikonfirmasi dan status Rollupakun berubah, informasi langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi hanya informasi yang diperlukan untuk membangun ulang 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, menggunakan perbedaan saldo. Pada dasarnya ini adalah ringkasan dari akun mana yang menambah atau mengurangi dana selama proses pembaruan. Ini memungkinkan setiap pembaruan Rollup hanya berisi 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 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 secara sepihak. Aturan rollup mengharuskan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Periode Berlaku
Salah satu cara lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan menempatkan data di tempat lain di luar Blok rantai. Ini memperkenalkan masalah yang halus, rollup masih perlu memastikan bahwa data tersedia di tempat lain. Secara tradisional, Blok rantai lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Hal ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke rantai Blok BTCBlok, aturan Konsensus dapat menjamin 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 verifikasi data ada di Blok on-chain lain, ini pada akhirnya adalah sebuah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Bloknya sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup Blok setelah dibuat benar-benar disiarkan secara publik. 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 dipublikasikan dan menggunakannya untuk memajukan rollup, tetapi data sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi nyata adalah bergantung sepenuhnya pada nilai dan struktur insentif sistem di luar BTC.
Terjebak dalam situasi sulit
Ini menghadirkan dilema bagi rollup. Saat masalah ketersediaan data muncul, ada pilihan biner antara menerbitkan data ke jaringan blockchain BTC atau tempat lainnya. Pilihan ini sangat mempengaruhi keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan blockchain BTCBlok sebagai lapisan keterjangkauan data akan memberikan batas maksimum yang keras pada skalabilitas rollup. Ruang Blok terbatas, ini mengatur batas jumlah rollup yang dapat ada dalam satu waktu serta total transaksi yang dapat diproses 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 data dikompres hingga sebatas tertentu, pada titik ini, tidak ada potensi ekspansi lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas atas keuntungan skala, 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 menggunakan 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 memperoleh dana pengguna BTCRollup dengan mencuri Blok yang diproduksi daripada mengirimkan Blok tersebut secara nyata, sehingga membuat data menjadi tersedia.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal pada BTC, mengizinkan penarikan satu arah pengguna, bagaimana hal 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 baru-baru ini menjadi fokus skala Bitcoin, 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 terbatas oleh batasan inti Likuiditas Jaringan Lighting, yaitu pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjam’) terlebih dahulu untuk menerima pembayaran, atau saluran Node perantara membutuhkan saldo saluran untuk memfasilitasi aliran pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya dijalankan di Ethereum dan sistem Turing Complete lainnya, tetapi belakangan ini fokus telah beralih ke pemindahan mereka ke blockchain berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud membahas status quo implementasi saat ini di BTC, melainkan membahas fitur idealis Rollup yang telah lama dikejar orang, yang tergantung pada kemampuan untuk memverifikasi Zero-Knowledge Proof (ZKP) secara langsung di BTC, yang saat ini tidak didukung.
Arsitektur dasar dari Roll adalah sebagai berikut: satu akun tunggal (UTXO di BTC) menyimpan saldo semua pengguna di Rollup. UTXO ini berisi suatu komitmen, yang hadir dalam bentuk akar Merkle dari pohon Merkle, mengkomitkan semua saldo saat ini dari akun di Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih perlu menandatangani suatu 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 izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui root merkle saldo akun on-chain saat menyelesaikan 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 saldo akun off-chain telah mendapatkan otorisasi yang tepat dari pemilik 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 di on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka kemudian dapat menempatkan cabang mereka di pohon sehingga mereka dapat keluar kapan pun tanpa izin?
Rollup yang Sesuai
Dalam Rollup yang tepat, setiap kali ada transaksi off-chain baru yang dikonfirmasi dan status Rollupakun berubah, informasi langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi hanya informasi yang diperlukan untuk membangun ulang 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, menggunakan perbedaan saldo. Pada dasarnya ini adalah ringkasan dari akun mana yang menambah atau mengurangi dana selama proses pembaruan. Ini memungkinkan setiap pembaruan Rollup hanya berisi 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 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 secara sepihak. Aturan rollup mengharuskan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Periode Berlaku
Salah satu cara lain untuk menangani masalah ketersediaan data penarikan pengguna adalah dengan menempatkan data di tempat lain di luar Blok rantai. Ini memperkenalkan masalah yang halus, rollup masih perlu memastikan bahwa data tersedia di tempat lain. Secara tradisional, Blok rantai lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Hal ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke rantai Blok BTCBlok, aturan Konsensus dapat menjamin 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 verifikasi data ada di Blok on-chain lain, ini pada akhirnya adalah sebuah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Bloknya sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup Blok setelah dibuat benar-benar disiarkan secara publik. 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 dipublikasikan dan menggunakannya untuk memajukan rollup, tetapi data sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi nyata adalah bergantung sepenuhnya pada nilai dan struktur insentif sistem di luar BTC.
Terjebak dalam situasi sulit
Ini menghadirkan dilema bagi rollup. Saat masalah ketersediaan data muncul, ada pilihan biner antara menerbitkan data ke jaringan blockchain BTC atau tempat lainnya. Pilihan ini sangat mempengaruhi keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan blockchain BTCBlok sebagai lapisan keterjangkauan data akan memberikan batas maksimum yang keras pada skalabilitas rollup. Ruang Blok terbatas, ini mengatur batas jumlah rollup yang dapat ada dalam satu waktu serta total transaksi yang dapat diproses 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 data dikompres hingga sebatas tertentu, pada titik ini, tidak ada potensi ekspansi lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas atas keuntungan skala, 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 menggunakan 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 memperoleh dana pengguna BTCRollup dengan mencuri Blok yang diproduksi daripada mengirimkan Blok tersebut secara nyata, sehingga membuat data menjadi tersedia.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal pada BTC, mengizinkan penarikan satu arah pengguna, bagaimana hal itu akan terjadi?