Suka atau tidak suka, Twitter mungkin tidak akan pernah berhenti berdebat tentang apakah "L2" atau Rollup adalah "mewarisi keamanan."
Sementara sebagian besar perdebatan adalah pertempuran semantik yang tidak dapat dibedakan, jika Anda berhasil mempersempit argumen, poin yang mendasarinya berharga karena menyentuh pertanyaan inti kapan, di mana, dan mengapa Rollup masuk akal.
Apakah L2 scalable menghilangkan kebutuhan akan L1 di pasar? Apakah mungkin mengubah L1 seperti Solana menjadi L2?
Perdebatan ini terutama bermuara pada masalah keamanan. Sayangnya, definisi "keamanan" di sini selalu sangat sulit dipahami. Kami biasanya menggunakan istilah ini dengan santai, dan kebanyakan orang tahu kira-kira apa yang kami bicarakan, tetapi tidak sepenuhnya. Di sini kita akan memecah keamanan secara rinci di berbagai arsitektur.
Definisi kata kunci
Rollup
Saya sebelumnya menggunakan definisi Mustafa berikut: "Rollup adalah blockchain yang menerbitkan bloknya ke blockchain lain dan mewarisi konsensus dan ketersediaan data (DA) dari blockchain itu".
Berikut ini adalah definisi yang lebih umum yang diberikan oleh James Prestwich: "Rollup adalah cara untuk memilih mekanisme konsensus lain dengan menyesuaikan fungsi transisi negara, dan mempertahankan negara superset."
Tidak memerlukan jembatan verifikasi, dan kemampuan untuk membangun jembatan lintas rantai dengan asumsi kepercayaan minimal adalah manfaat utama dari Rollup, tetapi menganalisisnya secara terpisah sangat penting.
Kami dapat mempertimbangkan kriteria rollup berikut:
Rollup adalah sistem stateful (misalnya blockchain) yang diturunkan dengan menjalankan fungsi transisi status kustom (STF) pada input data pada rantai utama (lapisan DA).
Semua data input (yaitu data transaksi lengkap atau perbedaan status) yang digunakan untuk mendapatkan status konfirmasi akhir dari rantai jarak jauh (yaitu Rollup) dikonfirmasi pada rantai utama.
Karena status Rollup berasal dari Fungsi Transisi Status (STF) yang berjalan pada data pada rantai utama, validitas Rollup tergantung pada validitas rantai utama. Simpul Rollup kemudian harus sepenuhnya memverifikasi konsensus dan validitas rantai utama (atau membuat asumsi mayoritas yang jujur tentang rantai utama);
Simpul Rollup menentukan status Rollup pada hasil konsensus rantai utama (seperti rantai utama yang mengonfirmasi pemesanan dan ketersediaan blok data) dengan menerapkan fungsi transisi statusnya sendiri (STF).
Jembatan lintas rantai
Jembatan lintas rantai adalah sistem yang memungkinkan dua blockchain untuk berkomunikasi satu sama lain. Rantai A (rantai target) perlu yakin bahwa sesuatu telah terjadi pada rantai B (rantai sumber) dan sebaliknya. Idealnya, kami ingin komunikasi ini bersifat dua arah, dengan atribut keamanan yang sangat berkorelasi (misalnya keyakinan tinggi bahwa pesan tersebut valid, rantai sumber tidak akan dibatalkan, dll.).
Pada dasarnya, jembatan lintas rantai bertindak sebagai "pengamat" dari blockchain lain (sama seperti pengguna manusia biasa lainnya). Jembatan lintas rantai mengimplementasikan aturan konfirmasi yang diberikan yang dengannya ia yakin akan keadaan rantai yang terhubung (misalnya, berapa banyak blok Ethereum yang harus dilewati untuk menerima input transfer).
Jembatan lintas rantai tradisional biasanya menjalankan simpul cahaya validator konsensus on-chain dari rantai sumber (yaitu apa pun yang mereka percayai sebagian besar tanda konsensus);
Jembatan lintas rantai dapat memberikan atribut keamanan yang lebih kuat dengan bertindak sebagai simpul cahaya validator penuh (yaitu menambahkan Data Availability Sampling (DAS) + Validitas / Bukti Kegagalan). Misalnya, validator rantai mungkin perlu berjalan pada semua node cahaya DAS yang menghubungkan rantai, yang merupakan alternatif yang lebih ringan daripada node penuh yang mengharuskan validator untuk menjalankan rantai yang terhubung;
Jembatan lintas rantai Rollup juga dapat mempertahankan aktivitas dan resistansi rantai utama (karena Rollup harus berbagi konsensus rantai utama);
Menjembatani dari rantai utama → Rollup
Arah ini sangat sederhana, karena node Rollup sepenuhnya memverifikasi rantai utama.
Node rollup tahu semua yang terjadi pada rantai utama, sehingga mereka tahu kapan transaksi jembatan lintas rantai terjadi, dan node penuh Ethereum Rollup saat ini juga harus menjalankan node penuh untuk lapisan dasar Ethereum itu sendiri.
Perhatikan bahwa node Rollup juga dapat menjalankan node cahaya validator penuh dari rantai utama mereka, jika didukung. Mari kita pertimbangkan contoh hipotetis di mana Ethereum telah sepenuhnya menerapkan peningkatan berikut:
Blok eksekusi Ethereum dengan bukti validitas (penelitian zkEVM di lapisan dasar sedang berlangsung);
Ethereum telah menerapkan DAS penuh, sehingga node dapat mengambil sampel DA;
Lapisan eksekusi Ethereum menerbitkan datanya sebagai gumpalan ke lapisan data, sama seperti rollup lainnya di Ethereum (misalnya data lapisan eksekusi Celestia akan dipublikasikan ke lapisan DA-nya, sehingga node DAS akan memeriksa ketersediaan data Rollup dan lapisan eksekusi Celestia sendiri);
Ethereum memberikan bukti konsensus penuh alih-alih mengandalkan komite sinkronisasi (misalnya, melalui integrasi validator, agregasi tanda tangan yang lebih baik, kemungkinan bukti konsensus ZK, dll.);
Sekarang, dengan asumsi Anda ingin menjalankan node penuh untuk rollup berbasis Ethereum, untuk mengikuti rantai rollup yang valid, Anda harus memahami rantai kanonik Ethereum, yang memerlukan pemeriksaan konsensus dan validitas Ethereum itu sendiri:
Konsensus Ethereum - setiap klien node ringan dapat melacak konsensus yang ditandatangani sebagai blockchain, header blok;
DA lapisan eksekusi Ethereum sendiri – node Rollup mengambil sampel lapisan DA Ethereum, memeriksa ketersediaan data Rollup dan data lapisan eksekusi Ethereum sendiri (perhatikan bahwa node DAS masih membuat beberapa asumsi tambahan tentang node penuh, seperti yang akan kita lihat nanti);
Validitas status Ethereum sendiri – dengan zkEVM, setiap blok Ethereum dilengkapi dengan bukti validitas;
Node rollup harus memeriksa validitas state dan DA dari lapisan eksekusi Ethereum sendiri, karena ini adalah kondisi validitas untuk blok Ethereum. Node Rollup perlu tahu bahwa itu tidak hanya melacak Ethereum di mana konsensus telah ditandatangani, tetapi juga bahwa itu adalah header blok yang valid. Misalnya, mereka mungkin secara tidak sengaja melacak blok Ethereum yang ditandatangani konsensus tetapi tidak valid (misalnya menghasilkan banyak ETH).
Jika lapisan eksekusi yang mendasarinya sendiri menerbitkan datanya ke lapisan DA (seperti rollup lainnya) dan menambahkan validitas atau bukti kegagalan, maka itu menjadi rollup bawaan.
Jembatan dari rantai utama Rollup →
Arah ini rumit, karena rantai utama tidak mengetahui status Rollup dan STF secara default (yaitu node Ethereum tidak perlu menjalankan node Rollup). Agar rantai utama percaya pada status rollup, Anda dapat menerapkan logika rollup dalam kontrak pintar yang diterapkan pada chain utama (yaitu kontrak jembatan verifikasi rollup). Kontrak pintar ini memeriksa validitas status DA dan Rollup.
Sekali lagi, jembatan lintas rantai ini opsional. Kontrak pintar pada rantai utama digunakan untuk meyakinkan semua node rantai utama tentang validitas Rollup, yang memungkinkan komunikasi dua arah dengan asumsi kepercayaan yang baik.
Rollup, Co-prosesor, dan Intent
Seperti yang telah dibahas, Rollup menyimpan sebagian dari status mereka sendiri (status Rollup) selain memiliki status rantai utama mereka (misalnya Ethereum). Jadi, apakah CoW Swap memiliki statusnya sendiri yang bukan bagian dari status Ethereum? Jika ya, maka kedengarannya seperti rollup. Jika tidak, maka itu bisa menjadi "co-processor."
Namun, bahkan pertanyaan ini tidak sesederhana kelihatannya:
Sebaliknya, Anda mungkin berpikir bahwa faktor pembeda adalah kegigihan negara:
Jika CoW Swap memungkinkan peserta tertentu untuk memberi pengguna pra-konfirmasi cepat (lebih cepat dari waktu blok Ethereum) dan menjanjikan pesanan yang mencakup batch — karena pemrosesan batch Ethereum membutuhkan waktu lebih lama daripada yang diinginkan sebagian besar pengguna, apakah sekarang rollup?
Chris Goes menyentuh topik ini dalam ceramahnya di KTT Modularitas, dimulai dengan perkiraan definisi maksud: "komitmen fungsi preferensi untuk ruang negara sistem tertentu."
Perhatikan kesamaan antara resolusi parsial (maksud pertandingan) dan penyortiran rollup. Operator memperoleh pesan bertanda tangan off-chain pengguna → menerbitkan data yang dihasilkan ke chain utama.
Aplikasi berbasis intent – perubahan status yang dihasilkan diselesaikan secara on-chain (misalnya, dalam contoh CoW Swap, aplikasi berada di chain yang mendasarinya, sehingga token dipertukarkan di sana);
Aplikasi Rollup – menggunakan data yang dikirimkan ke rantai utama untuk menghitung perubahan status yang dihasilkan oleh Rollup;
Arsitektur intent-centric dan arsitektur Rollup-centric mencapai tujuan serupa dari arah yang berlawanan. Pendekatan intent-centric membahas masalah ini secara luas dari perspektif pengguna dan aplikasi, dan pendekatan Rollup-centric membahas masalah ini secara luas dari perspektif blockchain yang berbeda.
Di sini, tidak penting untuk menetapkan batas-batas pembeda tertentu. Terlebih lagi, kami menemukan bahwa Rollup sebenarnya tidak jauh berbeda dari aplikasi yang biasa kami gunakan dengan pencocokan niat off-chain!
Anda mengandalkan peserta off-chain (sequencer vs. pemecah / pengisi, dll.) untuk mendapatkan beberapa jaminan yang lebih lemah, seperti memberikan eksekusi terbaik dan pengalaman pengguna yang baik → menentukan hasil berdasarkan data yang dipublikasikan ke rantai utama. Namun, mereka tidak menahan dana Anda.
Karena perhitungan off-chain yang dapat diverifikasi menjadi lebih penting, garis antara keduanya dapat menjadi kabur:
Jika Anda ingin pemecah niat atau pemesan rollup kurang tepercaya...
Blockchain modular dan blockchain monolitik
Blockchain monolitik (alias blockchain terintegrasi) sering didefinisikan sebagai rantai yang secara vertikal mengintegrasikan semua fungsi inti, yaitu, konsensus, DA, dan eksekusi. Mereka bertanggung jawab penuh atas keselamatan mereka sendiri, dan Solana dan Cosmos Hub adalah contoh utama.
Lapisan DA (seperti Ethereum dan Celestia) sering disebut sebagai blockchain "modular" karena mereka mengalihdayakan eksekusi ke Rollup, tetapi ini tidak sepenuhnya akurat. Mereka juga secara independen bertanggung jawab atas konsensus, DA, dan penegakan hukum mereka sendiri.
Bahkan eksekusi Celestia akan terbatas (misalnya, transfer, staking, cross-chain). Demikian pula, jika seseorang memulai Rollup di atas Solana, itu tidak akan secara ajaib menjadi blockchain "modular".
Jadi ketika Anda mendengar orang menyebut rantai seperti Ethereum atau Celestia sebagai blockchain "modular", sadarilah bahwa ini lebih merupakan perbedaan praktis daripada yang sangat teknis. Keduanya sering mengoptimalkan arsitektur mereka sendiri untuk mendukung Rollup. Rollup ini diharapkan untuk menangani sebagian besar eksekusi perdagangan dalam ruang lingkup mereka.
Bahkan Rollup belum tentu sepenuhnya "modular" — sequencer Rollup dapat menyetujui pengurutan transaksi, memberikan DA, dan melakukan transaksi sebelum rantai utama melakukan apa pun. Ini adalah bagaimana pengguna mendapatkan pra-konfirmasi. Rantai utama kemudian memberikan komitmen "final" lainnya, sekali lagi menyatakan DA dan konsensus tentang urutan transaksi Rollup.
Rollup dan Rantai Terintegrasi
Untuk tujuan kami, perbedaan yang lebih penting adalah "Rollup" atau "Non-Rollup". Apakah keadaan akhir rantai berasal dari data yang dipublikasikan ke rantai utama yang terpisah (yaitu lapisan DA)?
Sementara kita hari ini mengaitkan DAS dan validitas / bukti kegagalan dengan rollup tradisional, kita harus mencatat bahwa ini adalah konsep yang berbeda secara logis. Secara teori, setiap "rantai integrasi" (seperti rantai aplikasi Cosmos yang khas) dapat ditingkatkan untuk menambahkan DAS dan bukti validitas tanpa harus mempublikasikan datanya ke mainchain eksternal lainnya seperti Ethereum. Node akan mengambil sampel dan memeriksa rantai secara terpisah.
Vitalik berbicara tentang perbedaan ini dalam Endgame-nya:
Anda mungkin memperhatikan bahwa "blockchain besar tradisional" (rantai integrasi) dengan validitas / bukti kegagalan DAS + mungkin akan terlihat seperti "rollup yang diabadikan"! Demikian pula, "rollup yang terukur dan dominan" bisa menjadi sangat sukses sehingga hanya bergabung dengan rantai utamanya untuk mengakomodasi rollup itu.
Batas-batas perbedaan menjadi kabur pada batasnya.
Oleh karena itu, jika Anda yakin bahwa efektivitas / bukti kegagalan DAS + adalah hasil akhirnya, maka "Rollup" dalam arti tertentu tidak dapat dihindari. Ada perbedaan yang valid antara kedua metode dalam diagram sebelumnya:
"Rollups" alias "modularitas" - membangun rantai logis independen, mempublikasikan data ke rantai utamanya (lapisan DA), dan menggunakan kembali konsensus rantai utama;
"Blockchain terintegrasi" alias "blockchain monolitik" - mengintegrasikan semuanya ke dalam satu protokol dengan konsensusnya sendiri, tanpa menerbitkan data ke rantai utama yang terpisah (bahkan jika lapisan DA dan lapisan eksekusi adalah bagian yang terpisah secara logis dari protokol bersama dalam arti tertentu);
Ketika kita berbicara tentang "Rollup" dalam laporan ini, kita mengacu pada yang pertama (yaitu bukan rantai integrasi dengan validitas / bukti kegagalan DAS +, yang dapat disebut sebagai Rollup bawaan).
Meskipun Rollup "tradisional" tidak memiliki monopoli atas DAS atau bukti (yaitu blockchain besar terintegrasi dapat menambahkannya), perhatikan bahwa kami mengabaikan banyak detail teknis di sini, dan Anda tidak bisa hanya memilih Solana dan memutuskan "Oh, saya kira kami akan menambahkan DAS hari ini".
Ini membutuhkan refactoring mendasar dari protokol untuk mulai semakin dekat dengan apa yang kita lihat Ethereum dan Celestia lakukan:
Mengubah cara data dikodekan untuk mendukung DAS akan sama dengan memperlambat pengkodean dan propagasi blok, mulai bergerak lebih dekat ke lapisan DA tradisional:
Untuk alasan ini, kami melihat tim membangun yang berikut:
Lapisan DA khusus (misalnya Danksharding Ethereum, Celestia, dll.) - blok lambat + DAS;
Sequencer bersama (misalnya Espresso, Astria atau bahkan Solana) - benar-benar hanya lapisan DA cepat, tidak diperlukan DAS;
Namun, jika Anda memisahkan waktu potongan cepat dan DAS, keduanya belum tentu kompatibel. Misalnya, Anda dapat membayangkan rantai seperti Solana menawarkan dua jalur berbeda:
Jalur cepat - terus melakukan transaksi dan menyebarkan data secepat mungkin (seperti sekarang ini);
Jalur lambat - menyandikan data setelah fakta dengan cara pengambilan sampel asinkron dapat dilakukan, memberikan jaminan bahwa node DAS sedikit di belakang konsensus;
Anatoly membahas dalam podcast bagaimana Eclipse menyatukan Ethereum, Celestia, dan Solana, dan dari ujung spektrum yang lain, Anda dapat membayangkan lapisan DA menambahkan jalur yang lebih cepat sebelum membuat data tersedia untuk pengambilan sampel:
Menyediakan dua jalur dalam protokol lapisan dasar yang sama secara efektif menginternalisasi penyortiran bersama yang cepat, memberikan desain yang menarik berdasarkan Rollup. Perhatikan bahwa saat ini ini masih merupakan ide yang sangat eksplorasi.
Konfirmasikan aturan
Dengan latar belakang itu, kita sekarang dapat mulai memecah atribut keamanan dari arsitektur yang berbeda ini.
Pertama, node berinteraksi dengan blockchain apa pun dengan menjalankan "aturan konfirmasi":
Aturan konfirmasi mengacu pada algoritma yang dijalankan oleh node untuk menampilkan apakah blok dikonfirmasi atau tidak. Dalam hal ini, di bawah asumsi tertentu, terutama yang melibatkan sinkronisasi jaringan dan persentase saham jujur, ketika kondisi ini terpenuhi, blok akan dijamin bahwa reorganisasi tidak akan pernah terjadi ".
Mungkin ada sejumlah aturan konfirmasi untuk rantai tertentu:
Berapa banyak blok yang harus Anda tunggu sebelum mengonfirmasi transaksi Bitcoin? 1 ? 6 ? 10 ?
Apakah Anda menggunakan LMD GHOST untuk mengonfirmasi blok berdasarkan buku besar Ethereum yang dapat digunakan, atau apakah Anda menunggu gadget terakhir (Casper FFG) untuk mengonfirmasi?
Apakah Anda menjalankan node penuh yang secara langsung memverifikasi setiap blok, atau hanya node cahaya yang memeriksa penandatanganan konsensus?
Apakah Anda baru saja bertanya pada Infura?
Karena setiap aturan pengakuan dapat membuat asumsi yang sangat berbeda, mereka dapat memiliki properti keamanan yang sangat berbeda bahkan ketika berinteraksi dengan rantai yang sama:
Perbedaan ini halus tetapi penting:
Keamanan = Keamanan + Aktivitas
Sekarang mari selami apakah Rollup "mewarisi keamanan" dari rantai utamanya.
Warisan, dan mungkin lebih jelas, Rollup selalu "menyewakan" daripada "mewarisi" apa pun dalam rantai utamanya, membayar biaya berkelanjutan untuk sumber daya yang dikonsumsi (DA), dan salah satu pihak dapat memilih untuk mengakhiri hubungan. Tapi itu bukan bagian yang menarik dari masalah.
Keamanan, mulai sekarang kita akan fokus pada keamanan. Keamanan suatu algoritma terdiri dari Safety dan Liveness:
Keamanan (tidak ada hal buruk yang akan terjadi), keadaan akhir yang ditentukan oleh dua node yang sehat tidak akan pernah bertentangan;
Liveness (hal-hal baik akan terjadi pada akhirnya), semua node yang sehat akan menyelesaikan keadaan baru yang mencerminkan transaksi yang disertakan dalam waktu terbatas;
Dengan menggunakan kerangka kerja Sreeram yang sangat baik, kita dapat memecahnya menjadi lima atribut yang bekerja sama untuk mengamankan aturan konfirmasi:
Mari kita pertimbangkan contoh rantai integrasi hipotetis dengan DAS + validitas / bukti kegagalan. Datanya tidak dipublikasikan ke rantai utama eksternal lainnya. Untuk mempermudah, kami mengasumsikan finalisasi instan (misalnya Tendermint), sehingga tidak ada perbedaan yang dapat digunakan antara buku besar yang tersedia dan buku besar akhir (misalnya Gasper Ethereum).
Kami akan mempertimbangkan tiga aturan konfirmasi yang dapat digunakan untuk melacak rantai menggunakan berbagai jenis node:
Simpul cahaya validator konsensus - memverifikasi bukti konsensus (yaitu mempercayai konsensus mayoritas yang jujur).
Full validator light node - verifikasi konsensus + periksa DA (menggunakan DAS) + verifikasi validitas negara (menggunakan validitas / bukti kegagalan);
Full node - konsensus verifikasi + verifikasi langsung DA (unduh semua data) dan validitas (pelaksanaan semua transaksi dan perhitungan status);
Konfirmasikan bahwa aturan memiliki atribut keamanan, rantai tidak
Sekali lagi, "kita berbicara bahasa sehari-hari bahwa rantai aman, tetapi sebenarnya itu adalah aturan konfirmasi yang melekat pada atribut keamanan".
Mari kita lihat beberapa contoh.
Teorema CAP
Sebagai latar belakang, teorema CAP memberi tahu kita bahwa tidak ada buku besar yang dapat memenuhi kedua kondisi ini secara bersamaan:
Adaptivitas (alias ketersediaan dinamis) - tetap aktif dengan partisipasi dinamis (yaitu jika sebagian besar node offline);
Finalitas (alias konsistensi) – menjaga keamanan di bawah partisi jaringan;
Protokol konsensus cenderung dibagi menjadi dua bagian, yang masing-masing memenuhi salah satu kondisi di atas:
Protokol rantai terpanjang - protokol ini (misalnya Konsensus Satoshi Bitcoin) menjamin aktivitas bahkan ketika jumlah node yang berpartisipasi aktif bervariasi (yaitu adaptif), namun mereka tidak aman (yaitu tidak final) di bawah partisi jaringan;
Protokol tipe BFT - Protokol konsensus klasik (misalnya PBFT) mencapai finalitas tetapi tidak mencapai kemampuan beradaptasi;
Aturan konfirmasi Bitcoin
Konsensus Bitcoin tidak memberikan finalitas ekonomi yang sulit.
Node mengamati rantai terpanjang dalam tampilan lokal mereka, dan setiap pengguna bebas untuk menerapkan aturan konfirmasi apa pun yang mereka suka (misalnya menerima blok dengan konfirmasi >k). Standarnya adalah menunggu 6 blok dikonfirmasi, tetapi terserah Anda.
Untuk transaksi bernilai lebih tinggi, masuk akal untuk menunggu lebih lama. Ada trade-off antara waktu tunggu dan keamanan, yaitu, kemungkinan reorganisasi.
Aturan konfirmasi Ethereum
Konsensus PoS Ethereum (Gasper) tampaknya pada pandangan pertama menghindari teorema CAP. Namun, ia mengimplementasikan dua properti ini karena berisi dua buku besar bersarang:
Buku besar yang tersedia secara dinamis - jika jaringan tidak dipartisi, aman dan aktif dengan partisipasi dinamis;
Buku besar awalan yang diselesaikan - selalu aman dan terjamin. Jika jaringan tidak dipartisi dan cukup banyak node berpartisipasi, itu tetap aktif;
Gasper termasuk dalam keluarga protokol "pasang surut" (juga dikenal sebagai buku besar ganda atau aturan konfirmasi ganda). Desain dua buku besar berada di luar ruang lingkup teorema CAP (yaitu mengasumsikan aturan konfirmasi tunggal). Ketika jaringan dipartisi, buku besar yang diselesaikan tertinggal di belakang buku besar adaptif, tetapi mengejar ketika jaringan diperbaiki.
Hal ini memungkinkan trade-off antara kemampuan beradaptasi dan finalitas untuk ditangani di tingkat pengguna daripada di tingkat seluruh sistem. Ini adalah karakteristik dari protokol "rantai pos pemeriksaan terpanjang" yang diusulkan oleh teorema CAP blockchain dalam hal kemampuan beradaptasi dan finalitas yang dapat diandalkan pengguna. Protokol ini memberi pengguna individu pilihan antara finalitas dan kemampuan beradaptasi, daripada memaksakannya pada tingkat sistem secara keseluruhan.
Gasper secara eksplisit memaparkan dua aturan konfirmasi yang berbeda, dipetakan ke dua buku besar yang disebutkan di atas:
Aturan yang tersedia secara dinamis - kemampuan beradaptasi terjamin. Hormati header blok dari rantai terpanjang. LMD GHOST adalah aturan pemilihan garpu yang digunakan untuk menentukan subpohon terberat;
Aturan Finalisasi - Menjamin kepastian akhir. Hormati blok yang dikonfirmasi oleh gadget akhir. Casper FFG adalah gadget final yang berlaku di atas aturan pemilihan fork;
Seperti yang dibahas dalam makalah:
"Aturan adaptif yang lebih optimis selalu mengkonfirmasi blok yang ditandai sebagai diselesaikan oleh aturan yang lebih konservatif, dan dapat mengkonfirmasi lebih banyak blok selama tingkat partisipasi variabel. Pelanggan (pengguna) memilih secara lokal antara aturan konfirmasi berdasarkan preferensi pribadi, sementara penambang mengikuti aturan proposal blok tetap yang konsisten dengan dua aturan konfirmasi ini ".
Ini memungkinkan semua node (jujur) dalam sistem:
Ikuti mekanisme proposal blok umum;
Namun, node yang berbeda dapat memilih aturan konfirmasi yang berbeda;
Validator terus memperpanjang rantai terpanjang (menambang blok baru pada ketinggian yang terus meningkat), terlepas dari tingkat partisipasi, tetapi hanya ketika ada partisipasi yang cukup, pos pemeriksaan baru akan muncul.
Rantai terpanjang (berisi pos pemeriksaan terbaru) dapat bergantian antara rantai yang berbeda (yaitu memasang kembali blok yang tidak lengkap), tetapi pos pemeriksaan dijamin berada pada rantai tunggal terlepas dari kondisi jaringan (yaitu finalitas).
Keamanan pengguna tergantung pada aturan konfirmasi yang mereka ikuti. Ada trade-off antara pengakuan blok cepat dan jaminan keamanan yang lebih kuat. Pengguna yang menjual kopi mungkin lebih memilih aktivitas daripada keamanan, tetapi pengguna yang menjual yacht mungkin lebih memilih keamanan daripada aktivitas.
Node Ethereum juga dapat menerapkan beberapa heuristik aturan konfirmasi menengah lainnya untuk tujuan praktis. Alih-alih menggunakan blok k naif sebagai aturan konfirmasi adaptif, seperti yang dilakukan Bitcoin, kita dapat menambahkan heuristik lain yang mencakup asumsi tentang sinkronisasi jaringan dan kejujuran validator.
Inilah yang diusulkan dalam Aturan Konfirmasi Protokol Konsensus Ethereum, yang mengusulkan aturan konfirmasi dengan properti berikut:
Dalam kondisi ideal - aturan akan mengkonfirmasi blok baru segera setelah slotnya;
Dalam kondisi mainnet yang khas - aturan harus dapat mengkonfirmasi sebagian besar blok baru dalam satu menit;
Aturan konfirmasi ini bukan pengganti finalitas ekonomi. Sebaliknya, ini memberikan heuristik yang berguna bagi pengguna yang percaya bahwa sinkronisasi jaringan akan tetap ada dalam waktu dekat. Mari kita bandingkan keduanya:
Mari kita pertimbangkan beberapa contoh, seperti jika Anda menjual kapal pesiar seharga $ 2,5 juta dalam ETH, berikut adalah beberapa aturan konfirmasi yang mungkin:
Full node + menunggu hasil akhir – bahkan mayoritas validator jahat tidak dapat menipu Anda agar menerima blok yang tidak valid (misalnya memproduksi ETH palsu). Jika mereka membayar Anda $ 2,5 juta dalam ETH dan kemudian mencoba merestrukturisasi blok akhir nanti, mereka akan dikenakan biaya besar (setidaknya sepertiga dari ekuitas dapat dihukum);
Full node + menunggu blok – sebagian besar validator jahat masih tidak dapat menipu Anda agar menerima blok yang tidak valid, namun mereka dapat mengirimi Anda $ 2,5 juta dalam ETH dalam blok yang valid, pergi di kapal pesiar, dan kemudian blok segera ditata ulang, yang dimungkinkan jika ada cukup berat pasak atau kondisi jaringan yang buruk, mereka tidak dipotong secara hukuman;
Klien Node Cahaya – Papan sinkronisasi berbahaya dapat berbohong kepada Anda tanpa penalti dan pembeli dapat pergi dengan kapal pesiar (perhatikan bahwa komite sinkronisasi ini eksklusif untuk Ethereum sebagai bagian dari konsensus, rantai PoS lain dengan dukungan klien simpul cahaya yang lebih efisien dapat memeriksa semua suara konsensus dengan sejumlah kecil validator);
MetaMask – Anda hanya mempercayai Infura, orang yang membeli kapal pesiar dari Anda berjanji kepada karyawan Infura bahwa mereka dapat mengambil kapal pesiar pada akhir pekan, jadi mereka berbohong kepada Anda, Anda pikir Anda telah mendapat $ 2.5 juta dalam ETH, dan kemudian Anda menyerahkan kuncinya;
Rollup mengkonfirmasi aturan
Seperti halnya rantai apa pun, node berinteraksi dengan Rollup menggunakan aturan pengakuan yang berbeda. Aturan konfirmasi terkuat Rollup akan diselesaikan bersama dengan konsensus rantai utamanya. Sequencer Rollup dapat mengekspos aturan konfirmasi yang lebih lemah untuk pengalaman pengguna yang lebih baik (yaitu memberikan pra-konfirmasi cepat untuk pengguna yang tidak sabar), tetapi pengguna juga dapat menunggu keamanan penuh dari aturan konfirmasi rantai utama.
Alur transaksi Rollup tipikal terlihat seperti ini:
Pengguna mengirimkan transaksi ke sequencer;
Sequencer mengurutkan transaksi dan memberikan pra-konfirmasi;
STF deterministik harus diterapkan pada transaksi yang dipesan untuk menghitung status Rollup baru;
Komitmen status rollup yang diperbarui dan data transaksi terkait akhirnya dirilis ke rantai utama;
Setelah data transaksi dipublikasikan ke rantai utama:
Rollup Full Node - langsung memverifikasi bahwa status rantai yang diusulkan sudah benar;
Rollup light node (termasuk jembatan verifikasi) - tidak dapat diverifikasi secara langsung;
Pengamat yang berbeda dari Rollup yang sama menggunakan aturan konfirmasi yang berbeda, sehingga mereka menyelesaikan sudut pandang mereka pada waktu yang berbeda:
Asumsikan rilis data transaksi lengkap (bukan hanya perbedaan negara);
Seperti disebutkan sebelumnya, node Rollup juga harus menjalankan node penuh mainchain atau node cahaya validator penuh (atau menggunakan node cahaya validator konsensus untuk membuat asumsi mayoritas yang jujur). Node cahaya rollup dapat berjalan sebagai perangkat lunak tambahan atau secara implisit dalam node rantai utama (yaitu rollup verifikasi kontrak jembatan lintas rantai pada rantai utama);
Pengguna juga dapat mengonfirmasi transaksi lebih cepat dengan mempercayai sequencer untuk mengonfirmasi terlebih dahulu, bahkan sebelum tautan utama menerima data. Jika sequencer berperilaku salah, keamanan bisa gagal. Kemudian, setelah data berada di rantai utama (dan Anda telah memeriksa validitas DA +), hanya kegagalan rantai utama (seperti reorganisasi Ethereum) yang akan memengaruhi keamanan Anda.
Oleh karena itu, bahkan pemesan terpusat tidak benar-benar mengurangi keamanan "Rollup". Anda selalu mendapatkan keamanan yang sesuai dengan aturan konfirmasi yang Anda butuhkan. Apakah Rollup memiliki desain berbasis sequencer atau lainnya, Anda dapat menggunakan aturan konfirmasi yang sama (misalnya menunggu rantai utama diselesaikan dan memeriksa validitas Rollup). Dengan asumsi implementasi yang tepat (misalnya, menegakkan penyertaan transaksi melalui rantai utama), Anda bisa mendapatkan atribut keamanan yang sama dalam jangka waktu yang sama sambil menjaga kondisi lain tetap sama.
Demikian pula, Anda dapat membayangkan bahwa produsen blok Ethereum L1 memberikan pra-konfirmasi karena waktu blok yang lambat, yang tidak membuat "Ethereum" kurang aman. Anda hanya perlu memutuskan apakah akan menggunakan aturan konfirmasi lain (kurang aman) sampai validator Ethereum menyelesaikan keamanan yang lebih tinggi.
Ide prakonfirmasi sangat cocok dengan logika Gasper yang dijelaskan oleh Vitalik:
Prinsip umumnya adalah Anda ingin memberikan "konsensus sebanyak mungkin" kepada pengguna: jika ada > 2/3, maka kami mencapai konsensus secara teratur, tetapi jika ada < 2/3, maka tidak ada alasan untuk menunda tanpa memberikan apa pun, karena jelas rantai akan terus tumbuh meskipun tingkat keamanan sementara lebih rendah dari blok baru. Jika satu aplikasi tidak puas dengan tingkat keamanan yang lebih rendah, jangan ragu untuk mengabaikan potongan ini sampai selesai.
Menempatkan semua ini bersama-sama, ketika semua aturan konfirmasi menyetujui keadaan buku besar yang sama pada saat yang sama, kami memiliki "area konsistensi":
Konfirmasikan aturan - keamanan dan aksesibilitas
Jika aturan konfirmasi Anda adalah mempercayai sequencer tunggal yang dijalankan oleh SBF, daripada sequencer terdesentralisasi yang terdiri dari validator paling terkemuka di dunia, maka keamanan Anda mungkin lebih buruk, dan kegagalan aktif dan reorganisasi adalah kegagalan keamanan.
Atau, Anda dapat menunggu aturan konfirmasi (mainchain) yang lebih kuat tersedia. Kemudian, semuanya sama, sequencer yang tidak tepercaya tidak akan memengaruhi keamanan Anda. Jika Anda menjual kopi, Anda mungkin akan segera pergi, tetapi jika Anda menjual kapal pesiar, Anda harus memeriksa ulang konfirmasi rantai utama.
Namun, jika semua orang benar-benar menggunakan aturan konfirmasi itu untuk menjual kapal pesiar mereka, kami tidak dapat sepenuhnya mengabaikan keamanan yang berpotensi rendah dari aturan konfirmasi "trust random person running a separate sequencer". Desain yang tepat didasarkan pada keseimbangan tingkat komitmen progresif yang diperlukan untuk jam berapa untuk kasus penggunaan tertentu.
Sekali lagi, ini menyentuh kritik nyata terhadap blockchain throughput tinggi seperti Solana. Aturan konfirmasi apa yang sebenarnya bisa digunakan orang? Anda mungkin memiliki kondisi keamanan yang baik untuk menjalankan full node Solana, tetapi kebanyakan orang mungkin tidak memiliki akses ke aturan konfirmasi tersebut (yaitu, tergantung pada persyaratan sumber daya dan/atau biaya).
Verifikasi langsung (yaitu, tidak hanya mempercayai mayoritas jujur) adalah atribut inti dari sistem ini. Jadi, untuk aturan konfirmasi yang diberikan, kami sangat peduli dengan dua aspek – keamanan dan aksesibilitas:
Singkatnya:
Pengguna berinteraksi dengan rantai apa pun melalui aturan konfirmasi;
Sebuah rantai dapat memiliki sejumlah aturan konfirmasi;
Keamanan adalah atribut dari aturan konfirmasi, bukan rantai itu sendiri;
Kami peduli dengan keamanan dan aksesibilitas aturan konfirmasi untuk rantai tertentu;
Bahkan, ketika kami mengatakan bahwa rantai tertentu aman, kami mencoba untuk mengungkapkan gagasan bahwa aturan konfirmasi terkait aman dan dapat diakses.
Rollup dengan keamanan rantai integrasi
1, rantai integrasi dengan bukti validitas DAS +
Kita sekarang melihat bahwa keamanan mengenai DA dan validitas negara dapat diperiksa langsung oleh kriptografi (DAS + validitas / bukti kegagalan) tanpa membuat asumsi kuat tentang operator rantai. Protokol apa pun secara teknis dapat mengimplementasikannya. Full node juga dapat memeriksa DA dan validitas state tanpa asumsi eksternal.
Sekarang mari kita fokus pada properti lain - aktivitas dan ketahanan terhadap rekombinasi. Seperti yang telah kita lihat sebelumnya, ini bisa gagal tidak peduli apa pun jenis aturan konfirmasi yang Anda jalankan. Mari kita lihat rantai integrasi lain yang membuktikan finalitas efektivitas DAS+ dari soket tunggal +PoS:
Memilih aturan pengakuan yang kuat sangat efektif untuk subset kegagalan keamanan, di mana bahkan sebagian besar validator jahat tidak dapat mengelabui node penuh atau node cahaya validator penuh agar percaya bahwa:
Data yang tidak tersedia sebenarnya tersedia;
atau transisi status yang tidak valid valid;
Apakah Ethereum memiliki 1 validator atau validator yang tak terhitung jumlahnya, semua node kurang lebih percaya pada DA atau validitas blok, yang dijamin dengan pemeriksaan. Light node validator penuh dapat diperiksa dengan cara yang lebih sederhana (tetapi perhatikan bahwa DAS membuat beberapa asumsi lain, yang akan kita bahas nanti).
Namun, mayoritas validator yang jahat dapat mencegah buku besar tumbuh, menyensor Anda, atau mengatur ulang rantai (kegagalan yang terjadi tergantung pada aturan konfirmasi). DAS + ZK tidak akan menyelamatkan Anda. Resistensi terhadap reorganisasi dan aktivitas selalu bergantung sampai batas tertentu pada berbagai atribut yang mendasari rantai tertentu (misalnya operator yang andal, insentif ekonomi, konsensus sosial, dll.).
Kurang jelas, aktivitas dan resistensi terhadap reorganisasi masih merupakan atribut dari aturan pengakuan yang diberikan, karena setiap node tunduk pada serangan yang sama seperti pada tabel di atas. Terlepas dari aturan konfirmasi di sini, mereka memiliki jaminan yang sama.
Namun, ini menjadi jelas lagi ketika Anda menghapus asumsi finalitas slot tunggal. Di Gasper Ethereum, tergantung pada buku besar yang Anda ikuti (yaitu buku besar rantai atau pos pemeriksaan terpanjang yang tersedia), Anda akan kembali memiliki aktivitas yang berbeda dan properti tahan reorganisasi. Sebagian besar validator berbahaya menyebabkan kegagalan keamanan yang berbeda tergantung pada aturan konfirmasi yang Anda jalankan.
Bagaimanapun, intinya adalah bahwa konstruksi rantai yang mendasari sangat penting di sini. Anda membutuhkan operator yang kuat, insentif ekonomi, dan konsensus sosial untuk menjaga rantai tetap aktif dan tahan terhadap restrukturisasi. Selain itu, protokol konsensus dual-ledger seperti Ethereum memberi pengguna fleksibilitas yang berharga untuk menghitung ketersediaan dan finalitas sesuai dengan kebutuhan mereka.
2, Bukti Rollup menggunakan validitas DAS +
Sekarang mari kita ubah contoh ini sedikit:
Contoh sebelumnya - rantai integrasi dengan bukti validitas DAS +, bayangkan mengambil Solana hari ini, tetapi menambahkan bukti DAS +;
Contoh baru - Rollup digunakan pada rantai utama eksternal (misalnya Ethereum) dengan bukti validitas + DAS (perhatikan bahwa Ethereum DAS belum aktif), Rollup memiliki set sequencer terdesentralisasi yang dapat mencapai konsensus dengan pra-konfirmasi cepat;
Anda akan melihat bahwa Rollup memiliki dua jenis aturan konfirmasi yang benar-benar terpisah untuk jangka waktu yang berbeda (yaitu apakah Anda beroperasi berdasarkan pra-konsensus sequencer atau menunggu konsensus akhir dari rantai utama), sekarang mari kita lihat setiap jalur.
Jalur Cepat - Sebelum konsensus rantai utama
Node rollup dapat mengandalkan konfirmasi dari sequencer (sebelum menerbitkan ke rantai utama), dan kami berasumsi mereka dapat menjalankan node Rollup berikut:
Rollup Full Validator Light Node - menjalankan DAS + pada feed sequencer untuk memeriksa bukti validitas sebelum menerbitkan apa pun ke Ethereum;
Rollup Full Node - Unduh semua data dari umpan sequencer dan jalankan semua transaksi untuk langsung memeriksa DA dan validitas;
Secara teknis, sequencer Rollup dapat memfasilitasi DAS dan memberikan bukti validitas sebelum menerbitkan ke rantai utama, tetapi ini tidak benar-benar terjadi. Light node validator penuh biasanya dirancang untuk memeriksanya melalui rantai utama, tetapi saya berasumsi bahwa bukti DAS + "langsung" dapat dibandingkan lebih jelas dengan yang sama dengan rantai terintegrasi.
Tabel berikut menunjukkan perubahan dibandingkan dengan contoh rantai integrasi:
Andalkan sequencer Rollup untuk aktivitas dan anti-rekombinasi, daripada set validator dari rantai terintegrasi;
Hanya menghapus atribut aktivitas akhir, karena hanya rentang waktu sebelum konsensus rantai utama dilihat di sini (atribut aktivitas "final" ini akan dimiliki sendiri nanti di masa mendatang);
Penghapusan ditampilkan dengan coretan merah dan penambahan ditampilkan dengan warna biru:
Jalur lambat - Tunggu konsensus rantai utama
Untuk keamanan ekstra, node dapat menunggu konsensus dari rantai utama (misalnya Ethereum), yang mana ia berperan lebih jelas, yaitu Node rollup juga harus menjalankan node rantai utama:
Simpul cahaya validator konsensus rantai utama - percayai konsensus mayoritas yang jujur dari rantai utama;
Simpul lampu validator penuh rantai utama - periksa bukti validitas rantai utama + jalankan DAS pada rantai utama (termasuk data Rollup + data rantai utama);
Mainchain full node - unduh semua data mainchain (termasuk memeriksa data rollup) + jalankan semua transaksi mainchain untuk langsung memeriksa validitas;
Perhatikan bahwa validitas status Rollup dapat diverifikasi melalui dua jalur berbeda:
Di luar rantai utama (menjalankan perangkat lunak node Rollup tambahan) - Rollup tidak memerlukan rantai utamanya untuk memverifikasi statusnya atau STF, tidak perlu menggunakan jembatan verifikasi, sebagai gantinya dapat memeriksa bukti Rollup dengan metode lain (misalnya menerima bukti Rollup melalui p2p), yang memerlukan menjalankan perangkat lunak node Rollup tambahan untuk memverifikasi bukti (yaitu node cahaya Rollup);
Di dalam rantai utama (mengimplementasikan simpul Rollup di dalam rantai utama) - ini adalah norma saat ini, logika validator simpul cahaya Rollup digunakan di rantai utama itu sendiri (yaitu kontrak jembatan bawaan Rollup), karena simpul validator Rollup ini berjalan di dalam STF rantai utama, memvalidasi STF rantai utama juga berarti memverifikasi STF rollup;
Jika kita mendapatkan rantai utama bukti-bukti tanpa pengetahuan (misalnya Ethereum L1 zkEVM) + semua rollup membuktikan keadaannya di dalam rantai utama→ kita mendapatkan visi Vitalik tentang bukti singularitas. Bukti tanpa pengetahuan untuk memvalidasi Ethereum berarti memvalidasi semua rantai lain dan memvalidasi node dari implementasi internal mereka:
Untuk mempermudah, kami berasumsi di sini bahwa validitas status rollup diverifikasi dalam rantai utama itu sendiri (misalnya rollup memiliki jembatan bawaan dengan rantai utama), sehingga kami dapat mengabaikan secara eksplisit menjalankan perangkat lunak node rollup tambahan di luar protokol.
Perubahan dari tabel Fast Path Rollup sebelumnya adalah sebagai berikut:
Ini dicapai dengan rantai utama yang memaksa transaksi untuk memasukkan atau memaksakan substitusi sequencer / prover, yang kami sebut aktivitas "akhir" di sini, karena dari sudut pandang Rollup, ini adalah jalur yang lambat, tetapi dari perspektif rantai utama, ini dapat dianggap sebagai aktivitas "real-time".
Rollup dengan blockchain terintegrasi
Sekarang kita dapat melihat perubahan atribut keamanan yang terkait dengan blockchain terintegrasi dan Rollup:
DA dan validitas status - Jika diterapkan, bukti validitas DAS + dapat memberikan jaminan keamanan yang berlaku, terlepas dari apakah rantai terintegrasi atau Rollup tradisional. Faktanya, teknologi ini saat ini didominasi oleh Rollup;
Liveness &; Re-org Resistance - Blockchain terintegrasi bertanggung jawab untuk ini secara independen di semua skenario. Sebaliknya, Rollup menawarkan pilihan aturan konfirmasi dalam kerangka waktu yang berbeda. Anda dapat menggunakan aturan konfirmasi yang kurang aman (konsensus sequencer kepercayaan) untuk mendapatkan jaminan cepat, atau menunggu aturan konfirmasi yang lebih aman (menunggu konsensus mainchain);
Aktivitas dan resistensi terhadap rekombinasi
Atribut ini tidak dapat dijamin dengan kata sandi, dan bahkan di seluruh aturan pengakuan (misalnya, apakah menjalankan node penuh atau ringan), Anda mungkin rentan terhadap kegagalan keamanan.
Jika operator benar-benar di luar kendali, tidak ada node penuh atau bukti ZK yang dapat melindungi Anda dari kegagalan aktivitas atau reorganisasi.
Atribut-atribut ini dicapai melalui operator yang kuat dan terdesentralisasi, mekanisme tahan sensor, konsensus yang kondusif untuk aktivitas, "biaya" restrukturisasi yang tinggi, konsensus sosial yang kuat, dll. Membandingkan ini secara obyektif seringkali menantang.
Bagaimana Anda mengukur desentralisasi operator dan konsensus sosial? Tidak ada satu jawaban yang benar. Ini bisa dibilang aspek yang paling sulit untuk dirancang, dan mereka memang sangat unik untuk rantai tertentu.
Yang penting, kami melihat bahwa Rollup dapat mendelegasikan anti-reorganisasi dan aktivitas ke rantai utama, dan bahwa aturan konfirmasi yang digunakan pada Rollup dapat memiliki atribut keamanan yang sama seolah-olah mereka berjalan di rantai utama dalam jangka waktu yang sama.
Chain bahkan dapat memilih atribut mana yang akan didelegasikan ke chain mana, dan berbagai jenis arsitektur "L2" (seperti validium, optimisme, dan sidechain) dapat menyerap subset atribut keamanan yang berbeda. Misalnya:
Anti-restrukturisasi - Rollup dapat mendelegasikan anti-restrukturisasi ke Ethereum, dan aturan pemilihan fork-nya didasarkan pada apa yang dikonfirmasi oleh konsensus Ethereum untuk memilih "rantai kanonik". Jika Ethereum ditata ulang, Rollup juga akan ditata ulang.
Liveness - Namun, jika Rollup tidak memiliki inklusi paksa dan mekanisme penggantian operator paksa, pengguna Rollup masih belum menerima atribut keaktifan Ethereum;
Rollup juga dapat memberi pengguna rute pelarian untuk keluar dari Rollup, tetapi mempertahankan kemampuan untuk memeriksa pengguna dan mencegah setoran memasuki Rollup (ini adalah cara kerja Loopring, misalnya). Jika deposit tetap tidak diproses setelah jangka waktu tertentu, pengguna dapat menarik dana yang terkunci dari kontrak L1.
Ini menyoroti pentingnya mekanisme tersebut.
Ketersediaan data dan validitas status
Tidak seperti aktivitas dan anti-rekombinasi, node dapat memastikan validitas DA dan state tanpa membuat asumsi ambang batas yang besar (atau trade-off keamanan antara keduanya). Produsen blok mayoritas berbahaya dapat menyebabkan kegagalan aktivitas dan reorganisasi, tetapi mereka tidak akan menyebabkan kegagalan DA atau validitas untuk node penuh atau node cahaya validator penuh.
Namun, simpul cahaya validator konsensus tentu saja dipengaruhi oleh validitas negara mayoritas jujur dan kegagalan DA. Mereka hanya percaya semua yang dikatakan konsensus. Itulah mengapa DA dan validitas negara adalah apa yang membuat aturan konfirmasi keamanan dapat diakses dan benar-benar berfungsi. Ini sering kali merupakan perbedaan ideologis yang sangat besar antara Rollup tradisional dan blockchain besar yang tidak terlalu menekankan pada verifikasi pengguna.
Agar, ini sering kali merupakan cara yang disukai untuk menyeimbangkan keamanan dan aksesibilitas:
Membuat DAS dan bukti efektivitas tersedia secara luas;
Jika Anda tidak memiliki DAS dan / atau bukti validitas, buat node penuh dapat diakses secara luas (yaitu persyaratan sumber daya yang rendah, mudah dijalankan, dll.);
Jika Anda tidak memiliki DAS dan / atau bukti validitas, dan simpul penuh sebagian besar tidak dapat diakses, maka harap buat simpul cahaya validator konsensus dapat diakses secara luas dan memiliki konsensus mayoritas jujur yang dapat dipercaya;
Kunjungi Infura;
Perhatikan bahwa 2 (full node) sebenarnya yang paling aman. Verifikasi ZK sangat mudah, tetapi node DAS membuat beberapa asumsi tambahan yang tidak dimiliki node penuh. Namun, mereka menyediakan keamanan yang hampir sama dengan node penuh, dan dengan persyaratan sumber daya di sebagian kecil dari itu, mereka dapat diskalakan.
Full node hanya perlu mengunduh semua data, jadi mereka 100% yakin. Mereka menandatangani blok hanya ketika semuanya ada di sana. Tidak ada asumsi yang dibuat tentang pihak eksternal.
Tujuan DAS adalah untuk mencapai keamanan yang hampir sama baiknya dengan node penuh, sementara dengan persyaratan sumber daya yang jauh lebih rendah (yaitu, skala yang lebih tinggi). Artikel tentang tingkat keamanan ketersediaan data simpul cahaya ini mencakup hal ini dengan baik.
Singkatnya, Anda biasanya membuat beberapa asumsi seputar sinkronisasi jaringan dan apakah ada cukup node untuk merekonstruksi data. Jika produsen blok yang bermusuhan menyembunyikan data apa pun, bahkan sekelompok kecil simpul cahaya yang jujur harus dapat membangun kembali blok secara kolektif. Ada juga asumsi tentang pengungkapan saham selektif, di mana produsen blok yang bermusuhan dapat menipu sejumlah kecil node cahaya secara individual, tetapi tidak secara kolektif.
Asumsi "N-in-2" ini (misalnya, minoritas node yang jujur dapat mengamankan DAS) sangat menguntungkan dalam kaitannya dengan perkiraan asumsi "N / 2" yang khas (misalnya, 51% produsen blok dapat menyebabkan reorganisasi). Vitalik memiliki pengantar yang baik untuk ini dalam postingannya tentang model kepercayaan.
Secara keseluruhan, DA dan efektivitas negara tidak "ditugaskan" oleh Rollup sebagai aktivitas dan resistensi rekombinan. DA dan validitas negara dapat diverifikasi langsung oleh pengguna, sementara atribut lain lebih bergantung pada peserta konsensus rantai dan insentif mereka.
Tinjau contoh validasi bukti Rollup sebelumnya:
Publikasikan bukti ZK Rollup ke kontrak pintar Ethereum, di mana Anda menjalankan node penuh Ethereum dan secara implisit memverifikasi bukti;
Kirim bukti ZK Rollup ke node cahaya Rollup saya untuk memverifikasi bukti secara langsung;
Dalam kedua kasus, Anda dapat menjamin efektivitas. Di mana pun Anda memeriksanya, Anda tidak dapat menentukan efektivitasnya. Ethereum tidak memiliki efektivitas yang benar-benar "dipaksakan" yang sama dengan node Ethereum "memaksa" anti-restrukturisasi atau properti aktif. Anti-restrukturisasi dan vitalitas sangat tergantung pada siapa Anda mendapatkannya.
Pertimbangkan rollup berbasis rantai scam:
Aturan pemilihan garpu Rollup mengikuti ujung rantai→ Jika rantai ditata ulang, Rollup juga akan ditata ulang;
Mekanisme inklusi wajib Rollup dan penghapusan sequencer diberlakukan melalui kontrak bridging lintas rantai pada rantai scam→ Jika buku besar rantai penipuan berhenti, maka begitu juga buku besar rollup. Jika rantai penipuan ingin menyensor Rollup Anda, maka Anda akan disensor;
Rollup dapat mengekspos aturan konfirmasi dengan atribut keamanan yang sama dengan rantai utama mereka, yang dapat mereka terima paling banyak pada tingkat konsensus rantai host mereka (pada kenyataannya, biasanya akan lebih lambat, tergantung pada seberapa sering Rollup dipublikasikan ke rantai utama).
Rollup juga dapat memberikan "jalur bahagia" dengan aturan konfirmasi yang lebih santai (yaitu, sequencer) untuk pengalaman pengguna yang lebih baik, tetapi mereka mempertahankan rollback transaksi jika terjadi kegagalan. Jika sequencer berhenti, Anda dapat terus bergerak. Namun, ini tidak terjadi jika rantai Anda sepenuhnya bergantung pada kumpulan validator Anda sendiri (yaitu sebagai rantai integrasi).
Memilih rantai utama Rollup dengan bijak dapat berdampak nyata pada atribut keamanan. Sangat berharga untuk memanfaatkan backchain dengan aktivitas yang kuat (pertumbuhan buku besar + CR) dan ketahanan terhadap reorganisasi.
Asumsi keamanan yang berbeda untuk periode waktu yang berbeda
Mari kita lihat contoh sederhana. Chain X memutuskan apakah akan digunakan sebagai Rollup pada chain utama yang ada atau sebagai blockchain terintegrasinya sendiri.
Rollup memiliki karakteristik sebagai berikut:
10 detik blok waktu;
DAS node cahaya didukung
Aturan konfirmasi "Keamanan tinggi" untuk aktivitas dan anti-reorganisasi (misalnya validator tepercaya yang terdesentralisasi, dll.) dapat disediakan;
Blockchain terintegrasi memiliki karakteristik sebagai berikut:
Waktu keluaran blok adalah 1 detik;
Simpul cahaya DAS dan bukti validitas dapat diimplementasikan, apakah itu diluncurkan sebagai blockchain terintegrasi atau sebagai rollup;
Jika sequencer terpusat diterapkan - itu akan memberikan aturan konfirmasi "keamanan rendah" tentang aktivitas dan resistensi terhadap rekombinasi;
Jika menerapkan konsensus terdesentralisasi sendiri (baik sebagai set sequencer Rollup yang telah dikonfirmasi sebelumnya atau sebagai set validator rantai terintegrasi), itu akan memberikan aturan konfirmasi "keamanan menengah" untuk aktivitas dan anti-reorganisasi;
Tabel berikut memberikan representasi visual yang disederhanakan dari jaminan keamanan terbaik yang mungkin dimiliki pengguna di bawah berbagai implementasi (yaitu, mereka menggunakan aturan pengakuan terkuat yang tersedia). Secara khusus, kami fokus di sini pada aktivitas dan ketahanan terhadap rekombinasi (karena kami berasumsi bahwa rantai hanya akan mencapai bukti efektivitas DAS + dalam dua kasus ini):
"Keamanan tertinggi" Rollup lebih tinggi daripada "keamanan waktu nyata" karena rantai utama tidak dapat menjamin kami lebih cepat daripada waktu bloknya sendiri. Meskipun Anda dapat memeriksa bahwa pra-pengakuan sequencer adalah transisi status yang valid, Anda tidak dapat sepenuhnya menjamin finalitas mereka sampai akhirnya mencapai lapisan DA.
Tapi seperti yang telah kita lihat, menyebarkan ke mainchain yang kuat dengan cara rollup meningkatkan keamanan. Mereka dapat menyewa keamanan dengan kecepatan rantai utama mereka. Pada dasarnya, tidak ada cara untuk mendapatkan semua atribut keamanan rantai utama lebih cepat daripada konsensus rantai utama itu sendiri.
Namun, pengguna cenderung tidak sabar. Akibatnya, Rollup biasanya akan memberikan pra-konfirmasi lebih cepat, tetapi jaminan akan lebih rendah selama periode ini. Rollup dapat memilih desain sequencer seimbang:
Praktis fungsionalitas dan efisiensi. Misalnya, sequencer terpusat dapat memberikan pra-validasi cepat dan mengurangi overhead operasional;
Jaminan kuat. Misalnya, satu set sequencer terdesentralisasi yang luar biasa dapat memberikan aktivitas real-time yang lebih baik, tetapi dengan biaya biaya operasional dan latensi yang lebih tinggi (dalam kasus yang paling ekstrem, Anda cukup membiarkan lapisan DA menangani pemesanan rollup, memilih untuk tidak mengekspos jalur yang lebih cepat);
Menariknya, Anda dapat membantah bahwa rollup pemesanan L1 kurang aktif daripada sequencer terpusat, tergantung pada skala waktu Anda. Sejauh ini, kita telah berbicara tentang aktivitas, memasukkannya dalam semacam konsep "waktu terbatas". Namun, ini sepenuhnya relatif dan subyektif. Relatif terhadap apa? Berapa lama waktu yang dibutuhkan?
Rollup berurutan L1 murni hanya akan disertakan pada kecepatan blok L1 (misalnya 10 detik), dan Anda tidak memiliki jaminan aktivitas di antara blok-blok ini ketika dunia di sekitar Anda berubah. Jadi itu tergantung pada tolok ukur Anda:
Jika baseline = operasi di dalam Rollup, L1 berurutan Rollup dapat memberikan aktivitas yang lebih baik. Tidak ada orang lain di rantai yang harus dijanjikan sampai rantai utama dikonfirmasi, jadi Anda semua memiliki pijakan yang sama;
Jika baseline = operasi di luar Rollup - Rollup dengan prakualifikasi lunak dapat memberikan aktivitas yang lebih baik. Pra-konfirmasi hanyalah opsi gratis, dan Anda masih kembali ke jaminan rantai utama dengan kecepatan rantai utama, tetapi Anda bisa mendapatkan jaminan yang lebih lemah untuk sementara waktu. Jika Anda tidak mempercayai mereka, tunggu saja konfirmasi rantai utama. Dunia tidak membeku di antara blok Ethereum, dan untuk banyak aplikasi, harga basi antara waktu blok yang lama mungkin tidak dapat diterima;
Jika Anda mencoba menerapkan rollup berbasis "nyata" tanpa pra-konfirmasi, bahkan mungkin pra-konfirmasi akan tetap terjadi. Untuk peserta, seperti pembangun dan validator Ethereum, ada insentif finansial bagi mereka untuk membuat komitmen ini sendiri. Inilah mengapa ada diskusi tentang bagaimana pembangun dan pemangku kepentingan Ethereum mencoba memberikan pra-konfirmasi cepat di lapisan dasar.
Inilah satu catatan penting terakhir. Dengan asumsi bahwa pengguna Rollup dapat kembali ke tingkat aktivitas yang sama dengan rantai utama, dengan asumsi Anda dapat memaksa penyertaan sepenuhnya dengan kecepatan blok rantai utama (misalnya jika pemesan Rollup meninjau Anda, Anda dapat memaksa transaksi untuk dimasukkan dalam blok Ethereum berikutnya dari rantai utama).
Dalam praktiknya, biasanya ada penundaan singkat. Jika Anda mengizinkan penyertaan wajib segera, Anda berisiko mengekspos MEV sensor yang menguntungkan bersama dengan kompleksitas lainnya. Namun, beberapa desain dapat memberikan jaminan aktivitas mendekati real-time dari rantai utama (misalnya, mungkin dengan kecepatan beberapa blok rantai utama, bukan satu blok).
Terlepas dari skala waktu yang tepat, aktivitas akhir penyerapan rantai utama sangat kuat, dan menggunakan rantai utama yang kuat sebagai mekanisme koordinasi memberikan ancaman yang kredibel dan hak keluar. Hanya paparan ancaman yang kredibel ini saja membuatnya sangat tidak mungkin diperlukan untuk mencegah perilaku jahat di tempat pertama.
Misalnya, jika pengguna memiliki mekanisme yang andal untuk keluar secara paksa atau bahkan melepas operator secara paksa, maka sequencer Rollup terpusat tidak dapat secara sewenang-wenang mengekstrak sewa dari pengguna dan menguncinya. Ini adalah area umum yang dibahas dalam Chris Goes dalam ceramahnya tentang MEV, Conversion, Cost Edge, dan Slow Gaming.
Tentu saja, aktivitas tak terduga juga dapat terjadi, dalam hal ini jalur cadangan ini dapat kembali menjadi sangat berharga.
Bukti tidak melindungi rantai, tetapi melindungi pengguna
Mengikuti semua ini, kita dapat melihat bahwa untuk aturan konfirmasi yang diberikan, ternyata lebih akurat untuk melindungi "pengamat" (pengguna) Rollup yang berbeda daripada melindungi "Rollup" itu sendiri. Keamanan "Rollup" tidak ada sebagai ukuran spesifik tunggal.
Memastikan keselamatan pengamat tentu saja merupakan hal yang paling penting, karena kita semua adalah pengamat rantai! Rantai ini adalah apa pun yang dikatakan pengamatnya. Jika Anda tidak dapat mengamatinya dengan cara yang aman, Anda harus mempercayai orang lain (seperti verifikator) untuk memberi tahu Anda "kebenaran" tentang hal itu. Tapi kami tidak ingin percaya, kami ingin verifikasi→ kami ingin bukti.
Untuk memahami mengapa penting untuk membedakan antara "bukti rantai" dan "pengamat rantai bukti", pertimbangkan hal berikut:
Light nodes - Rollup light node lebih aman jika ada bukti, mereka tidak harus mempercayai validitas kata-kata siapa pun;
Full node - jika ada bukti, keamanan full node Rollup tidak akan bertambah atau menurun, Anda dapat memulai Rollup ("pesimistic rollup") tanpa built-in bridge atau bahkan bukti apapun, jika Anda mulai mengirim bukti validitas, keamanan full node tidak akan bertambah atau berkurang;
Terbukti menambahkan keamanan pada pengamat rantai (yaitu, simpul cahaya) yang validitasnya tidak dapat diperiksa secara langsung. Kami tidak ingin pengguna harus menjalankan full node yang kuat, jadi bukti ini penting.
Pengesahan mengamankan jembatan Rollup
Jembatan verifikasi Rollup adalah pengamat yang sangat penting! Bukti memang menjamin keamanan jembatan!
Seperti halnya simpul cahaya biasa, jembatan tidak dapat secara langsung memeriksa validitas Rollup. Kami tidak percaya pada mayoritas yang jujur, tetapi melindungi jembatan dengan bukti. Protokol konsensus untuk database A (lapisan DA) mengurutkan blob data dan kemudian memverifikasi bahwa bridge secara independen memeriksa validitas pembaruan yang sesuai ke database B (Rollup):
Jembatan adalah pengamat rantai lain, dan setiap aset yang dicetaknya selalu membawa asumsi keamanan dari aturan konfirmasi jembatan yang sesuai. Keamanan aturan konfirmasinya dapat memiliki implikasi luas. Itulah mengapa sangat penting untuk membangun jembatan yang aman (atau idealnya, mengurangi kebutuhan akan begitu banyak jembatan dengan menskalakan eksekusi rantai tunggal lebih jauh di tempat pertama).
Jika Anda menjalankan node penuh untuk rantai, pihak jahat tidak dapat menipu Anda agar menerima transisi status yang tidak valid. Namun, jika pihak jahat memiliki aturan konfirmasi yang berbeda, itu masih bisa menipu jembatan. Jika Anda memegang aset yang didukung agunan di jembatan, maka dana Anda mungkin menjadi tidak didukung. Dalam pengertian ini, kegagalan keamanan jembatan spoofing "menular".
Mari kita pertimbangkan skenario hipotetis lama tentang Terra:
Terra memiliki set validatornya sendiri, token aslinya adalah LUNA, dan UST asli dapat diterbitkan;
Osmosis memiliki set validator sendiri, dan token aslinya adalah OSMO.
Kami memiliki jembatan IBC Terra ←→ Osmosis standar di mana setiap sisi menjalankan simpul cahaya validator konsensus dari rantai lainnya (yaitu setiap sisi jembatan bergantung pada mayoritas jujur dari set validator rantai lainnya);
Anda menjalankan node penuh Anda sendiri untuk setiap rantai sebagai pengguna;
Kami menyebut UST pada Osmosis yang dijembatani melalui IBC sebagai osmoUST;
Kami menyebut OSMO di Terra yang dijembatani melalui IBC sebagai terraOSMO;
Anda memiliki terraOSMO di Terra;
Anda melakukan piringan hitam di kolam osmoUST / OSMO di Osmosis;
Dengan runtuhnya Terra, harga LUNA anjlok, dan akhirnya, keuntungan dari kumpulan validator yang secara teoritis menjadi berbahaya akan melebihi nilai LUNA yang dipertaruhkan, dan validator Terra dapat menandatangani blok yang tidak valid dan melakukan hal berikut:
Mint UST palsu → cross-chain ke Osmosis untuk mencetak osmoUST, menggunakannya untuk menguras semua pasangan perdagangan osmoUST (misalnya, mengeluarkan semua OSMO dari kumpulan osmoUST/OSMO;
Mencetak terraOSMO palsu → cross-chain ke osmosis untuk menarik semua jaminan OSMO asli yang terkunci pada Osmosis yang mendukung terraOSMO, semua terraOSMO yang tersisa di Terra sekarang tidak akan lagi didukung;
Nah, keamanan gagal di sini:
Full node (me) - full node saya mengenali blok Terra sebagai tidak valid dan menolaknya, validator Terra tidak dapat mencuri posisi LP terraOSMO atau osmoUST/OSMO saya;
Light node (bridge) - bridge hanya memeriksa bahwa konsensus Terra ditandatangani di blok (tidak memeriksa transisi state yang valid) sehingga tidak menolaknya, validator Terra dapat mencuri jaminan OSMO yang mendukung terraOSMO saya dan menguras semua OSMO dari kumpulan osmoUST/OSMO (meninggalkan banyak osmoUST yang tidak berharga);
Jembatan ini menggunakan aturan pengakuan dengan asumsi kepercayaan yang lebih kuat.
Validator Terra tidak dapat mencuri sejumlah besar aset Terra sendiri dari node penuh (mereka tidak akan tertipu), mereka akan menolak blok ini. Namun, validator dapat mengelabui validator konsensus menjadi klien ringan (termasuk bridge), itulah sebabnya kesalahan konsensus memengaruhi aset lintas rantai.
Perhatikan bahwa penting bahwa kesalahan ini tidak "menginfeksi" sisa rantai, yaitu kesalahan "menginfeksi" aset Osmosis yang terpapar pada rute jembatan Terra, tetapi tidak ada kesalahan keamanan dalam rantai Osmosis itu sendiri.
Namun, kami jelas ingin menjembatani berbagai hal (secara umum, komunikasi lintas rantai), akan buruk untuk membatasi diri untuk menggunakan aset asli pada rantai utama mereka, kami membutuhkan rantai untuk berkomunikasi dengan aman dan menjembatani seluruh rantai.
Sebagai eksperimen pikiran, solusi paling sederhana adalah meminta setiap pengguna menjalankan node penuh dari setiap rantai, yang mencakup jembatan lintas rantai itu sendiri. Perlu diingat bahwa kita telah melihat beberapa jembatan simpul penuh tertanam satu arah:
Rollup Ethereum saat ini memerlukan node mereka untuk menjalankan node penuh Ethereum, dan rollup ini berbagi konsensus Ethereum;
Namada (rantai Tendermint terpisah, bukan rantai Rollup) akan membutuhkan node-nya untuk menjalankan node penuh Ethereum, namun Namada tidak setuju dengan konsensus Ethereum (yaitu tidak mempublikasikan data ke Ethereum atau memperoleh statusnya berdasarkan itu);
Ini berfungsi untuk node penuh Ethereum, tetapi ini jelas tidak berskala. Anda tidak dapat mulai memiliki setiap rantai Cosmos, hanya perlu menjalankan node penuh untuk setiap rantai Cosmos lainnya. Jembatan simpul penuh dua arah ini tidak berskala, mereka hanya meningkatkan persyaratan perangkat keras.
Untungnya, ada opsi yang lebih terukur. Kami dapat menggunakan jembatan untuk sepenuhnya memverifikasi validitas negara dan DA dari rantai lain (selain masih memeriksa konsensus).
Validitas Negara - Sementara IBC saat ini digunakan dengan bukti konsensus tradisional, IBC dapat dimodifikasi untuk menambahkan bukti validitas untuk menghubungkan rantai, dan sekarang jembatan tidak dipalsukan oleh transisi keadaan yang tidak valid. Ini akan mencegah persis serangan apa yang dijelaskan sebelumnya, dan jika jembatan dapat memverifikasi validitas transisi negara, itu akan menolak blok validator Terra sebagai tidak valid.
Ini terlihat sangat mirip dengan bagaimana jembatan Rollup pada Ethereum memeriksa bukti Rollup, kecuali bahwa itu juga bisa dua arah.
DA - Selain itu, rantai mungkin memerlukan node-nya untuk menjalankan node cahaya DAS yang menghubungkan rantai. Misalnya, Anda dapat memiliki dua rantai Cosmos yang memerlukan validatornya sendiri untuk menjalankan simpul cahaya DAS rantai lain (jika setiap rantai mengimplementasikan klien ringan DAS, yang saat ini tidak didukung). Setelah ini selesai, setiap rantai sekarang dapat mengetahui validitas dan DA satu sama lain tanpa harus menjalankan node penuh.
Untuk Rollup, menurut definisi, Anda memiliki semua data pada rantai utama, sehingga jembatan di sana dapat mengaksesnya. Node rollup, di sisi lain, menjalankan node mainchain.
Rantai dependen dan independen
Mari kita lihat lima atribut keamanan kami lagi, sekarang dalam konteks mengamati jembatan verifikasi Rollup Rollup di Ethereum:
Pertumbuhan buku besar – Validator Ethereum dapat memaksa buku besar Rollup untuk terus tumbuh (misalnya memaksa transaksi inklusi);
Tahan sensor - validator Ethereum dapat memaksa operator Rollup untuk tidak menyensor tanpa batas waktu (misalnya memaksa penyertaan transaksi atau substitusi sequencer);
Anti-restrukturisasi - Anti-restrukturisasi Rollup terkait dengan Ethereum. Jika Ethereum mengatur ulang, maka semua rollup di Ethereum akan dikelompokkan kembali;
Ketersediaan data - DA Rollup dijamin karena Rollup menurut definisi berasal dari data yang dikonfirmasi oleh konsensus rantai utama (di mana kontrak Rollup berada), Rollup dan rantai utama berbagi konsensus gabungan, DA adalah kondisi validitas Ethereum itu sendiri, jadi jika data tidak tersedia, maka blok Ethereum itu sendiri tidak valid. Jembatan dapat mengakses data pada rantai utama tanpa menambahkan asumsi kepercayaan;
Validitas status - kontrak akan memeriksa bukti validitas transisi status Rollup (atau menunggu jendela tantangan berlalu), yang membuktikan bahwa pembaruan status yang dinyatakan adalah hasil yang valid dari penerapan STF Rollup pada data terkait yang dikonfirmasi pada rantai utama;
Perhatikan bahwa keamanan bridge tidak hanya dimaksimalkan oleh aturan konfirmasi super kuat untuk chain tambahan (misalnya, bridge validator penuh ke chain dengan kumpulan validator yang sangat tepercaya). Jika jembatan memiliki asumsi keamanan yang sama dengan rantai utama, Anda bisa mendapatkan keamanan paling banyak saat aset asli lintas rantai.
Vitalik memberikan contoh ilustrasi yang berguna:
"Anda mentransfer 100 ETH ke jembatan di atas Solana dan mendapatkan 100 Solana-WETH, dan Ethereum diserang 51%. Penyerang menyetor banyak ETH mereka ke Solana-WETH dan kemudian melanjutkan transaksi di sisi Ethereum segera setelah pihak Solana mengonfirmasinya. Kontrak Solana-WETH tidak lagi didukung sepenuhnya, dan mungkin 100 Solana-WETH Anda sekarang hanya bernilai 60 ETH. Bahkan dengan jembatan berbasis ZK-SNARK yang sempurna yang sepenuhnya memvalidasi konsensus, masih rentan terhadap serangan 51% seperti ini.
Oleh karena itu, selalu lebih aman untuk memegang aset asli Ethereum di Ethereum atau aset asli Solana di Solana daripada memegang aset asli Ethereum di Solana atau aset asli Solana di Ethereum. Dalam konteks ini, "Ethereum" tidak hanya mengacu pada rantai yang mendasarinya, tetapi juga pada L2 yang sesuai yang dibangun di atasnya.
Jika Ethereum 51% diserang dan pulih, Arbitrum dan Optimisme juga akan pulih, jadi meskipun Ethereum diserang oleh 51%, aplikasi "cross-rollup" yang menyimpan status di Arbitrum dan Optimisme dijamin tetap konsisten. Jika Ethereum tidak diserang 51%, tidak akan ada cara untuk melakukan serangan 51% pada Arbitrum dan Optimisme, masing-masing. Oleh karena itu, masih sepenuhnya aman untuk memegang aset yang dikeluarkan oleh Optimisme berbasis Arbitrum.
Anda dapat mengganti Solana dengan rantai apa pun yang Anda inginkan - bahkan rantai hipotetis di mana Anda melampaui validator Ethereum dalam hal kepercayaan, dan pada dasarnya, asumsi keamanan apa pun bersifat aditif ketika Anda berbicara tentang aset lintas rantai dengan buku besar catatan mereka (misalnya, ETH dari Ethereum), dan selalu ada kemungkinan reorganisasi rantai yang terhubung atau kegagalan aktivitas.
Namun, rantai dengan konsensus gabungan (yaitu rollup yang berbagi konsensus rantai utama mereka) dapat menghindari asumsi keamanan tambahan ini. Jembatan lintas rantai antara wilayah yang berbeda ini dapat memiliki aktivitas akhir dan sifat anti-rekombinasi yang sama dengan rantai utama itu sendiri. Konsensus bersama meminimalkan asumsi kepercayaan lintas rantai dalam zona keamanan bersama tersebut.
Apa asumsi keamanan yang masuk akal terserah Anda. Faktanya, belum ada kegagalan konsensus serupa antara rantai utama. Ini akan jelas dan mahal, tetapi itu bisa menjadi asumsi yang lebih kuat tentang menghubungkan rantai yang lebih lemah.
Ada juga beberapa kelemahan untuk mengikat rantai Rollup ke rantai utama. Mari kita bandingkan dua skenario lintas rantai, dalam kedua kasus kami memiliki dua rantai yang menggunakan jembatan lintas rantai validator penuh dua arah:
Ketergantungan - rantai jarak jauh (yaitu Rollup) berbagi konsensus rantai utama (yaitu lapisan DA) dan memperoleh statusnya sendiri dari data pada rantai utama, rantai jarak jauh harus bercabang dengan rantai utama dan menentukan finalitas berdasarkan rantai utama;
Independen - Rantai ini memiliki konsensus independen mereka sendiri, mereka tidak memperoleh keadaan mereka sendiri berdasarkan data pada rantai lain. Mereka tidak berbagi rantai jarak jauh (yaitu Rollup) ←→ rantai utama (yaitu lapisan DA). Mereka tidak berkumpul kembali bersama dan tidak bergantung pada aktivitas satu sama lain;
Menariknya, ini baik dan buruk:
Buruk - Mengatur ulang rantai Anda dengan rantai lain atau mengalami kegagalan aktivitas mungkin terdengar seperti kelemahan pada pandangan pertama, mengapa rantai saya mengalami masalah karena rantai Anda rusak?
Baik - jika perbedaan ini menyebabkan masalah serius pada rantai Anda, ini sebenarnya merupakan manfaat penting (misalnya jika Anda memiliki sejumlah besar aset lintas rantai dari rantai sumber, maka itu akan ditata ulang dari perspektif jembatan lintas rantai Anda, meninggalkan jaminan yang tidak didukung), rantai dan jembatan lintas rantainya harus konsisten satu sama lain;
Demikian pula, penguncian dan perburuan rente yang berlebihan memiliki potensi efek positif dan negatif, menyoroti mengapa lapisan dasar yang netral dan tahan sensor sangat penting:
Bagus - Mainchain yang baik melindungi pengguna Rollup dari operator Rollup yang memeras terlalu banyak nilai dari mereka, menegakkan hak istimewa keluar;
Buruk - Backchains yang buruk dapat secara sewenang-wenang menaikkan harga dan mengekstrak nilai itu dari Rollup dan penggunanya sendiri;
Bukti penyerahan + menjalankan DAS di kedua arah alih-alih berbagi rantai utama yang sama juga memiliki beberapa inefisiensi:
Anda tidak ingin meminta node Anda untuk menjalankan sekelompok node cahaya DAS dari chain lain, dan harus menambahkan chain baru secara manual, menjalankan DAS pada layer DA bersama yang besar jauh lebih efisien;
Tidak efisien bagi setiap rantai untuk memverifikasi validitas untuk banyak rantai yang berbeda, namun, secara teoritis dimungkinkan untuk menggabungkan bukti antara beberapa rantai sehingga seluruh cluster rantai hanya perlu mempublikasikan satu bukti ke rantai;
Ada trade-off dan manfaat di sini, tetapi juga perlu diingat bahwa ada ketergantungan jalur besar di mana aset menarik berada, dan jika Anda ingin menggunakan banyak aset asli Ethereum (termasuk yang ada di Rollup-nya), masuk akal untuk membasmi rantai Anda di Ethereum dan jembatan lintas rantainya.
Kesimpulan
"Keamanan warisan rollups" adalah singkatan yang bagus, tetapi ingat ini adalah poin-poin penting yang benar-benar kami maksudkan:
Rollup membayar sewa ke rantai utamanya, seperti Ethereum, untuk sumber daya yang dikonsumsinya (DA);
Rollup dapat mengekspos aturan konfirmasi dengan properti keamanan hingga rantai utama (yaitu pengguna bisa mendapatkan jaminan keamanan yang sama seperti saat beroperasi pada rantai utama itu sendiri);
Pengguna mendapatkan atribut keamanan rantai utama ini dengan kecepatan konsensus rantai utama;
Jika pengguna Rollup ingin lebih cepat dari konfirmasi yang diberikan oleh rantai utama, mereka dapat menggunakan aturan konfirmasi, yang membuat asumsi keamanan sementara tambahan;
Pengamat (yaitu pengguna) berinteraksi dengan Rollup melalui aturan konfirmasi, dan jembatan verifikasi dengan asumsi kepercayaan paling sedikit adalah pengamat (opsional tetapi sangat berharga);
Sekarang, pertimbangkan manfaat penerapan Rollup pada rantai integrasi:
Keamanan pengguna - Apakah Anda ingin menerapkan jembatan lintas rantai atau tidak, Rollup dapat menyewa DA dari rantai utamanya dan merebut kembali konsensusnya, yang memungkinkan Rollup untuk mengekspos aturan konfirmasi yang cocok dengan rantai utama kepada penggunanya tanpa harus mencapai konsensusnya sendiri;
Keamanan lintas rantai - Rollup dapat membangun lintas rantai dalam domain keamanan bersama dari rantai utama (yaitu rantai utama itu sendiri dan Rollup-nya), dan properti keamanannya sebanding dengan beroperasi pada rantai utama itu sendiri;
Kita harus melihat bahwa ini sebenarnya adalah dua sisi dari mata uang yang sama, dan Rollup hanya memungkinkan rantai untuk memberikan aturan konfirmasi, dan keamanannya dapat mencapai keamanan rantai utama. Baik jembatan lintas rantai dan pengguna normal adalah pengamat rantai dengan aturan pengakuan yang diberikan. Jembatan mungkin adalah "pengamat" yang paling penting dalam rantai ini karena keamanannya memiliki implikasi yang luas.
Ketika kita mencoba membuat sistem yang aman, kita perlu memperhatikan keamanan aturan konfirmasi yang diberikan serta aksesibilitasnya. Jika sebagian besar pengamat (pengguna) yang berinteraksi dengan rantai ini berada di luar jangkauan, maka aturan konfirmasi keamanan tidak banyak membantu.
Sementara kita hari ini mengaitkan DAS dan bukti validitas dengan Rollup, mereka adalah konsep yang terpisah secara logis. Setiap rantai dapat mengintegrasikan teknologi ini, dan perbedaan antara apa itu rollup atau bukan rollup mulai rusak pada akhir permainan (yaitu untuk satu rollup terintegrasi, mungkin secara logis memisahkan DA dan lapisan eksekusi di bawah satu protokol).
Namun, "rollup tradisional" dan lapisan DA jelas mendominasi teknologi verifikasi dan penskalaan ini saat ini.
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.
20.000 kata: Debat Keamanan Rollups
Apakah rollup mewarisi keamanan?
Awalnya ditulis oleh Jon Charbonneau
Awalnya disusun oleh Frank, Foresight News
Pendahuluan
Suka atau tidak suka, Twitter mungkin tidak akan pernah berhenti berdebat tentang apakah "L2" atau Rollup adalah "mewarisi keamanan."
Sementara sebagian besar perdebatan adalah pertempuran semantik yang tidak dapat dibedakan, jika Anda berhasil mempersempit argumen, poin yang mendasarinya berharga karena menyentuh pertanyaan inti kapan, di mana, dan mengapa Rollup masuk akal.
Apakah L2 scalable menghilangkan kebutuhan akan L1 di pasar? Apakah mungkin mengubah L1 seperti Solana menjadi L2?
Perdebatan ini terutama bermuara pada masalah keamanan. Sayangnya, definisi "keamanan" di sini selalu sangat sulit dipahami. Kami biasanya menggunakan istilah ini dengan santai, dan kebanyakan orang tahu kira-kira apa yang kami bicarakan, tetapi tidak sepenuhnya. Di sini kita akan memecah keamanan secara rinci di berbagai arsitektur.
Definisi kata kunci
Rollup
Saya sebelumnya menggunakan definisi Mustafa berikut: "Rollup adalah blockchain yang menerbitkan bloknya ke blockchain lain dan mewarisi konsensus dan ketersediaan data (DA) dari blockchain itu".
Berikut ini adalah definisi yang lebih umum yang diberikan oleh James Prestwich: "Rollup adalah cara untuk memilih mekanisme konsensus lain dengan menyesuaikan fungsi transisi negara, dan mempertahankan negara superset."
Tidak memerlukan jembatan verifikasi, dan kemampuan untuk membangun jembatan lintas rantai dengan asumsi kepercayaan minimal adalah manfaat utama dari Rollup, tetapi menganalisisnya secara terpisah sangat penting.
Kami dapat mempertimbangkan kriteria rollup berikut:
Simpul Rollup menentukan status Rollup pada hasil konsensus rantai utama (seperti rantai utama yang mengonfirmasi pemesanan dan ketersediaan blok data) dengan menerapkan fungsi transisi statusnya sendiri (STF).
Jembatan lintas rantai
Jembatan lintas rantai adalah sistem yang memungkinkan dua blockchain untuk berkomunikasi satu sama lain. Rantai A (rantai target) perlu yakin bahwa sesuatu telah terjadi pada rantai B (rantai sumber) dan sebaliknya. Idealnya, kami ingin komunikasi ini bersifat dua arah, dengan atribut keamanan yang sangat berkorelasi (misalnya keyakinan tinggi bahwa pesan tersebut valid, rantai sumber tidak akan dibatalkan, dll.).
Pada dasarnya, jembatan lintas rantai bertindak sebagai "pengamat" dari blockchain lain (sama seperti pengguna manusia biasa lainnya). Jembatan lintas rantai mengimplementasikan aturan konfirmasi yang diberikan yang dengannya ia yakin akan keadaan rantai yang terhubung (misalnya, berapa banyak blok Ethereum yang harus dilewati untuk menerima input transfer).
Menjembatani dari rantai utama → Rollup
Arah ini sangat sederhana, karena node Rollup sepenuhnya memverifikasi rantai utama.
Node rollup tahu semua yang terjadi pada rantai utama, sehingga mereka tahu kapan transaksi jembatan lintas rantai terjadi, dan node penuh Ethereum Rollup saat ini juga harus menjalankan node penuh untuk lapisan dasar Ethereum itu sendiri.
Perhatikan bahwa node Rollup juga dapat menjalankan node cahaya validator penuh dari rantai utama mereka, jika didukung. Mari kita pertimbangkan contoh hipotetis di mana Ethereum telah sepenuhnya menerapkan peningkatan berikut:
Sekarang, dengan asumsi Anda ingin menjalankan node penuh untuk rollup berbasis Ethereum, untuk mengikuti rantai rollup yang valid, Anda harus memahami rantai kanonik Ethereum, yang memerlukan pemeriksaan konsensus dan validitas Ethereum itu sendiri:
Node rollup harus memeriksa validitas state dan DA dari lapisan eksekusi Ethereum sendiri, karena ini adalah kondisi validitas untuk blok Ethereum. Node Rollup perlu tahu bahwa itu tidak hanya melacak Ethereum di mana konsensus telah ditandatangani, tetapi juga bahwa itu adalah header blok yang valid. Misalnya, mereka mungkin secara tidak sengaja melacak blok Ethereum yang ditandatangani konsensus tetapi tidak valid (misalnya menghasilkan banyak ETH).
Jika lapisan eksekusi yang mendasarinya sendiri menerbitkan datanya ke lapisan DA (seperti rollup lainnya) dan menambahkan validitas atau bukti kegagalan, maka itu menjadi rollup bawaan.
Jembatan dari rantai utama Rollup →
Arah ini rumit, karena rantai utama tidak mengetahui status Rollup dan STF secara default (yaitu node Ethereum tidak perlu menjalankan node Rollup). Agar rantai utama percaya pada status rollup, Anda dapat menerapkan logika rollup dalam kontrak pintar yang diterapkan pada chain utama (yaitu kontrak jembatan verifikasi rollup). Kontrak pintar ini memeriksa validitas status DA dan Rollup.
Sekali lagi, jembatan lintas rantai ini opsional. Kontrak pintar pada rantai utama digunakan untuk meyakinkan semua node rantai utama tentang validitas Rollup, yang memungkinkan komunikasi dua arah dengan asumsi kepercayaan yang baik.
Rollup, Co-prosesor, dan Intent
Seperti yang telah dibahas, Rollup menyimpan sebagian dari status mereka sendiri (status Rollup) selain memiliki status rantai utama mereka (misalnya Ethereum). Jadi, apakah CoW Swap memiliki statusnya sendiri yang bukan bagian dari status Ethereum? Jika ya, maka kedengarannya seperti rollup. Jika tidak, maka itu bisa menjadi "co-processor."
Namun, bahkan pertanyaan ini tidak sesederhana kelihatannya:
Sebaliknya, Anda mungkin berpikir bahwa faktor pembeda adalah kegigihan negara:
Jika CoW Swap memungkinkan peserta tertentu untuk memberi pengguna pra-konfirmasi cepat (lebih cepat dari waktu blok Ethereum) dan menjanjikan pesanan yang mencakup batch — karena pemrosesan batch Ethereum membutuhkan waktu lebih lama daripada yang diinginkan sebagian besar pengguna, apakah sekarang rollup?
Chris Goes menyentuh topik ini dalam ceramahnya di KTT Modularitas, dimulai dengan perkiraan definisi maksud: "komitmen fungsi preferensi untuk ruang negara sistem tertentu."
Perhatikan kesamaan antara resolusi parsial (maksud pertandingan) dan penyortiran rollup. Operator memperoleh pesan bertanda tangan off-chain pengguna → menerbitkan data yang dihasilkan ke chain utama.
Arsitektur intent-centric dan arsitektur Rollup-centric mencapai tujuan serupa dari arah yang berlawanan. Pendekatan intent-centric membahas masalah ini secara luas dari perspektif pengguna dan aplikasi, dan pendekatan Rollup-centric membahas masalah ini secara luas dari perspektif blockchain yang berbeda.
Di sini, tidak penting untuk menetapkan batas-batas pembeda tertentu. Terlebih lagi, kami menemukan bahwa Rollup sebenarnya tidak jauh berbeda dari aplikasi yang biasa kami gunakan dengan pencocokan niat off-chain!
Anda mengandalkan peserta off-chain (sequencer vs. pemecah / pengisi, dll.) untuk mendapatkan beberapa jaminan yang lebih lemah, seperti memberikan eksekusi terbaik dan pengalaman pengguna yang baik → menentukan hasil berdasarkan data yang dipublikasikan ke rantai utama. Namun, mereka tidak menahan dana Anda.
Karena perhitungan off-chain yang dapat diverifikasi menjadi lebih penting, garis antara keduanya dapat menjadi kabur:
Jika Anda ingin pemecah niat atau pemesan rollup kurang tepercaya...
Blockchain modular dan blockchain monolitik
Blockchain monolitik (alias blockchain terintegrasi) sering didefinisikan sebagai rantai yang secara vertikal mengintegrasikan semua fungsi inti, yaitu, konsensus, DA, dan eksekusi. Mereka bertanggung jawab penuh atas keselamatan mereka sendiri, dan Solana dan Cosmos Hub adalah contoh utama.
Lapisan DA (seperti Ethereum dan Celestia) sering disebut sebagai blockchain "modular" karena mereka mengalihdayakan eksekusi ke Rollup, tetapi ini tidak sepenuhnya akurat. Mereka juga secara independen bertanggung jawab atas konsensus, DA, dan penegakan hukum mereka sendiri.
Bahkan eksekusi Celestia akan terbatas (misalnya, transfer, staking, cross-chain). Demikian pula, jika seseorang memulai Rollup di atas Solana, itu tidak akan secara ajaib menjadi blockchain "modular".
Jadi ketika Anda mendengar orang menyebut rantai seperti Ethereum atau Celestia sebagai blockchain "modular", sadarilah bahwa ini lebih merupakan perbedaan praktis daripada yang sangat teknis. Keduanya sering mengoptimalkan arsitektur mereka sendiri untuk mendukung Rollup. Rollup ini diharapkan untuk menangani sebagian besar eksekusi perdagangan dalam ruang lingkup mereka.
Bahkan Rollup belum tentu sepenuhnya "modular" — sequencer Rollup dapat menyetujui pengurutan transaksi, memberikan DA, dan melakukan transaksi sebelum rantai utama melakukan apa pun. Ini adalah bagaimana pengguna mendapatkan pra-konfirmasi. Rantai utama kemudian memberikan komitmen "final" lainnya, sekali lagi menyatakan DA dan konsensus tentang urutan transaksi Rollup.
Rollup dan Rantai Terintegrasi
Untuk tujuan kami, perbedaan yang lebih penting adalah "Rollup" atau "Non-Rollup". Apakah keadaan akhir rantai berasal dari data yang dipublikasikan ke rantai utama yang terpisah (yaitu lapisan DA)?
Sementara kita hari ini mengaitkan DAS dan validitas / bukti kegagalan dengan rollup tradisional, kita harus mencatat bahwa ini adalah konsep yang berbeda secara logis. Secara teori, setiap "rantai integrasi" (seperti rantai aplikasi Cosmos yang khas) dapat ditingkatkan untuk menambahkan DAS dan bukti validitas tanpa harus mempublikasikan datanya ke mainchain eksternal lainnya seperti Ethereum. Node akan mengambil sampel dan memeriksa rantai secara terpisah.
Vitalik berbicara tentang perbedaan ini dalam Endgame-nya:
Anda mungkin memperhatikan bahwa "blockchain besar tradisional" (rantai integrasi) dengan validitas / bukti kegagalan DAS + mungkin akan terlihat seperti "rollup yang diabadikan"! Demikian pula, "rollup yang terukur dan dominan" bisa menjadi sangat sukses sehingga hanya bergabung dengan rantai utamanya untuk mengakomodasi rollup itu.
Batas-batas perbedaan menjadi kabur pada batasnya.
Oleh karena itu, jika Anda yakin bahwa efektivitas / bukti kegagalan DAS + adalah hasil akhirnya, maka "Rollup" dalam arti tertentu tidak dapat dihindari. Ada perbedaan yang valid antara kedua metode dalam diagram sebelumnya:
Ketika kita berbicara tentang "Rollup" dalam laporan ini, kita mengacu pada yang pertama (yaitu bukan rantai integrasi dengan validitas / bukti kegagalan DAS +, yang dapat disebut sebagai Rollup bawaan).
Meskipun Rollup "tradisional" tidak memiliki monopoli atas DAS atau bukti (yaitu blockchain besar terintegrasi dapat menambahkannya), perhatikan bahwa kami mengabaikan banyak detail teknis di sini, dan Anda tidak bisa hanya memilih Solana dan memutuskan "Oh, saya kira kami akan menambahkan DAS hari ini".
Ini membutuhkan refactoring mendasar dari protokol untuk mulai semakin dekat dengan apa yang kita lihat Ethereum dan Celestia lakukan:
Mengubah cara data dikodekan untuk mendukung DAS akan sama dengan memperlambat pengkodean dan propagasi blok, mulai bergerak lebih dekat ke lapisan DA tradisional:
Untuk alasan ini, kami melihat tim membangun yang berikut:
Namun, jika Anda memisahkan waktu potongan cepat dan DAS, keduanya belum tentu kompatibel. Misalnya, Anda dapat membayangkan rantai seperti Solana menawarkan dua jalur berbeda:
Anatoly membahas dalam podcast bagaimana Eclipse menyatukan Ethereum, Celestia, dan Solana, dan dari ujung spektrum yang lain, Anda dapat membayangkan lapisan DA menambahkan jalur yang lebih cepat sebelum membuat data tersedia untuk pengambilan sampel:
Menyediakan dua jalur dalam protokol lapisan dasar yang sama secara efektif menginternalisasi penyortiran bersama yang cepat, memberikan desain yang menarik berdasarkan Rollup. Perhatikan bahwa saat ini ini masih merupakan ide yang sangat eksplorasi.
Konfirmasikan aturan
Dengan latar belakang itu, kita sekarang dapat mulai memecah atribut keamanan dari arsitektur yang berbeda ini.
Pertama, node berinteraksi dengan blockchain apa pun dengan menjalankan "aturan konfirmasi":
Aturan konfirmasi mengacu pada algoritma yang dijalankan oleh node untuk menampilkan apakah blok dikonfirmasi atau tidak. Dalam hal ini, di bawah asumsi tertentu, terutama yang melibatkan sinkronisasi jaringan dan persentase saham jujur, ketika kondisi ini terpenuhi, blok akan dijamin bahwa reorganisasi tidak akan pernah terjadi ".
Mungkin ada sejumlah aturan konfirmasi untuk rantai tertentu:
Karena setiap aturan pengakuan dapat membuat asumsi yang sangat berbeda, mereka dapat memiliki properti keamanan yang sangat berbeda bahkan ketika berinteraksi dengan rantai yang sama:
Perbedaan ini halus tetapi penting:
Keamanan = Keamanan + Aktivitas
Sekarang mari selami apakah Rollup "mewarisi keamanan" dari rantai utamanya.
Warisan, dan mungkin lebih jelas, Rollup selalu "menyewakan" daripada "mewarisi" apa pun dalam rantai utamanya, membayar biaya berkelanjutan untuk sumber daya yang dikonsumsi (DA), dan salah satu pihak dapat memilih untuk mengakhiri hubungan. Tapi itu bukan bagian yang menarik dari masalah.
Keamanan, mulai sekarang kita akan fokus pada keamanan. Keamanan suatu algoritma terdiri dari Safety dan Liveness:
Dengan menggunakan kerangka kerja Sreeram yang sangat baik, kita dapat memecahnya menjadi lima atribut yang bekerja sama untuk mengamankan aturan konfirmasi:
Mari kita pertimbangkan contoh rantai integrasi hipotetis dengan DAS + validitas / bukti kegagalan. Datanya tidak dipublikasikan ke rantai utama eksternal lainnya. Untuk mempermudah, kami mengasumsikan finalisasi instan (misalnya Tendermint), sehingga tidak ada perbedaan yang dapat digunakan antara buku besar yang tersedia dan buku besar akhir (misalnya Gasper Ethereum).
Kami akan mempertimbangkan tiga aturan konfirmasi yang dapat digunakan untuk melacak rantai menggunakan berbagai jenis node:
Konfirmasikan bahwa aturan memiliki atribut keamanan, rantai tidak
Sekali lagi, "kita berbicara bahasa sehari-hari bahwa rantai aman, tetapi sebenarnya itu adalah aturan konfirmasi yang melekat pada atribut keamanan".
Mari kita lihat beberapa contoh.
Teorema CAP
Sebagai latar belakang, teorema CAP memberi tahu kita bahwa tidak ada buku besar yang dapat memenuhi kedua kondisi ini secara bersamaan:
Adaptivitas (alias ketersediaan dinamis) - tetap aktif dengan partisipasi dinamis (yaitu jika sebagian besar node offline); Finalitas (alias konsistensi) – menjaga keamanan di bawah partisi jaringan;
Protokol konsensus cenderung dibagi menjadi dua bagian, yang masing-masing memenuhi salah satu kondisi di atas:
Aturan konfirmasi Bitcoin
Konsensus Bitcoin tidak memberikan finalitas ekonomi yang sulit.
Node mengamati rantai terpanjang dalam tampilan lokal mereka, dan setiap pengguna bebas untuk menerapkan aturan konfirmasi apa pun yang mereka suka (misalnya menerima blok dengan konfirmasi >k). Standarnya adalah menunggu 6 blok dikonfirmasi, tetapi terserah Anda.
Untuk transaksi bernilai lebih tinggi, masuk akal untuk menunggu lebih lama. Ada trade-off antara waktu tunggu dan keamanan, yaitu, kemungkinan reorganisasi.
Aturan konfirmasi Ethereum
Konsensus PoS Ethereum (Gasper) tampaknya pada pandangan pertama menghindari teorema CAP. Namun, ia mengimplementasikan dua properti ini karena berisi dua buku besar bersarang:
Gasper termasuk dalam keluarga protokol "pasang surut" (juga dikenal sebagai buku besar ganda atau aturan konfirmasi ganda). Desain dua buku besar berada di luar ruang lingkup teorema CAP (yaitu mengasumsikan aturan konfirmasi tunggal). Ketika jaringan dipartisi, buku besar yang diselesaikan tertinggal di belakang buku besar adaptif, tetapi mengejar ketika jaringan diperbaiki.
Hal ini memungkinkan trade-off antara kemampuan beradaptasi dan finalitas untuk ditangani di tingkat pengguna daripada di tingkat seluruh sistem. Ini adalah karakteristik dari protokol "rantai pos pemeriksaan terpanjang" yang diusulkan oleh teorema CAP blockchain dalam hal kemampuan beradaptasi dan finalitas yang dapat diandalkan pengguna. Protokol ini memberi pengguna individu pilihan antara finalitas dan kemampuan beradaptasi, daripada memaksakannya pada tingkat sistem secara keseluruhan.
Gasper secara eksplisit memaparkan dua aturan konfirmasi yang berbeda, dipetakan ke dua buku besar yang disebutkan di atas:
Seperti yang dibahas dalam makalah:
"Aturan adaptif yang lebih optimis selalu mengkonfirmasi blok yang ditandai sebagai diselesaikan oleh aturan yang lebih konservatif, dan dapat mengkonfirmasi lebih banyak blok selama tingkat partisipasi variabel. Pelanggan (pengguna) memilih secara lokal antara aturan konfirmasi berdasarkan preferensi pribadi, sementara penambang mengikuti aturan proposal blok tetap yang konsisten dengan dua aturan konfirmasi ini ".
Ini memungkinkan semua node (jujur) dalam sistem:
Validator terus memperpanjang rantai terpanjang (menambang blok baru pada ketinggian yang terus meningkat), terlepas dari tingkat partisipasi, tetapi hanya ketika ada partisipasi yang cukup, pos pemeriksaan baru akan muncul.
Rantai terpanjang (berisi pos pemeriksaan terbaru) dapat bergantian antara rantai yang berbeda (yaitu memasang kembali blok yang tidak lengkap), tetapi pos pemeriksaan dijamin berada pada rantai tunggal terlepas dari kondisi jaringan (yaitu finalitas).
Keamanan pengguna tergantung pada aturan konfirmasi yang mereka ikuti. Ada trade-off antara pengakuan blok cepat dan jaminan keamanan yang lebih kuat. Pengguna yang menjual kopi mungkin lebih memilih aktivitas daripada keamanan, tetapi pengguna yang menjual yacht mungkin lebih memilih keamanan daripada aktivitas.
Node Ethereum juga dapat menerapkan beberapa heuristik aturan konfirmasi menengah lainnya untuk tujuan praktis. Alih-alih menggunakan blok k naif sebagai aturan konfirmasi adaptif, seperti yang dilakukan Bitcoin, kita dapat menambahkan heuristik lain yang mencakup asumsi tentang sinkronisasi jaringan dan kejujuran validator.
Inilah yang diusulkan dalam Aturan Konfirmasi Protokol Konsensus Ethereum, yang mengusulkan aturan konfirmasi dengan properti berikut:
Aturan konfirmasi ini bukan pengganti finalitas ekonomi. Sebaliknya, ini memberikan heuristik yang berguna bagi pengguna yang percaya bahwa sinkronisasi jaringan akan tetap ada dalam waktu dekat. Mari kita bandingkan keduanya:
Mari kita pertimbangkan beberapa contoh, seperti jika Anda menjual kapal pesiar seharga $ 2,5 juta dalam ETH, berikut adalah beberapa aturan konfirmasi yang mungkin:
Rollup mengkonfirmasi aturan
Seperti halnya rantai apa pun, node berinteraksi dengan Rollup menggunakan aturan pengakuan yang berbeda. Aturan konfirmasi terkuat Rollup akan diselesaikan bersama dengan konsensus rantai utamanya. Sequencer Rollup dapat mengekspos aturan konfirmasi yang lebih lemah untuk pengalaman pengguna yang lebih baik (yaitu memberikan pra-konfirmasi cepat untuk pengguna yang tidak sabar), tetapi pengguna juga dapat menunggu keamanan penuh dari aturan konfirmasi rantai utama.
Alur transaksi Rollup tipikal terlihat seperti ini:
Setelah data transaksi dipublikasikan ke rantai utama:
Pengguna juga dapat mengonfirmasi transaksi lebih cepat dengan mempercayai sequencer untuk mengonfirmasi terlebih dahulu, bahkan sebelum tautan utama menerima data. Jika sequencer berperilaku salah, keamanan bisa gagal. Kemudian, setelah data berada di rantai utama (dan Anda telah memeriksa validitas DA +), hanya kegagalan rantai utama (seperti reorganisasi Ethereum) yang akan memengaruhi keamanan Anda.
Oleh karena itu, bahkan pemesan terpusat tidak benar-benar mengurangi keamanan "Rollup". Anda selalu mendapatkan keamanan yang sesuai dengan aturan konfirmasi yang Anda butuhkan. Apakah Rollup memiliki desain berbasis sequencer atau lainnya, Anda dapat menggunakan aturan konfirmasi yang sama (misalnya menunggu rantai utama diselesaikan dan memeriksa validitas Rollup). Dengan asumsi implementasi yang tepat (misalnya, menegakkan penyertaan transaksi melalui rantai utama), Anda bisa mendapatkan atribut keamanan yang sama dalam jangka waktu yang sama sambil menjaga kondisi lain tetap sama.
Demikian pula, Anda dapat membayangkan bahwa produsen blok Ethereum L1 memberikan pra-konfirmasi karena waktu blok yang lambat, yang tidak membuat "Ethereum" kurang aman. Anda hanya perlu memutuskan apakah akan menggunakan aturan konfirmasi lain (kurang aman) sampai validator Ethereum menyelesaikan keamanan yang lebih tinggi.
Ide prakonfirmasi sangat cocok dengan logika Gasper yang dijelaskan oleh Vitalik:
Prinsip umumnya adalah Anda ingin memberikan "konsensus sebanyak mungkin" kepada pengguna: jika ada > 2/3, maka kami mencapai konsensus secara teratur, tetapi jika ada < 2/3, maka tidak ada alasan untuk menunda tanpa memberikan apa pun, karena jelas rantai akan terus tumbuh meskipun tingkat keamanan sementara lebih rendah dari blok baru. Jika satu aplikasi tidak puas dengan tingkat keamanan yang lebih rendah, jangan ragu untuk mengabaikan potongan ini sampai selesai.
Menempatkan semua ini bersama-sama, ketika semua aturan konfirmasi menyetujui keadaan buku besar yang sama pada saat yang sama, kami memiliki "area konsistensi":
Konfirmasikan aturan - keamanan dan aksesibilitas
Jika aturan konfirmasi Anda adalah mempercayai sequencer tunggal yang dijalankan oleh SBF, daripada sequencer terdesentralisasi yang terdiri dari validator paling terkemuka di dunia, maka keamanan Anda mungkin lebih buruk, dan kegagalan aktif dan reorganisasi adalah kegagalan keamanan.
Atau, Anda dapat menunggu aturan konfirmasi (mainchain) yang lebih kuat tersedia. Kemudian, semuanya sama, sequencer yang tidak tepercaya tidak akan memengaruhi keamanan Anda. Jika Anda menjual kopi, Anda mungkin akan segera pergi, tetapi jika Anda menjual kapal pesiar, Anda harus memeriksa ulang konfirmasi rantai utama.
Namun, jika semua orang benar-benar menggunakan aturan konfirmasi itu untuk menjual kapal pesiar mereka, kami tidak dapat sepenuhnya mengabaikan keamanan yang berpotensi rendah dari aturan konfirmasi "trust random person running a separate sequencer". Desain yang tepat didasarkan pada keseimbangan tingkat komitmen progresif yang diperlukan untuk jam berapa untuk kasus penggunaan tertentu.
Sekali lagi, ini menyentuh kritik nyata terhadap blockchain throughput tinggi seperti Solana. Aturan konfirmasi apa yang sebenarnya bisa digunakan orang? Anda mungkin memiliki kondisi keamanan yang baik untuk menjalankan full node Solana, tetapi kebanyakan orang mungkin tidak memiliki akses ke aturan konfirmasi tersebut (yaitu, tergantung pada persyaratan sumber daya dan/atau biaya).
Verifikasi langsung (yaitu, tidak hanya mempercayai mayoritas jujur) adalah atribut inti dari sistem ini. Jadi, untuk aturan konfirmasi yang diberikan, kami sangat peduli dengan dua aspek – keamanan dan aksesibilitas:
Singkatnya:
Bahkan, ketika kami mengatakan bahwa rantai tertentu aman, kami mencoba untuk mengungkapkan gagasan bahwa aturan konfirmasi terkait aman dan dapat diakses.
Rollup dengan keamanan rantai integrasi
1, rantai integrasi dengan bukti validitas DAS +
Kita sekarang melihat bahwa keamanan mengenai DA dan validitas negara dapat diperiksa langsung oleh kriptografi (DAS + validitas / bukti kegagalan) tanpa membuat asumsi kuat tentang operator rantai. Protokol apa pun secara teknis dapat mengimplementasikannya. Full node juga dapat memeriksa DA dan validitas state tanpa asumsi eksternal.
Sekarang mari kita fokus pada properti lain - aktivitas dan ketahanan terhadap rekombinasi. Seperti yang telah kita lihat sebelumnya, ini bisa gagal tidak peduli apa pun jenis aturan konfirmasi yang Anda jalankan. Mari kita lihat rantai integrasi lain yang membuktikan finalitas efektivitas DAS+ dari soket tunggal +PoS:
Memilih aturan pengakuan yang kuat sangat efektif untuk subset kegagalan keamanan, di mana bahkan sebagian besar validator jahat tidak dapat mengelabui node penuh atau node cahaya validator penuh agar percaya bahwa:
Apakah Ethereum memiliki 1 validator atau validator yang tak terhitung jumlahnya, semua node kurang lebih percaya pada DA atau validitas blok, yang dijamin dengan pemeriksaan. Light node validator penuh dapat diperiksa dengan cara yang lebih sederhana (tetapi perhatikan bahwa DAS membuat beberapa asumsi lain, yang akan kita bahas nanti).
Namun, mayoritas validator yang jahat dapat mencegah buku besar tumbuh, menyensor Anda, atau mengatur ulang rantai (kegagalan yang terjadi tergantung pada aturan konfirmasi). DAS + ZK tidak akan menyelamatkan Anda. Resistensi terhadap reorganisasi dan aktivitas selalu bergantung sampai batas tertentu pada berbagai atribut yang mendasari rantai tertentu (misalnya operator yang andal, insentif ekonomi, konsensus sosial, dll.).
Kurang jelas, aktivitas dan resistensi terhadap reorganisasi masih merupakan atribut dari aturan pengakuan yang diberikan, karena setiap node tunduk pada serangan yang sama seperti pada tabel di atas. Terlepas dari aturan konfirmasi di sini, mereka memiliki jaminan yang sama.
Namun, ini menjadi jelas lagi ketika Anda menghapus asumsi finalitas slot tunggal. Di Gasper Ethereum, tergantung pada buku besar yang Anda ikuti (yaitu buku besar rantai atau pos pemeriksaan terpanjang yang tersedia), Anda akan kembali memiliki aktivitas yang berbeda dan properti tahan reorganisasi. Sebagian besar validator berbahaya menyebabkan kegagalan keamanan yang berbeda tergantung pada aturan konfirmasi yang Anda jalankan.
Bagaimanapun, intinya adalah bahwa konstruksi rantai yang mendasari sangat penting di sini. Anda membutuhkan operator yang kuat, insentif ekonomi, dan konsensus sosial untuk menjaga rantai tetap aktif dan tahan terhadap restrukturisasi. Selain itu, protokol konsensus dual-ledger seperti Ethereum memberi pengguna fleksibilitas yang berharga untuk menghitung ketersediaan dan finalitas sesuai dengan kebutuhan mereka.
2, Bukti Rollup menggunakan validitas DAS +
Sekarang mari kita ubah contoh ini sedikit:
Anda akan melihat bahwa Rollup memiliki dua jenis aturan konfirmasi yang benar-benar terpisah untuk jangka waktu yang berbeda (yaitu apakah Anda beroperasi berdasarkan pra-konsensus sequencer atau menunggu konsensus akhir dari rantai utama), sekarang mari kita lihat setiap jalur.
Jalur Cepat - Sebelum konsensus rantai utama
Node rollup dapat mengandalkan konfirmasi dari sequencer (sebelum menerbitkan ke rantai utama), dan kami berasumsi mereka dapat menjalankan node Rollup berikut:
Secara teknis, sequencer Rollup dapat memfasilitasi DAS dan memberikan bukti validitas sebelum menerbitkan ke rantai utama, tetapi ini tidak benar-benar terjadi. Light node validator penuh biasanya dirancang untuk memeriksanya melalui rantai utama, tetapi saya berasumsi bahwa bukti DAS + "langsung" dapat dibandingkan lebih jelas dengan yang sama dengan rantai terintegrasi.
Tabel berikut menunjukkan perubahan dibandingkan dengan contoh rantai integrasi:
Penghapusan ditampilkan dengan coretan merah dan penambahan ditampilkan dengan warna biru:
Jalur lambat - Tunggu konsensus rantai utama
Untuk keamanan ekstra, node dapat menunggu konsensus dari rantai utama (misalnya Ethereum), yang mana ia berperan lebih jelas, yaitu Node rollup juga harus menjalankan node rantai utama:
Jika kita mendapatkan rantai utama bukti-bukti tanpa pengetahuan (misalnya Ethereum L1 zkEVM) + semua rollup membuktikan keadaannya di dalam rantai utama→ kita mendapatkan visi Vitalik tentang bukti singularitas. Bukti tanpa pengetahuan untuk memvalidasi Ethereum berarti memvalidasi semua rantai lain dan memvalidasi node dari implementasi internal mereka:
Untuk mempermudah, kami berasumsi di sini bahwa validitas status rollup diverifikasi dalam rantai utama itu sendiri (misalnya rollup memiliki jembatan bawaan dengan rantai utama), sehingga kami dapat mengabaikan secara eksplisit menjalankan perangkat lunak node rollup tambahan di luar protokol.
Perubahan dari tabel Fast Path Rollup sebelumnya adalah sebagai berikut:
Ini dicapai dengan rantai utama yang memaksa transaksi untuk memasukkan atau memaksakan substitusi sequencer / prover, yang kami sebut aktivitas "akhir" di sini, karena dari sudut pandang Rollup, ini adalah jalur yang lambat, tetapi dari perspektif rantai utama, ini dapat dianggap sebagai aktivitas "real-time".
Rollup dengan blockchain terintegrasi
Sekarang kita dapat melihat perubahan atribut keamanan yang terkait dengan blockchain terintegrasi dan Rollup:
Aktivitas dan resistensi terhadap rekombinasi
Atribut ini tidak dapat dijamin dengan kata sandi, dan bahkan di seluruh aturan pengakuan (misalnya, apakah menjalankan node penuh atau ringan), Anda mungkin rentan terhadap kegagalan keamanan.
Jika operator benar-benar di luar kendali, tidak ada node penuh atau bukti ZK yang dapat melindungi Anda dari kegagalan aktivitas atau reorganisasi.
Atribut-atribut ini dicapai melalui operator yang kuat dan terdesentralisasi, mekanisme tahan sensor, konsensus yang kondusif untuk aktivitas, "biaya" restrukturisasi yang tinggi, konsensus sosial yang kuat, dll. Membandingkan ini secara obyektif seringkali menantang.
Bagaimana Anda mengukur desentralisasi operator dan konsensus sosial? Tidak ada satu jawaban yang benar. Ini bisa dibilang aspek yang paling sulit untuk dirancang, dan mereka memang sangat unik untuk rantai tertentu.
Yang penting, kami melihat bahwa Rollup dapat mendelegasikan anti-reorganisasi dan aktivitas ke rantai utama, dan bahwa aturan konfirmasi yang digunakan pada Rollup dapat memiliki atribut keamanan yang sama seolah-olah mereka berjalan di rantai utama dalam jangka waktu yang sama.
Chain bahkan dapat memilih atribut mana yang akan didelegasikan ke chain mana, dan berbagai jenis arsitektur "L2" (seperti validium, optimisme, dan sidechain) dapat menyerap subset atribut keamanan yang berbeda. Misalnya:
Rollup juga dapat memberi pengguna rute pelarian untuk keluar dari Rollup, tetapi mempertahankan kemampuan untuk memeriksa pengguna dan mencegah setoran memasuki Rollup (ini adalah cara kerja Loopring, misalnya). Jika deposit tetap tidak diproses setelah jangka waktu tertentu, pengguna dapat menarik dana yang terkunci dari kontrak L1.
Ini menyoroti pentingnya mekanisme tersebut.
Ketersediaan data dan validitas status
Tidak seperti aktivitas dan anti-rekombinasi, node dapat memastikan validitas DA dan state tanpa membuat asumsi ambang batas yang besar (atau trade-off keamanan antara keduanya). Produsen blok mayoritas berbahaya dapat menyebabkan kegagalan aktivitas dan reorganisasi, tetapi mereka tidak akan menyebabkan kegagalan DA atau validitas untuk node penuh atau node cahaya validator penuh.
Namun, simpul cahaya validator konsensus tentu saja dipengaruhi oleh validitas negara mayoritas jujur dan kegagalan DA. Mereka hanya percaya semua yang dikatakan konsensus. Itulah mengapa DA dan validitas negara adalah apa yang membuat aturan konfirmasi keamanan dapat diakses dan benar-benar berfungsi. Ini sering kali merupakan perbedaan ideologis yang sangat besar antara Rollup tradisional dan blockchain besar yang tidak terlalu menekankan pada verifikasi pengguna.
Agar, ini sering kali merupakan cara yang disukai untuk menyeimbangkan keamanan dan aksesibilitas:
Perhatikan bahwa 2 (full node) sebenarnya yang paling aman. Verifikasi ZK sangat mudah, tetapi node DAS membuat beberapa asumsi tambahan yang tidak dimiliki node penuh. Namun, mereka menyediakan keamanan yang hampir sama dengan node penuh, dan dengan persyaratan sumber daya di sebagian kecil dari itu, mereka dapat diskalakan.
Full node hanya perlu mengunduh semua data, jadi mereka 100% yakin. Mereka menandatangani blok hanya ketika semuanya ada di sana. Tidak ada asumsi yang dibuat tentang pihak eksternal.
Tujuan DAS adalah untuk mencapai keamanan yang hampir sama baiknya dengan node penuh, sementara dengan persyaratan sumber daya yang jauh lebih rendah (yaitu, skala yang lebih tinggi). Artikel tentang tingkat keamanan ketersediaan data simpul cahaya ini mencakup hal ini dengan baik.
Singkatnya, Anda biasanya membuat beberapa asumsi seputar sinkronisasi jaringan dan apakah ada cukup node untuk merekonstruksi data. Jika produsen blok yang bermusuhan menyembunyikan data apa pun, bahkan sekelompok kecil simpul cahaya yang jujur harus dapat membangun kembali blok secara kolektif. Ada juga asumsi tentang pengungkapan saham selektif, di mana produsen blok yang bermusuhan dapat menipu sejumlah kecil node cahaya secara individual, tetapi tidak secara kolektif.
Asumsi "N-in-2" ini (misalnya, minoritas node yang jujur dapat mengamankan DAS) sangat menguntungkan dalam kaitannya dengan perkiraan asumsi "N / 2" yang khas (misalnya, 51% produsen blok dapat menyebabkan reorganisasi). Vitalik memiliki pengantar yang baik untuk ini dalam postingannya tentang model kepercayaan.
Secara keseluruhan, DA dan efektivitas negara tidak "ditugaskan" oleh Rollup sebagai aktivitas dan resistensi rekombinan. DA dan validitas negara dapat diverifikasi langsung oleh pengguna, sementara atribut lain lebih bergantung pada peserta konsensus rantai dan insentif mereka.
Tinjau contoh validasi bukti Rollup sebelumnya:
Dalam kedua kasus, Anda dapat menjamin efektivitas. Di mana pun Anda memeriksanya, Anda tidak dapat menentukan efektivitasnya. Ethereum tidak memiliki efektivitas yang benar-benar "dipaksakan" yang sama dengan node Ethereum "memaksa" anti-restrukturisasi atau properti aktif. Anti-restrukturisasi dan vitalitas sangat tergantung pada siapa Anda mendapatkannya.
Pertimbangkan rollup berbasis rantai scam:
Rollup dapat mengekspos aturan konfirmasi dengan atribut keamanan yang sama dengan rantai utama mereka, yang dapat mereka terima paling banyak pada tingkat konsensus rantai host mereka (pada kenyataannya, biasanya akan lebih lambat, tergantung pada seberapa sering Rollup dipublikasikan ke rantai utama).
Rollup juga dapat memberikan "jalur bahagia" dengan aturan konfirmasi yang lebih santai (yaitu, sequencer) untuk pengalaman pengguna yang lebih baik, tetapi mereka mempertahankan rollback transaksi jika terjadi kegagalan. Jika sequencer berhenti, Anda dapat terus bergerak. Namun, ini tidak terjadi jika rantai Anda sepenuhnya bergantung pada kumpulan validator Anda sendiri (yaitu sebagai rantai integrasi).
Memilih rantai utama Rollup dengan bijak dapat berdampak nyata pada atribut keamanan. Sangat berharga untuk memanfaatkan backchain dengan aktivitas yang kuat (pertumbuhan buku besar + CR) dan ketahanan terhadap reorganisasi.
Asumsi keamanan yang berbeda untuk periode waktu yang berbeda
Mari kita lihat contoh sederhana. Chain X memutuskan apakah akan digunakan sebagai Rollup pada chain utama yang ada atau sebagai blockchain terintegrasinya sendiri.
Rollup memiliki karakteristik sebagai berikut:
Blockchain terintegrasi memiliki karakteristik sebagai berikut:
Tabel berikut memberikan representasi visual yang disederhanakan dari jaminan keamanan terbaik yang mungkin dimiliki pengguna di bawah berbagai implementasi (yaitu, mereka menggunakan aturan pengakuan terkuat yang tersedia). Secara khusus, kami fokus di sini pada aktivitas dan ketahanan terhadap rekombinasi (karena kami berasumsi bahwa rantai hanya akan mencapai bukti efektivitas DAS + dalam dua kasus ini):
"Keamanan tertinggi" Rollup lebih tinggi daripada "keamanan waktu nyata" karena rantai utama tidak dapat menjamin kami lebih cepat daripada waktu bloknya sendiri. Meskipun Anda dapat memeriksa bahwa pra-pengakuan sequencer adalah transisi status yang valid, Anda tidak dapat sepenuhnya menjamin finalitas mereka sampai akhirnya mencapai lapisan DA.
Tapi seperti yang telah kita lihat, menyebarkan ke mainchain yang kuat dengan cara rollup meningkatkan keamanan. Mereka dapat menyewa keamanan dengan kecepatan rantai utama mereka. Pada dasarnya, tidak ada cara untuk mendapatkan semua atribut keamanan rantai utama lebih cepat daripada konsensus rantai utama itu sendiri.
Namun, pengguna cenderung tidak sabar. Akibatnya, Rollup biasanya akan memberikan pra-konfirmasi lebih cepat, tetapi jaminan akan lebih rendah selama periode ini. Rollup dapat memilih desain sequencer seimbang:
Menariknya, Anda dapat membantah bahwa rollup pemesanan L1 kurang aktif daripada sequencer terpusat, tergantung pada skala waktu Anda. Sejauh ini, kita telah berbicara tentang aktivitas, memasukkannya dalam semacam konsep "waktu terbatas". Namun, ini sepenuhnya relatif dan subyektif. Relatif terhadap apa? Berapa lama waktu yang dibutuhkan?
Rollup berurutan L1 murni hanya akan disertakan pada kecepatan blok L1 (misalnya 10 detik), dan Anda tidak memiliki jaminan aktivitas di antara blok-blok ini ketika dunia di sekitar Anda berubah. Jadi itu tergantung pada tolok ukur Anda:
Jika Anda mencoba menerapkan rollup berbasis "nyata" tanpa pra-konfirmasi, bahkan mungkin pra-konfirmasi akan tetap terjadi. Untuk peserta, seperti pembangun dan validator Ethereum, ada insentif finansial bagi mereka untuk membuat komitmen ini sendiri. Inilah mengapa ada diskusi tentang bagaimana pembangun dan pemangku kepentingan Ethereum mencoba memberikan pra-konfirmasi cepat di lapisan dasar.
Inilah satu catatan penting terakhir. Dengan asumsi bahwa pengguna Rollup dapat kembali ke tingkat aktivitas yang sama dengan rantai utama, dengan asumsi Anda dapat memaksa penyertaan sepenuhnya dengan kecepatan blok rantai utama (misalnya jika pemesan Rollup meninjau Anda, Anda dapat memaksa transaksi untuk dimasukkan dalam blok Ethereum berikutnya dari rantai utama).
Dalam praktiknya, biasanya ada penundaan singkat. Jika Anda mengizinkan penyertaan wajib segera, Anda berisiko mengekspos MEV sensor yang menguntungkan bersama dengan kompleksitas lainnya. Namun, beberapa desain dapat memberikan jaminan aktivitas mendekati real-time dari rantai utama (misalnya, mungkin dengan kecepatan beberapa blok rantai utama, bukan satu blok).
Terlepas dari skala waktu yang tepat, aktivitas akhir penyerapan rantai utama sangat kuat, dan menggunakan rantai utama yang kuat sebagai mekanisme koordinasi memberikan ancaman yang kredibel dan hak keluar. Hanya paparan ancaman yang kredibel ini saja membuatnya sangat tidak mungkin diperlukan untuk mencegah perilaku jahat di tempat pertama.
Misalnya, jika pengguna memiliki mekanisme yang andal untuk keluar secara paksa atau bahkan melepas operator secara paksa, maka sequencer Rollup terpusat tidak dapat secara sewenang-wenang mengekstrak sewa dari pengguna dan menguncinya. Ini adalah area umum yang dibahas dalam Chris Goes dalam ceramahnya tentang MEV, Conversion, Cost Edge, dan Slow Gaming.
Tentu saja, aktivitas tak terduga juga dapat terjadi, dalam hal ini jalur cadangan ini dapat kembali menjadi sangat berharga.
Bukti tidak melindungi rantai, tetapi melindungi pengguna
Mengikuti semua ini, kita dapat melihat bahwa untuk aturan konfirmasi yang diberikan, ternyata lebih akurat untuk melindungi "pengamat" (pengguna) Rollup yang berbeda daripada melindungi "Rollup" itu sendiri. Keamanan "Rollup" tidak ada sebagai ukuran spesifik tunggal.
Memastikan keselamatan pengamat tentu saja merupakan hal yang paling penting, karena kita semua adalah pengamat rantai! Rantai ini adalah apa pun yang dikatakan pengamatnya. Jika Anda tidak dapat mengamatinya dengan cara yang aman, Anda harus mempercayai orang lain (seperti verifikator) untuk memberi tahu Anda "kebenaran" tentang hal itu. Tapi kami tidak ingin percaya, kami ingin verifikasi→ kami ingin bukti.
Untuk memahami mengapa penting untuk membedakan antara "bukti rantai" dan "pengamat rantai bukti", pertimbangkan hal berikut:
Terbukti menambahkan keamanan pada pengamat rantai (yaitu, simpul cahaya) yang validitasnya tidak dapat diperiksa secara langsung. Kami tidak ingin pengguna harus menjalankan full node yang kuat, jadi bukti ini penting.
Pengesahan mengamankan jembatan Rollup
Jembatan verifikasi Rollup adalah pengamat yang sangat penting! Bukti memang menjamin keamanan jembatan!
Seperti halnya simpul cahaya biasa, jembatan tidak dapat secara langsung memeriksa validitas Rollup. Kami tidak percaya pada mayoritas yang jujur, tetapi melindungi jembatan dengan bukti. Protokol konsensus untuk database A (lapisan DA) mengurutkan blob data dan kemudian memverifikasi bahwa bridge secara independen memeriksa validitas pembaruan yang sesuai ke database B (Rollup):
Jembatan adalah pengamat rantai lain, dan setiap aset yang dicetaknya selalu membawa asumsi keamanan dari aturan konfirmasi jembatan yang sesuai. Keamanan aturan konfirmasinya dapat memiliki implikasi luas. Itulah mengapa sangat penting untuk membangun jembatan yang aman (atau idealnya, mengurangi kebutuhan akan begitu banyak jembatan dengan menskalakan eksekusi rantai tunggal lebih jauh di tempat pertama).
Jika Anda menjalankan node penuh untuk rantai, pihak jahat tidak dapat menipu Anda agar menerima transisi status yang tidak valid. Namun, jika pihak jahat memiliki aturan konfirmasi yang berbeda, itu masih bisa menipu jembatan. Jika Anda memegang aset yang didukung agunan di jembatan, maka dana Anda mungkin menjadi tidak didukung. Dalam pengertian ini, kegagalan keamanan jembatan spoofing "menular".
Mari kita pertimbangkan skenario hipotetis lama tentang Terra:
Dengan runtuhnya Terra, harga LUNA anjlok, dan akhirnya, keuntungan dari kumpulan validator yang secara teoritis menjadi berbahaya akan melebihi nilai LUNA yang dipertaruhkan, dan validator Terra dapat menandatangani blok yang tidak valid dan melakukan hal berikut:
Jembatan ini menggunakan aturan pengakuan dengan asumsi kepercayaan yang lebih kuat.
Validator Terra tidak dapat mencuri sejumlah besar aset Terra sendiri dari node penuh (mereka tidak akan tertipu), mereka akan menolak blok ini. Namun, validator dapat mengelabui validator konsensus menjadi klien ringan (termasuk bridge), itulah sebabnya kesalahan konsensus memengaruhi aset lintas rantai.
Perhatikan bahwa penting bahwa kesalahan ini tidak "menginfeksi" sisa rantai, yaitu kesalahan "menginfeksi" aset Osmosis yang terpapar pada rute jembatan Terra, tetapi tidak ada kesalahan keamanan dalam rantai Osmosis itu sendiri.
Namun, kami jelas ingin menjembatani berbagai hal (secara umum, komunikasi lintas rantai), akan buruk untuk membatasi diri untuk menggunakan aset asli pada rantai utama mereka, kami membutuhkan rantai untuk berkomunikasi dengan aman dan menjembatani seluruh rantai.
Sebagai eksperimen pikiran, solusi paling sederhana adalah meminta setiap pengguna menjalankan node penuh dari setiap rantai, yang mencakup jembatan lintas rantai itu sendiri. Perlu diingat bahwa kita telah melihat beberapa jembatan simpul penuh tertanam satu arah:
Ini berfungsi untuk node penuh Ethereum, tetapi ini jelas tidak berskala. Anda tidak dapat mulai memiliki setiap rantai Cosmos, hanya perlu menjalankan node penuh untuk setiap rantai Cosmos lainnya. Jembatan simpul penuh dua arah ini tidak berskala, mereka hanya meningkatkan persyaratan perangkat keras.
Untungnya, ada opsi yang lebih terukur. Kami dapat menggunakan jembatan untuk sepenuhnya memverifikasi validitas negara dan DA dari rantai lain (selain masih memeriksa konsensus).
Validitas Negara - Sementara IBC saat ini digunakan dengan bukti konsensus tradisional, IBC dapat dimodifikasi untuk menambahkan bukti validitas untuk menghubungkan rantai, dan sekarang jembatan tidak dipalsukan oleh transisi keadaan yang tidak valid. Ini akan mencegah persis serangan apa yang dijelaskan sebelumnya, dan jika jembatan dapat memverifikasi validitas transisi negara, itu akan menolak blok validator Terra sebagai tidak valid.
Ini terlihat sangat mirip dengan bagaimana jembatan Rollup pada Ethereum memeriksa bukti Rollup, kecuali bahwa itu juga bisa dua arah.
DA - Selain itu, rantai mungkin memerlukan node-nya untuk menjalankan node cahaya DAS yang menghubungkan rantai. Misalnya, Anda dapat memiliki dua rantai Cosmos yang memerlukan validatornya sendiri untuk menjalankan simpul cahaya DAS rantai lain (jika setiap rantai mengimplementasikan klien ringan DAS, yang saat ini tidak didukung). Setelah ini selesai, setiap rantai sekarang dapat mengetahui validitas dan DA satu sama lain tanpa harus menjalankan node penuh.
Untuk Rollup, menurut definisi, Anda memiliki semua data pada rantai utama, sehingga jembatan di sana dapat mengaksesnya. Node rollup, di sisi lain, menjalankan node mainchain.
Rantai dependen dan independen
Mari kita lihat lima atribut keamanan kami lagi, sekarang dalam konteks mengamati jembatan verifikasi Rollup Rollup di Ethereum:
Perhatikan bahwa keamanan bridge tidak hanya dimaksimalkan oleh aturan konfirmasi super kuat untuk chain tambahan (misalnya, bridge validator penuh ke chain dengan kumpulan validator yang sangat tepercaya). Jika jembatan memiliki asumsi keamanan yang sama dengan rantai utama, Anda bisa mendapatkan keamanan paling banyak saat aset asli lintas rantai.
Vitalik memberikan contoh ilustrasi yang berguna:
"Anda mentransfer 100 ETH ke jembatan di atas Solana dan mendapatkan 100 Solana-WETH, dan Ethereum diserang 51%. Penyerang menyetor banyak ETH mereka ke Solana-WETH dan kemudian melanjutkan transaksi di sisi Ethereum segera setelah pihak Solana mengonfirmasinya. Kontrak Solana-WETH tidak lagi didukung sepenuhnya, dan mungkin 100 Solana-WETH Anda sekarang hanya bernilai 60 ETH. Bahkan dengan jembatan berbasis ZK-SNARK yang sempurna yang sepenuhnya memvalidasi konsensus, masih rentan terhadap serangan 51% seperti ini.
Oleh karena itu, selalu lebih aman untuk memegang aset asli Ethereum di Ethereum atau aset asli Solana di Solana daripada memegang aset asli Ethereum di Solana atau aset asli Solana di Ethereum. Dalam konteks ini, "Ethereum" tidak hanya mengacu pada rantai yang mendasarinya, tetapi juga pada L2 yang sesuai yang dibangun di atasnya.
Jika Ethereum 51% diserang dan pulih, Arbitrum dan Optimisme juga akan pulih, jadi meskipun Ethereum diserang oleh 51%, aplikasi "cross-rollup" yang menyimpan status di Arbitrum dan Optimisme dijamin tetap konsisten. Jika Ethereum tidak diserang 51%, tidak akan ada cara untuk melakukan serangan 51% pada Arbitrum dan Optimisme, masing-masing. Oleh karena itu, masih sepenuhnya aman untuk memegang aset yang dikeluarkan oleh Optimisme berbasis Arbitrum.
Anda dapat mengganti Solana dengan rantai apa pun yang Anda inginkan - bahkan rantai hipotetis di mana Anda melampaui validator Ethereum dalam hal kepercayaan, dan pada dasarnya, asumsi keamanan apa pun bersifat aditif ketika Anda berbicara tentang aset lintas rantai dengan buku besar catatan mereka (misalnya, ETH dari Ethereum), dan selalu ada kemungkinan reorganisasi rantai yang terhubung atau kegagalan aktivitas.
Namun, rantai dengan konsensus gabungan (yaitu rollup yang berbagi konsensus rantai utama mereka) dapat menghindari asumsi keamanan tambahan ini. Jembatan lintas rantai antara wilayah yang berbeda ini dapat memiliki aktivitas akhir dan sifat anti-rekombinasi yang sama dengan rantai utama itu sendiri. Konsensus bersama meminimalkan asumsi kepercayaan lintas rantai dalam zona keamanan bersama tersebut.
Apa asumsi keamanan yang masuk akal terserah Anda. Faktanya, belum ada kegagalan konsensus serupa antara rantai utama. Ini akan jelas dan mahal, tetapi itu bisa menjadi asumsi yang lebih kuat tentang menghubungkan rantai yang lebih lemah.
Ada juga beberapa kelemahan untuk mengikat rantai Rollup ke rantai utama. Mari kita bandingkan dua skenario lintas rantai, dalam kedua kasus kami memiliki dua rantai yang menggunakan jembatan lintas rantai validator penuh dua arah:
Demikian pula, penguncian dan perburuan rente yang berlebihan memiliki potensi efek positif dan negatif, menyoroti mengapa lapisan dasar yang netral dan tahan sensor sangat penting:
Ada trade-off dan manfaat di sini, tetapi juga perlu diingat bahwa ada ketergantungan jalur besar di mana aset menarik berada, dan jika Anda ingin menggunakan banyak aset asli Ethereum (termasuk yang ada di Rollup-nya), masuk akal untuk membasmi rantai Anda di Ethereum dan jembatan lintas rantainya.
Kesimpulan
"Keamanan warisan rollups" adalah singkatan yang bagus, tetapi ingat ini adalah poin-poin penting yang benar-benar kami maksudkan:
Sekarang, pertimbangkan manfaat penerapan Rollup pada rantai integrasi:
Keamanan pengguna - Apakah Anda ingin menerapkan jembatan lintas rantai atau tidak, Rollup dapat menyewa DA dari rantai utamanya dan merebut kembali konsensusnya, yang memungkinkan Rollup untuk mengekspos aturan konfirmasi yang cocok dengan rantai utama kepada penggunanya tanpa harus mencapai konsensusnya sendiri;
Keamanan lintas rantai - Rollup dapat membangun lintas rantai dalam domain keamanan bersama dari rantai utama (yaitu rantai utama itu sendiri dan Rollup-nya), dan properti keamanannya sebanding dengan beroperasi pada rantai utama itu sendiri;
Kita harus melihat bahwa ini sebenarnya adalah dua sisi dari mata uang yang sama, dan Rollup hanya memungkinkan rantai untuk memberikan aturan konfirmasi, dan keamanannya dapat mencapai keamanan rantai utama. Baik jembatan lintas rantai dan pengguna normal adalah pengamat rantai dengan aturan pengakuan yang diberikan. Jembatan mungkin adalah "pengamat" yang paling penting dalam rantai ini karena keamanannya memiliki implikasi yang luas.
Ketika kita mencoba membuat sistem yang aman, kita perlu memperhatikan keamanan aturan konfirmasi yang diberikan serta aksesibilitasnya. Jika sebagian besar pengamat (pengguna) yang berinteraksi dengan rantai ini berada di luar jangkauan, maka aturan konfirmasi keamanan tidak banyak membantu.
Sementara kita hari ini mengaitkan DAS dan bukti validitas dengan Rollup, mereka adalah konsep yang terpisah secara logis. Setiap rantai dapat mengintegrasikan teknologi ini, dan perbedaan antara apa itu rollup atau bukan rollup mulai rusak pada akhir permainan (yaitu untuk satu rollup terintegrasi, mungkin secara logis memisahkan DA dan lapisan eksekusi di bawah satu protokol).
Namun, "rollup tradisional" dan lapisan DA jelas mendominasi teknologi verifikasi dan penskalaan ini saat ini.