Batch Transactions for EOAs
github.com/0xfoobar
Longform Writeup
https://0xfoobar.substack.com/p/batch-transactions-for-eoas
TLDR:
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.
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
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
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
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 |