1 of 7

Batch Transactions for EOAs

github.com/0xfoobar

2 of 7

Longform Writeup

https://0xfoobar.substack.com/p/batch-transactions-for-eoas

TLDR:

  • Batch txs fix stale approval attacks (which have swept $100m+ from retail)
  • Batch txs reduce developer overhead
  • Batch txs reduce state growth
  • Batch txs remove trusted intermediaries
  • EOAs are 90%+ of current addresses, must improve default experience

3 of 7

Batch Txs Fix Stale Approval Attacks

Approvals are good for longstanding orderbooks (Opensea ask).

Approvals are bad/dangerous for simple protocol deposits (Uniswap swap).

Three prominent stale approval attacks in last 30 days alone:

None of these protocols or users wanted longstanding approvals. It was just the path of least resistance because queueing up 3+ txs is a UX headache.

4 of 7

Batch Txs Improve Protocol UX

I am the founder behind Delegate, tooling that lets users keep assets in a cold wallet while still accessing utility (airdrops, access, governance) from a hot wallet. Securing ~$900 million of NFTs today.

Primary push behind v1 -> v2 upgrade was adding in a simple `multicall()` function

5 of 7

Batch Txs Reduce State Growth

Fewer txs floating around in the mempool

Fewer onchain signature verification ops that add ~21k gas overhead each time

Pseudo-1559 benefits come from users expressing batched gas preference instead of sequential tx gas pricing

6 of 7

Batch Txs Remove Trusted Intermediaries

Private relays can unbundle today

Reputation-as-collateral is a pseudo-permissioning system, limits new entrants

Enforcing batch txs at protocol layer removes this attack vector

7 of 7

EIP Comparison

EIP-3074 (lightclients)

AUTH, AUTHCALL opcodes

well-tested, some people unhappy with scope

EIP-3074 (yoav weiss)

sign each specific call, no persistent invoker permissions

EIP-5806 (hadrien croubois)

new tx type, EOA can delegatecall any contract directly

conceptually simple, no invoker, spec less fleshed out