Skip to main content

overview

Flashbots Auction is a permissionless, transparent, and fair ecosystem for efficient MEV extraction and frontrunning protection which preserves the ideals of Ethereum. Flashbots Auction provides a private communication channel between Ethereum users and miners for efficiently communicating preferred transaction order within a block.

Flashbots Auction consists of mev-geth, a patch on top of the go-ethereum client, along with the mev-relay, a transaction bundle relayer.

Flashbots Auction is currently in version alpha-v0.2 of the roadmap.

Why Flashbots Auction?#

Throughout the second half of 2020 and begining of 2021, a spike in Ethereum usage has revealed a set of negative externalities brought by MEV. These include network congestion (i.e. p2p network load) and chain congestion (i.e. block space usage) caused by inefficient communication between PGA bot operators and miners for transaction order preference. These negative externalities create a deadweight loss which is shouldered by regular Ethereum users though high gas price volatility and artificially scarce blockspace.

The incentives around MEV extraction pose an existential risk to Ethereum consensus security due to the incentivization of chain history re-orgs for extraction of past MEV (e.g. through time-bandit attacks) and incentivization of transaction routing centralization for privacy, low latency, and ordering control. These risks are considered to be existential for Ethereum as they undermine the principles of finality and permissionlessness.

We have observed and are concerned about the active development of permissioned and exclusive transaction routing infrastructure as it holds the potential to erode the neutrality, transparency, decentralization, and fairness of Ethereum today. Flashbots Auction is an open-sourced, democratic, and credibly neutral alternative which aims to mitigate the aforementioned negative externalities and existential risks.

Timeline#

  • July 2020: Formation of MEV-Ship Research Collective.
  • November 2020: Formation of Flashbots Research Organization and proposal of Flashbots Auction architecture.
  • January 2021: Flashbots Auction Alpha (v0.1) made available for miners and searchers to adopt.
  • May 2021: Flashbots Auction Alpha (v0.2) made available for miners and searchers to adopt.

You can find our monthly-ish transparency reports on the Flashbots medium publication.

How does it work?#

Flashbots Auction provides a private transaction pool + a sealed bid blockspace auction mechanism which allows block producers to trustlessly outsource the work of finding optimal block construction.

In the regular Ethereum transaction pool, users broadcast transactions to the public peer-to-peer network and specify a gas price which indicates how much they are willing to pay for each unit of computation on the ethereum chain. Miners receive these transactions, order them by gas price, and use a greedy algorithm to produce a block which attempts to maximise the value received through transaction fees. This mechanism is a mix between an English auction and an all-pay auction where bidding for blockspace is performed in the open, the top bidder captures the opportunity, and all participants incur a cost.

Here are the key issues with this mechanism:

  1. the open nature of the regular transaction pool causes bidding wars for blockspace which create unnecessary p2p network load and volatility in gas prices, as well as disadvantages less sophisticated network participants who do not have access to advanced bidding strategies
  2. the all-pay nature of the auction causes failed bids to revert on chain, thus unnecessarily consuming blockspace and causing bidders to underprice their bids due to execution risk, ultimately leading to artificial blockspace scarcity and lower miner revenues
  3. the reliance on gasPrice makes it impossible for bidders to express granular ordering preferences as they are restricted to bidding for the top position in the block, this leads to alternative strategies like spam to increase likelihood of winning thus further increasing deadweight loss

Instead, the Flashbots Auction infrastructure uses a first-price sealed-bid auction which allows users to privately communicate their bid and granular transaction order preference without paying for failed bids. This mechanism maximizes miner payoffs, while providing an efficient venue for price discovery on the value of a given MEV opportunity. Crucially, this mechanism eliminates frontrunning vulnerabilities.

For more information on efficient MEV auctions, see the Flashbots auction mechanism research and presentation.

Roadmap#

The Flashbots team is taking an iterative approach to decentralizing the Flashbots Auction architecture. As mentioned in our initial ethresearch post, there remain some key research questions to be answered.

Ultimately, the design goals are the following:

  • Pre-trade privacy: implies transactions only become publicly known after they have been included in a block. This excludes intermediaries such as relayers / miners.
  • Failed trade privacy: implies losing bids are never included in a block, thus never exposed to the public.
  • Efficiency: implies MEV extraction is performed without causing unnecessary network or chain congestion.
  • Bundle merging: implies it is possible to merge multiple incoming bundles without conflict.
  • Finality protection: implies it is impractical for Flashbots blocks containing Flashbots bundles to be modified once propagated to the network. This would protect against time-bandit chain re-org attacks.
  • Complete privacy: implies intermediaries like relayers and miners canno observe the content of transactions until mined on chain.
  • Permissionless: implies there are no trusted intermediaries which can censor transactions.
StagePGADarkPoolโšก๐Ÿค– v0.1โšก๐Ÿค– v0.2โšก๐Ÿค– v0.xโšก๐Ÿค– v1.0
Pre-trade privacyโŒโœ…โœ…โœ…โœ…โœ…
Failed trade privacyโŒโŒโœ…โœ…โœ…โœ…
EfficiencyโŒโŒโœ…โœ…โœ…โœ…
Bundle mergingโŒโŒโŒโœ…โœ…โœ…
Finality protectionโŒโŒโŒโŒโœ…โœ…
Complete privacyโŒโŒโŒโŒโŒโœ…
Permissionlessโœ…โŒโŒโŒโŒโœ…

Technical Architecture#

The Flashbots Auction architecture proposes a network with three distinct parties who specialize in performing a subset of the work required for sustaining this communication channel.

Auction Architecture

Flashbots Auction introduces a new eth_sendBundle RPC which standardizes the message format in the communication channel. This message is called a "Flashbots Bundle".

The bundle includes an array of arbitrary signed Ethereum transactions along with some metadata describing under what conditions these transactions should be included.

{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_sendBundle",
"params": [
{
txs, // Array[String], A list of signed transactions to execute in an atomic bundle
blockNumber, // String, a hex encoded block number for which this bundle is valid on
minTimestamp, // (Optional) Number, the minimum timestamp for which this bundle is valid, in seconds since the unix epoch
maxTimestamp, // (Optional) Number, the maximum timestamp for which this bundle is valid, in seconds since the unix epoch
revertingTxHashes, // (Optional) Array[String], A list of tx hashes that are allowed to revert
}
]
}

Searchers#

Searchers are Ethereum users who, for whatever reason, prefer to use the Flashbots private transaction pool over the regular p2p transaction pool. These users monitor the state of the chain and send bundles to relayers.

Typically, searchers will be one of the following types:

  1. Ethereum bot operators looking for fast, and risk free access to blockspace (for example, arbitrage and liquidation bots)
  2. Ethereum users looking for frontrunning protection on their transactions (for example, Uniswap traders)
  3. Ethereum Dapps with advanced use cases like account abstraction or gasless transactions (for example, tornado.cash and mistX)

Searcher Architecture

By submitting bundles directly to relayers instead of through the p2p network, searchers obtain Pre-trade privacy as their transactions cannot be seen by the rest of the network. The searchers express their bids for inclusion through their ethereum transactions as either gas price, or direct eth transfer to the coinbase address. Using direct payments instead of gas price allows users to make payments conditional on their transaction succeeding, thus avoiding having to pay for failed bids.

See the searcher quick-start guide to learn how to get started.

Relayers#

A relayer is a bundle propagation service which receives bundles from searchers and forwards them to miners.

Relay Architecture

A relayer is in charge of validating and routing Flashbots bundles. Since searchers no longer need to pay for failed bids, this opens up the ability for them to spam the network with invalid bundles, thus creating a denial of service attack against other network participants. Since Ethereum nodes are ill-equiped to deal with this level of load on their own, relayers primarily serve as a mitigation to this DOS threat. Relayers may also provide additional services like bundle merging and execution services which allow searchers to specialize.

Solving for spam protection and relayer privacy are the two main challenges the Flashbots Auction architecture must solve in order to become fully permissionless / decentralized.

For the time being, the Flashbots organization operates an open-source relayer called mev-relay which follows the Flashbots Fair Market Principles.

โš ๏ธ Not all relayers can be trusted โš ๏ธ

Relayers have full access to bundle content and can arbitrarily reorder / steal / censor bundles sent to them by searchers and can DOS miners by sending invalid bundles. It is discouraged for searchers and miners to integrate with relayers other than Flashbots until the system is fully decentralized, as it introduces systemic risk and prevents Flashbots from being able to monitor network health.

Learn more about the trust assumptions of the Flashbots Alpha.

Miners#

A miner is the party who ultimately collects all the bundles and produces a block. Miners traditionally run the go-ethereum client and order transactions by gas price. However, miners connected to the Flashbots network run a version of the mev-geth client maintained by Flashbots.

Miner Architecture

The mev-geth nodes evaluate incoming bundles using the first-price sealed-bid auction and pick the most profitable ones to place at the top of the block. The node then compares the Flashbots block with a vanilla block and begins mining on the most profitable.

The information contained in the Flashbots bundle allows the searcher to express their blockspace preference relative to the state of the chain as well as the state of the transaction pool. This enables price discovery for discrete MEV opportunities instead of competition for priority along a single dimention. The miner can evaluate all the bundles received and combine those which do not conflict in order to produce the most profitable block possible.

The ability for searchers to clearly express preferences is what enables an efficient auction which avoids negative externalities on the rest of the network.

โš ๏ธ Not all miners can be trusted โš ๏ธ

Miners have full access to bundle content and can arbitrarily reorder / steal / censor bundles sent to them by searchers and relayers. For the duration of the Alpha, it is discouraged for searchers to integrate directly with miners as Flashbots is unable to monitor their behavior.

Learn more about the trust assumptions of the Flashbots Alpha.

Trust Assumptions#

The current version of Flashbots Auction contains technical limitations which prevent the network from operating in a fully trustless manner. Specifically, the properties of complete privacy and permissionlessness are required for Flashbots to be fully decentralized.

In the future, the Flashbots Auction roadmap aims to replace these trust guarantees with cryptographic guarantees of full privacy. We invite privacy researchers and interested community members to review our proposed architecture and contribute to building a more robust and decentralized system.