Analisis Akun Abstraksi Multi-Rantai: Meneliti Masa Depan Infrastruktur Enkripsi
Dari 8 hingga 11 Juli 2024, acara tahunan Ethereum terbesar di Eropa—Konferensi Komunitas Ethereum (EthCC) akan diadakan di Brussels, Belgia, dengan fokus pada pengembangan teknologi dan komunitas.
Konferensi Komunitas Ethereum kali ini (EthCC 7) mengundang lebih dari 350 pemimpin opini terkemuka di industri blockchain untuk memberikan pidato. Pengembang dari imToken Labs, Alfred, diundang untuk berpartisipasi dan memberikan pidato berjudul "Mengungkap Masa Depan: Analisis Akun Abstraksi Multi-Rantai".
Ikhtisar Poin Pidato
Dua inti dari akun abstraksi (AA): abstraksi tanda tangan dan abstraksi pembayaran. Abstraksi tanda tangan memungkinkan pengguna untuk memilih mekanisme verifikasi yang diinginkan, sementara abstraksi pembayaran menyediakan berbagai opsi pembayaran transaksi, yang bersama-sama meningkatkan keamanan dan pengalaman pengguna.
Fungsi titik masuk di tahap "verifikasi" untuk ERC-4337 dan AA asli adalah tetap, tetapi di tahap "eksekusi", hanya AA asli yang mempertahankan titik masuk tetap. Metode implementasi yang berbeda memiliki karakteristik masing-masing dalam membatasi transaksi verifikasi dan langkah-langkah eksekusi transaksi.
Saat menerapkan ERC-4337 di rantai yang kompatibel dengan EVM, terdapat dua perbedaan kunci utama: perbedaan protokol dalam desain Rollup dan perbedaan cara perhitungan alamat. Perbedaan ini menyebabkan beberapa detail pengembangan yang mudah diabaikan saat mengimplementasikan ERC-4337 antara L1 dan L2.
account abstraction简介
1. Definisi akun abstraksi
account abstraction (AA) terutama mencakup dua poin kunci:
Abstraksi tanda tangan: Pengguna dapat memilih mekanisme verifikasi secara bebas, tidak lagi terbatas pada algoritma tanda tangan digital tertentu (seperti ECDSA).
Abstraksi pembayaran: Pengguna dapat menggunakan berbagai opsi pembayaran transaksi, seperti membayar dengan aset ERC-20 sebagai pengganti aset asli, atau didanai oleh pihak ketiga.
Fleksibilitas ini secara signifikan meningkatkan keamanan dan pengalaman pengguna. Akun abstraksi bertujuan untuk mencapai kedua tujuan inti ini melalui berbagai cara.
2. Analisis ERC-4337
Saat ini, terdapat beberapa keterbatasan pada akun yang dimiliki eksternal (EOA) dalam protokol Ethereum, seperti metode tanda tangan yang tetap dan desain pembayaran. ERC-4337 mengatasi masalah ini dengan memperkenalkan metode manajemen akun dan pemrosesan transaksi yang lebih fleksibel.
Struktur userOp: Dalam ERC-4337, pengguna mengirimkan struktur userOp ke Bundler. Bundler mengumpulkan beberapa userOp dan mengirimkannya ke kontrak EntryPoint dengan memanggil fungsi handleOps.
Kontrak EntryPoint: Kontrak ini mirip dengan sistem operasi, fungsi utama yang menangani transaksi termasuk:
Memanggil fungsi validate dalam kontrak akun, memastikan userOp mendapatkan otorisasi dari pemilik akun.
Mengambil biaya.
Memanggil fungsi execute dalam kontrak akun untuk menjalankan operasi target userOp.
3. Pengenalan AA Asli
Dalam Ethereum, akun dibagi menjadi EOA dan akun kontrak. Sedangkan dalam AA asli, setiap akun adalah kontrak, dan mekanisme pemrosesan transaksi langsung terintegrasi ke dalam protokol blockchain.
Mematuhi abstraksi akun asli ERC-4337: StarkNet dan zkSync Era
Akun abstraksi asli dengan desain privasi: Aztec
Perbedaan ERC-4337 dan AA asli
1. Peran sistem operasi
AA OS perlu menyelesaikan masalah berikut:
Siapa yang menentukan harga Gas?
Siapa yang menentukan urutan transaksi? Di mana mempool?
Siapa yang memicu fungsi titik masuk?
Apa yang menentukan proses pemrosesan transaksi?
Dalam ERC-4337, peran-peran ini diselesaikan secara kolaboratif melalui Bundler dan EntryPoint Contract.
Dalam AA asli, pengguna mengirimkan userOps mereka kepada operator/pengurut server resmi, bukan kepada Bundler dan EntryPoint Contract.
Di StarkNet, Sequencer bertanggung jawab untuk menangani semua tugas ini.
Perbedaan utama antara zkSync Era dan implementasi AA lainnya adalah bahwa Operator perlu bekerja sama dengan bootloader (kontrak sistem). Bootloader membuka blok baru, mendefinisikan parameternya (termasuk parameter blok dan parameter Gas lainnya), dan menerima transaksi dari Operator untuk diverifikasi.
2. Antarmuka kontrak
Karena ada tiga langkah, antarmuka kontrak akun serupa dalam berbagai implementasi, fungsi titik masuk ini hanya dapat dipanggil oleh AA OS:
Dalam ERC-4337 dan AA asli, fungsi titik masuk pada tahap "verifikasi" adalah tetap, sementara pada tahap "eksekusi", hanya titik masuk dalam AA asli yang tetap.
3. Pembatasan langkah verifikasi
Karena verifikasi transaksi tidak memiliki batas biaya, penyerang mungkin melakukan serangan DoS pada mempool, sehingga mempengaruhi bundler (EIP-4337) atau operator/pengurut (AA asli).
EIP-4337 mendefinisikan opcode yang dilarang serta bagaimana membatasi akses penyimpanan. zkSync Era melonggarkan penggunaan beberapa OpCode:
Logika kontrak hanya dapat mengakses slot penyimpanan miliknya sendiri. Jika alamat kontrak akun adalah alamat A, ia dapat mengakses:
Slot penyimpanan yang dimiliki oleh alamat A
slot penyimpanan yang dimiliki oleh alamat A lainnya
Slot penyimpanan keccak256(A || X) yang dimiliki oleh alamat lain: ini berarti menggunakan alamat secara langsung sebagai kunci dalam pemetaan, sama dengan mengakses slot keccak256(A || X). Contohnya, saldo aset dalam kontrak ERC-20.
Logika kontrak tidak dapat mengakses variabel global, seperti nomor blok. StarkNet juga tidak mengizinkan panggilan kontrak eksternal.
4. Pembatasan langkah eksekusi
Dalam zkSync, melakukan panggilan sistem memerlukan konfirmasi adanya tanda sistem. Misalnya, satu-satunya cara untuk menambah nonce adalah dengan berinteraksi dengan NonceHolder, sementara penyebaran kontrak memerlukan interaksi dengan ContractDeployer. Tanda sistem memastikan bahwa pengembang akun secara sadar berinteraksi dengan kontrak sistem.
Dalam ERC-4337 dan StarkNet, tidak ada batasan khusus pada tahap eksekusi.
5. angka acak
Dalam ERC-4337, desain angka acak titik masuk membedakan antara nilai kunci 192-bit dan nilai acak 64-bit.
Di zkSync, kontrak sistem NonceHolder mengelola nonce, memastikan peningkatan yang ketat, yaitu menambahkan angka acak 1.
Di StarkNet, nonce juga meningkat secara ketat, tetapi tidak ada nonce abstrak yang dikelola oleh kontrak tertentu.
6. Menggunakan transaksi pertama untuk melakukan penyebaran
ERC-4337 mencakup field initcode dalam struktur userOp untuk menerapkan pengirim (akun kontrak) dalam userOp pertamanya.
Di StarkNet dan zkSync, pengguna harus mengirim transaksi pertama mereka kepada operator/pengurut untuk menerapkan kontrak akun.
7. desain khusus di zkSync
Jika Anda langsung mentransfer ETH dari EOA Ethereum ke zkSync, tanpa perlu menerapkan kontrak akun kustom, Anda akan menerima akun default dengan alamat yang sama. Akun ini dapat berfungsi seperti EOA Ethereum dan dikendalikan oleh kunci pribadi EOA Ethereum yang sesuai.
Jenis akun ini adalah versi None dan bukan version1. Anda tidak dapat memanggil fungsi DefaultAccount, karena tidak ada kode yang dikerahkan di ruang kernel.
Perbedaan antara L1 4337 dan L2 4337
Ada dua perbedaan kunci dalam menerapkan ERC-4337 di rantai yang kompatibel dengan EVM: perbedaan protokol dan perbedaan alamat.
1. Perbedaan protokol
Dalam desain Rollup, L2 perlu mengunggah data ke L1 untuk keamanan dan penyelesaian. Dalam konteks ERC-4337, biaya yang terkait dengan proses pengunggahan ini, seperti biaya keamanan L1 dan biaya blob, harus termasuk dalam Gas pra-validasi. Menentukan biaya pengunggahan yang tepat dalam Gas pra-validasi adalah tantangan besar.
2. Perbedaan alamat
Metode pengkodean alamat dalam fungsi create zkSync ERA berbeda dari Ethereum dan OP rollup. Selain itu, StarkNet menggunakan fungsi hash unik untuk perhitungan alamat. Dalam konteks ERC-4337 di rantai yang kompatibel dengan EVM, kita biasanya mengasumsikan bahwa perhitungan alamat konsisten di setiap rantai. Namun, ada detail yang sulit diperhatikan yang dapat menyebabkan alamat kontrak akun berbeda antara implementasi ERC-4337 di Ethereum dan L2.
Masalah kunci adalah menambahkan opcode baru dalam hard fork. Misalnya, jika rantai L2 tidak mendukung hard fork Shanghai, dan versi EVM tidak ditentukan saat kompilasi, pengenalan push0 akan menyebabkan perubahan pada bytecode, meskipun kode Solidity tetap sama.
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.
7 Suka
Hadiah
7
4
Bagikan
Komentar
0/400
SigmaValidator
· 10jam yang lalu
account abstraction ini juga hanya untuk bersenang-senang
Lihat AsliBalas0
NeverPresent
· 10jam yang lalu
Apakah abstraksi pembayaran begitu bull?
Lihat AsliBalas0
GateUser-beba108d
· 10jam yang lalu
Tidak ada gunanya, hanya omong kosong.
Lihat AsliBalas0
StableNomad
· 11jam yang lalu
meh, sekali lagi pembicaraan AA... jujur saja, ini mengingatkan saya pada klaim "keamanan" celsius
Analisis abstraksi akun multi-rantai: Perbedaan dan tantangan antara ERC-4337 dan AA asli
Analisis Akun Abstraksi Multi-Rantai: Meneliti Masa Depan Infrastruktur Enkripsi
Dari 8 hingga 11 Juli 2024, acara tahunan Ethereum terbesar di Eropa—Konferensi Komunitas Ethereum (EthCC) akan diadakan di Brussels, Belgia, dengan fokus pada pengembangan teknologi dan komunitas.
Konferensi Komunitas Ethereum kali ini (EthCC 7) mengundang lebih dari 350 pemimpin opini terkemuka di industri blockchain untuk memberikan pidato. Pengembang dari imToken Labs, Alfred, diundang untuk berpartisipasi dan memberikan pidato berjudul "Mengungkap Masa Depan: Analisis Akun Abstraksi Multi-Rantai".
Ikhtisar Poin Pidato
Dua inti dari akun abstraksi (AA): abstraksi tanda tangan dan abstraksi pembayaran. Abstraksi tanda tangan memungkinkan pengguna untuk memilih mekanisme verifikasi yang diinginkan, sementara abstraksi pembayaran menyediakan berbagai opsi pembayaran transaksi, yang bersama-sama meningkatkan keamanan dan pengalaman pengguna.
Fungsi titik masuk di tahap "verifikasi" untuk ERC-4337 dan AA asli adalah tetap, tetapi di tahap "eksekusi", hanya AA asli yang mempertahankan titik masuk tetap. Metode implementasi yang berbeda memiliki karakteristik masing-masing dalam membatasi transaksi verifikasi dan langkah-langkah eksekusi transaksi.
Saat menerapkan ERC-4337 di rantai yang kompatibel dengan EVM, terdapat dua perbedaan kunci utama: perbedaan protokol dalam desain Rollup dan perbedaan cara perhitungan alamat. Perbedaan ini menyebabkan beberapa detail pengembangan yang mudah diabaikan saat mengimplementasikan ERC-4337 antara L1 dan L2.
account abstraction简介
1. Definisi akun abstraksi
account abstraction (AA) terutama mencakup dua poin kunci:
Fleksibilitas ini secara signifikan meningkatkan keamanan dan pengalaman pengguna. Akun abstraksi bertujuan untuk mencapai kedua tujuan inti ini melalui berbagai cara.
2. Analisis ERC-4337
Saat ini, terdapat beberapa keterbatasan pada akun yang dimiliki eksternal (EOA) dalam protokol Ethereum, seperti metode tanda tangan yang tetap dan desain pembayaran. ERC-4337 mengatasi masalah ini dengan memperkenalkan metode manajemen akun dan pemrosesan transaksi yang lebih fleksibel.
3. Pengenalan AA Asli
Dalam Ethereum, akun dibagi menjadi EOA dan akun kontrak. Sedangkan dalam AA asli, setiap akun adalah kontrak, dan mekanisme pemrosesan transaksi langsung terintegrasi ke dalam protokol blockchain.
Desain AA di berbagai jaringan blockchain:
Perbedaan ERC-4337 dan AA asli
1. Peran sistem operasi
AA OS perlu menyelesaikan masalah berikut:
Dalam ERC-4337, peran-peran ini diselesaikan secara kolaboratif melalui Bundler dan EntryPoint Contract.
Dalam AA asli, pengguna mengirimkan userOps mereka kepada operator/pengurut server resmi, bukan kepada Bundler dan EntryPoint Contract.
Di StarkNet, Sequencer bertanggung jawab untuk menangani semua tugas ini.
Perbedaan utama antara zkSync Era dan implementasi AA lainnya adalah bahwa Operator perlu bekerja sama dengan bootloader (kontrak sistem). Bootloader membuka blok baru, mendefinisikan parameternya (termasuk parameter blok dan parameter Gas lainnya), dan menerima transaksi dari Operator untuk diverifikasi.
2. Antarmuka kontrak
Karena ada tiga langkah, antarmuka kontrak akun serupa dalam berbagai implementasi, fungsi titik masuk ini hanya dapat dipanggil oleh AA OS:
Dalam ERC-4337 dan AA asli, fungsi titik masuk pada tahap "verifikasi" adalah tetap, sementara pada tahap "eksekusi", hanya titik masuk dalam AA asli yang tetap.
3. Pembatasan langkah verifikasi
Karena verifikasi transaksi tidak memiliki batas biaya, penyerang mungkin melakukan serangan DoS pada mempool, sehingga mempengaruhi bundler (EIP-4337) atau operator/pengurut (AA asli).
EIP-4337 mendefinisikan opcode yang dilarang serta bagaimana membatasi akses penyimpanan. zkSync Era melonggarkan penggunaan beberapa OpCode:
4. Pembatasan langkah eksekusi
Dalam zkSync, melakukan panggilan sistem memerlukan konfirmasi adanya tanda sistem. Misalnya, satu-satunya cara untuk menambah nonce adalah dengan berinteraksi dengan NonceHolder, sementara penyebaran kontrak memerlukan interaksi dengan ContractDeployer. Tanda sistem memastikan bahwa pengembang akun secara sadar berinteraksi dengan kontrak sistem.
Dalam ERC-4337 dan StarkNet, tidak ada batasan khusus pada tahap eksekusi.
5. angka acak
6. Menggunakan transaksi pertama untuk melakukan penyebaran
7. desain khusus di zkSync
Jika Anda langsung mentransfer ETH dari EOA Ethereum ke zkSync, tanpa perlu menerapkan kontrak akun kustom, Anda akan menerima akun default dengan alamat yang sama. Akun ini dapat berfungsi seperti EOA Ethereum dan dikendalikan oleh kunci pribadi EOA Ethereum yang sesuai.
Jenis akun ini adalah versi None dan bukan version1. Anda tidak dapat memanggil fungsi DefaultAccount, karena tidak ada kode yang dikerahkan di ruang kernel.
Perbedaan antara L1 4337 dan L2 4337
Ada dua perbedaan kunci dalam menerapkan ERC-4337 di rantai yang kompatibel dengan EVM: perbedaan protokol dan perbedaan alamat.
1. Perbedaan protokol
Dalam desain Rollup, L2 perlu mengunggah data ke L1 untuk keamanan dan penyelesaian. Dalam konteks ERC-4337, biaya yang terkait dengan proses pengunggahan ini, seperti biaya keamanan L1 dan biaya blob, harus termasuk dalam Gas pra-validasi. Menentukan biaya pengunggahan yang tepat dalam Gas pra-validasi adalah tantangan besar.
2. Perbedaan alamat
Metode pengkodean alamat dalam fungsi create zkSync ERA berbeda dari Ethereum dan OP rollup. Selain itu, StarkNet menggunakan fungsi hash unik untuk perhitungan alamat. Dalam konteks ERC-4337 di rantai yang kompatibel dengan EVM, kita biasanya mengasumsikan bahwa perhitungan alamat konsisten di setiap rantai. Namun, ada detail yang sulit diperhatikan yang dapat menyebabkan alamat kontrak akun berbeda antara implementasi ERC-4337 di Ethereum dan L2.
Masalah kunci adalah menambahkan opcode baru dalam hard fork. Misalnya, jika rantai L2 tidak mendukung hard fork Shanghai, dan versi EVM tidak ditentukan saat kompilasi, pengenalan push0 akan menyebabkan perubahan pada bytecode, meskipun kode Solidity tetap sama.