Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollup baru-baru ini menjadi fokus penskalaan BTC, menjadi hal pertama yang benar-benar “mencuri perhatian” dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollup dirancang untuk menjadi lapisan off-chain 2 yang tidak dibatasi atau dibatasi oleh batasan Likuiditas inti Jaringan Lighting, yaitu pengguna akhir membutuhkan seseorang untuk mengalokasikan (atau “meminjamkan”) dana di muka untuk menerima uang, atau node routing perantara membutuhkan saldo saluran untuk memfasilitasi aliran jumlah pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem Turing Complete lainnya, tetapi baru-baru ini fokus telah beralih ke porting mereka ke blockchain berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud untuk membahas implementasi saat ini di BTC, tetapi membahas fitur Rollup yang ideal yang telah lama dicari, yang bergantung pada kemampuan yang saat ini tidak didukung oleh BTC, yaitu kemampuan untuk langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Arsitektur dasar dari Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen yang hadir dalam bentuk akar Merkle tree, menjanjikan semua saldo saat ini dari akun yang ada di Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk mengeluarkan pengeluaran off-chain, pengguna masih harus menandatangani konten dengan Kunci Rahasia. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa perlu izin, hanya perlu membuat transaksi membuktikan bahwa akun mereka adalah bagian dari Merkle tree, 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 akun-off-chain dan jika tidak ada, 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 dengan tidak jujur mengalokasikannya ulang ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan secara on-chain, pengguna dapat melihat dan mengaksesnya, maka bagaimana mereka dapat menempatkan cabang mereka di dalam pohon sehingga mereka dapat keluar tanpa izin kapan pun mereka mau?
Rollup yang Tepat
Dalam Rollup yang sesuai, setiap kali ada konfirmasi transaksi off-chain baru 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 Rollup yang ada 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, yang memungkinkan mereka untuk membangun kembali pohon Merkle saldo saat ini.
Dengan cara ini, pengguna dapat menghemat biaya dan ruang Blok yang besar (sehingga menghemat dana), sambil tetap memungkinkan pengguna memastikan informasi yang diperlukan untuk keluar satu arah. Aturan rollup mengharuskan data ini dimasukkan ke dalam rollup formal yang disediakan untuk pengguna dengan menggunakan Blok rantai, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Masa berlaku
Metode lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan menyimpan data di tempat lain di luar Blok. Ini memunculkan masalah yang rumit, rollup masih perlu memastikan data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem rollup dan sejenisnya.
Hal ini menciptakan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke BTCBlok chain, aturan Konsensus dapat menjamin kebenarannya secara mutlak. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang dapat dilakukan hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti bahwa data ada dalam blok on-chain lain, ini pada akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar blokchainnya sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah blok yang mengandung 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 janji terhadap data yang dipublikasikan dan menggunakannya untuk mendorong rollup, tetapi data yang sebenarnya tidak tersedia. Ini mengakibatkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar adalah bergantung sepenuhnya pada nilai dan struktur insentif di luar BTC.
Dalam Dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara 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 maksimal pada skalabilitas rollup. Ruang Blockchain terbatas, ini membatasi jumlah rollup yang dapat ada pada satu waktu serta jumlah total transaksi yang dapat diproses di luar Blockchain. Setiap pembaruan rollup memerlukan ruang Blockchain yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data dikompresi sejauh ini, dan pada titik ini, tidak ada potensi skalabilitas lebih lanjut.
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 perlu 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 menculik dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyebarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar berhasil mewujudkan implementasi Rollup yang ideal di BTC, yang benar-benar memungkinkan penarikan satu arah oleh 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 Kesulitan yang Dihadapi oleh Rollup?
Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollup baru-baru ini menjadi fokus penskalaan BTC, menjadi hal pertama yang benar-benar “mencuri perhatian” dari Jaringan Lighting, dalam hal perhatian yang lebih luas. Rollup dirancang untuk menjadi lapisan off-chain 2 yang tidak dibatasi atau dibatasi oleh batasan Likuiditas inti Jaringan Lighting, yaitu pengguna akhir membutuhkan seseorang untuk mengalokasikan (atau “meminjamkan”) dana di muka untuk menerima uang, atau node routing perantara membutuhkan saldo saluran untuk memfasilitasi aliran jumlah pembayaran dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem Turing Complete lainnya, tetapi baru-baru ini fokus telah beralih ke porting mereka ke blockchain berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud untuk membahas implementasi saat ini di BTC, tetapi membahas fitur Rollup yang ideal yang telah lama dicari, yang bergantung pada kemampuan yang saat ini tidak didukung oleh BTC, yaitu kemampuan untuk langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Arsitektur dasar dari Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen yang hadir dalam bentuk akar Merkle tree, menjanjikan semua saldo saat ini dari akun yang ada di Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk mengeluarkan pengeluaran off-chain, pengguna masih harus menandatangani konten dengan Kunci Rahasia. Bagian dari struktur ini memungkinkan pengguna untuk keluar kapan saja tanpa perlu izin, hanya perlu membuat transaksi membuktikan bahwa akun mereka adalah bagian dari Merkle tree, 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 akun-off-chain dan jika tidak ada, 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 dengan tidak jujur mengalokasikannya ulang ke pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan secara on-chain, pengguna dapat melihat dan mengaksesnya, maka bagaimana mereka dapat menempatkan cabang mereka di dalam pohon sehingga mereka dapat keluar tanpa izin kapan pun mereka mau?
Rollup yang Tepat
Dalam Rollup yang sesuai, setiap kali ada konfirmasi transaksi off-chain baru 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 Rollup yang ada 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, yang memungkinkan mereka untuk membangun kembali pohon Merkle saldo saat ini.
Dengan cara ini, pengguna dapat menghemat biaya dan ruang Blok yang besar (sehingga menghemat dana), sambil tetap memungkinkan pengguna memastikan informasi yang diperlukan untuk keluar satu arah. Aturan rollup mengharuskan data ini dimasukkan ke dalam rollup formal yang disediakan untuk pengguna dengan menggunakan Blok rantai, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang tidak valid.
Masa berlaku
Metode lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan menyimpan data di tempat lain di luar Blok. Ini memunculkan masalah yang rumit, rollup masih perlu memastikan data tersedia di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem rollup dan sejenisnya.
Hal ini menciptakan dilema keamanan yang sama kuatnya. Ketika data dipublikasikan langsung ke BTCBlok chain, aturan Konsensus dapat menjamin kebenarannya secara mutlak. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, yang dapat dilakukan hanyalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan bukti bahwa data ada dalam blok on-chain lain, ini pada akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar blokchainnya sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah blok yang mengandung 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 janji terhadap data yang dipublikasikan dan menggunakannya untuk mendorong rollup, tetapi data yang sebenarnya tidak tersedia. Ini mengakibatkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar adalah bergantung sepenuhnya pada nilai dan struktur insentif di luar BTC.
Dalam Dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, secara 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 maksimal pada skalabilitas rollup. Ruang Blockchain terbatas, ini membatasi jumlah rollup yang dapat ada pada satu waktu serta jumlah total transaksi yang dapat diproses di luar Blockchain. Setiap pembaruan rollup memerlukan ruang Blockchain yang sebanding dengan jumlah akun yang mengalami perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data dikompresi sejauh ini, dan pada titik ini, tidak ada potensi skalabilitas lebih lanjut.
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 perlu 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 menculik dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyebarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar berhasil mewujudkan implementasi Rollup yang ideal di BTC, yang benar-benar memungkinkan penarikan satu arah oleh pengguna, bagaimana hal itu akan terjadi?