Mengungkap Masa Depan: Analisis Akun Abstraksi Multi-Rantai
Dari 8 hingga 11 Juli, konferensi komunitas Ethereum diadakan di Brussels, ini adalah acara tahunan Ethereum terbesar di Eropa, berfokus pada teknologi dan komunitas.
Konferensi ini dihadiri oleh lebih dari 350 pemimpin opini terkemuka di industri blockchain, termasuk sebuah presentasi berjudul "Mengungkap Masa Depan: Analisis Akun Abstrak Multi-Rantai".
Poin-poin pembicaraan:
Dua poin kunci dari akun abstraksi (AA): abstraksi tanda tangan dan abstraksi pembayaran. Abstraksi tanda tangan memungkinkan pengguna untuk memilih mekanisme verifikasi yang diinginkan, sementara abstraksi pembayaran mendukung berbagai opsi pembayaran transaksi. Fleksibilitas ini meningkatkan keamanan dan pengalaman pengguna.
Fungsi titik masuk di tahap "verifikasi" untuk ERC-4337 dan AA asli adalah tetap, sedangkan di tahap "eksekusi", hanya titik masuk AA asli yang tetap. Pembatasan verifikasi transaksi dan langkah-langkah eksekusi transaksi memiliki karakteristik masing-masing dalam berbagai implementasi.
Dalam menerapkan ERC-4337 di rantai yang kompatibel dengan EVM, perbedaan protokol dalam desain Rollup dan perbedaan cara perhitungan alamat adalah dua perbedaan kunci, yang menyebabkan beberapa detail pengembangan halus muncul saat menerapkan ERC-4337 antara L1 dan L2.
Berikut adalah teks lengkap pidato:
Halo semuanya, hari ini saya akan memperkenalkan konsep ERC-4337 dan AA asli, membahas perbedaan antara keduanya, dan menganalisis secara mendalam perbedaan utama standar 4337 L1 dan L2.
Pengantar Akun Abstrak
1. Definisi akun abstraksi
account abstraction(AA) terutama mencakup dua poin kunci: abstraksi tanda tangan dan abstraksi pembayaran.
Abstraksi tanda tangan: Pengguna dapat memilih mekanisme verifikasi yang disukai, tidak terbatas pada beberapa algoritma tanda tangan digital (seperti ECDSA).
Abstraksi pembayaran: Pengguna dapat menggunakan berbagai opsi pembayaran transaksi, seperti menggunakan aset ERC-20 sebagai pengganti pembayaran aset asli, atau membiarkan pihak ketiga mensponsori transaksi.
Fleksibilitas ini menyediakan pengalaman pengguna yang lebih aman dan lebih baik. Tujuan dari account abstraction adalah untuk mencapai kedua poin kunci ini melalui berbagai cara.
2. Ringkasan ERC-4337
Saat ini, terdapat beberapa batasan 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 menangani transaksi seperti sistem operasi, dengan fungsi utama sebagai berikut:
Memanggil fungsi validate dalam kontrak akun, memastikan userOp mendapatkan otorisasi dari pemilik akun.
Mengambil biaya.
Memanggil fungsi execute dalam kontrak akun, untuk melaksanakan operasi target userOp.
3. Pengantar AA Asli
Di Ethereum, akun dibagi menjadi EOA dan akun kontrak. Namun, dalam AA asli, setiap akun adalah kontrak, dan mekanisme pemrosesan transaksi langsung diintegrasikan ke dalam protokol blockchain.
Akun abstraksi asli mengikuti ERC-4337: Era StarkNet & zkSync
Akun abstraksi asli dengan desain privasi: Aztec
Perbedaan antara ERC-4337 dan AA asli
1. Peran sistem operasi
AA OS perlu menyelesaikan masalah berikut:
Penentu harga Gas
Penentu urutan transaksi dan posisi mempool
Pemicu fungsi titik masuk
Faktor penentu dalam proses pemrosesan transaksi
Dalam ERC-4337, peran-peran ini bekerja sama melalui Bundler dan EntryPoint Contract.
Dalam AA asli, pengguna mengirimkan userOps mereka ke operator/pengurut server resmi, bukan ke Bundler dan EntryPoint Contract.
Di StarkNet, Sequencer bertanggung jawab untuk menangani semua tugas ini.
Dalam zkSync, perbedaan utama antara Era dan implementasi AA lainnya adalah 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 divalidasi.
2. Antarmuka Kontrak
Karena adanya tiga langkah, antarmuka kontrak akun mirip 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, sedangkan pada tahap "eksekusi", hanya titik masuk di AA asli yang tetap.
3. Pembatasan langkah verifikasi
Karena verifikasi transaksi tidak memiliki batas biaya (pada dasarnya, verifikasi transaksi adalah pemanggilan fungsi tampilan), penyerang dapat melakukan serangan DoS pada mempool, sehingga merusak bundler (EIP-4337) atau operator/pengurut (AA asli).
EIP-4337 mendefinisikan opcode mana yang dilarang dan 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 terletak di alamat A lainnya
Slot penyimpanan keccak256 (A || X) yang dimiliki oleh alamat lain: ini berarti menggunakan alamat secara langsung sebagai kunci dalam peta (misalnya, mapping (address => value)), yang setara 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 berinteraksi dengan NonceHolder, sementara untuk menyebarkan kontrak diperlukan interaksi dengan ContractDeployer. Tanda sistem memastikan bahwa pengembang akun dengan sadar berinteraksi dengan kontrak sistem.
Dalam ERC-4337 dan StarkNet, tidak ada batasan khusus di tahap eksekusi.
5. angka acak
Dalam ERC-4337, desain angka acak titik masuk membedakan nilai kunci 192-bit dan nilai acak 64-bit.
Dalam zkSync, kontrak sistem NonceHolder mengelola nonce, memastikan peningkatan yang ketat, yaitu menambahkan 1 ke angka acak.
Di StarkNet, nonce juga meningkat secara ketat, tetapi tidak ada nonce abstrak yang dikelola oleh kontrak tertentu.
6. Gunakan transaksi pertama untuk melakukan penyebaran
ERC-4337 mencakup field initcode dalam struktur userOp untuk meng-deploy pengirim (akun kontrak) pada userOp pertamanya.
Di StarkNet dan zkSync, pengguna harus mengirimkan transaksi pertama mereka kepada operator/penyortir untuk mengdeploy kontrak akun.
7. desain khusus dalam 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 juga dikendalikan oleh kunci privat EOA Ethereum yang sesuai.
Tipe akun ini adalah versi None dan bukan version1. Anda tidak dapat memanggil fungsi DefaultAccount karena tidak ada kode yang dikerahkan di ruang kernel.
Perbedaan 4337 L1 dan 4337 L2
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 unggah ini, seperti biaya keamanan L1 dan biaya blob, harus dimasukkan dalam Gas pra-validasi. Menentukan biaya unggah 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 berasumsi 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 bytecode, meskipun kode Solidity tetap sama.
Kesimpulan
Di atas adalah beberapa informasi tentang account abstraction. Jika Anda memiliki pertanyaan, silakan hubungi saya di Twitter.
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.
22 Suka
Hadiah
22
7
Bagikan
Komentar
0/400
EthMaximalist
· 07-24 00:42
Tidak ada yang dijelaskan dalam konferensi.
Lihat AsliBalas0
RugDocScientist
· 07-23 14:29
Satu lagi kelas pemasaran ya
Lihat AsliBalas0
AirdropSweaterFan
· 07-22 12:12
Multi-chain AA sangat keren untuk dimainkan
Lihat AsliBalas0
RiddleMaster
· 07-22 12:11
Tanda tangan abstrak sangat keren!
Lihat AsliBalas0
liquidation_surfer
· 07-22 12:00
又Kupon Klip去了?
Lihat AsliBalas0
RugPullProphet
· 07-22 11:51
Tidak ada yang bisa mengatakan apakah proyek itu masih ada tahun depan.
Analisis teknologi abstraksi akun multi-rantai: Perbandingan ERC-4337 dengan AA asli
Mengungkap Masa Depan: Analisis Akun Abstraksi Multi-Rantai
Dari 8 hingga 11 Juli, konferensi komunitas Ethereum diadakan di Brussels, ini adalah acara tahunan Ethereum terbesar di Eropa, berfokus pada teknologi dan komunitas.
Konferensi ini dihadiri oleh lebih dari 350 pemimpin opini terkemuka di industri blockchain, termasuk sebuah presentasi berjudul "Mengungkap Masa Depan: Analisis Akun Abstrak Multi-Rantai".
Poin-poin pembicaraan:
Dua poin kunci dari akun abstraksi (AA): abstraksi tanda tangan dan abstraksi pembayaran. Abstraksi tanda tangan memungkinkan pengguna untuk memilih mekanisme verifikasi yang diinginkan, sementara abstraksi pembayaran mendukung berbagai opsi pembayaran transaksi. Fleksibilitas ini meningkatkan keamanan dan pengalaman pengguna.
Fungsi titik masuk di tahap "verifikasi" untuk ERC-4337 dan AA asli adalah tetap, sedangkan di tahap "eksekusi", hanya titik masuk AA asli yang tetap. Pembatasan verifikasi transaksi dan langkah-langkah eksekusi transaksi memiliki karakteristik masing-masing dalam berbagai implementasi.
Dalam menerapkan ERC-4337 di rantai yang kompatibel dengan EVM, perbedaan protokol dalam desain Rollup dan perbedaan cara perhitungan alamat adalah dua perbedaan kunci, yang menyebabkan beberapa detail pengembangan halus muncul saat menerapkan ERC-4337 antara L1 dan L2.
Berikut adalah teks lengkap pidato:
Halo semuanya, hari ini saya akan memperkenalkan konsep ERC-4337 dan AA asli, membahas perbedaan antara keduanya, dan menganalisis secara mendalam perbedaan utama standar 4337 L1 dan L2.
Pengantar Akun Abstrak
1. Definisi akun abstraksi
account abstraction(AA) terutama mencakup dua poin kunci: abstraksi tanda tangan dan abstraksi pembayaran.
Fleksibilitas ini menyediakan pengalaman pengguna yang lebih aman dan lebih baik. Tujuan dari account abstraction adalah untuk mencapai kedua poin kunci ini melalui berbagai cara.
2. Ringkasan ERC-4337
Saat ini, terdapat beberapa batasan 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. Pengantar AA Asli
Di Ethereum, akun dibagi menjadi EOA dan akun kontrak. Namun, dalam AA asli, setiap akun adalah kontrak, dan mekanisme pemrosesan transaksi langsung diintegrasikan ke dalam protokol blockchain.
Desain AA di berbagai jaringan blockchain:
Perbedaan antara ERC-4337 dan AA asli
1. Peran sistem operasi
AA OS perlu menyelesaikan masalah berikut:
Dalam ERC-4337, peran-peran ini bekerja sama melalui Bundler dan EntryPoint Contract.
Dalam AA asli, pengguna mengirimkan userOps mereka ke operator/pengurut server resmi, bukan ke Bundler dan EntryPoint Contract.
Di StarkNet, Sequencer bertanggung jawab untuk menangani semua tugas ini.
Dalam zkSync, perbedaan utama antara Era dan implementasi AA lainnya adalah 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 divalidasi.
2. Antarmuka Kontrak
Karena adanya tiga langkah, antarmuka kontrak akun mirip 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, sedangkan pada tahap "eksekusi", hanya titik masuk di AA asli yang tetap.
3. Pembatasan langkah verifikasi
Karena verifikasi transaksi tidak memiliki batas biaya (pada dasarnya, verifikasi transaksi adalah pemanggilan fungsi tampilan), penyerang dapat melakukan serangan DoS pada mempool, sehingga merusak bundler (EIP-4337) atau operator/pengurut (AA asli).
EIP-4337 mendefinisikan opcode mana yang dilarang dan 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 terletak di alamat A lainnya
Slot penyimpanan keccak256 (A || X) yang dimiliki oleh alamat lain: ini berarti menggunakan alamat secara langsung sebagai kunci dalam peta (misalnya, mapping (address => value)), yang setara 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 berinteraksi dengan NonceHolder, sementara untuk menyebarkan kontrak diperlukan interaksi dengan ContractDeployer. Tanda sistem memastikan bahwa pengembang akun dengan sadar berinteraksi dengan kontrak sistem.
Dalam ERC-4337 dan StarkNet, tidak ada batasan khusus di tahap eksekusi.
5. angka acak
6. Gunakan transaksi pertama untuk melakukan penyebaran
7. desain khusus dalam 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 juga dikendalikan oleh kunci privat EOA Ethereum yang sesuai.
Tipe akun ini adalah versi None dan bukan version1. Anda tidak dapat memanggil fungsi DefaultAccount karena tidak ada kode yang dikerahkan di ruang kernel.
Perbedaan 4337 L1 dan 4337 L2
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 unggah ini, seperti biaya keamanan L1 dan biaya blob, harus dimasukkan dalam Gas pra-validasi. Menentukan biaya unggah 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 berasumsi 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 bytecode, meskipun kode Solidity tetap sama.
Kesimpulan
Di atas adalah beberapa informasi tentang account abstraction. Jika Anda memiliki pertanyaan, silakan hubungi saya di Twitter.