Akun Pintar Ethereum: UserOperation, Bundler, dan Sponsor Gas
Ikuti UserOperation ERC-4337 melalui bundler dan EntryPoint, pahami sponsor gas oleh paymaster, serta bedakan pemulihan akun dari kustodi.
Dalam panduan iniAkun pintar menaruh aturan izin yang dapat diprogram dalam kontrak
Ringkasan singkat
ERC-4337 memungkinkan akun kontrak mengirim UserOperation dengan aturan sendiri lewat jalur terpisah dari transaksi EOA. Bundler memanggil EntryPoint; paymaster dapat mensponsori gas. Ini tidak menjamin pemulihan, transaksi gratis, atau tanpa kustodi.
Akun pintar menaruh aturan izin yang dapat diprogram dalam kontrak
Akun milik eksternal (EOA) membuktikan kendali dengan tanda tangan kunci privat dan nonce-nya mengurutkan transaksi. Model ini sederhana, tetapi biasanya satu kunci mengizinkan semua tindakan.
Satu transaksi EOA memuat satu tindakan tingkat atas; kontrak yang dipanggil tetap dapat memanggil kontrak lain secara internal.
Panduan transaksi Ethereum tertunda membahas jalur EOA yang berbeda dari ERC-4337. Akun pintar adalah kontrak yang dapat menyimpan aset dan menjalankan pemanggilan.
Kode validasinya dapat meminta satu tanda tangan, ambang beberapa tanda tangan, atau izin yang kedaluwarsa pada waktu tertentu. ERC-4337 menentukan antarmuka untuk mengotorisasi dan menjalankan operasi, bukan satu produk dompet atau kebijakan pemulihan.
Ethereum.org menyebut kunci cadangan dan sponsor gas sebagai kemungkinan, bukan fitur di setiap dompet. Sebutan “dompet pintar” saja tidak menjelaskan siapa yang mengendalikannya.
Periksa kontrak yang menyimpan aset, kode dan EntryPoint yang dipercaya akun, serta penanda tangan yang dapat mengizinkan pemanggilan. Jika logika akun dapat ditingkatkan, kewenangan admin dan proses perubahan juga memengaruhi kendali aset.
UserOperation belum menjadi transaksi Ethereum yang masuk blok
UserOperation menjelaskan tindakan yang ingin dilakukan akun pintar. Isinya biasanya alamat akun pengirim, nonce akun, data pemanggilan, tanda tangan, batas gas, dan ketentuan biaya.
Data factory untuk membuat akun atau data paymaster untuk sponsor juga dapat ditambahkan. Field yang tepat bergantung pada versi EntryPoint.
Alih-alih langsung mengirimkannya ke chain dengan eth_sendTransaction, dompet mengirimkannya ke bundler atau relay dengan RPC ERC-4337 seperti eth_sendUserOperation. Permintaan masuk ke pool UserOperation yang terpisah dari pool transaksi EOA.
Hash UserOperation mengidentifikasi permintaan; transaksi on-chain yang dibuat bundler memiliki hash dan tanda terima sendiri. ERC-7769 menetapkan RPC untuk pengiriman dan pemeriksaan hasil.
Balasan bundler dapat berarti permintaan lolos pemeriksaan layanan tersebut dan masuk ke pool-nya. Itu tidak membuktikan bahwa blok telah memasukkannya atau tindakan aplikasi berhasil.
Penyebaran ke bundler lain bergantung pada infrastruktur dan kebijakannya. Pisahkan konfirmasi penyedia dari hasil on-chain.
Bundler mensimulasikan validasi dan menyiapkan pemanggilan on-chain
Bundler menerima operasi, memeriksa kecocokan dengan versi EntryPoint, lalu mensimulasikan logika validasi akun dan paymaster. Ia memeriksa tanda tangan, kepercayaan pada EntryPoint, nonce, gas, dan syarat sponsor.
Operasi yang tidak sesuai aturan atau gagal simulasi dapat ditolak. Panduan bundler ERC-4337 menjelaskan simulasi dan pengiriman bundel.
Berikutnya bundler memilih satu atau beberapa operasi yang lolos dan membuat transaksi Ethereum biasa untuk memanggil handleOps pada EntryPoint. Penyertaan transaksi itu di blok tetap bergantung pada produksi blok dan kondisi jaringan.
Hash UserOperation yang dikembalikan bukan bukti eksekusi pada chain kanonis. Pool UserOperation berbeda dari pool EOA, dan tidak semua penyedia memiliki permintaan yang sama.
Bundler dapat menolak atau menahan operasi; chain, versi EntryPoint, dan kebijakan yang didukung juga berbeda. Saat memeriksa status, pisahkan tampilan dompet, tanda terima operasi, serta tanda terima on-chain untuk transaksi bundel.
EntryPoint memeriksa otorisasi akun lalu memanggilnya
EntryPoint menerima handleOps dari bundler lalu memanggil fungsi validasi setiap akun. Akun memeriksa bahwa panggilan datang melalui EntryPoint tepercaya, serta memvalidasi tanda tangan dan aturan izinnya sendiri.
Nonce ERC-4337 terdiri dari key 192-bit dan sequence 64-bit. EntryPoint memvalidasi dan menaikkan sequence untuk tiap pasangan akun-key; akun dapat memberi arti khusus pada key atau menambahkan pemeriksaan.
Panduan EntryPoint ERC-4337 menguraikan tahap validasi dan eksekusi. Paymaster opsional juga memeriksa apakah ia akan mensponsori operasi.
Setelah validasi lolos, EntryPoint memanggil fungsi eksekusi akun untuk menjalankan tindakan di callData dan menyelesaikan biaya. EntryPoint adalah kontrak bersama yang memungkinkan alur akun pintar tanpa perubahan protokol untuk tiap desain dompet.
Periksa alamat, versi, dan jaringan yang benar-benar digunakan. Simulasi membantu memperkirakan hasil, tetapi tidak menjamin penyertaan. Selagi menunggu, status chain, biaya, masa berlaku, atau kontrak eksternal dapat berubah.
Setelah validasi pun pemanggilan aplikasi dapat gagal atau revert. Masuk blok saja tidak membuktikan transfer atau tindakan yang dimaksud berhasil.
Paymaster mensponsori gas hanya jika menyetujui operasi
Jika UserOperation membawa data paymaster, EntryPoint menanyakan apakah kontrak itu bersedia menjadi sponsor. Aplikasi dapat menanggung biaya atau mengizinkan pengguna memulai tanpa ETH di akun.
Desain tertentu memungkinkan pembayaran token atau syarat kelayakan lain; detailnya bergantung pada dompet dan paymaster. Sponsor tidak menghilangkan biaya.
Paymaster dapat membatasi aplikasi, pengguna, jumlah operasi, atau nilai, memeriksa permintaan, lalu menolaknya. Depositnya di EntryPoint membayar biaya operasi.
Jika stake terpisah diwajibkan, stake itu berfungsi sebagai jaminan dan berbeda dari deposit gas.
Panduan paymaster ERC-4337 dan EIP-4337 menjelaskan validasi dan penyelesaian. Tampilan biaya nol di aplikasi bukan berarti tidak ada biaya.
Sponsor dapat membayar lebih dulu lalu memulihkan nilainya lewat langganan, token, atau ketentuan layanan. Cari tahu siapa yang akhirnya menanggung biaya, apakah ada batas sponsor, dan apakah operasi gagal tetap dapat memakai gas.
Nilai beberapa pemanggilan dan biayanya secara terpisah
Jika dompet mendukung, satu UserOperation dapat memuat persetujuan aplikasi dan swap. Keduanya dikirim sebagai satu operasi melalui EntryPoint.
Ini berbeda dari satu transaksi EOA biasa dan juga berbeda dari bundler yang menggabungkan beberapa UserOperation terpisah dalam satu transaksi chain. Periksa pratinjau dompet.
Contoh hipotetis: biaya gas aktual operasi bersponsor yang disetujui sebesar 0,0012 ETH. Biaya ini dapat diselesaikan dari deposit paymaster di EntryPoint, bukan saldo pengguna. Angka tersebut hanya untuk ilustrasi, bukan kuotasi saat ini.
Nilai aktual bergantung pada gas yang digunakan, kondisi biaya, dan jaringan. Penggabungan tidak selalu lebih murah atau aman. Atomisitas beberapa pemanggilan bergantung pada cara akun pintar menangani kegagalan.
Pastikan apakah satu pemanggilan gagal membatalkan seluruh bundel, apakah tindakan lain dapat selesai, dan siapa membayar gas. Estimasi keliru dapat membuat operasi ditolak atau gagal.
Panduan biaya gas Ethereum menjelaskan field biaya.
Pemulihan ditentukan implementasi akun, bukan ERC-4337
Akun dapat memiliki penanda tangan cadangan atau proses ketika guardian tepercaya mengganti kunci setelah memenuhi ambang. Beberapa desain memberi waktu tunggu agar kunci lama dapat mengajukan keberatan.
Namun, jika satu tanda tangan selalu diwajibkan, kehilangan kunci itu dapat menutup jalur pemulihan. ERC-4337 membolehkan aturan akun sendiri, tetapi tidak memberikan kunci cadangan atau pemulihan sosial secara default.
Terlalu sedikit guardian atau aturan ganti kunci yang lemah dapat membuka celah serangan. Terlalu banyak guardian atau persyaratan berat dapat menunda pemulihan pemilik sah. Periksa ambang, masa tunggu, hak pembatalan, dan penyimpanan kunci pemulihan.
Aturan tersebut juga menentukan siapa yang dapat menghalangi operasi. Dompet kontrak tidak otomatis bersifat kustodial atau nonkustodial.
Kendali bergantung pada siapa yang memegang kunci tanda tangan, siapa yang punya hak admin atau upgrade, dan apa yang boleh disetujui hosted signer atau layanan pemulihan. Periksa kontrak penyimpan aset terpisah dari kunci dan layanan pengendalinya.
Panduan pemulihan seed phrase membahas pemulihan lain.
Periksa operasi dan jalur kendali sebelum mengirim
Pada pratinjau dompet, periksa jaringan, alamat akun, kontrak tujuan, data pemanggilan, lingkup persetujuan token, dan jumlah pemanggilan. Tanda tangan dapat mengizinkan tindakan lebih luas dari sorotan antarmuka.
Jika tidak memahami data yang ditandatangani, baca dokumentasi resmi aplikasi dan dompet. Untuk memahami sponsor, baca syarat kelayakan, batas penggunaan, cara pembayaran alternatif, dan aturan biaya saat gagal; jangan hanya mengandalkan nama paymaster.
Label sponsor aktif tidak menjamin aplikasi selalu gratis, dan paymaster masih dapat menolak operasi. Kemacetan jaringan dan penundaan blok tetap terpisah.
Jika UserOperation lama diproses, jangan langsung memakai alur “percepat” atau “batalkan” transaksi EOA. Cari hash operasi dan tanda terimanya lebih dulu. Jika tersedia hash transaksi bundler, periksa tanda terima blok dan hasil eksekusi.
Tanda terima RPC dapat membedakan biaya dan keberhasilan satu operasi dari tanda terima seluruh bundel.
Pertanyaan umum
Q1Apakah UserOperation sama dengan transaksi Ethereum?
Tidak. Ini permintaan smart account melalui pool terpisah. Saat bundler mengirim panggilan EntryPoint, chain mencatat transaksi bundel dan hasil setiap operasi.
Q2Jika ada paymaster, apakah pengguna tidak membayar gas?
Pengguna mungkin tidak membayar ETH langsung dari akun, tetapi biaya jaringan tetap ada. Batas, pembayaran token, atau syarat layanan dapat berlaku; operasi gagal pun dapat memakai gas.
Q3Bisakah dompet ERC-4337 dipulihkan jika kuncinya hilang?
Hanya jika akun memiliki penanda tangan cadangan atau kebijakan pemulihan. Periksa ambang, masa tunggu, wewenang ganti kunci, dan kendali layanan pemulihan.
Sumber dan bacaan lanjutan
Laporkan masalah
Kami akan menyiapkan email berisi tautan artikel ini. Mark menerima laporan setelah Anda mengirimkannya
Cek cepat
Sudah membaca panduannya? Uji diri dengan 3 pertanyaan
Pertanyaan 01
Bundler mengembalikan hash UserOperation. Apa yang dibuktikan oleh jawaban itu saja?
Pilih jawaban untuk melihat penjelasannya
Glosarium opsi
Kondisi ketika harga pelaksanaan opsi sangat dekat dengan harga pasar aset acuannya. Opsi mungkin belum memiliki nilai intrinsik yang berarti, tetapi masih dapat memiliki premi karena waktu dan ketidakpastian yang tersisa.
Baca panduan lengkapOpsi beliKontrak yang memberi pembeli hak untuk membeli aset acuan pada harga pelaksanaan sesuai persyaratannya. Penjual kontrak memikul kewajiban yang sepadan jika hak itu dilaksanakan dan ditetapkan kepadanya.
Baca panduan lengkap