Apa itu account abstraction (ERC-4337)?

·7 mnt baca·Oleh SSP Editorial Team
Diagram dompet smart contract dengan UserOperation mengalir melalui bundler

Jika Anda telah menghabiskan waktu di sekitar Ethereum dalam beberapa tahun terakhir, Anda mungkin pernah mendengar frasa "account abstraction" — sering disandingkan dengan nama kode ERC-4337. Kedengarannya akademis, tetapi ide di baliknya sangat praktis: dompet Ethereum Anda seharusnya berperilaku seperti sepotong perangkat lunak kecil yang bisa Anda sesuaikan, bukan satu kunci privat dengan antarmuka yang harus diterima apa adanya.

Dalam artikel ini kami akan menjelaskan apa yang sebenarnya diubah oleh ERC-4337, empat istilah baru yang diperkenalkannya (UserOperation, EntryPoint, bundler, paymaster), apa yang dimungkinkannya dalam praktik, dan bagaimana ia berhubungan dengan pendekatan multisig milik SSP. Tidak diperlukan pengetahuan smart contract sebelumnya — cukup rasa ingin tahu tentang cara kerja dompet crypto di balik layar.

Masalah yang ingin diatasi ERC-4337

Sebelum account abstraction, setiap dompet Ethereum adalah apa yang disebut externally-owned account — EOA. EOA sangat sederhana: satu kunci privat mengendalikan satu alamat, dan setiap tindakan yang dilakukan alamat itu harus ditandatangani oleh persis kunci tersebut.

Kesederhanaan itu datang dengan sisi-sisi yang tajam:

  • Tidak ada pemulihan. Hilangkan kunci, hilanglah dana. Tidak ada tautan "lupa kata sandi", tidak ada kontak tepercaya yang bisa menjamin Anda, tidak ada pembukaan terkunci-waktu. Kuncinya adalah akun.
  • Tidak ada penggabungan. Ingin menyetujui sebuah token lalu menukarnya? Itu adalah dua transaksi terpisah, dua tanda tangan terpisah, dua pembayaran gas terpisah. Tidak ada cara untuk berkata "lakukan keduanya bersama atau tidak sama sekali".
  • Tidak ada multisig native. Jika Anda menginginkan beberapa penandatangan, Anda harus men-deploy sebuah kontrak (seperti Safe, sebelumnya Gnosis Safe) lalu meminta EOA mengirim transaksi ke kontrak itu. Kontraknya multisig, tetapi akun yang berinteraksi dengan dunia di bawahnya tetap EOA satu kunci. Pengalaman pengguna selalu kelas dua dibandingkan dompet biasa.
  • gas selalu dibayar dalam ETH, selalu dibayar oleh pengirim. Tidak ada dApp yang bisa membayar gas Anda. Tidak ada pembayaran gas dalam USDC. Tidak ada pengecualian.

Para pengembang telah mencari jalan keluar dari batasan ini selama bertahun-tahun dengan pola kontrak yang rumit. ERC-4337 akhirnya memberi mereka jalan keluar yang terstandardisasi — tanpa memerlukan perubahan apa pun pada protokol dasar Ethereum.

Apa yang diperkenalkan ERC-4337

ERC-4337 tidak mengubah cara kerja Ethereum di tingkat protokol — itulah trik cerdasnya. Sebaliknya, ia mendefinisikan empat peran baru yang, bersama-sama, mensimulasikan "dompet smart contract sebagai warga kelas satu" sepenuhnya di ruang pengguna. Begitu Anda mengenal keempat kata ini, seluruh standar itu langsung masuk akal.

UserOperation. Ini adalah objek "niat yang ditandatangani" baru yang menggantikan transaksi mentah untuk dompet AA. Di mana EOA menghasilkan transaksi yang ditandatangani oleh kunci tunggalnya, dompet AA menghasilkan UserOperation — sebuah permintaan terstruktur yang berkata "akun ini ingin melakukan X, ini otorisasinya, ini cara membayarnya". Sebuah UserOperation mungkin berkata "transfer 100 USDC ke Alice, diotorisasi oleh tanda tangan dari dua perangkat ini, dan dApp akan menanggung gas".

Kontrak EntryPoint. Sebuah smart contract tunggal, kanonis, dan teraudit yang di-deploy di Ethereum, yang tahu cara menerima UserOperations, memverifikasinya terhadap aturan dompet AA mana pun yang menjadi asalnya, dan menjalankan tindakan yang dihasilkan. Setiap dompet AA berbicara dengan EntryPoint yang sama, dan itulah yang membuat standar menjadi sebuah standar.

Bundler. Aktor off-chain (anggap saja sebagai semacam relayer khusus) yang mendengarkan UserOperations di mempool publik, menggabungkan beberapa di antaranya, dan mengirimkan paket itu ke EntryPoint sebagai satu transaksi Ethereum tunggal. Bundler membayar gas yang sebenarnya kepada jaringan dan mendapatkan penggantian dari UserOperations yang dipaketkannya.

Paymaster. Sebuah kontrak opsional yang bisa secara sukarela membayar gas atas nama pengguna. Paymaster adalah yang membuat "dApp membayar gas Anda" atau "bayar gas dalam USDC alih-alih ETH" menjadi mungkin. Tanpa paymaster, dompet AA pengguna membayar gas-nya sendiri; dengan paymaster, paymaster yang turun tangan.

Itulah seluruh kosakatanya. Sisanya hanyalah hiasan.

Apa yang dimungkinkan account abstraction dalam praktik

Empat potongan di atas terdengar abstrak hingga Anda melihat apa yang mereka buka:

  • Sponsor gas. Sebuah dApp dapat membayar gas untuk pengguna baru sehingga mereka tidak perlu memperoleh ETH sebelum melakukan apa pun. Ini sangat besar untuk onboarding — pengguna baru dapat mendaftar, mint sebuah NFT, atau melakukan trade pertama mereka tanpa terlebih dahulu melalui on-ramp fiat-ke-ETH. Argent, Safe, dan ZeroDev semuanya mendukung alur sponsor hari ini.
  • Pemulihan sosial. Anda dapat mengonfigurasi dompet Anda sehingga jika Anda kehilangan kunci utama, kuorum "wali" (teman, keluarga, perangkat keras di brankas) dapat merotasi kunci atas nama Anda. Logika pemulihan ada di dalam kontrak dompet Anda — tidak ada kustodian tersentralisasi yang memegang uang Anda, tetapi uang Anda tidak hilang permanen jika satu perangkat gagal.
  • Kunci sesi. Sebuah dApp dapat meminta dompet Anda kunci dengan izin terbatas, dibatasi pada satu aplikasi dan satu set tindakan, berlaku selama beberapa jam. Anda menandatangani sekali dengan kunci utama untuk memberikan sesi, lalu dApp dapat bertindak di dalam sandbox-nya tanpa meminta Anda mengonfirmasi setiap klik. Studio game menyukai pola ini.
  • Tindakan tergabung. "Setujui token ini DAN tukar" menjadi satu tanda tangan, satu UserOperation, satu eksekusi. Jika ada langkah yang gagal, seluruh paket dibatalkan — tidak ada lagi transaksi yang setengah jadi terjebak dalam keadaan tidak konsisten.
  • Skema tanda tangan kustom. Ingin dompet yang menggunakan passkey, atau enclave perangkat keras, atau skema ambang batas 2-dari-3? Logika verifikasi ada di dalam kontrak dompet, jadi Anda dapat menggunakan kriptografi apa pun yang Anda suka, bukan hanya standar EOA secp256k1 ECDSA.

Bagaimana hal ini berhubungan dengan model multisig SSP

SSP Wallet mengambil jalur berbeda menuju banyak tujuan yang sama. SSP menggunakan multisig 2-of-2 BIP48 — dua kunci independen, pada dua perangkat independen, keduanya diperlukan untuk menandatangani transaksi apa pun. ERC-4337 dan multisig BIP48 adalah mekanisme berbeda yang menyerang masalah bersama: tidak ada satu pun perangkat yang boleh menjadi titik kegagalan tunggal.

Beberapa perbandingan jujur:

  • Apa yang sama. Keduanya menghilangkan mode kegagalan "satu kunci, satu kesempatan" dari dompet tanda-tangan-tunggal klasik. Hilangkan satu faktor, dan Anda dapat pulih menggunakan yang lain. Kompromikan satu faktor (malware di laptop, ponsel yang hilang), dan penyerang tetap tidak bisa memindahkan dana sendirian.
  • Di mana mereka berbeda. BIP48 adalah standar multisig berakar pada Bitcoin yang berfungsi di seluruh chain yang didukung SSP — Bitcoin, Ethereum, Litecoin, dan beberapa lainnya — menggunakan primitif multisig native dari masing-masing chain. ERC-4337 hanya untuk Ethereum dan berada di lapisan smart contract, jadi ia datang dengan kemampuan yang tidak dimiliki BIP48 secara native (sponsor gas, kunci sesi), tetapi dengan biaya cakupan terbatas Ethereum saja dan overhead eksekusi kontrak.
  • Di mana posisi SSP hari ini. SSP dibangun di sekitar model BIP48. Dompet ERC-4337 dan multisig gaya SSP bukan musuh — mereka adalah alat yang saling melengkapi — dan pada prinsipnya kunci multisig BIP48 bisa digunakan sebagai penandatangan di dalam dompet AA. Itu bukan jalur utama SSP saat ini, dan kami lebih suka jelas tentang produk hari ini daripada menjanjikan integrasi yang belum kami rilis.

Jika Anda telah mempertimbangkan "haruskah saya menggunakan dompet AA atau multisig perangkat keras?", jawaban jujurnya adalah keduanya menyelesaikan masalah yang tumpang tindih dengan trade-off yang berbeda — dan jawaban yang tepat tergantung pada chain mana yang Anda pedulikan.

Trade-off yang jujur

Account abstraction adalah langkah maju yang sejati, tetapi tidak gratis, dan siapa pun yang mengatakan sebaliknya sedang menjual sesuatu.

  • Biaya gas lebih tinggi. Setiap UserOperation menjalankan kode kontrak di EntryPoint dan di kontrak dompet Anda. Itu jelas lebih banyak komputasi daripada transaksi yang ditandatangani EOA, yang berarti lebih banyak gas. Bundling mengamortisasi sebagian, tetapi per-tindakan Anda umumnya akan membayar lebih dari yang dibayar EOA.
  • Pemulihan hanya sebaik kontrak pemulihan. Pemulihan sosial dan skema wali adalah fitur yang kuat — dan sekaligus permukaan serangan baru. Bug pada logika pemulihan, atau set wali yang ternyata terlalu kecil, bisa sama bencananya dengan kehilangan kunci EOA. Tetap gunakan implementasi dompet yang teraudit.
  • Paymaster menciptakan hubungan kepercayaan. "dApp membayar gas" terdengar hebat, tetapi itu berarti paymaster melihat UserOperations Anda dan pada prinsipnya dapat menolak menyponsori transaksi tertentu. Itu model kepercayaan yang berbeda dari "Anda membayar gas Anda sendiri, tidak ada yang bisa memblokir Anda".
  • Belum teruji dalam skala besar. EOA telah mengamankan triliunan dolar selama lebih dari satu dekade. ERC-4337 mulai beroperasi pada Maret 2023 dan masih berkembang. Untuk cold storage bernilai tinggi, jawaban konservatif (dompet perangkat keras, multisig, kontrak teraudit) masih memiliki rekam jejak yang lebih panjang.

Mendalami lebih jauh

Untuk gambaran sisi-SSP tentang bagaimana keamanan multi-kunci bekerja tanpa smart contract, baca Apa itu multisig 2-of-2?.

Untuk spesifikasi teknis kanonis — termasuk struct UserOperation yang tepat, antarmuka EntryPoint, dan alasan di balik setiap keputusan desain — EIP itu sendiri adalah sumber utama: https://eips.ethereum.org/EIPS/eip-4337.

Bagikan artikel ini