Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollups baru-baru ini 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 batasan Likuiditas inti Jaringan Lighting, yaitu pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjamkan’) terlebih dahulu untuk menerima pembayaran, atau Node rute tengah 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 baru-baru ini fokus telah beralih untuk memindahkan mereka ke blockchain berbasis UTXO seperti BTC. Artikel ini tidak bermaksud membahas implementasi saat ini di BTC, tetapi membahas fitur Rollup yang ideal yang telah lama dikejar, yang tergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) 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 dalam Rollup. UTXO ini berisi suatu komitmen, yang ada dalam bentuk akar Merkle dari pohon Merkle, yang mewakili semua saldo saat ini akun di Rollup. Semua akun ini menggunakan Kunci Publik/Kunci Pribadi untuk otorisasi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih harus menandatangani suatu 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 unilateral tanpa perlu 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 pemegang akun, dan apakah 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 secara on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka memasukkan cabang mereka ke dalam pohon sehingga mereka dapat keluar kapan pun tanpa izin?
Rollup yang Cocok
Dalam Rollup yang tepat, 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, tapi 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 maju, varians keseimbangan digunakan. Ini pada dasarnya adalah ringkasan akun mana yang mengalami peningkatan atau penurunan pendanaan selama proses pembaruan. Hal ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang telah terjadi. Pengguna kemudian dapat dengan mudah memindai rantai dan “menghitung” dari awal Rollup untuk mendapatkan keadaan saldo akun saat ini, yang memungkinkan mereka untuk membangun kembali pohon Merkle dari saldo saat ini.
Dengan cara ini, biaya dan ruang Blok yang besar dapat dihemat (sehingga menghemat dana), sambil tetap memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar secara sepihak. Aturan rollup mengharuskan data ini dimasukkan ke 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 metode lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain selain Blok. Ini menghadirkan masalah yang rumit, rollup masih perlu memastikan data dapat diakses di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menciptakan dilema yang sama kuatnya dalam hal keamanan. Ketika data dipublikasikan langsung ke rantai Blok Bitcoin, aturan Konsensus dapat menjamin bahwa data tersebut mutlak benar. Namun, ketika data dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi bahwa data ada di Blok lain yang on-chain, ini akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Blok on-chain-nya sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup benar-benar telah disiarkan secara publik setelah dibuat. Itu 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 diterbitkan dan menggunakannya untuk memajukan rollup, tetapi data tersebut sebenarnya tidak tersedia. Hal ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar efektif adalah bergantung sepenuhnya pada nilai dan struktur insentif di luar BTC.
Berada dalam dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data muncul, secara dasarnya ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak besar pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlokBlockchain sebagai lapisan ketersediaan data akan memberikan batasan maksimal yang keras pada skalabilitas rollup. Ruang Blok terbatas, ini menetapkan batasan pada jumlah rollup yang dapat ada sekaligus dan jumlah transaksi yang dapat ditangani oleh off-chain secara keseluruhan. 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 sampai tingkat tertentu, di mana tidak ada lagi potensi perluasan.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan keras dari keuntungan skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang perlu diekstraksi pengguna tidak dipublikasikan secara otomatis ke dalam 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.
Saat ini, setiap produsen Blok di sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok tanpa benar-benar menyiarakan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dengan benar-benar mewujudkan penarikan satu arah oleh 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 kendala Rollup?
Sumber: Bitcoin Magazine; Terjemahan: Wu Zhu, Golden Finance
Rollups baru-baru ini 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 batasan Likuiditas inti Jaringan Lighting, yaitu pengguna akhir perlu memiliki dana yang dialokasikan (atau ‘dipinjamkan’) terlebih dahulu untuk menerima pembayaran, atau Node rute tengah 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 baru-baru ini fokus telah beralih untuk memindahkan mereka ke blockchain berbasis UTXO seperti BTC. Artikel ini tidak bermaksud membahas implementasi saat ini di BTC, tetapi membahas fitur Rollup yang ideal yang telah lama dikejar, yang tergantung pada kemampuan verifikasi Zero-Knowledge Proof (ZKP) 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 dalam Rollup. UTXO ini berisi suatu komitmen, yang ada dalam bentuk akar Merkle dari pohon Merkle, yang mewakili semua saldo saat ini akun di Rollup. Semua akun ini menggunakan Kunci Publik/Kunci Pribadi untuk otorisasi, sehingga untuk melakukan pengeluaran off-chain, pengguna masih harus menandatangani suatu 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 unilateral tanpa perlu 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 pemegang akun, dan apakah 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 secara on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka memasukkan cabang mereka ke dalam pohon sehingga mereka dapat keluar kapan pun tanpa izin?
Rollup yang Cocok
Dalam Rollup yang tepat, 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, tapi 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 maju, varians keseimbangan digunakan. Ini pada dasarnya adalah ringkasan akun mana yang mengalami peningkatan atau penurunan pendanaan selama proses pembaruan. Hal ini membuat setiap pembaruan Rollup hanya berisi perubahan saldo akun yang telah terjadi. Pengguna kemudian dapat dengan mudah memindai rantai dan “menghitung” dari awal Rollup untuk mendapatkan keadaan saldo akun saat ini, yang memungkinkan mereka untuk membangun kembali pohon Merkle dari saldo saat ini.
Dengan cara ini, biaya dan ruang Blok yang besar dapat dihemat (sehingga menghemat dana), sambil tetap memungkinkan pengguna untuk memastikan akses ke informasi yang diperlukan untuk keluar secara sepihak. Aturan rollup mengharuskan data ini dimasukkan ke 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 metode lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain selain Blok. Ini menghadirkan masalah yang rumit, rollup masih perlu memastikan data dapat diakses di tempat lain. Secara tradisional, Blok lain digunakan untuk tujuan ini, dirancang khusus sebagai lapisan ketersediaan data untuk sistem seperti rollup.
Ini menciptakan dilema yang sama kuatnya dalam hal keamanan. Ketika data dipublikasikan langsung ke rantai Blok Bitcoin, aturan Konsensus dapat menjamin bahwa data tersebut mutlak benar. Namun, ketika data dipublikasikan ke sistem eksternal, yang terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi bahwa data ada di Blok lain yang on-chain, ini akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar Blok on-chain-nya sendiri, yang terbaik yang dapat dilakukannya adalah memverifikasi ZKP. Namun, ZKP tidak dapat memverifikasi apakah Blok yang berisi data rollup benar-benar telah disiarkan secara publik setelah dibuat. Itu 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 diterbitkan dan menggunakannya untuk memajukan rollup, tetapi data tersebut sebenarnya tidak tersedia. Hal ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar efektif adalah bergantung sepenuhnya pada nilai dan struktur insentif di luar BTC.
Berada dalam dilema
Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data muncul, secara dasarnya ada pilihan biner untuk mempublikasikan data ke blockchain BTC atau tempat lainnya. Pilihan ini memiliki dampak besar pada keamanan, kedaulatan, dan skalabilitas rollup.
Di satu sisi, menggunakan BTCBlokBlockchain sebagai lapisan ketersediaan data akan memberikan batasan maksimal yang keras pada skalabilitas rollup. Ruang Blok terbatas, ini menetapkan batasan pada jumlah rollup yang dapat ada sekaligus dan jumlah transaksi yang dapat ditangani oleh off-chain secara keseluruhan. 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 sampai tingkat tertentu, di mana tidak ada lagi potensi perluasan.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batasan keras dari keuntungan skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang perlu diekstraksi pengguna tidak dipublikasikan secara otomatis ke dalam 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.
Saat ini, setiap produsen Blok di sistem ketersediaan data eksternal dapat mengambil alih dana pengguna BTCRollup dengan memproduksi Blok tanpa benar-benar menyiarakan Blok tersebut, sehingga membuat data tersedia.
Jadi, jika kita benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dengan benar-benar mewujudkan penarikan satu arah oleh pengguna, bagaimana itu akan terjadi?