Sumber: Bitcoin Magazine; Terjemahan: Wuzhu, Golden Finance
Rollups baru-baru ini telah menjadi fokus perluasan 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 memiliki dana yang dialokasikan (atau “dipinjam”) terlebih dahulu untuk menerima pembayaran, atau node rute tengah perlu memiliki saldo saluran untuk memfasilitasi aliran dana dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem Turing Complete lainnya, tetapi belakangan ini fokus telah beralih ke memporting mereka ke blockchain berbasis UTXO seperti BTC. Artikel ini tidak bermaksud untuk membahas implementasi saat ini di BTC, tetapi untuk membahas fungsi 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 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 root Merkle dari pohon Merkle, yang menjanjikan semua saldo saat ini dari semua akun dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih perlu 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 izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui saldo akun on-chain melalui akar merkle selama proses transaksi off-chain, jika tidak 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 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 kepada pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan di atas rantai, pengguna dapat melihat dan mengaksesnya, bagaimana mereka meletakkan cabang mereka di dalam pohon agar dapat keluar kapan pun tanpa izin?
Rollup yang Tepat
Dalam Rollup yang sesuai, setiap kali ada transaksi off-chain baru yang dikonfirmasi dan status Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu akan terlalu absurd, tetapi hanya informasi yang diperlukan untuk membangun ulang pohon. Dalam implementasi sederhana, ringkasan 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 dana mana akun yang bertambah atau berkurang 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 dari saldo akun saat ini.
Dengan cara ini, dapat menghemat banyak biaya 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 ini dimasukkan dalam rollup resmi yang disediakan untuk pengguna menggunakan Blok, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap 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 di mana rollup masih perlu memastikan data 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 BTCBlok, aturan Konsensus dapat menjamin kebenarannya. Namun, ketika data dipublikasikan ke sistem eksternal, yang terbaik yang bisa dilakukan adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan pembuktian bahwa data ada di bukti on-chain lainnya, akhirnya ini adalah sebuah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun kecuali yang terjadi di Blok on-chain sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup dari Blok yang dihasilkan benar-benar disiarkan secara terbuka. 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 diterbitkan dan menggunakannya untuk memajukan rollup, tetapi data tersebut sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar ada adalah bergantung sepenuhnya pada nilai dan struktur insentif di luar BTC.
Buntu
Ini menghadirkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak signifikan terhadap keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlockchain sebagai lapisan ketersediaan data akan memberikan batasan maksimum yang keras bagi skalabilitas rollup. Ruang Blok adalah terbatas, ini menetapkan batas bagi jumlah rollup yang dapat ada pada satu waktu dan 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 data untuk dikompresi hingga tingkat tertentu, pada titik ini, tidak ada potensi perluasan lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan keras dari peningkatan 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 dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak akan berubah. Dengan Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, setiap produsen Blok pada sistem ketersediaan data eksternal dapat mengambil dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar dapat mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan pengguna satu arah, 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.
Majalah Bitcoin: Dilema apa yang dihadapi Rollup?
Sumber: Bitcoin Magazine; Terjemahan: Wuzhu, Golden Finance
Rollups baru-baru ini telah menjadi fokus perluasan 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 memiliki dana yang dialokasikan (atau “dipinjam”) terlebih dahulu untuk menerima pembayaran, atau node rute tengah perlu memiliki saldo saluran untuk memfasilitasi aliran dana dari pengirim ke penerima.
Sistem-sistem ini awalnya berjalan di Ethereum dan sistem Turing Complete lainnya, tetapi belakangan ini fokus telah beralih ke memporting mereka ke blockchain berbasis UTXO seperti BTC. Artikel ini tidak bermaksud untuk membahas implementasi saat ini di BTC, tetapi untuk membahas fungsi 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 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 root Merkle dari pohon Merkle, yang menjanjikan semua saldo saat ini dari semua akun dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih perlu 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 izin dari operator.
Operator Rollup harus menyertakan ZKP dalam transaksi untuk memperbarui saldo akun on-chain melalui akar merkle selama proses transaksi off-chain, jika tidak 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 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 kepada pengguna lain.
Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan di atas rantai, pengguna dapat melihat dan mengaksesnya, bagaimana mereka meletakkan cabang mereka di dalam pohon agar dapat keluar kapan pun tanpa izin?
Rollup yang Tepat
Dalam Rollup yang sesuai, setiap kali ada transaksi off-chain baru yang dikonfirmasi dan status Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu akan terlalu absurd, tetapi hanya informasi yang diperlukan untuk membangun ulang pohon. Dalam implementasi sederhana, ringkasan 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 dana mana akun yang bertambah atau berkurang 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 dari saldo akun saat ini.
Dengan cara ini, dapat menghemat banyak biaya 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 ini dimasukkan dalam rollup resmi yang disediakan untuk pengguna menggunakan Blok, yaitu transaksi yang tidak termasuk ringkasan akun atau perbedaan akun dianggap 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 di mana rollup masih perlu memastikan data 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 BTCBlok, aturan Konsensus dapat menjamin kebenarannya. Namun, ketika data dipublikasikan ke sistem eksternal, yang terbaik yang bisa dilakukan adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan pembuktian bahwa data ada di bukti on-chain lainnya, akhirnya ini adalah sebuah masalah Mesin Oracle. Blok BTC tidak dapat sepenuhnya memverifikasi apa pun kecuali yang terjadi di Blok on-chain sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah data rollup dari Blok yang dihasilkan benar-benar disiarkan secara terbuka. 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 diterbitkan dan menggunakannya untuk memajukan rollup, tetapi data tersebut sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar ada adalah bergantung sepenuhnya pada nilai dan struktur insentif di luar BTC.
Buntu
Ini menghadirkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak signifikan terhadap keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlockchain sebagai lapisan ketersediaan data akan memberikan batasan maksimum yang keras bagi skalabilitas rollup. Ruang Blok adalah terbatas, ini menetapkan batas bagi jumlah rollup yang dapat ada pada satu waktu dan 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 data untuk dikompresi hingga tingkat tertentu, pada titik ini, tidak ada potensi perluasan lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan keras dari peningkatan 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 dipublikasikan secara otomatis ke blockchain, maka status Rollup tidak akan berubah. Dengan Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan menyembunyikan data.
Sekarang, setiap produsen Blok pada sistem ketersediaan data eksternal dapat mengambil dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiarkan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar dapat mewujudkan implementasi Rollup yang ideal di BTC, dan benar-benar mewujudkan penarikan pengguna satu arah, bagaimana itu akan terjadi?