Account Abstraction

AA를 사용하는 이유: 가스비 대납(Native coin없이 전송), 커스터마이징, 개인 키 복구

References

https://eips.ethereum.org/EIPS/eip-4337

https://medium.com/@0xasdf_eth/a-complete-guide-on-account-abstraction-b885542e7552

https://github.com/eth-infinitism/account-abstraction

https://medium.com/portkey-aa-wallet-did/portkey-account-abstraction-wallet-and-social-recovery-mechanism-30f4a9fa1262

https://piatoss3612.tistory.com/m/160


Definitions

Account contract = Smart contract wallet

UserOperation: a transaction.

Sender: account contract.

Bundler**:** a node that can handle UserOperations. Validate txs(gas, nonce, balance)

EntryPoint: a singleton contract. UserOperation Gateway

Account contract: 실행과 검증

Paymaster: a helper contract that agrees to pay for the transaction, instead of the sender itself.

Aggregator: 서명 집계를 수행하는 도우미 컨트랙트 (Rationale: EntryPoint.simulateValidation 검증 → 계정 컨트랙트 validateUserOp 검증. 이렇게 트랜잭션 번들에서 UserOperation을 다시 검증하는 것은 비효율적). How 100개의 서명을 1개로 집계하여 검증을 1번하도록 함. (preliminary: 스마트 컨트랙트 월렛이 동일한 서명 방식을 써야함)

플로우: