BlueMatt's Blog On Building a Bitcoin for Everyone

Stop Calling It MEV

As the systems built on bitcoin become increasingly expressive, the use-cases for bitcoin grow exponentially. While this is incredibly exciting, the one major concern both proponents and detractors of increased expressiveness can agree on is the risk of “MEV”.

Sadly, there has been very little in the way of a clear definition of “MEV” in the context of bitcoin, and the standard definition of the term is so broad as to be entirely useless in discussions of protocol risk.

The term “MEV” (or “Miner Extractable Value”) originated with the ethereum community and means, broadly, all the value that miners/stakers can extract when building blocks. This includes both in-band protocol fees and block subsidy, but also any out-of-band fees they accept directly from transactors, value they can extract by reordering or creating their own transactions, exploiting smart contracts, or even reorging the blockchain!

This is such a broad term that saying we’re “concerned about MEV” is somewhat useless - are we concerned that miners are extracting the block subsidy they’re entitled to? Obviously not. Worse, the ethereum community’s concerns with MEV partially overlap the concerns of the bitcoin community, but certainly aren’t the same.

Still, to understand the risks of MEV in bitcoin it’s useful to learn from the history of ethereum. As block building on ethereum has become increasingly specialized to extract the maximum possible MEV, a few effects have emerged:

First, and most concerningly, there are only a very, very small handful of companies who have invested sufficient capital (in the form of hiring world-class engineers) to be competitive at selecting and creating the most profitable set of transactions for the next block. From the point of view of censorship resistance on the network, this is incredibly damning - when only a few companies do, or could, select nearly all the transactions which can enter the blockchain, any hope of censorship resistance is lost.

Second, those trading on decentralized exchanges, and more broadly those using protocols that have an undefined counterparty, often find their counterparty replaced with the block’s transaction selector, to some loss in value. This comes in many forms, but commonly simply by the transaction selector arbitraging prices between decentralized and centralized exchanges, taking the price difference for themselves as profit. This impacts the quality of the experience for users of more expressive contracts on ethereum.

Bitcoin, as a system and community, largely seeks to maximize censorship resistance through decentralized transaction selection over any other goals. Sadly, today, bitcoin’s transaction selection is also highly centralized in the form of pools. Luckily, there’s no strong financial incentive for this, only historical technical reasons. While this allows us to massively re-decentralize bitcoin with only technical tweaks to the mining software stack, any financial disincentives to adopting such technology would absolutely destroy bitcoin’s long-term censorship resistance. So much so, that I’d argue that if we end up in the same place as ethereum is today, we should simply give up on bitcoin’s censorship resistance axiom as we simply will not achieve it in any reasonable way.

Thus, the first class of MEV (the resulting centralization pressure) is also a substantial potential issue for bitcoin. The second issue (degraded execution quality and usability), much less so. In fact, given bitcoin’s axiom of censorship resistance above all else, I’d argue trading transaction execution quality for any marginal censorship resistance gain would be worth it, at least at the level of the overall bitcoin system.

Some Bitcoiners have taken to calling this centralization MEV risk MEVil (or “MEV that is evIL”). Specifically, MEV which results in a financial incentive for miners to employ sophisticated technology in order to ensure the transactions they include in the next block have the maximal value is MEVil. This can come in the form of changing the order of transactions in a block or creating new ones, but it does not include cases where an open market might bid on creating specific transactions using Replace-By-Fee (or “RBF”). Further, because there is likely to be reasonable long-term decentralization of hash power, we do not include multi-block censorship attacks - such attacks require some amount of miner coordination and require miners be willing to forgo profit now for greater profit later, risking their competition claiming the profit for themselves.

Many developers working on increasing expressiveness in bitcoin have concluded that MEV is inevitable on bitcoin and we should simply prepare ourselves for it. However, I think this stems from a focus on the broad definition of “MEV”, rather than the more practical definition of MEVil. MEVil is not inevitable on bitcoin, however avoiding it does require engineers building expressive bitcoin systems consider the impacts of their work carefully.

Here, it’s useful to consider some examples of things which fit the broad definition of MEV, and how they do or do not introduce MEVil:

MEV is often raised when discussing systems which may result in transactions which can be profitably replaced. For example, an output on chain which can be claimed by anyone without specific private key material or a trade in a decentralized exchange which executes at an incorrect price. In these examples it may be possible for anyone, including miners, to create a new transaction which claims some value directly or indirectly. While this is obviously MEV (after all, this value should flow to miners somehow), it is unlikely to create MEVil. Thanks to bitcoin’s ten minute block time and public mempool, anyone has a chance to bid (by paying a higher mining fee) for the ability to claim this value. This allows miners to extract this value while remaining entirely passive and not implementing any custom or advanced logic to monitor for or create these claims. Over the past few years we’ve seen a handful of examples of these kinds of in-mempool bidding wars, including notably funds sent to insecurely generated private keys. This also implies that miners which receive transactions via any form of private relay should ensure they submit such transactions to the public mempool, ensuring others can bid to replace them and increase the miner’s revenue.

A popular scheme a number of groups are working on building are “rollups” on bitcoin. These are sidechain systems where the transaction data for the sidechain is embedded in the bitcoin blockchain itself. Because these systems can have arbitrarily expressible smart contracts, they are likely to have the potential for advanced MEV extraction similar to what we see on ethereum today. However, in most cases, such systems do not create MEVil in bitcoin. In most rollup systems there is a single or small group of “sequencers” which select the transactions that enter the rollup as well as their order. Thus, the sequencers have the exclusive ability to extract MEV and bitcoin miners are not able to use their transaction selection or ordering power to influence the rollup‘s transactions.

Some rollup systems, referred to as “based rollups”, however, give bitcoin miners the ability to directly select and order rollup transactions. This runs substantial risk of creating MEVil, and in fact if we see deployment of large-scale naive based rollups I believe bitcoin may suffer a terrible fate. Still, based rollup developers have a few easy tricks which can substantially reduce MEVil risk. First of all, based rollups can remove the ability for miners to order rollup transactions by randomizing the order keyed using the bitcoin block hash. Thus, for miners to influence the order of rollup transactions they must be willing to fully discard valid bitcoin blocks, forgoing potentially substantial profit. Secondly, based rollup developers can randomize transaction ordering across multiple blocks, ensuring single bitcoin miners cannot censor rollup transactions, further reducing their ability to materially extract MEVil. While this may delay rollup transaction confirmation times somewhat, I’d strongly encourage rollup developers to consider whether there is a genuine material difference between users waiting for six confirmations and users waiting for seven, eight, or nine confirmations.

I’d also encourage developers, Bitcoiners, and everyone to vote with their feet - if a rollup system introduces material MEVil risk to bitcoin, simply use an alternative system - if you don’t, the utility of that system is going to eventually be ruined by increased bitcoin miner centralization anyway. In this case, centralized and federated rollups are much more clearly safe, and based rollups or ones with a “force-inclusion” mechanism should be carefully considered before using them!

Another common example raised as MEV on bitcoin is the inclusion of nonstandard transactions or, more broadly, any transactions which reach a miner outside of the public mempool. While this indeed introduces strong centralization pressure for larger miners to offer this as a service, which is absolutely MEVil, we have not yet seen material demand or revenue from such transactions. Indeed, as mentioned above, miners have an incentive to ensure transactions received via private relay reach the public mempool where possible to allow for public RBF bidding. While there is certainly demand for nonstandard transaction inclusion as a novelty, it is unclear if this market will grow in the long term. Further, Bitcoin Core can, should, and generally does allow any transaction as standard, with restrictions only for transactions representing denial-of-service attacks or when the inclusion of a transaction makes Bitcoin Core unable to accurately calculate competitive block templates. As Bitcoin Core continues to improve, the demand for any nonstandard transactions will continue to decline, thus reducing the profit potential of any MEVil extraction.

More recently, out of band payments to miners have become popular again, allowing individuals to pay large pools for the inclusion of their transaction(s) using payments outside of the normal bitcoin transaction fee. This can create substantial MEVil but only if the out-of-band payment is offered directly to a single or group of miners. Any kind of out of band fee payment which is easily claimable by any miner does not contribute to MEVil-induced centralization, and thus open protocols for this are important. Further, while out of band fees have been commonly available on bitcoin before, they have never represented a substantial portion of miner revenue, and with technologies like Lightning and RBF (very slowly) becoming more popular in consumer bitcoin wallets, the need for out of band payments should further decrease.

Finally, some individual coins on chain have developed collector value. Notably, coins freshly mined in coinbase outputs in certain blocks (especially after difficulty or block subsidy adjustments) have often been valued at higher than their Bitcoin amount. While this has negative implications on fungibility, the extraction of such additional value can also be considered a form of MEVil. After all, claiming this value may require additional investment in human capital to evaluate and participate in “rare sats” marketplaces. The long-term value of these collectors items remains unclear, and valuing them is, correctly, often considered antisocial by Bitcoiners who care about the long-term sustainability and performance of the bitcoin system. Luckily, such “rare sats” that (may) have material value only occur in very few blocks (currently those every 4 years after subsidy adjustments), reducing the total impact it can have on miners.

While there are many risks on the horizon which may introduce MEVil in bitcoin, thus substantially risking the long-term censorship resistance (and therefore value) of bitcoin, there is no reason yet to fear that such an outcome is inevitable. Indeed, while MEV on bitcoin is inevitable and here today, “MEV” is a largely useless term for describing our censorship resistance and centralization concerns. Engineers developing, and users selecting, platforms which add additional expressivity to bitcoin must carefully consider the risk of MEVil these systems may introduce. Opting to build or use systems which introduce MEVil to bitcoin must thus be avoided, and considered antisocial, or the long term value in these systems and the bitcoin system itself may be destroyed.

Modern Soft Fork Activation

This was originally posted on the bitcoin-dev mailing list targeting a technical audience bbut is preserved here as it is of more general interest. The requirements and goals of soft fork activation are of particular interest.

There are a series of soft-fork designs which have recently been making good progress towards implementation and future adoption. However, for various reasons, activation methods therefor have gotten limited discussion. I’d like to reopen that discussion here.

It is likely worth revisiting the goals both for soft forks and their activation methods to start. I’m probably missing some, but some basic requirements:

1) Avoid activating in the face of significant, reasonable, and directed objection. Period. If someone has a well-accepted, reasonable use of Bitcoin that is working today, have no reason to believe wouldn’t work long into the future without a change, and which would be made impossible or significantly more difficult by a change, that change must not happen. I certainly hope there is no objection on this point (see the last point for an important caveat that I’m sure everyone will jump to point out).

2) Avoid activating within a timeframe which does not make high node-level-adoption likely. As with all “node” arguments, I’ll note that I mean “economically-used” nodes, not the thousand or so spy nodes on Google Cloud and AWS. Rule changes don’t make sense without nodes enforcing them, whether they happen to be a soft fork, hard fork, or a blue fork, so activating in a reduced timeframe that doesn’t allow for large-scale node adoption doesn’t have any value, and may cause other unintended side effects.

3) Don’t (needlessly) lose hashpower to un-upgraded miners. As a part of Bitcoin’s security comes from miners, reducing the hashpower of the network as a side effect of a rule change is a needless reduction in a key security parameter of the network. This is why, in recent history, soft forks required 95% of hashpower to indicate that they have upgraded and are capable of enforcing the new rules. Further, this is why recent soft forks have not included changes which would result in a standard Bitcoin Core instance mining invalid-by-new-rules changes (by relying on the standardness behavior of Bitcoin Core).

4) Use hashpower enforcement to de-risk the upgrade process, wherever possible. As a corollary of the above, one of the primary reasons we use soft forks is that hashpower-based enforcement of rules is an elegant way to prevent network splits during the node upgrade process. While it does not make sense to invest material value in systems protected by new rules until a significant majority of “economic nodes” is enforcing said rules, hashpower lets us neatly bridge the gap in time between activation and then. By having a supermajority of miners enforce the new rules, attempts at violating the new rules does not result in a significant network split, disrupting existing users of the system. If we aren’t going to take advantage of this, we should do a hard fork instead, with the necessarily slow timescale that entails.

5) Follow the will of the community, irrespective of individuals or unreasoned objection, but without ever overruling any reasonable objection. Recent history also includes “objection” to soft forks in the form of “this is bad because it doesn’t fix a different problem I want fixed ASAP”. I don’t think anyone would argue this qualifies as a reasonable objection to a change, and we should be in a place, as a community (never as developers or purely one group), to ignore such objections and make forward progress in spite of them. We don’t make good engineering decisions by “bundling” unrelated features together to enable political football and compromise.

I think BIP 9 (plus a well-crafted softfork) pretty effectively checks the boxes for #2-4 here, and when done carefully with lots of community engagement and measurement, can effectively fulfill #1 as well. #5 is, as I’m sure everyone is aware, where it starts to fall down pretty hard.

BIP 8 has been proposed as an alternative, largely in response to issues with #5. However, a naive deployment of it, rather obviously, completely fails #1, #3, and #4, and, in my view, fails #5 as well by both giving an impression of, setting a precedent of, and possibly even in practice increasing the ability of developers to decide the consensus rules of the system. A BIP 8 deployment that more accurately measures community support as a prerequisite could arguably fulfill #1 and #5, though I’m unaware of any concrete proposals on how to accomplish that. Arguably, a significantly longer activation window could also allow BIP 8 to fulfill #3 and #4, but only by exploiting the “needlessly” and “wherever possible” loopholes.

You may note that, from the point of view of achieving the critical goals here, BIP 8 is only different from a flag-day activation in that, if it takes the “happy-path” of activating before the flag day, it looks like BIP 9, but isn’t guaranteed to. It additionally has the “nice-to-have” property that activation can occur before the flag-day in the case of faster miner adoption, though there is a limit of how fast is useful due to node adoption.

Thus, to strike a balance between the drawbacks of BIP 8 and BIP 9, the Great Consensus Cleanup softfork proposal included this text in the discussion section (with the spec describing a BIP 9 deployment):

In spite of some suggestion that other activation methods be used, BIP 9 is proposed as ensuring miners have upgraded to enforce new rules is an important part of minimizing disruption. While previous BIP 9 soft- forks have resulted in political contention, this comparatively- unimportant soft-fork provides a good opportunity to attempt to return to utilizing BIP 9 to ensure miner upgrade prior to activation, which the authors believe is a critical goal. However, if there is broad agreement to activate these rules when the BIP 9 expiry time is reached, and miners have not yet signaled sufficient level of readiness, a later flag-day activation may be merited. For this reason, implementations may wish to provide a compatibility option which allows flag-day enforcement of these rules without an update.

Ultimately, through admittedly rather limited discussion, I still like this model (though I cannot claim it as my own, the original proposal came from Greg Maxwell). BIP 9 only falls apart in case of unreasonable objection, which, naturally, should carry a high bar to ignore, given we have to have some level of agreement that it is, in fact, unreasonable (or untargeted). While I admit this is a possibility, I both find it less likely than in previous soft-forks, and even if it is the case, it only slows down the process, it doesn’t necessarily stop it. In the case that it does fail, BIP 9 process, in fact, provides a good learning opportunity as to the level of community readiness and desire for a given change. While we can (and should, and are) learning a lot about community readiness for, and acceptability of a change through outreach and discussion, there is something about a change with a timeframe that forces people to more carefully consider it.

Thus, as something a bit more concrete, I think an activation method which sets the right precedent and appropriately considers the above goals, would be:

1) a standard BIP 9 deployment with a one-year time horizon for activation with 95% miner readiness, 2) in the case that no activation occurs within a year, a six month quieting period during which the community can analyze and discussion the reasons for no activation and, 3) in the case that it makes sense, a simple command-line/bitcoin.conf parameter which was supported since the original deployment release would enable users to opt into a BIP 8 deployment with a 24-month time-horizon for flag-day activation (as well as a new Bitcoin Core release enabling the flag universally).

This provides a very long time horizon for more standard activation, while still ensuring the goals in #5 are met, even if, in those cases, the time horizon needs to be significantly extended to meet the goals of #3. Developing Bitcoin is not a race. If we have to, waiting 42 months ensures we’re not setting a negative precedent that we’ll come to regret as Bitcoin continues to grow.