Penjelasan akun abstrak multi-rantai: Perbedaan kunci antara ERC-4337 dan AA asli

Analisis Abstraksi Akun Multi-Rantai: Menjelajahi Masa Depan Infrastruktur Enkripsi

Baru-baru ini, konferensi komunitas Ethereum (EthCC 7) diadakan di Brussels, Belgia, yang merupakan acara tahunan Ethereum terbesar di Eropa, dengan fokus pada teknologi dan komunitas. Pada konferensi ini, lebih dari 350 pemimpin pemikiran dari industri blockchain memberikan pidato, di mana salah satu pengembang menyampaikan pidato berjudul "Mengungkap Masa Depan: Analisis Abstraksi Akun Multi-Rantai".

Inti Pidato

  • Account abstraction (AA) terutama mencakup dua poin kunci yaitu tanda tangan abstraksi dan pembayaran abstraksi. Tanda tangan abstraksi memungkinkan pengguna untuk memilih mekanisme verifikasi yang mereka suka, sementara pembayaran abstraksi memungkinkan penggunaan berbagai opsi pembayaran transaksi. Fleksibilitas ini memberikan pengalaman pengguna yang lebih aman dan lebih baik.

  • Di ERC-4337 dan AA asli, fungsi titik masuk pada tahap "verifikasi" adalah tetap, sedangkan pada tahap "eksekusi", hanya titik masuk dalam AA asli yang tetap. Batasan untuk memverifikasi transaksi dan langkah-langkah untuk mengeksekusi transaksi memiliki karakteristik dan batasan masing-masing dalam implementasi yang berbeda.

  • Dalam menerapkan ERC-4337 di rantai yang kompatibel dengan EVM, ada dua perbedaan kunci: perbedaan protokol dalam desain Rollup dan perbedaan cara perhitungan alamat, yang menyebabkan rincian pengembangan yang sulit diperhatikan saat mengimplementasikan ERC-4337 antara L1 dan L2.

enkripsi infrastruktur masa depan? Analisis akuntabilitas multi-rantai

Pengenalan account abstraction

Apa itu account abstraction

account abstraction (AA) terutama mencakup dua poin kunci:

  1. Abstraksi tanda tangan: Pengguna dapat memilih mekanisme verifikasi yang disukai, bukan hanya terbatas pada beberapa algoritma tanda tangan digital (seperti ECDSA).

  2. Abstraksi Pembayaran: Pengguna dapat menggunakan berbagai opsi pembayaran transaksi, seperti menggunakan aset ERC-20 sebagai pengganti aset asli untuk melakukan pembayaran, atau membiarkan pihak ketiga mensponsori transaksi.

Fleksibilitas ini memberikan pengalaman pengguna yang lebih aman dan lebih baik. Tujuan dari account abstraction adalah untuk mencapai kedua poin kunci ini melalui berbagai cara.

Ringkasan ERC-4337

Saat ini, terdapat beberapa batasan pada akun yang dimiliki secara eksternal (EOA) dalam protokol Ethereum, seperti metode tanda tangan yang tetap dan desain pembayaran. ERC-4337 menyelesaikan masalah ini dengan memperkenalkan metode pengelolaan 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 melalui pemanggilan fungsi handleOps.

  • Kontrak EntryPoint: Kontrak ini mengelola transaksi seperti sistem operasi, dengan fungsi utama sebagai berikut:

    • Panggil fungsi validate dalam kontrak akun untuk memastikan userOp mendapatkan otorisasi dari pemilik akun.
    • Mengambil biaya.
    • Memanggil fungsi execute dalam kontrak akun untuk menjalankan operasi target userOp.

Pengenalan AA asli

Di Ethereum, akun dibagi menjadi EOA dan akun kontrak. Namun, dalam AA asli, setiap akun adalah kontrak, dan mekanisme pemrosesan transaksi langsung disematkan ke dalam protokol blockchain.

Desain AA di berbagai jaringan blockchain:

  • ERC-4337 account abstraction: Ethereum, Arbitrum, Optimism, Base, Linea, Scroll, Polygon PoS
  • Akun abstraksi asli mengikuti ERC-4337: Era StarkNet dan zkSync
  • Akun abstrak asli dengan desain privasi: Aztec

enkripsi infrastruktur masa depan? Analisis akun abstraksi multi-rantai

Perbedaan antara ERC-4337 dan AA asli

peran sistem operasi

AA OS perlu menyelesaikan masalah berikut:

  • Siapa yang menentukan harga Gas?
  • Siapa yang memutuskan urutan transaksi? Di mana mempool?
  • Siapa yang memicu fungsi titik masuk?
  • Apa yang menentukan proses pemrosesan transaksi?

Dalam ERC-4337, peran-peran ini diselesaikan melalui Bundler dan Kontrak EntryPoint.

Dalam AA asli, pengguna mengirim userOps mereka ke operator/penyortir server resmi, bukan Bundler dan EntryPoint Contract.

Di StarkNet, Sequencer bertanggung jawab untuk mengurus semua tugas ini.

Dalam zkSync, perbedaan utama Era dengan 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 diverifikasi.

antarmuka kontrak

Karena adanya tiga langkah, antarmuka kontrak akun serupa dalam implementasi yang berbeda, dan fungsi titik masuk ini hanya dapat dipanggil oleh AA OS:

  • ERC-4337: memvalidasi operasi pengguna
  • zkSync: memverifikasi transaksi, pembayaran transaksi, mengeksekusi transaksi
  • StarkNet:eksekusi、validasi、validasi_deklarasi、validasi_perdeployment

Dalam ERC-4337 dan AA asli, fungsi titik masuk dari tahap "verifikasi" adalah tetap, sementara di tahap "eksekusi", hanya titik masuk dalam AA asli yang tetap.

batasan langkah verifikasi

Karena tidak ada batasan biaya untuk memverifikasi transaksi (pada dasarnya, memverifikasi transaksi adalah memanggil fungsi tampilan), penyerang dapat melakukan serangan DoS pada mempool, yang dapat merusak bundler (EIP-4337) atau operator/pengurut (AA asli).

EIP-4337 mendefinisikan operasi kode 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 dimiliki oleh alamat A lainnya
    • Slot penyimpanan keccak256(A || X) yang terkait dengan alamat lainnya: ini berarti menggunakan alamat secara langsung sebagai kunci dalam mapping (misalnya, mapping (address => value)), 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.

batasan langkah eksekusi

Dalam zkSync, eksekusi panggilan sistem memerlukan konfirmasi adanya tanda sistem. Misalnya, satu-satunya cara untuk meningkatkan nonce adalah dengan berinteraksi dengan NonceHolder, sedangkan untuk menerapkan kontrak, perlu berinteraksi dengan ContractDeployer. Tanda sistem memastikan bahwa pengembang akun secara sadar berinteraksi dengan kontrak sistem.

Pada ERC-4337 dan StarkNet, tidak ada batasan khusus pada tahap eksekusi.

angka acak

  • Dalam ERC-4337, desain bilangan acak titik masuk membedakan 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.

menggunakan transaksi pertama untuk penyebaran

  • ERC-4337 memiliki field initcode dalam struktur userOp untuk menerapkan pengirim (akun kontrak) dalam userOp pertamanya.
  • Di StarkNet dan zkSync, pengguna harus mengirim transaksi pertama mereka ke operator/sorter untuk meng-deploy kontrak akun.

desain khusus di zkSync

Jika Anda mentransfer ETH langsung dari EOA Ethereum ke zkSync tanpa perlu menyebarkan kontrak akun kustom, Anda akan menerima akun default dengan alamat yang sama. Akun ini dapat berfungsi seperti EOA Ethereum dan juga dikendalikan oleh kunci pribadi EOA Ethereum yang sesuai.

Tipe akun ini adalah versi None dan bukan version1. Anda tidak dapat memanggil fungsi DefaultAccount karena tidak ada kode yang diterapkan di ruang kernel.

enkripsi infrastruktur masa depan? Analisis akun abstraksi multichain

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.

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 dimasukkan dalam Gas pra-verifikasi. Menentukan biaya pengunggahan yang tepat dalam Gas pra-verifikasi adalah tantangan besar.

perbedaan alamat

Metode pengkodean alamat dalam fungsi create zkSync ERA berbeda dari Ethereum dan OP rollup. Selain itu, StarkNet menggunakan fungsi hash yang unik untuk perhitungan alamat. Dalam konteks ERC-4337 di rantai yang kompatibel dengan EVM, kita biasanya mengasumsikan bahwa perhitungan alamat konsisten di masing-masing rantai. Namun, ada detail yang sulit diperhatikan yang mungkin 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.

enkripsi infrastruktur masa depan? Analisis akun abstraksi multichain

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.
  • Hadiah
  • 2
  • Bagikan
Komentar
0/400
OnChainArchaeologistvip
· 07-09 19:30
Suka mengutak-atik ini
Lihat AsliBalas0
PriceOracleFairyvip
· 07-09 19:30
meh, aa hanyalah matematika eth yang mewah... tapi abstraksi tanda tangan terlihat cukup menggoda jujur saja
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)