-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using flashbots as a backdoor path to account abstraction #24
Comments
This might be missing "instead of" or "rather than". |
Thanks! Fixed. |
Ah, really interesting! |
Wow, so everyone owns a machine gun! That's an incredible excited spectacle! |
Wow,This is a brand new attempt! |
Some thoughts on this since I had a very similar idea. The interesting part for me was that by using flashbots, no extra contracts were needed. This solution has downsides. In this simple scenario, the bundle had to be executed to its completion, otherwise, the account would not have enough ETH to cover the costs of the transaction. Wrapping and executing the bundle in a smart contract wallet, and only paying the Another limitation here that is currently in place is that there is currently only one bundle in each block. "Regular" txs would find it hard to compete with other bots that use the bundles to extract MEV (e.g. by sandwiching DEX trades). |
How is this affected by EIP-1559? Specifically what @koeppelmann mentioned here: https://twitter.com/koeppelmann/status/1381922898617757696 |
@amanusk can you elaborate more on this |
A bundle is a set of txns. If the miner bribe comes from a 3rd party relayer with its txn nonce not being dependent on the rest, a miner can only execute the bribe txn while dropping the rest of the txns in the bundle. |
One of the long-running desires of many in the Ethereum protocol community is to add some form of account abstraction. Account abstraction (see also: this video where I talk about the concept) is the idea that instead of every transaction needing to start from an "externally-owned account" (EOA) controlled by a private key, transactions could start directly from contracts (and EOAs could eventually even be deprecated entirely).
There are many use cases for this: smart contract wallets (eg. see here where I make the case for social recovery wallets), privacy-preserving tools like Tornado Cash, etc. Today, smart contract wallets are difficult to use because a transaction must start from an EOA, and the EOA must pay the gas fees, so someone using a smart contract wallet must have some of their ETH in an EOA to pay for gas, adding significant complexity (and wasted gas). Centralized relayers can mitigate this to some extent, but some inefficiency ultimately still remains.
Flashbots can solve this! Flashbots is basically a very powerful and more efficient generalized and decentralized relayer protocol, and it should be possible to build a plugin to turn it into a relayer for smart contract wallets:
target
,calldata
andgaslimit
(or an array of each, if they want to make multiple calls)fee
, a quantity of ETH that the wallet sends to theblock.coinbase
(post-EIP-1559 this could be extended tomax_total_fee
andminer_bribe
)There is a lot of room for creativity in what those verification rules could be. One simple option is to check for four conditions:
Another option is more limited but simpler: if the total gaslimit is low enough (eg. under 400000?), the system could simply check that the
block.coinbase
's balance increases by a sufficient amount during transaction execution. This could allow the privacy-preserving use cases as well as smart contract wallet creation.This could give us most of the benefits of account abstraction without needing to make deep changes to the Ethereum protocol itself (eg. EIP 2938), and so it seems worth making a serious effort to explore and implement.
The text was updated successfully, but these errors were encountered: