Pada tanggal 10 Oktober, pukul 14:00, solusi Ethereum Layer 2 Scroll mainnet menghasilkan blok pertamanya, menandai keberhasilan peluncuran mainnet Scroll. Pada tanggal 25 Oktober, lebih dari 7600 ETH telah dijembatani ke dalam jaringan Scroll melalui jembatan lintas rantai, dan 24 platform perdagangan terdesentralisasi telah ditayangkan di mainnet Scroll, dengan total TVL sekitar $10 juta.
Pada tanggal 17 Oktober, Scroll secara resmi mengumumkan peluncuran mainnetnya sambil terus menjunjung tinggi komitmennya terhadap open source dan desentralisasi. Pada fase berikutnya, Scroll akan fokus pada pembangunan jaringan dan penyortir bukti kepemilikan yang terdesentralisasi. Pada artikel ini, kami akan memberikan analisis mendetail tentang arsitektur dan teknologi Scroll untuk membantu semua orang memahami status jaringan saat ini dan arah pengembangan Scroll di masa depan. Kami juga akan menjelaskan sirkuit zkEVM Scroll dan pengetahuan audit untuk memperkuat langkah-langkah keamanan untuk proyek zk.
Scroll adalah solusi penskalaan Ethereum Layer 2 berdasarkan teknologi tanpa bukti pengetahuan, yang bertujuan untuk meningkatkan throughput transaksi dan kecepatan jaringan Ethereum. Dibandingkan dengan Optimistic Rollup, Scroll mencapai skalabilitas melalui bukti tanpa pengetahuan dan mempercepat pembuatan dan verifikasi bukti tanpa pengetahuan melalui akselerasi perangkat keras. Ia berkomitmen untuk mencapai kompatibilitas EVM tingkat bytecode. Ini berarti bahwa pengembang dapat langsung menggunakan alat pengembangan terkait Soliditas dan Ethereum untuk membuat kontrak pintar dan menerapkannya di Scroll tanpa modifikasi apa pun.
Menurut situs resmi Scroll, saat ini terdapat 10 anggota inti dalam tim Scroll, tersebar di Asia, Amerika, dan Eropa. Anggota tim memiliki pengalaman yang kaya dalam pengembangan zkRollup dan operasi industri, dengan sebagian besar dari mereka lulus dari universitas bergengsi dan memegang gelar PhD.
Saat ini, ekosistem Scroll sangat kaya, dengan proyek infrastruktur termasuk dompet, alat pengembangan, fasilitas keamanan, dan banyak lagi. Tujuannya adalah untuk memberikan dukungan komprehensif terhadap proyek di seluruh siklus hidup, mulai dari desain, pengembangan, pengoperasian, hingga audit keamanan. Saat ini, terdapat lebih dari 180 proyek ekosistem di mainnet Scroll.
Dompet
Scroll saat ini mendukung hampir semua dompet arus utama: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Selain itu, dompet ekosistem Scroll juga mencakup OKX Wallet, Versa Wallet, dan sebagainya.
Jembatan Lintas Rantai
Infrastruktur lintas rantai resmi Scroll mencakup Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext, dll. Selain itu, ini juga mencakup protokol likuiditas lintas rantai Synapse Protocol, Owlto Finance yang berfokus pada jembatan lintas rantai Layer 2, jembatan lintas rantai Ethereum Layer 1 dan Layer 2 Pheasant Network, Symbiosis, Catalyst, dll.
DeFi
Dalam ekosistem Scroll, terdapat beberapa proyek DeFi yang sudah mapan, termasuk protokol peminjaman Aave, agregator DEX multi-rantai DODO, DEX SushiSwap, agregator DEX OpenOcean, protokol DeFi multi-rantai iZUMi Finance, DEX Syncswap, protokol hasil Pendle Finance, peminjaman protokol dForce, dan leverage aggregator perdagangan Protokol MUX. Ada juga proyek inovatif seperti GMX yang belum diadopsi secara luas.
Yang lain
Dalam hal NFT, permainan, dan aspek sosial, proyek lain dalam ekosistem Scroll termasuk NFTScan, platform tugas Web3 QuestN, TaskOn, platform penandatanganan protokol elektronik EthSign, Galaxy Blitz, OmniKingdoms, dan permainan blockchain online lainnya.
Apa yang membedakan teknologi Scroll dari teknologi lainnya?
Arsitektur Scroll terdiri dari tiga komponen:
Scroll Node: Ini menghasilkan blok pada jaringan Scroll berdasarkan transaksi pengguna, mengirimkan transaksi ini ke lapisan dasar Ethereum, dan menangani pesan yang lewat antara Ethereum dan Scroll.
Roller: Roller bertanggung jawab untuk mengubah kontrak pintar menjadi sirkuit zkEVM, dan kemudian menghasilkan bukti untuk membuktikan kebenaran transaksi. Ada beberapa Roller di jaringan Scroll, yang memproses transaksi secara paralel dan mempercepat pembuatan bukti melalui perangkat keras. Scroll mencapai kompatibilitas tingkat bytecode dengan EVM dengan secara langsung membuktikan kebenaran pemrosesan bytecode EVM.
Kontrak Rollup dan Bridge: Kontrak ini menyediakan ketersediaan data untuk transaksi Scroll dan memverifikasi bukti validitas yang dihasilkan oleh zkEVM. Dapat dikatakan bahwa Scroll terhubung ke lapisan dasar Ethereum melalui kontrak Rollup dan Bridge. Melalui kontrak ini, pengguna dapat bertukar pesan sewenang-wenang antara Ethereum dan Scroll, dan mentransfer aset ERC-20 ke arah mana pun dengan bantuan kontrak gateway.
sumber: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k
Scroll adalah kontrak utama yang diterapkan pada blockchain Ethereum:
Kontrak Proksi Perutean Gateway (Memastikan pemetaan token yang benar dalam operasi lintas rantai):0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6
Kontrak Proksi Pesan (Mentransmisikan pesan antara L1 dan L2):0x6774Bcbd5ceF1336b5300fb5186a12DDD8b367
Perlu dicatat bahwa kontrak ini dapat diubah oleh admin dan pemilik proxy. Selain itu, Scroll telah memasukkan fungsi daftar putih yang memungkinkan penyesuaian biaya bahan bakar untuk alamat tertentu dalam Scroll. Saat ini, sequencer Scroll beroperasi secara terpusat, yang memungkinkan peninjauan pesan dan transaksi di jaringan Scroll. Selain itu, ada kemungkinan untuk melewati pesan apa pun dalam antrian pesan dan langsung mengonfirmasi pesan tertentu.
Setelah Scroll menghasilkan sebuah blok, ia melewati koordinator dan beberapa pembukti (Rollers) untuk menghasilkan bukti gabungan. Bukti-bukti ini kemudian diserahkan ke kontrak Ethereum Rollup untuk verifikasi. Proses detailnya adalah sebagai berikut:
1、Sequencer menerima transaksi baru. Mesin virtual membaca bytecode yang terkait dengan setiap transaksi, menghasilkan jejak eksekusi dan mengirimkannya ke koordinator. Secara bersamaan, sequencer mengirimkan data transaksi ke kontrak Rollup.
2、Rol mengubah jejak eksekusi yang diterima dari koordinator menjadi sirkuit zkEVM. Setiap langkah dalam jejak eksekusi berhubungan dengan sirkuit zkEVM. Untuk fungsi yang tidak ramah-zk (seperti hash dan Keccak), Scroll membuat tabel pencarian untuk memetakan input dan output fungsi-fungsi ini dalam jejak eksekusi ke tabel pencarian. Sirkuit tambahan digunakan untuk memverifikasi kebenaran tabel pencarian. Roller kemudian menghasilkan bukti untuk sirkuit zkEVM ini.
3、Setelah menghasilkan bukti, Roller mengirimkannya kembali ke koordinator. Setiap beberapa blok, koordinator secara acak memberikan tugas agregasi ke Roller. Roller yang ditugaskan kemudian mengumpulkan bukti untuk beberapa blok menjadi satu bukti.
4、Terakhir, koordinator menyerahkan bukti agregat ke kontrak Rollup. Kontrak Rollup menggunakan bukti ini untuk memverifikasi kebenaran data negara dan transaksi yang dikirimkan sebelumnya, sehingga mengonfirmasi kebenaran blok.
zkEVM terdiri dari beberapa sirkuit, masing-masing bertugas memverifikasi aspek tertentu dari EVM (Ethereum Virtual Machine). Sirkuit ini pada akhirnya digabungkan atau dikumpulkan untuk menghasilkan bukti eksekusi transaksi. Diagram di bawah mengilustrasikan hubungan antara rangkaian ini dan tabel.
Ada sub-sirkuit yang lebih kecil, seperti sirkuit ECDSA dan sub-sirkuit yang berhubungan dengan opcode, yang tidak berinteraksi dengan tabel dan sirkuit lain dengan cara yang mempengaruhi kombinasi sirkuit. Sub-sirkuit ini dihilangkan dari diagram untuk kejelasan.
Sirkuit EVM
Mesin Virtual Ethereum (EVM) adalah mesin status yang menetapkan aturan untuk transisi status yang valid dalam protokol Ethereum. Ia mengeksekusi instruksi (opcode) untuk mencapai transisi ini dan menghasilkan jejak eksekusi. Tujuan dari rangkaian EVM adalah untuk membuat sistem batasan yang mewakili jejak eksekusi dan dapat diverifikasi menggunakan sistem pembuktian tanpa pengetahuan.
Desain sirkuit EVM tingkat tinggi agak mirip dengan desain EVM itu sendiri, seperti go-ethereum. Di go-ethereum, interpreter melakukan iterasi melalui semua opcode instruksi pada jejak eksekusi. Untuk setiap instruksi, penerjemah memeriksa informasi konteks yang relevan seperti gas, tumpukan, dan memori, dan kemudian mengirimkan opcode ke JumpTable, yang memberikan instruksi rinci untuk mengeksekusi opcode.
Demikian pula, di sirkuit EVM, Scroll membuat langkah-langkah eksekusi berdasarkan jejak eksekusi dan memberikan bukti untuk opcode dan konteks eksekusi. Untuk setiap langkah eksekusi, serangkaian batasan diterapkan untuk memeriksa informasi kontekstual. Untuk setiap opcode, serangkaian batasan diterapkan untuk memverifikasi perilakunya. Dalam jejak eksekusi, opcode yang sama harus memiliki batasan yang sama. Scroll menggunakan pemilih untuk "membuka" semua langkah dengan opcode yang sama dalam jejak eksekusi dan menggunakan sistem bukti backend untuk membuktikan perilakunya.
Sirkuit Negara Bagian
Selama eksekusi, semua operasi baca dan tulis EVM dicatat dalam rw_table dan diurutkan berdasarkan variabel rw_counter. Tujuan dari rangkaian keadaan adalah untuk mendemonstrasikan pembuatan rw_table yang akurat.
Sirkuit MPT
Merkle Patricia Tree (MPT) adalah struktur data utama yang digunakan di lapisan penyimpanan Ethereum. Dalam Sirkuit zkevm Scroll, MPT dimodifikasi menjadi zkTrie, yang pada dasarnya adalah biner Merkle Patricia Trie yang jarang. Di zkevm-Circuits, Scroll menggunakan tabel MPT untuk melacak transisi status operasi MPT langkah demi langkah. Tabel MPT memiliki tata letak berikut:
Tujuan dari rangkaian MPT adalah untuk memverifikasi keakuratan tabel MPT yang disebutkan di atas. Ini memastikan bahwa setiap pembaruan yang dicatat dalam tabel MPT menghasilkan perubahan yang benar. Artinya untuk setiap pembaruan, rangkaian MPT menjamin bahwa hanya ada satu cara yang memungkinkan untuk melakukan perubahan. Hal ini mencegah modifikasi yang tidak disengaja atau tidak sah dan memastikan integritas dan keakuratan MPT. Khususnya, ketika MPT mengalami perubahan karena pembaruan pada akun atau penyimpanan, rangkaian MPT harus membuktikan bahwa pembaruan tersebut dilakukan sesuai aturan yang ditentukan. Selain itu, ia harus menunjukkan bahwa hash root secara akurat mencerminkan hasil semua perubahan.
Sirkuit Kecak
Scroll telah mengimplementasikan Keccak256 versi mereka sendiri, mengikuti spesifikasi NIST Keccak dan spesifikasi tim Keccak.
Dan rangkaian Keccak digunakan untuk membuktikan kebenaran operasi Keccak256. Implementasi rangkaian ini rumit, terutama karena algoritma keccak256 itu sendiri tidak ramah terhadap zk.
Sirkuit Tx
Sirkuit Tx memberikan batasan untuk memvalidasi kebenaran suatu transaksi. Ini terutama memeriksa aspek-aspek transaksi berikut:
Kebenaran CallDataLength dan CallDataGasCost kumulatif: Tentukan gerbang khusus dan temukan baris terakhir byte data panggilan di tabel tx;
Kebenaran data terkait TxSign dan TxHash: Cari tabel RLP dan tabel Keccak;
Buktikan kebenaran “jika tx_type adalah L1Msg, maka msg_hash”: Verifikasi dengan mencari tabel RLP;
Jalankan tanda tangan tx dengan benar menggunakan ECDSA dan pulihkan alamat pemanggil dengan benar dari tanda tangan ECDSA: Verifikasi dengan mencari tabel tanda;
Perilaku transisi yang benar dari tx id, cum_num_txs, dan call_data_length;
Beberapa batasan dasar, seperti nilai Boolean dari variabel indikator tertentu.
Sirkuit Bytecode
Sirkuit EVM perlu mencari tabel bytecode yang berisi informasi bytecode yang benar. Hal ini memastikan bahwa byte yang disimpan dalam kontrak cocok dengan byte yang dimuat dari tabel. Tujuan dari rangkaian bytecode adalah untuk menegakkan kebenaran tabel bytecode. Ini termasuk:
Batasan terkait perilaku batas dengan tag (tag): Batasan pada baris pertama dan terakhir, konversi dari tag == byte ke header dan sebaliknya, konversi dari header ke header;
Batasan ukuran kode: Termasuk penghitungan panjang bytecode melalui batasan indeks byte terakhir bytecode;
Batasan pada hash kode: Membatasi perilaku RLC byte dalam hash kode dengan benar dan memverifikasi hash kode dengan mencari tabel Keccak;
Memastikan kebenaran perilaku PUSH: is_code = push_data_left == 0 (harus berupa nilai boolean) dan memverifikasi ukuran data yang didorong untuk PUSH1-PUSH32 dengan mencari push_table;
Memastikan propagasi yang benar di setiap baris bytecode.
Rantai yang berbeda memiliki fungsi modul bisnis kustomnya sendiri, yang biasanya mengubah kontrak dan opcode yang telah dikompilasi sebelumnya di EVM. Diantaranya, Scroll zkEVM adalah solusi penskalaan lapis kedua berdasarkan bukti tanpa pengetahuan. Solusi ini merekonstruksi opcode yang relevan menggunakan sirkuit dan menghasilkan bukti berdasarkan jejak eksekusi. Implementasi yang rumit ini sangat meningkatkan kesulitan audit. Setelah dievaluasi oleh pakar keamanan Beosin, audit keamanan zkEVM terutama berfokus pada aspek-aspek berikut:
GAS:Saat membuat bukti jejak eksekusi sirkuit zkEVM, ini juga memverifikasi kebenaran konsumsi gas untuk transaksi. Jika variabel bebas yang tidak dibatasi sering digunakan dalam rangkaian implementasi opcode, hal ini dapat mengakibatkan kegagalan pembuatan bukti atau kesalahan lain yang tidak diketahui.
Keamanan Memori: Beberapa sirkuit zkEVM didasarkan pada komitmen polinomial, seperti komitmen KZG yang digunakan oleh Scroll. Namun, perhitungan polinomial tidak secara otomatis menyelaraskan, jadi jika rangkaian tidak memiliki batasan, hal ini dapat mengakibatkan rentang nilai tidak sesuai dengan rentang byte dalam program komputer. Dalam beberapa kasus, ketika pengembang kontrak mengaktifkan pengoptimalan gas, susunan data yang ringkas dapat menyebabkan masalah keamanan memori, seperti polinomial konstan BYTE_C4096 di Polygon zkEVM. Polinomial memungkinkan nilai parameter melebihi kisaran nilai byte maksimum 255, yang berpotensi memungkinkan sequencer jahat memanipulasi parameter demi keuntungan di beberapa platform pertukaran yang mengadopsi model AMM. Pada dasarnya, jenis kerentanan ini muncul dari ketidakkonsistenan antara rentang validitas numerik yang diwakili oleh rangkaian dan rentang nilai variabel program. Contohnya adalah kerentanan CVE-2023-33252 yang ditemukan oleh peneliti keamanan Beosin di perpustakaan Snarkjs.
Keamanan Opcode: Saat mengimplementasikan opcode zkEVM, terdapat masalah keamanan umum, terutama terkait presisi. Misalnya, ketika membandingkan dua angka dalam rangkaian yang mendasarinya, jika presisi operasi perbandingan dalam program adalah 1 byte, batasan rangkaian perlu menentukan rentang nilai. Jika tidak, presisi operasi di sirkuit akan melebihi presisi program, sehingga menghasilkan hasil yang salah.
Dukungan untuk EIP Aman: Dukungan untuk EIP yang berfokus pada keamanan seperti EIP-2 dan EIP-155.
Masalah sentralisasi di Sequencer: Saat ini, semua bukti yang dihasilkan oleh Scroll bergantung pada jejak eksekusi yang dihasilkan oleh Sequencer. Jika Sequencer berperilaku jahat, zkEVM tidak dapat menjamin keamanan aset pengguna.
Masalah kompatibilitas: zkEVM menghasilkan bukti sirkuit berdasarkan jejak eksekusi dan memverifikasinya dalam kontrak. Bahkan peningkatan kecil pada Sequencer dapat mengakibatkan perbedaan signifikan dalam jejak eksekusi yang dihasilkan pada tingkat bahasa yang mendasarinya.
Scroll saat ini mengadopsi sistem bukti Halo2 versi KZG dua lapis, menggunakan akselerasi perangkat keras GPU untuk mempercepat pembuatan bukti. Hambatan kini telah beralih ke pembuatan saksi dan replikasi data. Selain itu, tingkat sentralisasi dan biaya pengoperasian perangkat keras Roller juga merupakan aspek yang perlu dipertimbangkan Scroll untuk pengembangan sistem pembuktian multi-tahap di masa depan.
Karena jejak eksekusi EVM berubah secara dinamis, terdapat berbagai batasan dan skala sirkuit. Saat ini, untuk mengakomodasi jejak eksekusi yang berubah secara dinamis, setiap langkah jejak eksekusi harus memenuhi skala sirkuit terbesar, yang mengakibatkan pemborosan memori tambahan.
Scroll's Roller saat ini diharapkan mendapat untung dari biaya transaksi jaringan. Namun, jumlah pengguna dan biaya transaksi di jaringan Scroll saat ini tidak dapat menutupi biaya pengoperasian Roller dan sequencer. Di masa depan, bagaimana jaringan Scroll memberikan insentif ekonomi untuk menarik pengguna dan menjaga kestabilan operasi jaringan adalah pertanyaan yang perlu dipertimbangkan.
Saat ini, Beosin juga mendukung audit proyek zk. Untuk riset keamanan hardcore di zk, Anda dapat membaca artikel berikut: 1. Serangan Kelenturan Transaksi dari Groth16 Proof; 2. Menjelajahi Tornado Cash Secara Mendalam untuk Mengungkap Serangan Kelenturan di Proyek ZKP.
Beosin, sebagai perusahaan keamanan blockchain terkemuka secara global, telah mendirikan cabang di lebih dari 10 negara dan wilayah di seluruh dunia. Layanan kami mencakup audit keamanan kode sebelum peluncuran proyek, pemantauan risiko keamanan, peringatan dini dan pencegahan selama pengoperasian proyek, pemulihan aset untuk mata uang virtual yang dicuri, dan layanan kepatuhan yang aman seperti KYT/AML. Kami menyediakan solusi terpadu untuk produk dan layanan keamanan blockchain. Saat ini, kami telah menyediakan layanan teknologi keamanan ke lebih dari 3000 perusahaan blockchain secara global dan mengaudit lebih dari 3000 kontrak pintar. Jangan sungkan untuk menghubungi kami.
Pada tanggal 10 Oktober, pukul 14:00, solusi Ethereum Layer 2 Scroll mainnet menghasilkan blok pertamanya, menandai keberhasilan peluncuran mainnet Scroll. Pada tanggal 25 Oktober, lebih dari 7600 ETH telah dijembatani ke dalam jaringan Scroll melalui jembatan lintas rantai, dan 24 platform perdagangan terdesentralisasi telah ditayangkan di mainnet Scroll, dengan total TVL sekitar $10 juta.
Pada tanggal 17 Oktober, Scroll secara resmi mengumumkan peluncuran mainnetnya sambil terus menjunjung tinggi komitmennya terhadap open source dan desentralisasi. Pada fase berikutnya, Scroll akan fokus pada pembangunan jaringan dan penyortir bukti kepemilikan yang terdesentralisasi. Pada artikel ini, kami akan memberikan analisis mendetail tentang arsitektur dan teknologi Scroll untuk membantu semua orang memahami status jaringan saat ini dan arah pengembangan Scroll di masa depan. Kami juga akan menjelaskan sirkuit zkEVM Scroll dan pengetahuan audit untuk memperkuat langkah-langkah keamanan untuk proyek zk.
Scroll adalah solusi penskalaan Ethereum Layer 2 berdasarkan teknologi tanpa bukti pengetahuan, yang bertujuan untuk meningkatkan throughput transaksi dan kecepatan jaringan Ethereum. Dibandingkan dengan Optimistic Rollup, Scroll mencapai skalabilitas melalui bukti tanpa pengetahuan dan mempercepat pembuatan dan verifikasi bukti tanpa pengetahuan melalui akselerasi perangkat keras. Ia berkomitmen untuk mencapai kompatibilitas EVM tingkat bytecode. Ini berarti bahwa pengembang dapat langsung menggunakan alat pengembangan terkait Soliditas dan Ethereum untuk membuat kontrak pintar dan menerapkannya di Scroll tanpa modifikasi apa pun.
Menurut situs resmi Scroll, saat ini terdapat 10 anggota inti dalam tim Scroll, tersebar di Asia, Amerika, dan Eropa. Anggota tim memiliki pengalaman yang kaya dalam pengembangan zkRollup dan operasi industri, dengan sebagian besar dari mereka lulus dari universitas bergengsi dan memegang gelar PhD.
Saat ini, ekosistem Scroll sangat kaya, dengan proyek infrastruktur termasuk dompet, alat pengembangan, fasilitas keamanan, dan banyak lagi. Tujuannya adalah untuk memberikan dukungan komprehensif terhadap proyek di seluruh siklus hidup, mulai dari desain, pengembangan, pengoperasian, hingga audit keamanan. Saat ini, terdapat lebih dari 180 proyek ekosistem di mainnet Scroll.
Dompet
Scroll saat ini mendukung hampir semua dompet arus utama: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Selain itu, dompet ekosistem Scroll juga mencakup OKX Wallet, Versa Wallet, dan sebagainya.
Jembatan Lintas Rantai
Infrastruktur lintas rantai resmi Scroll mencakup Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext, dll. Selain itu, ini juga mencakup protokol likuiditas lintas rantai Synapse Protocol, Owlto Finance yang berfokus pada jembatan lintas rantai Layer 2, jembatan lintas rantai Ethereum Layer 1 dan Layer 2 Pheasant Network, Symbiosis, Catalyst, dll.
DeFi
Dalam ekosistem Scroll, terdapat beberapa proyek DeFi yang sudah mapan, termasuk protokol peminjaman Aave, agregator DEX multi-rantai DODO, DEX SushiSwap, agregator DEX OpenOcean, protokol DeFi multi-rantai iZUMi Finance, DEX Syncswap, protokol hasil Pendle Finance, peminjaman protokol dForce, dan leverage aggregator perdagangan Protokol MUX. Ada juga proyek inovatif seperti GMX yang belum diadopsi secara luas.
Yang lain
Dalam hal NFT, permainan, dan aspek sosial, proyek lain dalam ekosistem Scroll termasuk NFTScan, platform tugas Web3 QuestN, TaskOn, platform penandatanganan protokol elektronik EthSign, Galaxy Blitz, OmniKingdoms, dan permainan blockchain online lainnya.
Apa yang membedakan teknologi Scroll dari teknologi lainnya?
Arsitektur Scroll terdiri dari tiga komponen:
Scroll Node: Ini menghasilkan blok pada jaringan Scroll berdasarkan transaksi pengguna, mengirimkan transaksi ini ke lapisan dasar Ethereum, dan menangani pesan yang lewat antara Ethereum dan Scroll.
Roller: Roller bertanggung jawab untuk mengubah kontrak pintar menjadi sirkuit zkEVM, dan kemudian menghasilkan bukti untuk membuktikan kebenaran transaksi. Ada beberapa Roller di jaringan Scroll, yang memproses transaksi secara paralel dan mempercepat pembuatan bukti melalui perangkat keras. Scroll mencapai kompatibilitas tingkat bytecode dengan EVM dengan secara langsung membuktikan kebenaran pemrosesan bytecode EVM.
Kontrak Rollup dan Bridge: Kontrak ini menyediakan ketersediaan data untuk transaksi Scroll dan memverifikasi bukti validitas yang dihasilkan oleh zkEVM. Dapat dikatakan bahwa Scroll terhubung ke lapisan dasar Ethereum melalui kontrak Rollup dan Bridge. Melalui kontrak ini, pengguna dapat bertukar pesan sewenang-wenang antara Ethereum dan Scroll, dan mentransfer aset ERC-20 ke arah mana pun dengan bantuan kontrak gateway.
sumber: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k
Scroll adalah kontrak utama yang diterapkan pada blockchain Ethereum:
Kontrak Proksi Perutean Gateway (Memastikan pemetaan token yang benar dalam operasi lintas rantai):0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6
Kontrak Proksi Pesan (Mentransmisikan pesan antara L1 dan L2):0x6774Bcbd5ceF1336b5300fb5186a12DDD8b367
Perlu dicatat bahwa kontrak ini dapat diubah oleh admin dan pemilik proxy. Selain itu, Scroll telah memasukkan fungsi daftar putih yang memungkinkan penyesuaian biaya bahan bakar untuk alamat tertentu dalam Scroll. Saat ini, sequencer Scroll beroperasi secara terpusat, yang memungkinkan peninjauan pesan dan transaksi di jaringan Scroll. Selain itu, ada kemungkinan untuk melewati pesan apa pun dalam antrian pesan dan langsung mengonfirmasi pesan tertentu.
Setelah Scroll menghasilkan sebuah blok, ia melewati koordinator dan beberapa pembukti (Rollers) untuk menghasilkan bukti gabungan. Bukti-bukti ini kemudian diserahkan ke kontrak Ethereum Rollup untuk verifikasi. Proses detailnya adalah sebagai berikut:
1、Sequencer menerima transaksi baru. Mesin virtual membaca bytecode yang terkait dengan setiap transaksi, menghasilkan jejak eksekusi dan mengirimkannya ke koordinator. Secara bersamaan, sequencer mengirimkan data transaksi ke kontrak Rollup.
2、Rol mengubah jejak eksekusi yang diterima dari koordinator menjadi sirkuit zkEVM. Setiap langkah dalam jejak eksekusi berhubungan dengan sirkuit zkEVM. Untuk fungsi yang tidak ramah-zk (seperti hash dan Keccak), Scroll membuat tabel pencarian untuk memetakan input dan output fungsi-fungsi ini dalam jejak eksekusi ke tabel pencarian. Sirkuit tambahan digunakan untuk memverifikasi kebenaran tabel pencarian. Roller kemudian menghasilkan bukti untuk sirkuit zkEVM ini.
3、Setelah menghasilkan bukti, Roller mengirimkannya kembali ke koordinator. Setiap beberapa blok, koordinator secara acak memberikan tugas agregasi ke Roller. Roller yang ditugaskan kemudian mengumpulkan bukti untuk beberapa blok menjadi satu bukti.
4、Terakhir, koordinator menyerahkan bukti agregat ke kontrak Rollup. Kontrak Rollup menggunakan bukti ini untuk memverifikasi kebenaran data negara dan transaksi yang dikirimkan sebelumnya, sehingga mengonfirmasi kebenaran blok.
zkEVM terdiri dari beberapa sirkuit, masing-masing bertugas memverifikasi aspek tertentu dari EVM (Ethereum Virtual Machine). Sirkuit ini pada akhirnya digabungkan atau dikumpulkan untuk menghasilkan bukti eksekusi transaksi. Diagram di bawah mengilustrasikan hubungan antara rangkaian ini dan tabel.
Ada sub-sirkuit yang lebih kecil, seperti sirkuit ECDSA dan sub-sirkuit yang berhubungan dengan opcode, yang tidak berinteraksi dengan tabel dan sirkuit lain dengan cara yang mempengaruhi kombinasi sirkuit. Sub-sirkuit ini dihilangkan dari diagram untuk kejelasan.
Sirkuit EVM
Mesin Virtual Ethereum (EVM) adalah mesin status yang menetapkan aturan untuk transisi status yang valid dalam protokol Ethereum. Ia mengeksekusi instruksi (opcode) untuk mencapai transisi ini dan menghasilkan jejak eksekusi. Tujuan dari rangkaian EVM adalah untuk membuat sistem batasan yang mewakili jejak eksekusi dan dapat diverifikasi menggunakan sistem pembuktian tanpa pengetahuan.
Desain sirkuit EVM tingkat tinggi agak mirip dengan desain EVM itu sendiri, seperti go-ethereum. Di go-ethereum, interpreter melakukan iterasi melalui semua opcode instruksi pada jejak eksekusi. Untuk setiap instruksi, penerjemah memeriksa informasi konteks yang relevan seperti gas, tumpukan, dan memori, dan kemudian mengirimkan opcode ke JumpTable, yang memberikan instruksi rinci untuk mengeksekusi opcode.
Demikian pula, di sirkuit EVM, Scroll membuat langkah-langkah eksekusi berdasarkan jejak eksekusi dan memberikan bukti untuk opcode dan konteks eksekusi. Untuk setiap langkah eksekusi, serangkaian batasan diterapkan untuk memeriksa informasi kontekstual. Untuk setiap opcode, serangkaian batasan diterapkan untuk memverifikasi perilakunya. Dalam jejak eksekusi, opcode yang sama harus memiliki batasan yang sama. Scroll menggunakan pemilih untuk "membuka" semua langkah dengan opcode yang sama dalam jejak eksekusi dan menggunakan sistem bukti backend untuk membuktikan perilakunya.
Sirkuit Negara Bagian
Selama eksekusi, semua operasi baca dan tulis EVM dicatat dalam rw_table dan diurutkan berdasarkan variabel rw_counter. Tujuan dari rangkaian keadaan adalah untuk mendemonstrasikan pembuatan rw_table yang akurat.
Sirkuit MPT
Merkle Patricia Tree (MPT) adalah struktur data utama yang digunakan di lapisan penyimpanan Ethereum. Dalam Sirkuit zkevm Scroll, MPT dimodifikasi menjadi zkTrie, yang pada dasarnya adalah biner Merkle Patricia Trie yang jarang. Di zkevm-Circuits, Scroll menggunakan tabel MPT untuk melacak transisi status operasi MPT langkah demi langkah. Tabel MPT memiliki tata letak berikut:
Tujuan dari rangkaian MPT adalah untuk memverifikasi keakuratan tabel MPT yang disebutkan di atas. Ini memastikan bahwa setiap pembaruan yang dicatat dalam tabel MPT menghasilkan perubahan yang benar. Artinya untuk setiap pembaruan, rangkaian MPT menjamin bahwa hanya ada satu cara yang memungkinkan untuk melakukan perubahan. Hal ini mencegah modifikasi yang tidak disengaja atau tidak sah dan memastikan integritas dan keakuratan MPT. Khususnya, ketika MPT mengalami perubahan karena pembaruan pada akun atau penyimpanan, rangkaian MPT harus membuktikan bahwa pembaruan tersebut dilakukan sesuai aturan yang ditentukan. Selain itu, ia harus menunjukkan bahwa hash root secara akurat mencerminkan hasil semua perubahan.
Sirkuit Kecak
Scroll telah mengimplementasikan Keccak256 versi mereka sendiri, mengikuti spesifikasi NIST Keccak dan spesifikasi tim Keccak.
Dan rangkaian Keccak digunakan untuk membuktikan kebenaran operasi Keccak256. Implementasi rangkaian ini rumit, terutama karena algoritma keccak256 itu sendiri tidak ramah terhadap zk.
Sirkuit Tx
Sirkuit Tx memberikan batasan untuk memvalidasi kebenaran suatu transaksi. Ini terutama memeriksa aspek-aspek transaksi berikut:
Kebenaran CallDataLength dan CallDataGasCost kumulatif: Tentukan gerbang khusus dan temukan baris terakhir byte data panggilan di tabel tx;
Kebenaran data terkait TxSign dan TxHash: Cari tabel RLP dan tabel Keccak;
Buktikan kebenaran “jika tx_type adalah L1Msg, maka msg_hash”: Verifikasi dengan mencari tabel RLP;
Jalankan tanda tangan tx dengan benar menggunakan ECDSA dan pulihkan alamat pemanggil dengan benar dari tanda tangan ECDSA: Verifikasi dengan mencari tabel tanda;
Perilaku transisi yang benar dari tx id, cum_num_txs, dan call_data_length;
Beberapa batasan dasar, seperti nilai Boolean dari variabel indikator tertentu.
Sirkuit Bytecode
Sirkuit EVM perlu mencari tabel bytecode yang berisi informasi bytecode yang benar. Hal ini memastikan bahwa byte yang disimpan dalam kontrak cocok dengan byte yang dimuat dari tabel. Tujuan dari rangkaian bytecode adalah untuk menegakkan kebenaran tabel bytecode. Ini termasuk:
Batasan terkait perilaku batas dengan tag (tag): Batasan pada baris pertama dan terakhir, konversi dari tag == byte ke header dan sebaliknya, konversi dari header ke header;
Batasan ukuran kode: Termasuk penghitungan panjang bytecode melalui batasan indeks byte terakhir bytecode;
Batasan pada hash kode: Membatasi perilaku RLC byte dalam hash kode dengan benar dan memverifikasi hash kode dengan mencari tabel Keccak;
Memastikan kebenaran perilaku PUSH: is_code = push_data_left == 0 (harus berupa nilai boolean) dan memverifikasi ukuran data yang didorong untuk PUSH1-PUSH32 dengan mencari push_table;
Memastikan propagasi yang benar di setiap baris bytecode.
Rantai yang berbeda memiliki fungsi modul bisnis kustomnya sendiri, yang biasanya mengubah kontrak dan opcode yang telah dikompilasi sebelumnya di EVM. Diantaranya, Scroll zkEVM adalah solusi penskalaan lapis kedua berdasarkan bukti tanpa pengetahuan. Solusi ini merekonstruksi opcode yang relevan menggunakan sirkuit dan menghasilkan bukti berdasarkan jejak eksekusi. Implementasi yang rumit ini sangat meningkatkan kesulitan audit. Setelah dievaluasi oleh pakar keamanan Beosin, audit keamanan zkEVM terutama berfokus pada aspek-aspek berikut:
GAS:Saat membuat bukti jejak eksekusi sirkuit zkEVM, ini juga memverifikasi kebenaran konsumsi gas untuk transaksi. Jika variabel bebas yang tidak dibatasi sering digunakan dalam rangkaian implementasi opcode, hal ini dapat mengakibatkan kegagalan pembuatan bukti atau kesalahan lain yang tidak diketahui.
Keamanan Memori: Beberapa sirkuit zkEVM didasarkan pada komitmen polinomial, seperti komitmen KZG yang digunakan oleh Scroll. Namun, perhitungan polinomial tidak secara otomatis menyelaraskan, jadi jika rangkaian tidak memiliki batasan, hal ini dapat mengakibatkan rentang nilai tidak sesuai dengan rentang byte dalam program komputer. Dalam beberapa kasus, ketika pengembang kontrak mengaktifkan pengoptimalan gas, susunan data yang ringkas dapat menyebabkan masalah keamanan memori, seperti polinomial konstan BYTE_C4096 di Polygon zkEVM. Polinomial memungkinkan nilai parameter melebihi kisaran nilai byte maksimum 255, yang berpotensi memungkinkan sequencer jahat memanipulasi parameter demi keuntungan di beberapa platform pertukaran yang mengadopsi model AMM. Pada dasarnya, jenis kerentanan ini muncul dari ketidakkonsistenan antara rentang validitas numerik yang diwakili oleh rangkaian dan rentang nilai variabel program. Contohnya adalah kerentanan CVE-2023-33252 yang ditemukan oleh peneliti keamanan Beosin di perpustakaan Snarkjs.
Keamanan Opcode: Saat mengimplementasikan opcode zkEVM, terdapat masalah keamanan umum, terutama terkait presisi. Misalnya, ketika membandingkan dua angka dalam rangkaian yang mendasarinya, jika presisi operasi perbandingan dalam program adalah 1 byte, batasan rangkaian perlu menentukan rentang nilai. Jika tidak, presisi operasi di sirkuit akan melebihi presisi program, sehingga menghasilkan hasil yang salah.
Dukungan untuk EIP Aman: Dukungan untuk EIP yang berfokus pada keamanan seperti EIP-2 dan EIP-155.
Masalah sentralisasi di Sequencer: Saat ini, semua bukti yang dihasilkan oleh Scroll bergantung pada jejak eksekusi yang dihasilkan oleh Sequencer. Jika Sequencer berperilaku jahat, zkEVM tidak dapat menjamin keamanan aset pengguna.
Masalah kompatibilitas: zkEVM menghasilkan bukti sirkuit berdasarkan jejak eksekusi dan memverifikasinya dalam kontrak. Bahkan peningkatan kecil pada Sequencer dapat mengakibatkan perbedaan signifikan dalam jejak eksekusi yang dihasilkan pada tingkat bahasa yang mendasarinya.
Scroll saat ini mengadopsi sistem bukti Halo2 versi KZG dua lapis, menggunakan akselerasi perangkat keras GPU untuk mempercepat pembuatan bukti. Hambatan kini telah beralih ke pembuatan saksi dan replikasi data. Selain itu, tingkat sentralisasi dan biaya pengoperasian perangkat keras Roller juga merupakan aspek yang perlu dipertimbangkan Scroll untuk pengembangan sistem pembuktian multi-tahap di masa depan.
Karena jejak eksekusi EVM berubah secara dinamis, terdapat berbagai batasan dan skala sirkuit. Saat ini, untuk mengakomodasi jejak eksekusi yang berubah secara dinamis, setiap langkah jejak eksekusi harus memenuhi skala sirkuit terbesar, yang mengakibatkan pemborosan memori tambahan.
Scroll's Roller saat ini diharapkan mendapat untung dari biaya transaksi jaringan. Namun, jumlah pengguna dan biaya transaksi di jaringan Scroll saat ini tidak dapat menutupi biaya pengoperasian Roller dan sequencer. Di masa depan, bagaimana jaringan Scroll memberikan insentif ekonomi untuk menarik pengguna dan menjaga kestabilan operasi jaringan adalah pertanyaan yang perlu dipertimbangkan.
Saat ini, Beosin juga mendukung audit proyek zk. Untuk riset keamanan hardcore di zk, Anda dapat membaca artikel berikut: 1. Serangan Kelenturan Transaksi dari Groth16 Proof; 2. Menjelajahi Tornado Cash Secara Mendalam untuk Mengungkap Serangan Kelenturan di Proyek ZKP.
Beosin, sebagai perusahaan keamanan blockchain terkemuka secara global, telah mendirikan cabang di lebih dari 10 negara dan wilayah di seluruh dunia. Layanan kami mencakup audit keamanan kode sebelum peluncuran proyek, pemantauan risiko keamanan, peringatan dini dan pencegahan selama pengoperasian proyek, pemulihan aset untuk mata uang virtual yang dicuri, dan layanan kepatuhan yang aman seperti KYT/AML. Kami menyediakan solusi terpadu untuk produk dan layanan keamanan blockchain. Saat ini, kami telah menyediakan layanan teknologi keamanan ke lebih dari 3000 perusahaan blockchain secara global dan mengaudit lebih dari 3000 kontrak pintar. Jangan sungkan untuk menghubungi kami.