anvil 로컬 ERC-4337 AA PoC · SponsoringPaymaster 사용자 가스 0

ERC-4337 Paymaster × Gaslite Drop 가스 스폰서십 PoC

EOA 일반 트랜잭션 vs UserOp + SponsoringPaymaster — GasliteDrop 1:N 에어드롭 시나리오에서 프로세스·총 가스 비교 (anvil 전용)

측정 N —
EOA Gaslite (N max, gas) —
4337 handleOps (N max, gas) —
계정 소유자 가스 0

비교가 의미하는 것 (누가 가스를 내는가)

EOA 개별 (N× transfer)

  • 수취인마다 transfer 트랜잭션을 N번 보냄.
  • 지불: EOA 송신자 잔고에서 tx마다 가스비.
  • 총 가스 = 각 receipt gasUsed 합. N이 커질수록 선형으로 커짐.

EOA Gaslite (approve + airdrop)

  • 동일 1:N을 approve 1회 + airdropERC20 1회로 묶음.
  • 지불: 역시 EOA 송신자 (2 tx 합).
  • 개별 대비 절감%가 큼 — 배치 루프가 tx 오버헤드·콜드 스토리지 비용을 줄임.

4337 Gaslite (UserOp + Paymaster)

  • SimpleAccount가 executeBatch(approve, airdrop)를 1 UserOp로 실행.
  • 번들러가 handleOps outer tx를 냄 → 표의 handleOps (gas) = 그 outer receipt gasUsed.
  • 계정 소유자 가스 = 0. UserOp 실비는 EntryPoint가 Paymaster deposit에서 차감 (표의 PM 스폰서 gas@1gwei).
  • handleOps gas ≈ EOA Gaslite + AA 검증/과금 오버헤드라서 비슷하거나 약간 큼.

왜 handleOps와 EOA Gaslite가 비슷한가? 둘 다 결국 approve+airdrop(또는 동일 작업)을 수행합니다. 4337은 그 위에 account/PM 검증·EntryPoint 회계가 붙어 outer gas가 조금 더 큽니다. 왜 PM 스폰서(gas 환산)가 handleOps보다 클 수 있는가? 이 PoC의 MinimalEntryPoint는 gasleft × maxFeePerGas 근사로 deposit을 깎습니다. 프로덕션 eth-infinitism EP의 정밀 과금과 다를 수 있어, “스폰서가 실제로 깎인 wei(→gas 환산)”와 “체인에 기록된 outer gasUsed”를 나란히 둡니다. 단위는 둘 다 gas로 통일했습니다.

Owner 서명→ UserOp→ MinimalEntryPoint→ validate / PM→ SimpleAccount.executeBatch→ GasliteDrop

가스 비교 (단위: gas · anvil · 가정 1 gwei)

모든 열은 gas입니다. 「PM 스폰서」= pm_deposit_delta_wei / 1e9. 「Gaslite 절감%」= EOA 개별 대비. 「vs Gaslite」= 4337 handleOps가 EOA Gaslite 대비 얼마나 큰지(+/− %).

N EOA 개별 (gas) EOA Gaslite (gas) Gaslite 절감% 4337 handleOps (gas) vs Gaslite PM 스폰서 (gas@1gwei) 소유자 (gas) 4337 indiv-batch (gas)
결과 로딩 중…
출처: bench/results/summary.json · 단위 전부 gas

재현 (anvil only · 숫자 재측정은 이 작업에서 하지 않음)

cd /workspace/gaslite-4337-paymaster-poc && N_VALUES=5,10,50,100,200 ./bench/run_bench.sh