Bitcoin Magazine: Apa tantangan yang dihadapi oleh Rollup?

robot
Pembuatan abstrak sedang berlangsung

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 Likuiditas inti Jaringan Lighting, yang berarti pengguna akhir perlu memiliki dana yang dialokasikan (atau “dipinjamkan”) terlebih dahulu untuk menerima pembayaran, atau Node perantara perlu memiliki saldo saluran untuk memfasilitasi aliran dana 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 seperti BTC. Artikel ini tidak bermaksud membahas status implementasi saat ini di BTC, tetapi membahas fitur idealisasi Rollup yang telah lama dikejar, yang tergantung pada kemampuan yang saat ini tidak didukung oleh BTC, yaitu kemampuan untuk memverifikasi Proof Zero-Knowledge (ZKP) secara langsung di BTC.

Arsitektur dasar Roll adalah sebagai berikut: Satu akun tunggal (UTXO dalam BTC) menyimpan saldo semua pengguna di dalam Rollup. UTXO ini berisi komitmen dalam bentuk akar Merkle dari pohon Merkle, yang mencakup saldo saat ini dari semua akun yang ada di Rollup. Semua akun ini diberi otorisasi menggunakan Kunci Publik/Kunci Pribadi, sehingga pengguna masih harus menggunakan Kunci Rahasia untuk menandatangani konten tertentu saat melakukan pengeluaran off-chain. 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 ketika menyelesaikan transaksi off-chain, jika tidak, transaksi akan menjadi tidak valid dan tidak dapat dimasukkan ke dalam Blok. Bukti ini memungkinkan orang untuk memverifikasi apakah semua perubahan 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 dengan tidak jujur mengalokasikannya ulang kepada pengguna lain.

Masalahnya adalah, jika hanya akar pohon merkle yang dipublikasikan secara on-chain, pengguna dapat melihat dan mengaksesnya, bagaimana mereka dapat menempatkan cabang mereka di dalam pohon, sehingga mereka dapat keluar tanpa izin kapan pun mereka mau?

Rollup yang Sesuai

Dalam Rollup yang tepat, setiap kali ada transaksi off-chain baru yang dikonfirmasi dan status Rollupakun berubah, informasi akan langsung dimasukkan ke dalam blockchain. Bukan seluruh pohon, itu terlalu tidak masuk akal, tetapi hanya informasi yang diperlukan untuk membangun kembali pohon. Dalam implementasi sederhana, ringkasan dari semua akun yang ada dalam Rollup akan mencakup saldo, dan akun hanya ditambahkan dalam transaksi Rollup yang diperbarui.

Dalam implementasi yang lebih canggih, gunakan perbedaan saldo. Ini pada dasarnya adalah ringkasan tentang 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 ulang’ dari awal Rollup untuk mendapatkan status saldo akun saat ini, yang memungkinkan mereka untuk membangun kembali pohon Merkle saldo saat ini.

Ini akan menghemat biaya dan ruang Blok secara signifikan (dan dengan demikian menghemat dana), sambil tetap memungkinkan pengguna memastikan akses ke informasi yang diperlukan untuk mengeluarkan unilateral. Aturan rollup mengharuskan data ini dimasukkan dalam rollup resmi yang disediakan oleh Blokchain kepada pengguna, dengan kata lain, transaksi tanpa ringkasan akun atau perbedaan akun dianggap sebagai transaksi yang 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 menghadirkan masalah yang halus, rollup masih perlu memastikan bahwa data tersebut tersedia di tempat lain. Secara tradisional, Blok 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 BTC, aturan Konsensus dapat menjamin keabsolutan data tersebut. Namun, ketika data tersebut dipublikasikan ke sistem eksternal, hal terbaik yang dapat dilakukan adalah memverifikasi bukti SPV, yaitu data telah dipublikasikan ke sistem lain.

Ini memerlukan bukti data ada di on-chain lain, akhirnya ini adalah masalah Mesin Oracle. Blok Bitcoin tidak dapat sepenuhnya memverifikasi apa pun yang terjadi di luar bloknya sendiri selain dari yang terjadi pada Blok on-chain. Yang dapat dilakukannya hanyalah memverifikasi ZKP sebaik mungkin. Namun, ZKP tidak dapat memverifikasi apakah Blok yang mengandung data rollup benar-benar disiarkan secara terbuka setelah dibuat. Itu tidak dapat memverifikasi apakah informasi eksternal benar-benar tersedia untuk semua orang.

Ini membuka pintu untuk 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 yang benar-benar adalah bergantung sepenuhnya pada nilai dan struktur insentif sistem di luar BTC.

Menghadapi dilema

Ini menimbulkan dilema bagi rollup. Ketika masalah ketersediaan data terjadi, pada 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 sebagai lapisan ketersediaan data akan menetapkan batas atas yang keras untuk skalabilitas rollup. Ruang Blok terbatas, yang menetapkan batas atas jumlah rollup yang dapat ada pada suatu waktu dan jumlah total transaksi yang dapat diproses secara off-chain oleh semua rollup. Setiap kali rollup diperbarui, Blok ruang harus berbanding lurus dengan jumlah akun yang memiliki perubahan saldo sejak pembaruan terakhir. Teori informasi hanya memungkinkan data dikompresi hingga batas tertentu, pada titik ini tidak ada potensi ekspansi lebih lanjut.

Di sisi lain, menggunakan lapisan yang berbeda untuk mencapai ketersediaan data akan menghilangkan batas maksimum keuntungan skalabilitas, 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 Validiums, jaminan ini sepenuhnya bergantung pada kemampuan sistem eksternal yang digunakan untuk melawan penipuan dan penyembunyian data.

Sekarang, produsen Blok apa pun di sistem ketersediaan data eksternal dapat menculik dana pengguna BTCRollup dengan memproduksi Blok daripada benar-benar menyiar Blok tersebut, sehingga membuat data menjadi tersedia.

Jadi, jika kami benar-benar mewujudkan implementasi Rollup yang ideal di BTC, dengan benar-benar mengimplementasikan penarikan satu arah oleh pengguna, bagaimana hasilnya?

BTC1.97%
ETH2.52%
Lihat Asli
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.
  • Hadiah
  • Komentar
  • Posting ulang
  • Bagikan
Komentar
0/400
Tidak ada komentar
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)