Pada awalnya, Ethereum memiliki dua strategi penskalaan dalam roadmap-nya. Salah satunya (misalnya lihat kertas ini Dari 2015) adalah "sharding": alih-alih memverifikasi dan menyimpan semua transaksi dalam rantai, setiap node hanya perlu memverifikasi dan menyimpan sebagian kecil dari transaksi. Ini adalah bagaimana jaringan peer-to-peer lainnya (mis. BitTorrent) juga berfungsi, jadi pasti kita bisa membuat blockchain bekerja dengan cara yang sama. Yang lainnya adalah protokol lapisan 2: jaringan yang akan duduk di atas Ethereum dengan cara yang memungkinkan mereka untuk sepenuhnya mendapatkan keuntungan dari keamanannya, sambil menjaga sebagian besar data dan perhitungan dari rantai utama. "Protokol Layer 2" berarti saluran negarapada tahun 2015, Plasmapada tahun 2017, dan kemudianrollupsPada tahun 2019, Rollups lebih kuat daripada saluran status atau Plasma, tetapi mereka memerlukan jumlah bandwidth data on-chain yang besar. Untungnya, pada tahun 2019 penelitian sharding telah menyelesaikan Masalah verifikasi "ketersediaan data" dalam skala besarSebagai hasilnya, kedua jalur tersebut berpotongan, dan kita mendapat rencana jalan lintasan rollupyang tetap menjadi strategi penskalaan Ethereum hari ini.
The Surge, edisi peta jalan 2023.
Peta jalan yang berpusat pada rollup mengusulkan pembagian kerja yang sederhana: Ethereum L1 berfokus untuk menjadi lapisan dasar yang tangguh dan terdesentralisasi, sementara L2 mengambil tugas untuk membantu ekosistem berkembang. Ini adalah pola yang berulang di mana-mana dalam masyarakat: sistem pengadilan (L1) tidak hadir untuk menjadi ultra-cepat dan efisien, tetapi hadir untuk melindungi kontrak dan hak milik, dan terserah para wirausahawan (L2) untuk membangun di atasnya.kokohbasislapisandan membawa umat manusia ke Mars (secara metaforis dan harfiah).
Tahun ini, peta jalan yang berpusat pada rollup telah melihat kesuksesan penting: lebar pita data Ethereum L1 telah meningkat secara signifikan denganblob EIP-4844, dan sekarang ada beberapa EVM rollups pada tahap 1. Sebuah sangat implementasi penggandaan dan pluralistik dari sharding, di mana setiap L2 bertindak sebagai "pecahan" dengan aturan dan logika internalnya sendiri, sekarang menjadi kenyataan. Tetapi seperti yang telah kita lihat, mengambil jalan ini memiliki beberapa tantangan unik tersendiri. Jadi sekarang tugas kita adalah menyelesaikan peta jalan rollup-centric, dan menyelesaikan masalah ini, sambil mempertahankan ketahanan dan desentralisasi yang membuat Ethereum L1 istimewa.
Trilema skalabilitas adalah sebuah ide diperkenalkan pada tahun 2017, yang berpendapat bahwa ada ketegangan antara tiga properti dari blockchain: desentralisasi (lebih spesifik: biaya rendah untuk menjalankan node), skalabilitas (lebih spesifik: jumlah transaksi yang diproses tinggi), dan keamanan (lebih spesifik: seorang penyerang perlu merusak sebagian besar node dalam jaringan keseluruhan untuk membuat bahkan satu transaksi gagal).
Perlu dicatat, trilema bukanlah sebuah teorema, dan posting yang memperkenalkan trilema tidak disertai dengan bukti matematis. Namun, posting tersebut memberikan argumen matematis heuristik: jika sebuah node yang ramah terhadap desentralisasi (misalnya laptop konsumen) dapat memverifikasi N transaksi per detik, dan Anda memiliki sebuah rantai yang memproses k*N transaksi per detik, maka entah (i) setiap transaksi hanya terlihat oleh 1/k dari node, yang menyiratkan bahwa seorang penyerang hanya perlu merusak beberapa node untuk mendorong transaksi buruk, atau (ii) node Anda akan menjadi kuat dan rantai Anda tidak terdesentralisasi. Tujuan dari posting tersebut bukanlah untuk menunjukkan bahwa memecah trilema adalah tidak mungkin; sebaliknya, tujuannya adalah untuk menunjukkan bahwa memecah trilema sulit - itu memerlukan cara berpikir di luar kotak yang disiratkan oleh argumen tersebut.
Selama bertahun-tahun, sudah umum bagi beberapa rantai kinerja tinggi untuk mengklaim bahwa mereka memecahkan trilema tanpa melakukan hal cerdas pada tingkat arsitektur fundamental, biasanya dengan menggunakan trik rekayasa perangkat lunak untuk mengoptimalkan simpul. Ini selalu menyesatkan, dan menjalankan simpul dalam rantai-rantai tersebut selalu berakhir jauh lebih sulit daripada di Ethereum.Posting inimasuk ke beberapa subtleties mengapa hal ini terjadi (dan oleh karena itu, mengapa rekayasa perangkat lunak klien L1 sendiri tidak dapat meningkatkan Ethereum itu sendiri).
Namun, kombinasi pengambilan sampel ketersediaan data dan SNARK memecahkan trilema: hal ini memungkinkan klien untuk memverifikasi bahwa sejumlah data tersedia, dan sejumlah langkah komputasi dilakukan dengan benar, sambil hanya mengunduh sebagian kecil data itu dan menjalankan jumlah komputasi yang jauh lebih kecil. SNARK adalah tanpa kepercayaan. Pengambilan sampel ketersediaan data memiliki nuansamodel kepercayaan few-of-N, namun itu tetap mempertahankan sifat fundamental yang dimiliki oleh rantai yang tidak dapat diskalakan, yaitu bahwa bahkan serangan 51% pun tidak dapat memaksa blok buruk diterima oleh jaringan.
Salah satu cara untuk menyelesaikan trilema adalah arsitektur Plasma, yang menggunakan teknik cerdas untuk mendorong tanggung jawab memantau ketersediaan data kepada pengguna dengan cara yang sesuai insentif. Kembali pada tahun 2017-2019, ketika yang kita miliki untuk meningkatkan komputasi hanyalah bukti penipuan, Plasma sangat terbatas dalam hal apa yang dapat dilakukannya dengan aman, tetapi penggunaan SNARK secara umum membuat arsitektur Plasma jauh lebih layakuntuk berbagai kasus penggunaan yang lebih luas dari sebelumnya.
Pada 13 Maret 2024, ketika Upgrade Dencun Ditayangkan, blockchain Ethereum memiliki tiga ~ 125 kB "gumpalan" per slot 12 detik, atau ~ 375 kB per slot bandwidth ketersediaan data. Dengan asumsi data transaksi dipublikasikan secara onchain secara langsung, transfer ERC20 adalah ~ 180 byte, sehingga TPS maksimum rollup di Ethereum adalah:
375000 / 12 / 180 = 173.6 TPS
Jika kita menambahkan calldata Ethereum (maksimum teoretis: 30 juta gas per slot / 16 gas per byte = 1.875.000 byte per slot), ini menjadi 607 TPS. Dengan PeerDAS, rencananya adalah untuk meningkatkan target hitungan blob menjadi 8-16, yang akan memberikan kita 463-926 TPS dalam calldata.
Ini adalah peningkatan besar dari Ethereum L1, tetapi belum cukup. Kami menginginkan skalabilitas yang jauh lebih besar. Target menengah kami adalah 16 MB per slot, yang jika dikombinasikan dengan peningkatan dalam kompresi data rollup akan memberikan kami ~58.000 TPS.
PeerDAS adalah implementasi yang relatif sederhana dari “1D sampling”. Setiap blob di Ethereum adalah polinomial derajat-4096 di atas lapangan prima 253-bit. Kami menyiarkan “bagian” dari polinomial, di mana setiap bagian terdiri dari 16 evaluasi pada 16 koordinat bersebelahan yang diambil dari total 8192 koordinat. Sebanyak 4096 dari 8192 evaluasi (dengan parameter yang diusulkan saat ini: 64 dari 128 sampel yang mungkin) dapat memulihkan blob tersebut.
PeerDAS bekerja dengan membuat setiap klien mendengarkan sejumlah kecil subnet, di mana subnet ke-i menyiarkan sampel ke-i dari setiap blob, dan juga meminta blob pada subnet lain yang diperlukan dengan cara meminta rekan-rekannya dalam jaringan p2p global (yang akan mendengarkan subnet yang berbeda). Versi yang lebih konservatif, SubnetDAS, menggunakan hanya mekanisme subnet, tanpa lapisan tambahan bertanya kepada rekan sebaya. Proposal saat ini adalah agar node-node yang berpartisipasi dalam bukti kepemilikan menggunakan SubnetDAS, dan node-node lain (yaitu “klien-klien”) menggunakan PeerDAS.
Secara teori, kita bisa memperluas sampel 1D cukup jauh: jika kita meningkatkan jumlah blob maksimum menjadi 256 (jadi, target menjadi 128), maka kita akan mencapai target 16 MB sementara sampel ketersediaan data hanya akan biaya setiap node 16 sampel128 blob512 byte per sampel per blob = 1 MB bandwidth data per slot. Ini hanya cukup dalam jangkauan toleransi kami: bisa dilakukan, tetapi akan berarti klien yang terbatas bandwidth tidak dapat melakukan sampel. Kami bisa mengoptimalkan ini sedikit dengan mengurangi jumlah blob dan menambah ukuran blob, tetapi ini akan membuat rekonstruksi lebih mahal.
Dan akhirnya kami ingin pergi lebih jauh, dan melakukan2D sampling, yang berfungsi dengan pengambilan sampel acak bukan hanya di dalam blog, tetapi juga di antara blog. Properti linear dari komitmen KZG digunakan untuk “memperluas” kumpulan blog dalam blok dengan daftar “blog virtual” baru yang secara berlebihan mengkodekan informasi yang sama.
Pengambilan sampel 2D. Sumber: a16z crypto
Pentingnya, menghitung perpanjangan dari komitmen tidak memerlukan adanya blob, sehingga skema ini pada dasarnya ramah terhadap konstruksi blok terdistribusi. Node yang sebenarnya membangun blok hanya perlu memiliki komitmen blob KZG, dan dapat mengandalkan DAS untuk memverifikasi ketersediaan blob tersebut. 1D DAS juga secara inheren ramah terhadap konstruksi blok yang terdistribusi.
Langkah selanjutnya adalah menyelesaikan implementasi dan peluncuran PeerDAS. Dari sana, langkah berikutnya adalah secara progresif meningkatkan jumlah blob di PeerDAS sambil dengan cermat memantau jaringan dan meningkatkan perangkat lunak untuk memastikan keamanan. Pada saat yang sama, kami menginginkan lebih banyak karya akademis dalam memformalkan PeerDAS dan versi lain dari DAS serta interaksinya dengan isu-isu seperti keamanan aturan pemilihan fork.
Lebih jauh ke masa depan, kita membutuhkan lebih banyak pekerjaan untuk mencari tahu versi ideal DAS 2D dan membuktikan sifat keamanannya. Kami juga ingin akhirnya bermigrasi dari KZG ke alternatif bebas pengaturan yang tahan kuantum dan tepercaya. Saat ini, kami tidak tahu kandidat yang ramah terhadap bangunan blok yang didistribusikan. Bahkan teknik "brute force" yang mahal dalam menggunakan STARK rekursif untuk menghasilkan bukti validitas untuk merekonstruksi baris dan kolom tidak cukup, karena sementara secara teknis STARK adalah O(log(n) * log(log(n)) hash dalam ukuran (dengan STIR), dalam praktiknya STARK hampir sebesar satu blob keseluruhan.
Jalur realistis yang saya lihat untuk jangka panjang adalah:
Kita dapat melihat ini sepanjang spektrum tradeoff:
Perhatikan bahwa pilihan ini tetap ada bahkan jika kita memutuskan untuk melakukan skala eksekusi langsung di L1. Hal ini karena jika L1 harus memproses banyak TPS, blok L1 akan menjadi sangat besar, dan klien akan menginginkan cara yang efisien untuk memverifikasi bahwa mereka benar, sehingga kita harus menggunakan teknologi yang sama yang menggerakkan rollups (ZK-EVM dan DAS) di L1.
Kebutuhan akan 2D DAS agak berkurang, atau setidaknya ditunda, jika kompresi data (lihat di bawah) diimplementasikan, dan ini lebih berkurang jika Plasma digunakan secara luas. DAS juga menimbulkan tantangan bagi protokol dan mekanisme pembangunan blok terdistribusi: sementara DAS secara teoritis ramah terhadap rekonstruksi terdistribusi, ini perlu digabungkan dalam praktik dengandaftar inklusiproposals dan mekanisme pemilihan fork di sekitarnya.
Setiap transaksi dalam rollup membutuhkan sejumlah besar ruang data onchain: transfer ERC20 membutuhkan sekitar 180 byte. Bahkan dengan pengambilan sampel ketersediaan data yang ideal, ini membatasi skalabilitas protokol lapisan 2. Dengan 16 MB per slot, kita mendapatkan:
16000000 / 12 / 180 = 7407 TPS
Bagaimana jika selain menangani pembilang, kita juga bisa menangani penyebut, dan membuat setiap transaksi dalam rollup mengambil lebih sedikit byte onchain?
Penjelasan terbaik menurut pendapat saya adalah diagram inidari dua tahun yang lalu:
Kenaikan paling sederhana hanyalah kompresi byte nol: mengganti setiap urutan panjang byte nol dengan dua byte yang mewakili berapa banyak byte nol yang ada. Untuk lebih jauh, kita memanfaatkan properti khusus dari transaksi:
Hal utama yang harus dilakukan adalah benar-benar menerapkan skema di atas. Kompromi utama adalah:
Adopsi ERC-4337, dan akhirnya pengakuan bagi sebagian dari itu di L2 EVMs, dapat sangat mempercepat implementasi teknik agregasi. Pengakuan bagi sebagian dari ERC-4337 di L1 dapat mempercepat implementasinya di L2.
Bahkan dengan blok 16 MB dan kompresi data, 58.000 TPS belum tentu cukup untuk sepenuhnya mengambil alih pembayaran konsumen, sosial terdesentralisasi, atau sektor berbandwidth tinggi lainnya, dan hal ini menjadi benar-benar terutama jika kita mulai mempertimbangkan privasi, yang bisa menurunkan skalabilitas hingga 3-8x. Untuk aplikasi dengan volume tinggi dan nilai rendah, salah satu pilihan saat ini adalah validium, yang menyimpan data di luar rantai dan memiliki model keamanan yang menarik di mana operator tidak dapat mencuri dana pengguna, tetapi mereka bisa menghilang dan sementara atau secara permanen membekukan semua dana pengguna. Tetapi kita bisa melakukan lebih baik.
Plasma adalah solusi penskalaan yang melibatkan operator menerbitkan blok secara offchain, dan menempatkan akar Merkle dari blok-blok tersebut onchain (berbeda dengan rollups, di mana blok lengkap ditempatkan onchain). Untuk setiap blok, operator mengirimkan ke setiap pengguna sebuah cabang Merkle yang membuktikan apa yang terjadi, atau tidak terjadi, pada aset pengguna itu. Pengguna dapat menarik aset mereka dengan memberikan cabang Merkle. Yang penting, cabang ini tidak harus berakar dalam keadaan terbaru - karena alasan ini, bahkan jika ketersediaan data gagal, pengguna masih dapat memulihkan aset mereka dengan menarik keadaan terbaru yang tersedia. Jika seorang pengguna mengirimkan cabang yang tidak valid (misalnya keluar dari aset yang sudah dikirimkan kepada orang lain, atau operator sendiri menciptakan aset dari udara), mekanisme tantangan onchain dapat menyelesaikan siapa yang berhak memiliki aset tersebut.
Sebuah diagram dari rantai Plasma Cash. Transaksi yang menghabiskan koin i ditempatkan ke posisi ke-i dalam pohon. Dalam contoh ini, dengan asumsi semua pohon sebelumnya valid, kita tahu bahwa Eve saat ini memiliki koin 1, David memiliki koin 4, dan George memiliki koin 6.
Versi awal Plasma hanya mampu menangani kasus penggunaan pembayaran, dan tidak dapat secara efektif menggeneralisasi lebih lanjut. Namun, jika kita mengharuskan setiap root diverifikasi dengan SNARK, Plasma menjadi jauh lebih kuat. Setiap permainan tantangan dapat disederhanakan secara signifikan, karena kami mengambil jalur yang paling mungkin bagi operator untuk menipu. Jalur baru juga terbuka untuk memungkinkan teknik Plasma diperluas ke kelas aset yang jauh lebih umum. Akhirnya, dalam kasus di mana operator tidak curang, pengguna dapat menarik dana mereka secara instan, tanpa perlu menunggu periode tantangan satu minggu.
Salah satu cara (bukan satu-satunya cara) untuk membuat rantai plasma EVM: gunakan ZK-SNARK untuk membangun pohon UTXO paralel yang mencerminkan perubahan saldo yang dilakukan oleh EVM, dan mendefinisikan pemetaan unik dari apa yang merupakan "koin yang sama" pada titik-titik berbeda dalam sejarah. Konstruksi Plasma kemudian dapat dibangun di atasnya.
Satu wawasan kunci adalah bahwa sistem Plasma tidak perlu sempurna. Bahkan jika Anda hanya bisa melindungi sebagian aset (misalnya, bahkan hanya koin yang tidak bergerak dalam seminggu terakhir), Anda telah sangat meningkatkan pada status quo ultra-scalable EVM, yang merupakan validium yang valid.
Kelas konstruksi lainnya adalah plasma hibrid/gulungan, seperti Intmax. Konstruksi-konstruksi ini menempatkan jumlah data yang sangat kecil per pengguna di onchain (misalnya 5 byte), dan dengan melakukan hal tersebut, Anda mendapatkan properti yang berada di suatu tempat di antara plasma dan rollups: dalam kasus Intmax, Anda mendapatkan tingkat skalabilitas dan privasi yang sangat tinggi, meskipun bahkan dalam dunia 16 MB kapasitasnya secara teoritis dibatasi sekitar 16.000.000 / 12 / 5 = 266.667 TPS.
Tugas utama yang tersisa adalah untuk membawa sistem Plasma ke tahap produksi. Seperti yang disebutkan di atas, “plasma vs validium” bukanlah binary: setiap validium dapat meningkatkan sedikit saja sifat keamanannya dengan menambahkan fitur Plasma ke dalam mekanisme keluar. Bagian penelitian adalah tentang mendapatkan sifat optimal (dalam hal persyaratan kepercayaan, biaya gas L1 dalam kasus terburuk, dan rentan terhadap DoS) untuk sebuah EVM, serta konstruksi aplikasi khusus alternatif. Selain itu, kompleksitas konseptual yang lebih besar dari Plasma dibandingkan dengan rollups perlu ditangani secara langsung, baik melalui penelitian maupun melalui konstruksi kerangka kerja umum yang lebih baik.
Kompromi utama dalam menggunakan desain Plasma adalah bahwa mereka lebih bergantung pada operator dan lebih sulit untuk dibuatberbasisMeskipun desain plasma/rollup hibrida seringkali dapat menghindari kelemahan ini.
Semakin efektif solusi Plasma, semakin sedikit tekanan yang ada bagi L1 untuk memiliki fungsionalitas ketersediaan data berkinerja tinggi. Memindahkan aktivitas ke L2 juga mengurangi tekanan MEV pada L1.
Saat ini, sebagian besar rollups sebenarnya belum sepenuhnya tidak dapat dipercaya; ada dewan keamanan yang memiliki kemampuan untuk mengesampingkan perilaku dari (optimis atau validitas)sistem buktiDalam beberapa kasus, sistem bukti bahkan tidak sepenuhnya aktif, atau jika memang aktif, hanya memiliki fungsi 'penasihat'. Yang paling maju adalah (i) beberapa rollup khusus aplikasi, seperti Fuel, yang tidak memerlukan kepercayaan, dan (ii) pada saat penulisan ini, Optimism dan Arbitrum, dua rollup penuh-EVM yang telah mencapai tonggak sebagian-kepercayaan yang dikenal sebagai 'tahap 1'. Alasan mengapa rollup tidak berkembang lebih jauh adalah kekhawatiran tentang bug dalam kode. Kita memerlukan rollup tanpa kepercayaan, oleh karena itu kita perlu menangani masalah ini secara langsung.
Pertama, mari kita mengulang sistem “stage”, yang awalnya diperkenalkan diposting iniAda persyaratan lebih rinci, tetapi ringkasannya adalah:
Tujuannya adalah mencapai Tahap 2. Tantangan utama dalam mencapai tahap 2 adalah mendapatkan cukup keyakinan bahwa sistem bukti tersebut benar-benar cukup dapat dipercaya. Ada dua cara utama untuk melakukannya:
Diagram bergaya multi-prover, menggabungkan satu sistem bukti optimis, satu sistem bukti validitas dan dewan keamanan.
Untuk verifikasi formal, banyak. Kita perlu membuat versi yang diverifikasi secara formal dari seluruh prover SNARK dari EVM. Ini adalah proyek yang sangat kompleks, meskipun itu adalah salah satu yang kami sudah mulai. Ada satu trik yang secara signifikan menyederhanakan tugas: kita dapat membuat prover SNARK yang diverifikasi secara formal dari VM minimal, misalnya. RISC-VatauKairo, dan kemudian menulis implementasi EVM dalam VM minimal tersebut (dan membuktikan secara formal kesetaraannya dengan beberapa spesifikasi EVM lain).
Untuk multi-pemberi bukti, ada dua bagian utama yang tersisa. Pertama, kita perlu mendapatkan cukup keyakinan dalam setidaknya dua sistem bukti yang berbeda, baik bahwa mereka cukup aman secara individu dan bahwa jika mereka rusak, mereka akan rusak karena alasan yang berbeda dan tidak terkait (dan sehingga mereka tidak akan rusak pada saat yang sama). Kedua, kita perlu mendapatkan tingkat keyakinan yang sangat tinggi dalam logika dasar yang menggabungkan sistem bukti. Ini adalah bagian kode yang jauh lebih kecil. Ada cara untuk membuatnya sangat kecil - cukup simpan dana dalam sebuahKontrak multisig amanyang penandatangannya adalah kontrak yang mewakili sistem bukti individu - tetapi ini memiliki keseimbangan biaya gas onchain yang tinggi. Sejumlah keseimbangan antara efisiensi dan keamanan perlu ditemukan.
Mengalihkan aktivitas ke L2 mengurangi tekanan MEV pada L1.
Salah satu tantangan utama dengan ekosistem L2 saat ini adalah sulit bagi pengguna untuk menavigasinya. Selain itu, cara paling mudah untuk melakukannya seringkali memperkenalkan asumsi kepercayaan kembali: jembatan terpusat, klien RPC, dan sebagainya. Jika kita serius tentang gagasan bahwa L2 adalah bagian dari Ethereum, kita perlu membuat penggunaan ekosistem L2 terasa seperti menggunakan ekosistem Ethereum yang terpadu.
Contoh penggunaan lintasan yang sangat buruk (dan bahkan berbahaya: saya pribadi kehilangan $100 akibat kesalahan pemilihan rantai di sini) pada UX lintas-L2 - meskipun ini bukan kesalahan Polymarket, interoperabilitas lintas-L2 seharusnya menjadi tanggung jawab dompet dan komunitas standar Ethereum (ERC). Dalam ekosistem Ethereum yang berfungsi dengan baik, mengirim koin dari L1 ke L2, atau dari satu L2 ke yang lain, seharusnya terasa sama seperti mengirim koin dalam L1 yang sama.
Ada banyak kategori perbaikan interoperabilitas lintas-L2. Secara umum, cara untuk menghasilkan ini adalah dengan memperhatikan bahwa dalam teori, Sebuah Ethereum yang berpusat pada rollup adalah hal yang sama dengan sharding eksekusi L1, dan kemudian bertanya di mana dunia Ethereum L2 saat ini kurang dalam praktiknya. Berikut adalah beberapa:
Bagaimana klien ringan dapat memperbarui tampilannya dari rantai header Ethereum. Begitu Anda memiliki rantai header, Anda dapat menggunakan bukti Merkle untuk memvalidasi objek status apa pun. Dan begitu Anda memiliki objek status L1 yang tepat, Anda dapat menggunakan bukti Merkle (dan mungkin tanda tangan, jika Anda ingin memeriksa pra-konfirmasi) untuk memvalidasi objek status apa pun di L2. Helios sudah melakukan yang pertama. Memperluas ke yang terakhir adalah tantangan standarisasi.
Sebuah diagram bergaya tentang bagaimana dompet keystore bekerja.
Banyak contoh di atas menghadapi dilema standar kapan harus membakukan dan lapisan apa yang harus distandarisasi. Jika Anda membakukan terlalu dini, Anda berisiko memperkuat solusi yang lebih rendah. Jika Anda terlambat membakukan, Anda berisiko menciptakan fragmentasi yang tidak perlu. Dalam beberapa kasus, ada solusi jangka pendek yang memiliki sifat lebih lemah tetapi lebih mudah diterapkan, dan solusi jangka panjang yang "pada akhirnya benar" tetapi akan memakan waktu beberapa tahun untuk sampai ke sana.
Salah satu hal yang membuat bagian ini unik adalah bahwa tugas-tugas ini bukan hanya masalah teknis: mereka juga (bahkan mungkin terutama!) masalah sosial. Mereka memerlukan L2s dan dompet dan L1 untuk bekerja sama. Kemampuan kita untuk menangani masalah ini dengan sukses adalah ujian kemampuan kita untuk bertahan bersama sebagai komunitas.
Sebagian besar proposal ini adalah konstruksi "lapisan tinggi", sehingga tidak terlalu mempengaruhi pertimbangan L1. Satu pengecualian adalah pengurutan bersama, yang berdampak besar pada MEV.
Jika L2 menjadi sangat scalable dan sukses tetapi L1 tetap mampu hanya memproses volume transaksi yang sangat rendah, ada banyak risiko bagi Ethereum yang mungkin muncul:
Untuk alasan-alasan ini, penting untuk terus memperluas L1 itu sendiri, dan memastikan bahwa itu dapat terus menampung jumlah pengguna yang semakin meningkat.
Cara termudah untuk menskalakan adalah dengan hanya meningkatkan batas gas. Namun, ini berisiko memusatkan L1, dan dengan demikian melemahkan properti penting lainnya yang membuat Ethereum L1 begitu kuat: kredibilitasnya sebagai lapisan dasar yang kuat. Ada perdebatan yang sedang berlangsung tentang tingkat kenaikan batas gas sederhana yang berkelanjutan, dan ini juga berubah berdasarkan teknologi lain yang diimplementasikan untuk membuat blok yang lebih besar lebih mudah diverifikasi (misalnya kedaluwarsa sejarah, statelessness, bukti validitas L1 EVM). Hal penting lainnya untuk terus ditingkatkan adalah efisiensi perangkat lunak klien Ethereum, yang jauh lebih optimal hari ini daripada lima tahun yang lalu. Strategi peningkatan batas gas L1 yang efektif akan melibatkan percepatan teknologi verifikasi ini.
Strategi penskalaan lain melibatkan mengidentifikasi fitur-fitur khusus dan jenis komputasi yang dapat dibuat lebih murah tanpa merusak desentralisasi jaringan atau properti keamanannya. Contoh-contoh ini termasuk:
Peningkatan ini akan dibahas lebih detail dalam pos yang akan datang di Splurge.
Akhirnya, strategi ketiga adalah rollups asli (atau “rollups diabadikan”): pada dasarnya, membuat banyak salinan dari EVM yang berjalan secara paralel, mengarah pada model yang setara dengan apa yang rollups dapat berikan, tetapi jauh lebih terintegrasi secara asli ke dalam protokol.
Ada tiga strategi untuk penskalaan L1, yang dapat dikejar secara individu atau secara paralel:
Sangat penting untuk memahami bahwa ini adalah teknik yang berbeda yang memiliki tradeoff yang berbeda. Sebagai contoh, rollup asli memiliki banyak kelemahan yang sama dalam komposabilitas seperti rollup reguler: Anda tidak dapat mengirimkan transaksi tunggal yang secara sinkron melakukan operasi di banyak rollup, seperti yang dapat Anda lakukan dengan kontrak pada L1 (atau L2) yang sama. Meningkatkan batas gas mengurangi manfaat lain yang dapat dicapai dengan membuat L1 lebih mudah diverifikasi, seperti meningkatkan bagian dari pengguna yang menjalankan node verifikasi, dan meningkatkan solo stakers. Membuat operasi tertentu dalam EVM lebih murah, tergantung pada cara melakukannya, dapat meningkatkan kompleksitas total EVM.
Pertanyaan besar yang perlu dijawab oleh peta jalan penskalaan L1 adalah: apa visi akhir untuk apa yang termasuk dalam L1 dan apa yang termasuk dalam L2? Jelas, tidak masuk akal untuk semuanya berjalan di L1: kasus penggunaan potensial masuk ke ratusan ribu transaksi per detik, dan itu akan membuat L1 benar-benar tidak layak untuk diverifikasi (kecuali kita pergi rute rollup asli). Tetapi kita memang membutuhkan beberapa prinsip panduan, sehingga kita dapat memastikan bahwa kita tidak menciptakan situasi di mana kita meningkatkan batas gas 10x, sangat merusak desentralisasi Ethereum L1, dan menemukan bahwa kita hanya sampai ke dunia di mana alih-alih 99% aktivitas berada di L2, 90% aktivitas ada di L2, dan hasilnya sebaliknya terlihat hampir sama, kecuali untuk kerugian ireversibel dari banyak hal yang membuat Ethereum L1 istimewa.
Satu pandangan yang diusulkan tentang "pembagian kerja" antara L1 dan L2, sumber.
Membawa lebih banyak pengguna ke L1 mengimplikasikan peningkatan bukan hanya dalam skala, tetapi juga aspek lain dari L1. Ini berarti bahwa lebih banyak MEV akan tetap berada di L1 (daripada menjadi masalah hanya untuk L2), dan dengan demikian akan menjadi kebutuhan yang lebih mendesak untuk menanganinya secara eksplisit. Ini sangat meningkatkan nilai memiliki waktu slot yang cepat di L1. Dan ini juga sangat bergantung pada verifikasi L1 ("the Verge") yang berjalan lancar.
Pada awalnya, Ethereum memiliki dua strategi penskalaan dalam roadmap-nya. Salah satunya (misalnya lihat kertas ini Dari 2015) adalah "sharding": alih-alih memverifikasi dan menyimpan semua transaksi dalam rantai, setiap node hanya perlu memverifikasi dan menyimpan sebagian kecil dari transaksi. Ini adalah bagaimana jaringan peer-to-peer lainnya (mis. BitTorrent) juga berfungsi, jadi pasti kita bisa membuat blockchain bekerja dengan cara yang sama. Yang lainnya adalah protokol lapisan 2: jaringan yang akan duduk di atas Ethereum dengan cara yang memungkinkan mereka untuk sepenuhnya mendapatkan keuntungan dari keamanannya, sambil menjaga sebagian besar data dan perhitungan dari rantai utama. "Protokol Layer 2" berarti saluran negarapada tahun 2015, Plasmapada tahun 2017, dan kemudianrollupsPada tahun 2019, Rollups lebih kuat daripada saluran status atau Plasma, tetapi mereka memerlukan jumlah bandwidth data on-chain yang besar. Untungnya, pada tahun 2019 penelitian sharding telah menyelesaikan Masalah verifikasi "ketersediaan data" dalam skala besarSebagai hasilnya, kedua jalur tersebut berpotongan, dan kita mendapat rencana jalan lintasan rollupyang tetap menjadi strategi penskalaan Ethereum hari ini.
The Surge, edisi peta jalan 2023.
Peta jalan yang berpusat pada rollup mengusulkan pembagian kerja yang sederhana: Ethereum L1 berfokus untuk menjadi lapisan dasar yang tangguh dan terdesentralisasi, sementara L2 mengambil tugas untuk membantu ekosistem berkembang. Ini adalah pola yang berulang di mana-mana dalam masyarakat: sistem pengadilan (L1) tidak hadir untuk menjadi ultra-cepat dan efisien, tetapi hadir untuk melindungi kontrak dan hak milik, dan terserah para wirausahawan (L2) untuk membangun di atasnya.kokohbasislapisandan membawa umat manusia ke Mars (secara metaforis dan harfiah).
Tahun ini, peta jalan yang berpusat pada rollup telah melihat kesuksesan penting: lebar pita data Ethereum L1 telah meningkat secara signifikan denganblob EIP-4844, dan sekarang ada beberapa EVM rollups pada tahap 1. Sebuah sangat implementasi penggandaan dan pluralistik dari sharding, di mana setiap L2 bertindak sebagai "pecahan" dengan aturan dan logika internalnya sendiri, sekarang menjadi kenyataan. Tetapi seperti yang telah kita lihat, mengambil jalan ini memiliki beberapa tantangan unik tersendiri. Jadi sekarang tugas kita adalah menyelesaikan peta jalan rollup-centric, dan menyelesaikan masalah ini, sambil mempertahankan ketahanan dan desentralisasi yang membuat Ethereum L1 istimewa.
Trilema skalabilitas adalah sebuah ide diperkenalkan pada tahun 2017, yang berpendapat bahwa ada ketegangan antara tiga properti dari blockchain: desentralisasi (lebih spesifik: biaya rendah untuk menjalankan node), skalabilitas (lebih spesifik: jumlah transaksi yang diproses tinggi), dan keamanan (lebih spesifik: seorang penyerang perlu merusak sebagian besar node dalam jaringan keseluruhan untuk membuat bahkan satu transaksi gagal).
Perlu dicatat, trilema bukanlah sebuah teorema, dan posting yang memperkenalkan trilema tidak disertai dengan bukti matematis. Namun, posting tersebut memberikan argumen matematis heuristik: jika sebuah node yang ramah terhadap desentralisasi (misalnya laptop konsumen) dapat memverifikasi N transaksi per detik, dan Anda memiliki sebuah rantai yang memproses k*N transaksi per detik, maka entah (i) setiap transaksi hanya terlihat oleh 1/k dari node, yang menyiratkan bahwa seorang penyerang hanya perlu merusak beberapa node untuk mendorong transaksi buruk, atau (ii) node Anda akan menjadi kuat dan rantai Anda tidak terdesentralisasi. Tujuan dari posting tersebut bukanlah untuk menunjukkan bahwa memecah trilema adalah tidak mungkin; sebaliknya, tujuannya adalah untuk menunjukkan bahwa memecah trilema sulit - itu memerlukan cara berpikir di luar kotak yang disiratkan oleh argumen tersebut.
Selama bertahun-tahun, sudah umum bagi beberapa rantai kinerja tinggi untuk mengklaim bahwa mereka memecahkan trilema tanpa melakukan hal cerdas pada tingkat arsitektur fundamental, biasanya dengan menggunakan trik rekayasa perangkat lunak untuk mengoptimalkan simpul. Ini selalu menyesatkan, dan menjalankan simpul dalam rantai-rantai tersebut selalu berakhir jauh lebih sulit daripada di Ethereum.Posting inimasuk ke beberapa subtleties mengapa hal ini terjadi (dan oleh karena itu, mengapa rekayasa perangkat lunak klien L1 sendiri tidak dapat meningkatkan Ethereum itu sendiri).
Namun, kombinasi pengambilan sampel ketersediaan data dan SNARK memecahkan trilema: hal ini memungkinkan klien untuk memverifikasi bahwa sejumlah data tersedia, dan sejumlah langkah komputasi dilakukan dengan benar, sambil hanya mengunduh sebagian kecil data itu dan menjalankan jumlah komputasi yang jauh lebih kecil. SNARK adalah tanpa kepercayaan. Pengambilan sampel ketersediaan data memiliki nuansamodel kepercayaan few-of-N, namun itu tetap mempertahankan sifat fundamental yang dimiliki oleh rantai yang tidak dapat diskalakan, yaitu bahwa bahkan serangan 51% pun tidak dapat memaksa blok buruk diterima oleh jaringan.
Salah satu cara untuk menyelesaikan trilema adalah arsitektur Plasma, yang menggunakan teknik cerdas untuk mendorong tanggung jawab memantau ketersediaan data kepada pengguna dengan cara yang sesuai insentif. Kembali pada tahun 2017-2019, ketika yang kita miliki untuk meningkatkan komputasi hanyalah bukti penipuan, Plasma sangat terbatas dalam hal apa yang dapat dilakukannya dengan aman, tetapi penggunaan SNARK secara umum membuat arsitektur Plasma jauh lebih layakuntuk berbagai kasus penggunaan yang lebih luas dari sebelumnya.
Pada 13 Maret 2024, ketika Upgrade Dencun Ditayangkan, blockchain Ethereum memiliki tiga ~ 125 kB "gumpalan" per slot 12 detik, atau ~ 375 kB per slot bandwidth ketersediaan data. Dengan asumsi data transaksi dipublikasikan secara onchain secara langsung, transfer ERC20 adalah ~ 180 byte, sehingga TPS maksimum rollup di Ethereum adalah:
375000 / 12 / 180 = 173.6 TPS
Jika kita menambahkan calldata Ethereum (maksimum teoretis: 30 juta gas per slot / 16 gas per byte = 1.875.000 byte per slot), ini menjadi 607 TPS. Dengan PeerDAS, rencananya adalah untuk meningkatkan target hitungan blob menjadi 8-16, yang akan memberikan kita 463-926 TPS dalam calldata.
Ini adalah peningkatan besar dari Ethereum L1, tetapi belum cukup. Kami menginginkan skalabilitas yang jauh lebih besar. Target menengah kami adalah 16 MB per slot, yang jika dikombinasikan dengan peningkatan dalam kompresi data rollup akan memberikan kami ~58.000 TPS.
PeerDAS adalah implementasi yang relatif sederhana dari “1D sampling”. Setiap blob di Ethereum adalah polinomial derajat-4096 di atas lapangan prima 253-bit. Kami menyiarkan “bagian” dari polinomial, di mana setiap bagian terdiri dari 16 evaluasi pada 16 koordinat bersebelahan yang diambil dari total 8192 koordinat. Sebanyak 4096 dari 8192 evaluasi (dengan parameter yang diusulkan saat ini: 64 dari 128 sampel yang mungkin) dapat memulihkan blob tersebut.
PeerDAS bekerja dengan membuat setiap klien mendengarkan sejumlah kecil subnet, di mana subnet ke-i menyiarkan sampel ke-i dari setiap blob, dan juga meminta blob pada subnet lain yang diperlukan dengan cara meminta rekan-rekannya dalam jaringan p2p global (yang akan mendengarkan subnet yang berbeda). Versi yang lebih konservatif, SubnetDAS, menggunakan hanya mekanisme subnet, tanpa lapisan tambahan bertanya kepada rekan sebaya. Proposal saat ini adalah agar node-node yang berpartisipasi dalam bukti kepemilikan menggunakan SubnetDAS, dan node-node lain (yaitu “klien-klien”) menggunakan PeerDAS.
Secara teori, kita bisa memperluas sampel 1D cukup jauh: jika kita meningkatkan jumlah blob maksimum menjadi 256 (jadi, target menjadi 128), maka kita akan mencapai target 16 MB sementara sampel ketersediaan data hanya akan biaya setiap node 16 sampel128 blob512 byte per sampel per blob = 1 MB bandwidth data per slot. Ini hanya cukup dalam jangkauan toleransi kami: bisa dilakukan, tetapi akan berarti klien yang terbatas bandwidth tidak dapat melakukan sampel. Kami bisa mengoptimalkan ini sedikit dengan mengurangi jumlah blob dan menambah ukuran blob, tetapi ini akan membuat rekonstruksi lebih mahal.
Dan akhirnya kami ingin pergi lebih jauh, dan melakukan2D sampling, yang berfungsi dengan pengambilan sampel acak bukan hanya di dalam blog, tetapi juga di antara blog. Properti linear dari komitmen KZG digunakan untuk “memperluas” kumpulan blog dalam blok dengan daftar “blog virtual” baru yang secara berlebihan mengkodekan informasi yang sama.
Pengambilan sampel 2D. Sumber: a16z crypto
Pentingnya, menghitung perpanjangan dari komitmen tidak memerlukan adanya blob, sehingga skema ini pada dasarnya ramah terhadap konstruksi blok terdistribusi. Node yang sebenarnya membangun blok hanya perlu memiliki komitmen blob KZG, dan dapat mengandalkan DAS untuk memverifikasi ketersediaan blob tersebut. 1D DAS juga secara inheren ramah terhadap konstruksi blok yang terdistribusi.
Langkah selanjutnya adalah menyelesaikan implementasi dan peluncuran PeerDAS. Dari sana, langkah berikutnya adalah secara progresif meningkatkan jumlah blob di PeerDAS sambil dengan cermat memantau jaringan dan meningkatkan perangkat lunak untuk memastikan keamanan. Pada saat yang sama, kami menginginkan lebih banyak karya akademis dalam memformalkan PeerDAS dan versi lain dari DAS serta interaksinya dengan isu-isu seperti keamanan aturan pemilihan fork.
Lebih jauh ke masa depan, kita membutuhkan lebih banyak pekerjaan untuk mencari tahu versi ideal DAS 2D dan membuktikan sifat keamanannya. Kami juga ingin akhirnya bermigrasi dari KZG ke alternatif bebas pengaturan yang tahan kuantum dan tepercaya. Saat ini, kami tidak tahu kandidat yang ramah terhadap bangunan blok yang didistribusikan. Bahkan teknik "brute force" yang mahal dalam menggunakan STARK rekursif untuk menghasilkan bukti validitas untuk merekonstruksi baris dan kolom tidak cukup, karena sementara secara teknis STARK adalah O(log(n) * log(log(n)) hash dalam ukuran (dengan STIR), dalam praktiknya STARK hampir sebesar satu blob keseluruhan.
Jalur realistis yang saya lihat untuk jangka panjang adalah:
Kita dapat melihat ini sepanjang spektrum tradeoff:
Perhatikan bahwa pilihan ini tetap ada bahkan jika kita memutuskan untuk melakukan skala eksekusi langsung di L1. Hal ini karena jika L1 harus memproses banyak TPS, blok L1 akan menjadi sangat besar, dan klien akan menginginkan cara yang efisien untuk memverifikasi bahwa mereka benar, sehingga kita harus menggunakan teknologi yang sama yang menggerakkan rollups (ZK-EVM dan DAS) di L1.
Kebutuhan akan 2D DAS agak berkurang, atau setidaknya ditunda, jika kompresi data (lihat di bawah) diimplementasikan, dan ini lebih berkurang jika Plasma digunakan secara luas. DAS juga menimbulkan tantangan bagi protokol dan mekanisme pembangunan blok terdistribusi: sementara DAS secara teoritis ramah terhadap rekonstruksi terdistribusi, ini perlu digabungkan dalam praktik dengandaftar inklusiproposals dan mekanisme pemilihan fork di sekitarnya.
Setiap transaksi dalam rollup membutuhkan sejumlah besar ruang data onchain: transfer ERC20 membutuhkan sekitar 180 byte. Bahkan dengan pengambilan sampel ketersediaan data yang ideal, ini membatasi skalabilitas protokol lapisan 2. Dengan 16 MB per slot, kita mendapatkan:
16000000 / 12 / 180 = 7407 TPS
Bagaimana jika selain menangani pembilang, kita juga bisa menangani penyebut, dan membuat setiap transaksi dalam rollup mengambil lebih sedikit byte onchain?
Penjelasan terbaik menurut pendapat saya adalah diagram inidari dua tahun yang lalu:
Kenaikan paling sederhana hanyalah kompresi byte nol: mengganti setiap urutan panjang byte nol dengan dua byte yang mewakili berapa banyak byte nol yang ada. Untuk lebih jauh, kita memanfaatkan properti khusus dari transaksi:
Hal utama yang harus dilakukan adalah benar-benar menerapkan skema di atas. Kompromi utama adalah:
Adopsi ERC-4337, dan akhirnya pengakuan bagi sebagian dari itu di L2 EVMs, dapat sangat mempercepat implementasi teknik agregasi. Pengakuan bagi sebagian dari ERC-4337 di L1 dapat mempercepat implementasinya di L2.
Bahkan dengan blok 16 MB dan kompresi data, 58.000 TPS belum tentu cukup untuk sepenuhnya mengambil alih pembayaran konsumen, sosial terdesentralisasi, atau sektor berbandwidth tinggi lainnya, dan hal ini menjadi benar-benar terutama jika kita mulai mempertimbangkan privasi, yang bisa menurunkan skalabilitas hingga 3-8x. Untuk aplikasi dengan volume tinggi dan nilai rendah, salah satu pilihan saat ini adalah validium, yang menyimpan data di luar rantai dan memiliki model keamanan yang menarik di mana operator tidak dapat mencuri dana pengguna, tetapi mereka bisa menghilang dan sementara atau secara permanen membekukan semua dana pengguna. Tetapi kita bisa melakukan lebih baik.
Plasma adalah solusi penskalaan yang melibatkan operator menerbitkan blok secara offchain, dan menempatkan akar Merkle dari blok-blok tersebut onchain (berbeda dengan rollups, di mana blok lengkap ditempatkan onchain). Untuk setiap blok, operator mengirimkan ke setiap pengguna sebuah cabang Merkle yang membuktikan apa yang terjadi, atau tidak terjadi, pada aset pengguna itu. Pengguna dapat menarik aset mereka dengan memberikan cabang Merkle. Yang penting, cabang ini tidak harus berakar dalam keadaan terbaru - karena alasan ini, bahkan jika ketersediaan data gagal, pengguna masih dapat memulihkan aset mereka dengan menarik keadaan terbaru yang tersedia. Jika seorang pengguna mengirimkan cabang yang tidak valid (misalnya keluar dari aset yang sudah dikirimkan kepada orang lain, atau operator sendiri menciptakan aset dari udara), mekanisme tantangan onchain dapat menyelesaikan siapa yang berhak memiliki aset tersebut.
Sebuah diagram dari rantai Plasma Cash. Transaksi yang menghabiskan koin i ditempatkan ke posisi ke-i dalam pohon. Dalam contoh ini, dengan asumsi semua pohon sebelumnya valid, kita tahu bahwa Eve saat ini memiliki koin 1, David memiliki koin 4, dan George memiliki koin 6.
Versi awal Plasma hanya mampu menangani kasus penggunaan pembayaran, dan tidak dapat secara efektif menggeneralisasi lebih lanjut. Namun, jika kita mengharuskan setiap root diverifikasi dengan SNARK, Plasma menjadi jauh lebih kuat. Setiap permainan tantangan dapat disederhanakan secara signifikan, karena kami mengambil jalur yang paling mungkin bagi operator untuk menipu. Jalur baru juga terbuka untuk memungkinkan teknik Plasma diperluas ke kelas aset yang jauh lebih umum. Akhirnya, dalam kasus di mana operator tidak curang, pengguna dapat menarik dana mereka secara instan, tanpa perlu menunggu periode tantangan satu minggu.
Salah satu cara (bukan satu-satunya cara) untuk membuat rantai plasma EVM: gunakan ZK-SNARK untuk membangun pohon UTXO paralel yang mencerminkan perubahan saldo yang dilakukan oleh EVM, dan mendefinisikan pemetaan unik dari apa yang merupakan "koin yang sama" pada titik-titik berbeda dalam sejarah. Konstruksi Plasma kemudian dapat dibangun di atasnya.
Satu wawasan kunci adalah bahwa sistem Plasma tidak perlu sempurna. Bahkan jika Anda hanya bisa melindungi sebagian aset (misalnya, bahkan hanya koin yang tidak bergerak dalam seminggu terakhir), Anda telah sangat meningkatkan pada status quo ultra-scalable EVM, yang merupakan validium yang valid.
Kelas konstruksi lainnya adalah plasma hibrid/gulungan, seperti Intmax. Konstruksi-konstruksi ini menempatkan jumlah data yang sangat kecil per pengguna di onchain (misalnya 5 byte), dan dengan melakukan hal tersebut, Anda mendapatkan properti yang berada di suatu tempat di antara plasma dan rollups: dalam kasus Intmax, Anda mendapatkan tingkat skalabilitas dan privasi yang sangat tinggi, meskipun bahkan dalam dunia 16 MB kapasitasnya secara teoritis dibatasi sekitar 16.000.000 / 12 / 5 = 266.667 TPS.
Tugas utama yang tersisa adalah untuk membawa sistem Plasma ke tahap produksi. Seperti yang disebutkan di atas, “plasma vs validium” bukanlah binary: setiap validium dapat meningkatkan sedikit saja sifat keamanannya dengan menambahkan fitur Plasma ke dalam mekanisme keluar. Bagian penelitian adalah tentang mendapatkan sifat optimal (dalam hal persyaratan kepercayaan, biaya gas L1 dalam kasus terburuk, dan rentan terhadap DoS) untuk sebuah EVM, serta konstruksi aplikasi khusus alternatif. Selain itu, kompleksitas konseptual yang lebih besar dari Plasma dibandingkan dengan rollups perlu ditangani secara langsung, baik melalui penelitian maupun melalui konstruksi kerangka kerja umum yang lebih baik.
Kompromi utama dalam menggunakan desain Plasma adalah bahwa mereka lebih bergantung pada operator dan lebih sulit untuk dibuatberbasisMeskipun desain plasma/rollup hibrida seringkali dapat menghindari kelemahan ini.
Semakin efektif solusi Plasma, semakin sedikit tekanan yang ada bagi L1 untuk memiliki fungsionalitas ketersediaan data berkinerja tinggi. Memindahkan aktivitas ke L2 juga mengurangi tekanan MEV pada L1.
Saat ini, sebagian besar rollups sebenarnya belum sepenuhnya tidak dapat dipercaya; ada dewan keamanan yang memiliki kemampuan untuk mengesampingkan perilaku dari (optimis atau validitas)sistem buktiDalam beberapa kasus, sistem bukti bahkan tidak sepenuhnya aktif, atau jika memang aktif, hanya memiliki fungsi 'penasihat'. Yang paling maju adalah (i) beberapa rollup khusus aplikasi, seperti Fuel, yang tidak memerlukan kepercayaan, dan (ii) pada saat penulisan ini, Optimism dan Arbitrum, dua rollup penuh-EVM yang telah mencapai tonggak sebagian-kepercayaan yang dikenal sebagai 'tahap 1'. Alasan mengapa rollup tidak berkembang lebih jauh adalah kekhawatiran tentang bug dalam kode. Kita memerlukan rollup tanpa kepercayaan, oleh karena itu kita perlu menangani masalah ini secara langsung.
Pertama, mari kita mengulang sistem “stage”, yang awalnya diperkenalkan diposting iniAda persyaratan lebih rinci, tetapi ringkasannya adalah:
Tujuannya adalah mencapai Tahap 2. Tantangan utama dalam mencapai tahap 2 adalah mendapatkan cukup keyakinan bahwa sistem bukti tersebut benar-benar cukup dapat dipercaya. Ada dua cara utama untuk melakukannya:
Diagram bergaya multi-prover, menggabungkan satu sistem bukti optimis, satu sistem bukti validitas dan dewan keamanan.
Untuk verifikasi formal, banyak. Kita perlu membuat versi yang diverifikasi secara formal dari seluruh prover SNARK dari EVM. Ini adalah proyek yang sangat kompleks, meskipun itu adalah salah satu yang kami sudah mulai. Ada satu trik yang secara signifikan menyederhanakan tugas: kita dapat membuat prover SNARK yang diverifikasi secara formal dari VM minimal, misalnya. RISC-VatauKairo, dan kemudian menulis implementasi EVM dalam VM minimal tersebut (dan membuktikan secara formal kesetaraannya dengan beberapa spesifikasi EVM lain).
Untuk multi-pemberi bukti, ada dua bagian utama yang tersisa. Pertama, kita perlu mendapatkan cukup keyakinan dalam setidaknya dua sistem bukti yang berbeda, baik bahwa mereka cukup aman secara individu dan bahwa jika mereka rusak, mereka akan rusak karena alasan yang berbeda dan tidak terkait (dan sehingga mereka tidak akan rusak pada saat yang sama). Kedua, kita perlu mendapatkan tingkat keyakinan yang sangat tinggi dalam logika dasar yang menggabungkan sistem bukti. Ini adalah bagian kode yang jauh lebih kecil. Ada cara untuk membuatnya sangat kecil - cukup simpan dana dalam sebuahKontrak multisig amanyang penandatangannya adalah kontrak yang mewakili sistem bukti individu - tetapi ini memiliki keseimbangan biaya gas onchain yang tinggi. Sejumlah keseimbangan antara efisiensi dan keamanan perlu ditemukan.
Mengalihkan aktivitas ke L2 mengurangi tekanan MEV pada L1.
Salah satu tantangan utama dengan ekosistem L2 saat ini adalah sulit bagi pengguna untuk menavigasinya. Selain itu, cara paling mudah untuk melakukannya seringkali memperkenalkan asumsi kepercayaan kembali: jembatan terpusat, klien RPC, dan sebagainya. Jika kita serius tentang gagasan bahwa L2 adalah bagian dari Ethereum, kita perlu membuat penggunaan ekosistem L2 terasa seperti menggunakan ekosistem Ethereum yang terpadu.
Contoh penggunaan lintasan yang sangat buruk (dan bahkan berbahaya: saya pribadi kehilangan $100 akibat kesalahan pemilihan rantai di sini) pada UX lintas-L2 - meskipun ini bukan kesalahan Polymarket, interoperabilitas lintas-L2 seharusnya menjadi tanggung jawab dompet dan komunitas standar Ethereum (ERC). Dalam ekosistem Ethereum yang berfungsi dengan baik, mengirim koin dari L1 ke L2, atau dari satu L2 ke yang lain, seharusnya terasa sama seperti mengirim koin dalam L1 yang sama.
Ada banyak kategori perbaikan interoperabilitas lintas-L2. Secara umum, cara untuk menghasilkan ini adalah dengan memperhatikan bahwa dalam teori, Sebuah Ethereum yang berpusat pada rollup adalah hal yang sama dengan sharding eksekusi L1, dan kemudian bertanya di mana dunia Ethereum L2 saat ini kurang dalam praktiknya. Berikut adalah beberapa:
Bagaimana klien ringan dapat memperbarui tampilannya dari rantai header Ethereum. Begitu Anda memiliki rantai header, Anda dapat menggunakan bukti Merkle untuk memvalidasi objek status apa pun. Dan begitu Anda memiliki objek status L1 yang tepat, Anda dapat menggunakan bukti Merkle (dan mungkin tanda tangan, jika Anda ingin memeriksa pra-konfirmasi) untuk memvalidasi objek status apa pun di L2. Helios sudah melakukan yang pertama. Memperluas ke yang terakhir adalah tantangan standarisasi.
Sebuah diagram bergaya tentang bagaimana dompet keystore bekerja.
Banyak contoh di atas menghadapi dilema standar kapan harus membakukan dan lapisan apa yang harus distandarisasi. Jika Anda membakukan terlalu dini, Anda berisiko memperkuat solusi yang lebih rendah. Jika Anda terlambat membakukan, Anda berisiko menciptakan fragmentasi yang tidak perlu. Dalam beberapa kasus, ada solusi jangka pendek yang memiliki sifat lebih lemah tetapi lebih mudah diterapkan, dan solusi jangka panjang yang "pada akhirnya benar" tetapi akan memakan waktu beberapa tahun untuk sampai ke sana.
Salah satu hal yang membuat bagian ini unik adalah bahwa tugas-tugas ini bukan hanya masalah teknis: mereka juga (bahkan mungkin terutama!) masalah sosial. Mereka memerlukan L2s dan dompet dan L1 untuk bekerja sama. Kemampuan kita untuk menangani masalah ini dengan sukses adalah ujian kemampuan kita untuk bertahan bersama sebagai komunitas.
Sebagian besar proposal ini adalah konstruksi "lapisan tinggi", sehingga tidak terlalu mempengaruhi pertimbangan L1. Satu pengecualian adalah pengurutan bersama, yang berdampak besar pada MEV.
Jika L2 menjadi sangat scalable dan sukses tetapi L1 tetap mampu hanya memproses volume transaksi yang sangat rendah, ada banyak risiko bagi Ethereum yang mungkin muncul:
Untuk alasan-alasan ini, penting untuk terus memperluas L1 itu sendiri, dan memastikan bahwa itu dapat terus menampung jumlah pengguna yang semakin meningkat.
Cara termudah untuk menskalakan adalah dengan hanya meningkatkan batas gas. Namun, ini berisiko memusatkan L1, dan dengan demikian melemahkan properti penting lainnya yang membuat Ethereum L1 begitu kuat: kredibilitasnya sebagai lapisan dasar yang kuat. Ada perdebatan yang sedang berlangsung tentang tingkat kenaikan batas gas sederhana yang berkelanjutan, dan ini juga berubah berdasarkan teknologi lain yang diimplementasikan untuk membuat blok yang lebih besar lebih mudah diverifikasi (misalnya kedaluwarsa sejarah, statelessness, bukti validitas L1 EVM). Hal penting lainnya untuk terus ditingkatkan adalah efisiensi perangkat lunak klien Ethereum, yang jauh lebih optimal hari ini daripada lima tahun yang lalu. Strategi peningkatan batas gas L1 yang efektif akan melibatkan percepatan teknologi verifikasi ini.
Strategi penskalaan lain melibatkan mengidentifikasi fitur-fitur khusus dan jenis komputasi yang dapat dibuat lebih murah tanpa merusak desentralisasi jaringan atau properti keamanannya. Contoh-contoh ini termasuk:
Peningkatan ini akan dibahas lebih detail dalam pos yang akan datang di Splurge.
Akhirnya, strategi ketiga adalah rollups asli (atau “rollups diabadikan”): pada dasarnya, membuat banyak salinan dari EVM yang berjalan secara paralel, mengarah pada model yang setara dengan apa yang rollups dapat berikan, tetapi jauh lebih terintegrasi secara asli ke dalam protokol.
Ada tiga strategi untuk penskalaan L1, yang dapat dikejar secara individu atau secara paralel:
Sangat penting untuk memahami bahwa ini adalah teknik yang berbeda yang memiliki tradeoff yang berbeda. Sebagai contoh, rollup asli memiliki banyak kelemahan yang sama dalam komposabilitas seperti rollup reguler: Anda tidak dapat mengirimkan transaksi tunggal yang secara sinkron melakukan operasi di banyak rollup, seperti yang dapat Anda lakukan dengan kontrak pada L1 (atau L2) yang sama. Meningkatkan batas gas mengurangi manfaat lain yang dapat dicapai dengan membuat L1 lebih mudah diverifikasi, seperti meningkatkan bagian dari pengguna yang menjalankan node verifikasi, dan meningkatkan solo stakers. Membuat operasi tertentu dalam EVM lebih murah, tergantung pada cara melakukannya, dapat meningkatkan kompleksitas total EVM.
Pertanyaan besar yang perlu dijawab oleh peta jalan penskalaan L1 adalah: apa visi akhir untuk apa yang termasuk dalam L1 dan apa yang termasuk dalam L2? Jelas, tidak masuk akal untuk semuanya berjalan di L1: kasus penggunaan potensial masuk ke ratusan ribu transaksi per detik, dan itu akan membuat L1 benar-benar tidak layak untuk diverifikasi (kecuali kita pergi rute rollup asli). Tetapi kita memang membutuhkan beberapa prinsip panduan, sehingga kita dapat memastikan bahwa kita tidak menciptakan situasi di mana kita meningkatkan batas gas 10x, sangat merusak desentralisasi Ethereum L1, dan menemukan bahwa kita hanya sampai ke dunia di mana alih-alih 99% aktivitas berada di L2, 90% aktivitas ada di L2, dan hasilnya sebaliknya terlihat hampir sama, kecuali untuk kerugian ireversibel dari banyak hal yang membuat Ethereum L1 istimewa.
Satu pandangan yang diusulkan tentang "pembagian kerja" antara L1 dan L2, sumber.
Membawa lebih banyak pengguna ke L1 mengimplikasikan peningkatan bukan hanya dalam skala, tetapi juga aspek lain dari L1. Ini berarti bahwa lebih banyak MEV akan tetap berada di L1 (daripada menjadi masalah hanya untuk L2), dan dengan demikian akan menjadi kebutuhan yang lebih mendesak untuk menanganinya secara eksplisit. Ini sangat meningkatkan nilai memiliki waktu slot yang cepat di L1. Dan ini juga sangat bergantung pada verifikasi L1 ("the Verge") yang berjalan lancar.