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 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 perantara 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 akhir-akhir ini fokus telah beralih ke porting mereka ke blockchain berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud untuk membahas status implementasi saat ini di BTC, tetapi membahas fitur Rollup idealis yang telah lama dicari orang, yang bergantung pada kemampuan BTC saat ini yang tidak didukung, yaitu kemampuan untuk secara langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Struktur dasar Roll adalah sebagai berikut: satu akun tunggal (disebut UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen, yang hadir dalam bentuk root Merkle dari pohon Merkle, untuk semua saldo saat ini dari akun dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk membuat pengeluaran off-chain, pengguna masih harus 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 akun on-chain saldo merkle root saat menyelesaikan transaksi off-chain. Tanpa ZKP, transaksi akan tidak valid dan tidak dapat dimasukkan ke dalam blok. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada akun off-chain telah diotorisasi oleh pemilik akun dan apakah operator tidak secara 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 di on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka 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 Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi 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 pembaruan Rollup.
Dalam implementasi yang lebih canggih, menggunakan perbedaan saldo. Pada dasarnya, ini adalah ringkasan dari akun mana yang mengalami penambahan atau pengurangan 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, ini memungkinkan mereka 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, yang berarti transaksi tanpa ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa Berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Ini menghadirkan masalah halus 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 rollup dan sejenisnya.
Ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data langsung dipublikasikan ke rantai Blok Bitcoin, aturan Konsensus dapat memastikan bahwa itu benar-benar benar. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, hal terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi bahwa data ada pada bukti on-chain lainnya, yang pada akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun selain dari apa yang terjadi di 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 dipublikasikan setelah dibuat. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar terbuka untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu menciptakan janji terhadap data yang diterbitkan dan menggunakannya untuk mendorong rollup, tetapi data yang sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar ada adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Berada dalam situasi yang sulit
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 BTCBlok chain sebagai lapisan ketersediaan data akan memberikan batasan keras terhadap skalabilitas rollup. Ruang Blok terbatas, ini mengatur batasan jumlah rollup yang dapat ada pada satu waktu dan jumlah transaksi yang dapat diolah 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 dikompresi hingga batas tertentu, pada titik ini, tidak ada potensi perluasan lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas maksimum skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang ingin diambil oleh pengguna tidak diunggah secara otomatis ke blockchain, maka status Rollup tidak dapat berubah. Dalam Validiums, jaminan ini sepenuhnya tergantung 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 mengirimkan Blok tersebut, sehingga data menjadi tersedia.
Jadi, jika kita benar-benar mencapai 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.
Bitcoin Magazine: Apa tantangan Rollup?
Sumber: Bitcoin Magazine; Diterjemahkan oleh: Wuzhu, Jinse Keuangan
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 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 perantara 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 akhir-akhir ini fokus telah beralih ke porting mereka ke blockchain berbasis UTXO (misalnya BTC). Artikel ini tidak bermaksud untuk membahas status implementasi saat ini di BTC, tetapi membahas fitur Rollup idealis yang telah lama dicari orang, yang bergantung pada kemampuan BTC saat ini yang tidak didukung, yaitu kemampuan untuk secara langsung memverifikasi Zero-Knowledge Proof (ZKP) di BTC.
Struktur dasar Roll adalah sebagai berikut: satu akun tunggal (disebut UTXO dalam BTC) menyimpan saldo semua pengguna dalam Rollup. UTXO ini berisi komitmen, yang hadir dalam bentuk root Merkle dari pohon Merkle, untuk semua saldo saat ini dari akun dalam Rollup. Semua akun ini diotorisasi dengan Kunci Publik/Kunci Pribadi, sehingga untuk membuat pengeluaran off-chain, pengguna masih harus 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 akun on-chain saldo merkle root saat menyelesaikan transaksi off-chain. Tanpa ZKP, transaksi akan tidak valid dan tidak dapat dimasukkan ke dalam blok. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan pada akun off-chain telah diotorisasi oleh pemilik akun dan apakah operator tidak secara 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 di on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka 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 Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu absurd, tetapi 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 pembaruan Rollup.
Dalam implementasi yang lebih canggih, menggunakan perbedaan saldo. Pada dasarnya, ini adalah ringkasan dari akun mana yang mengalami penambahan atau pengurangan 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, ini memungkinkan mereka 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, yang berarti transaksi tanpa ringkasan akun atau perbedaan akun dianggap tidak valid.
Masa Berlaku
Salah satu cara lain untuk mengatasi masalah ketersediaan data penarikan pengguna adalah dengan meletakkan data di tempat lain di luar Blok. Ini menghadirkan masalah halus 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 rollup dan sejenisnya.
Ini menyebabkan dilema keamanan yang sama kuatnya. Ketika data langsung dipublikasikan ke rantai Blok Bitcoin, aturan Konsensus dapat memastikan bahwa itu benar-benar benar. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, hal terbaik yang dapat dilakukannya adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.
Ini memerlukan verifikasi bahwa data ada pada bukti on-chain lainnya, yang pada akhirnya adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun selain dari apa yang terjadi di 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 dipublikasikan setelah dibuat. Ini tidak dapat memverifikasi apakah informasi eksternal benar-benar terbuka untuk semua orang.
Ini membuka pintu bagi serangan penahanan data, yaitu menciptakan janji terhadap data yang diterbitkan dan menggunakannya untuk mendorong rollup, tetapi data yang sebenarnya tidak tersedia. Ini menyebabkan pengguna tidak dapat menarik dana. Satu-satunya solusi yang benar-benar ada adalah sepenuhnya bergantung pada nilai dan struktur insentif sistem di luar BTC.
Berada dalam situasi yang sulit
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 BTCBlok chain sebagai lapisan ketersediaan data akan memberikan batasan keras terhadap skalabilitas rollup. Ruang Blok terbatas, ini mengatur batasan jumlah rollup yang dapat ada pada satu waktu dan jumlah transaksi yang dapat diolah 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 dikompresi hingga batas tertentu, pada titik ini, tidak ada potensi perluasan lebih lanjut.
Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas maksimum skalabilitas, tetapi juga membawa masalah keamanan dan kedaulatan baru. Dalam Rollup yang menggunakan BTC untuk mencapai ketersediaan data, jika data yang ingin diambil oleh pengguna tidak diunggah secara otomatis ke blockchain, maka status Rollup tidak dapat berubah. Dalam Validiums, jaminan ini sepenuhnya tergantung 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 mengirimkan Blok tersebut, sehingga data menjadi tersedia.
Jadi, jika kita benar-benar mencapai implementasi Rollup yang ideal di BTC dan benar-benar mewujudkan penarikan pengguna satu arah, bagaimana itu akan terjadi?