Abstraksi Akun Multi-Rantai: Menjelajahi Masa Depan Infrastruktur Enkripsi
Konferensi Komunitas Ethereum (EthCC) akan diadakan di Brussels, Belgia dari 8 hingga 11 Juli 2024. Sebagai acara tahunan Ethereum terbesar di Eropa, konferensi ini akan fokus pada perkembangan teknologi dan komunitas.
Pada konferensi komunitas Ethereum kali ini (EthCC 7), lebih dari 350 pemimpin pemikiran terkemuka di industri blockchain memberikan pidato. Di antaranya, seorang pengembang blockchain diundang untuk berpartisipasi dan memberikan pidato tentang "Mengungkap Masa Depan: Analisis Akun Abstraksi Multi-Rantai".
Ringkasan Poin-Poin Pidato
Inti dari akun abstraksi (AA) mencakup abstraksi tanda tangan dan abstraksi pembayaran. Yang pertama memungkinkan pengguna memilih mekanisme verifikasi yang diinginkan, sementara yang kedua menyediakan berbagai opsi pembayaran transaksi. Fleksibilitas ini secara signifikan meningkatkan keamanan dan pengalaman pengguna.
Fungsi titik masuk di fase verifikasi untuk ERC-4337 dan AA asli adalah tetap, tetapi di fase eksekusi, hanya AA asli yang mempertahankan titik masuk tetap. Berbagai cara implementasi memiliki karakteristik masing-masing dalam membatasi transaksi verifikasi dan langkah-langkah eksekusi transaksi.
Dalam menerapkan ERC-4337 di rantai yang kompatibel dengan EVM, ada dua tantangan utama yang dihadapi: perbedaan protokol dalam desain Rollup, dan perbedaan cara perhitungan alamat. Perbedaan ini menyebabkan beberapa detail pengembangan yang sulit terdeteksi saat mengimplementasikan ERC-4337 antara L1 dan L2.
Pengantar Akun Abstrak
definisi account abstraction
Akun Abstraksi (AA) terutama mencakup dua konsep kunci:
Abstraksi tanda tangan: Pengguna dapat bebas memilih mekanisme verifikasi yang mereka suka, tidak lagi terbatas pada algoritma tanda tangan digital tertentu (seperti ECDSA).
Abstraksi pembayaran: Pengguna dapat menggunakan berbagai cara untuk membayar biaya transaksi, seperti menggunakan token ERC-20 sebagai pengganti token asli, atau disponsori oleh pihak ketiga.
Fleksibilitas ini tidak hanya meningkatkan keamanan, tetapi juga mengoptimalkan pengalaman pengguna. Tujuan dari account abstraction adalah untuk mencapai kedua konsep inti ini melalui berbagai cara.
analisis ERC-4337
Saat ini, akun yang dimiliki secara eksternal (EOA) dalam protokol Ethereum memiliki beberapa batasan, seperti metode tanda tangan yang tetap dan desain pembayaran. ERC-4337 menyelesaikan masalah ini dengan memperkenalkan pengelolaan akun dan metode 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 berfungsi seperti sistem operasi dalam menangani transaksi, dengan fungsi utama sebagai berikut:
Memanggil fungsi validate dalam kontrak akun, memastikan userOp mendapatkan otorisasi dari pemilik akun.
Menerima biaya.
Memanggil fungsi execute dalam kontrak akun, untuk mengeksekusi operasi target dari userOp.
Pengantar AA Asli
Di Ethereum, akun dibagi menjadi EOA dan akun kontrak. Namun, dalam AA asli, setiap akun adalah kontrak, dan mekanisme pemrosesan transaksi terintegrasi langsung ke dalam protokol blockchain.
Mengikuti akun abstraksi asli ERC-4337: StarkNet dan era zkSync
Akun abstraksi asli dengan desain privasi: Aztec
Perbedaan ERC-4337 dan AA Natif
peran sistem operasi
Sistem operasi AA 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 dilakukan secara kolaboratif oleh Bundler dan EntryPoint Contract.
Dalam AA asli, pengguna mengirim userOps mereka ke operator/penyortir server resmi, bukan ke Bundler dan EntryPoint Contract.
Di StarkNet, Sequencer bertanggung jawab untuk menangani semua tugas ini.
Fitur utama zkSync Era adalah Operator perlu bekerja sama dengan bootloader (kontrak sistem). Bootloader bertanggung jawab untuk membuka blok baru, mendefinisikan parameter blok dan parameter Gas, serta menerima transaksi dari Operator untuk divalidasi.
antarmuka kontrak
Karena ada 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, sementara pada tahap "eksekusi", hanya titik masuk pada AA asli yang tetap.
batasan langkah verifikasi
Karena tidak ada batas biaya untuk memverifikasi transaksi, penyerang mungkin melakukan serangan DoS terhadap mempool, yang dapat mempengaruhi bundler (EIP-4337) atau operator/pengurut (AA asli).
EIP-4337 mendefinisikan opcode yang dilarang dan batasan akses penyimpanan. zkSync Era melonggarkan penggunaan beberapa OpCode:
Logika kontrak hanya dapat mengakses slot penyimpanannya sendiri.
Logika kontrak tidak dapat mengakses variabel global, seperti nomor blok.
StarkNet tidak mengizinkan pemanggilan kontrak eksternal.
batasan langkah eksekusi
Di zkSync, untuk melakukan panggilan sistem, perlu mengkonfirmasi keberadaan bendera sistem. Misalnya, menambah nonce memerlukan interaksi dengan NonceHolder, sementara penyebaran kontrak memerlukan interaksi dengan ContractDeployer.
ERC-4337 dan StarkNet tidak memiliki batasan khusus pada tahap eksekusi.
pemrosesan angka acak
ERC-4337: Desain angka acak titik masuk membedakan nilai kunci 192-bit dan nilai acak 64-bit.
zkSync: Kontrak sistem NonceHolder mengelola nonce, memastikan peningkatan yang ketat.
StarkNet: nonce juga secara ketat meningkat, tetapi tidak ada kontrak tertentu yang mengelolanya.
penyebaran transaksi pertama
ERC-4337: Struktur userOp mencakup bidang initcode, yang digunakan untuk menyebarkan pengirim (akun kontrak) dalam userOp pertama.
StarkNet dan zkSync: Pengguna harus mengirimkan transaksi pertama mereka kepada operator/sorter untuk menyebarkan kontrak akun.
zkSync desain khusus
Di zkSync, jika ETH ditransfer langsung dari EOA Ethereum, tidak perlu menerapkan kontrak akun khusus, pengguna akan menerima akun default dengan alamat yang sama. Akun ini dapat berfungsi seperti EOA Ethereum dan dikendalikan oleh kunci privat EOA Ethereum yang sesuai.
Jenis akun ini adalah version None dan bukan version1. Pengguna tidak dapat memanggil fungsi DefaultAccount karena tidak ada kode yang diterapkan di ruang kernel.
Perbedaan 4337 antara L1 dan 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 memastikan keamanan dan penyelesaian. Dalam 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.
perbedaan alamat
Metode pengkodean alamat dalam fungsi create zkSync ERA berbeda dari Ethereum dan penggabungan OP. 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, sebuah detail yang mudah diabaikan dapat menyebabkan alamat kontrak akun yang berbeda antara implementasi ERC-4337 di Ethereum dan L2.
Masalah kunci terletak pada penambahan opcode baru dalam hard fork. Misalnya, jika rantai L2 tidak mendukung hard fork Shanghai, dan versi EVM tidak ditentukan saat kompilasi, pengenalan push0 akan mengakibatkan perubahan pada bytecode, meskipun kode Solidity tetap sama.
Lihat Asli
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 Suka
Hadiah
8
5
Bagikan
Komentar
0/400
StableGenius
· 10jam yang lalu
*menguap* lagi aa talk... sudah pernah melihat film ini sebelumnya, secara empiris ini hanya maxies eth yang berusaha menenangkan diri
Lihat AsliBalas0
OfflineNewbie
· 10jam yang lalu
Lihat siapa yang masih melompat
Lihat AsliBalas0
TokenVelocity
· 10jam yang lalu
Mari kita bicarakan semua rantai di proyek tersebut...
Lihat AsliBalas0
PessimisticLayer
· 10jam yang lalu
Rasanya tetap hanya mengatasi gejala, bukan akar masalah.
Konferensi EthCC membahas abstraksi akun multi-rantai: Perbandingan teknis ERC-4337 dan AA asli
Abstraksi Akun Multi-Rantai: Menjelajahi Masa Depan Infrastruktur Enkripsi
Konferensi Komunitas Ethereum (EthCC) akan diadakan di Brussels, Belgia dari 8 hingga 11 Juli 2024. Sebagai acara tahunan Ethereum terbesar di Eropa, konferensi ini akan fokus pada perkembangan teknologi dan komunitas.
Pada konferensi komunitas Ethereum kali ini (EthCC 7), lebih dari 350 pemimpin pemikiran terkemuka di industri blockchain memberikan pidato. Di antaranya, seorang pengembang blockchain diundang untuk berpartisipasi dan memberikan pidato tentang "Mengungkap Masa Depan: Analisis Akun Abstraksi Multi-Rantai".
Ringkasan Poin-Poin Pidato
Inti dari akun abstraksi (AA) mencakup abstraksi tanda tangan dan abstraksi pembayaran. Yang pertama memungkinkan pengguna memilih mekanisme verifikasi yang diinginkan, sementara yang kedua menyediakan berbagai opsi pembayaran transaksi. Fleksibilitas ini secara signifikan meningkatkan keamanan dan pengalaman pengguna.
Fungsi titik masuk di fase verifikasi untuk ERC-4337 dan AA asli adalah tetap, tetapi di fase eksekusi, hanya AA asli yang mempertahankan titik masuk tetap. Berbagai cara implementasi memiliki karakteristik masing-masing dalam membatasi transaksi verifikasi dan langkah-langkah eksekusi transaksi.
Dalam menerapkan ERC-4337 di rantai yang kompatibel dengan EVM, ada dua tantangan utama yang dihadapi: perbedaan protokol dalam desain Rollup, dan perbedaan cara perhitungan alamat. Perbedaan ini menyebabkan beberapa detail pengembangan yang sulit terdeteksi saat mengimplementasikan ERC-4337 antara L1 dan L2.
Pengantar Akun Abstrak
definisi account abstraction
Akun Abstraksi (AA) terutama mencakup dua konsep kunci:
Abstraksi tanda tangan: Pengguna dapat bebas memilih mekanisme verifikasi yang mereka suka, tidak lagi terbatas pada algoritma tanda tangan digital tertentu (seperti ECDSA).
Abstraksi pembayaran: Pengguna dapat menggunakan berbagai cara untuk membayar biaya transaksi, seperti menggunakan token ERC-20 sebagai pengganti token asli, atau disponsori oleh pihak ketiga.
Fleksibilitas ini tidak hanya meningkatkan keamanan, tetapi juga mengoptimalkan pengalaman pengguna. Tujuan dari account abstraction adalah untuk mencapai kedua konsep inti ini melalui berbagai cara.
analisis ERC-4337
Saat ini, akun yang dimiliki secara eksternal (EOA) dalam protokol Ethereum memiliki beberapa batasan, seperti metode tanda tangan yang tetap dan desain pembayaran. ERC-4337 menyelesaikan masalah ini dengan memperkenalkan pengelolaan akun dan metode 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 berfungsi seperti sistem operasi dalam menangani transaksi, dengan fungsi utama sebagai berikut:
Pengantar AA Asli
Di Ethereum, akun dibagi menjadi EOA dan akun kontrak. Namun, dalam AA asli, setiap akun adalah kontrak, dan mekanisme pemrosesan transaksi terintegrasi langsung ke dalam protokol blockchain.
Desain AA di berbagai jaringan blockchain:
Perbedaan ERC-4337 dan AA Natif
peran sistem operasi
Sistem operasi AA perlu menyelesaikan masalah berikut:
Dalam ERC-4337, peran-peran ini dilakukan secara kolaboratif oleh Bundler dan EntryPoint Contract.
Dalam AA asli, pengguna mengirim userOps mereka ke operator/penyortir server resmi, bukan ke Bundler dan EntryPoint Contract.
Di StarkNet, Sequencer bertanggung jawab untuk menangani semua tugas ini.
Fitur utama zkSync Era adalah Operator perlu bekerja sama dengan bootloader (kontrak sistem). Bootloader bertanggung jawab untuk membuka blok baru, mendefinisikan parameter blok dan parameter Gas, serta menerima transaksi dari Operator untuk divalidasi.
antarmuka kontrak
Karena ada 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, sementara pada tahap "eksekusi", hanya titik masuk pada AA asli yang tetap.
batasan langkah verifikasi
Karena tidak ada batas biaya untuk memverifikasi transaksi, penyerang mungkin melakukan serangan DoS terhadap mempool, yang dapat mempengaruhi bundler (EIP-4337) atau operator/pengurut (AA asli).
EIP-4337 mendefinisikan opcode yang dilarang dan batasan akses penyimpanan. zkSync Era melonggarkan penggunaan beberapa OpCode:
batasan langkah eksekusi
Di zkSync, untuk melakukan panggilan sistem, perlu mengkonfirmasi keberadaan bendera sistem. Misalnya, menambah nonce memerlukan interaksi dengan NonceHolder, sementara penyebaran kontrak memerlukan interaksi dengan ContractDeployer.
ERC-4337 dan StarkNet tidak memiliki batasan khusus pada tahap eksekusi.
pemrosesan angka acak
penyebaran transaksi pertama
zkSync desain khusus
Di zkSync, jika ETH ditransfer langsung dari EOA Ethereum, tidak perlu menerapkan kontrak akun khusus, pengguna akan menerima akun default dengan alamat yang sama. Akun ini dapat berfungsi seperti EOA Ethereum dan dikendalikan oleh kunci privat EOA Ethereum yang sesuai.
Jenis akun ini adalah version None dan bukan version1. Pengguna tidak dapat memanggil fungsi DefaultAccount karena tidak ada kode yang diterapkan di ruang kernel.
Perbedaan 4337 antara L1 dan 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 memastikan keamanan dan penyelesaian. Dalam 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.
perbedaan alamat
Metode pengkodean alamat dalam fungsi create zkSync ERA berbeda dari Ethereum dan penggabungan OP. 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, sebuah detail yang mudah diabaikan dapat menyebabkan alamat kontrak akun yang berbeda antara implementasi ERC-4337 di Ethereum dan L2.
Masalah kunci terletak pada penambahan opcode baru dalam hard fork. Misalnya, jika rantai L2 tidak mendukung hard fork Shanghai, dan versi EVM tidak ditentukan saat kompilasi, pengenalan push0 akan mengakibatkan perubahan pada bytecode, meskipun kode Solidity tetap sama.