Skip to content

Unilateral fair ordering for the Ethereum protocol

License

Notifications You must be signed in to change notification settings

zeromev/zeromev-geth

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zeromev-Geth

tl;dr

Zeromev-Geth is a fully decentralized solution for Ethereum validators wishing to:

Zeromev-Geth is an experimental fork of Geth for use as a validator execution client. It will result in reduced staking rewards due to the reduction in toxic MEV. Use at your own risk.

Please read our faq below and our proposal document for more details, and visit us at zeromev.

faq

how does zeromev-geth defeat frontrunning?

It does so by ordering transactions by time instead of by gas price or MEV.

Using unmodified Geth or MEV-Boost, users are frequently frontrun by seconds, minutes or hours.

The most Zeromev-Geth permits an attacker to frontrun their victim by is about 500 milliseconds (half a second). These remaining frontruns may be eradicated for wallet users by connecting directly to wallet providers and distribution networks.

This prevents an attacker from frontrunning a transaction seen in the p2p network by getting their transaction to the proposer first via a more direct route.

In any case validators using this fork will no longer be accepting bribes for frontrunning (either via MEV Auctions or Gas Price Auctions).

does this require specialized hardware or network configuration?

No. There are two proposed methods of frontrunning protection.

One requires adding a few specific static nodes as they become available. The other requires signing up to distribution networks like Infura and entering connection details into the Zeromev-Geth command line.

That's it!

does this expose my validator to risk?

Wallets and distribution networks may choose to expose private connection details to you, although this is no longer a requirement. You do not need to expose your validator details to them any more than you would normally.

So the security of your validator is not compromised.

how does this impact decentralization?

It offers roughly the same level of decentralization. You are just optimizing your connections to wallet providers to protect their users from frontrunning.

Existing connections to other nodes through the discovery network are not impacted and you will be improving mempool performance by reducing the latency of the network overall.

what happens if the wallet nodes go down?

Even if all of these direct connections are unavailable, frontrunning is still limited to around 500ms under zeromev-geth in the worst case, a vast improvement over the status quo.

how does it protect against centralization?

MEV auction technologies such as MEV-Boost centralize block content around a few dominant builders and encourage the mempool to be bypassed by those extracting MEV and the users seeking protection from them.

Zeromev-Geth restores your power to self-build in a way that protects the network from this centralization.

how does it protect against network censorship?

By using MEV-Boost you inherit the censorship preferences of the dominant builders. Because they are easy targets for external pressure, this makes the network itself easier to censor.

Self-building reclaims the power you have as a validator to make these decisions for yourself instead.

how does this impact validator rewards?

Staking rewards will be reduced in line with the reduction in toxic MEV.

How much by depends on the option your select:

available now option description
altrusim transactions are included in time order, regardless of the tip. This is the lowest reward option
base fee percentage transactions are included in time order as long as they tip at least a percentage of the base fee (similar to a fee payment to a centralized exchange). Validators always get a reasonable tip for inclusion but cannot be bribed for priority
selection by gas transactions are selected by gas price as normal, but then ordered by time. Validator rewards are in line with unmodified Geth, while not permitting frontrunning within their blocks

(Please note: only the first option is available in this early version - the others are currently under development.)

Also, you still have the opportunity to extract neutral MEV by backrunning for futher rewards.

If you are a Go/Geth dev and want to help with furthering these important features, please contact us :) (pmcgoohan@zeromev.org)

can I still extract non-toxic MEV?

Yes. You are free to backrun any transaction as you receive it without breaking the time ordering regime of Zeromev-Geth.

This is because as the validator building the block, you have a zero latency advantage over anyone else doing this.

As Zeromev-Geth develops, we hope to build backrunning functionality into the codebase.

We also hope for collaboration with third party backrunning helper services that can offer such services for a fee, along with low latency cross-chain feeds.

is spam likely to be a problem?

Where frontrunning is defeated, there will be no frontrunning transactions, so the blockspace usually taken up by them will be reclaimed.

Excessive transaction volume from backrunning is reduced by validators backrunning themselves. There are reasons to think that even without this the problem will not be severe under time ordering as compared to Gas Price Auctions.

For a discussion on this topic, please see our proposal document.

is using a fork of Geth risky?

There are always risks involved in using a forked version of any software. We provide no guarantees of fitness for purpose of this alpha release, and you use the software at your own risk.

That said, only 3 lines of code have been changed from the original Geth in this first version.

By contrast under Proof-of-Work Ethereum, 90% of miners used a fork of Geth with thousands of lines of code changes and additions.

will this result in DDOS attacks?

There is no DDOS vector because of EIP-1559. The base fee increases with demand for blockspace making an attack of this kind prohibitively expensive.

building

For detailed instructions on Geth please read the instructions and readme.

Building geth requires Go. Once installed, run

make geth

usage

  • Install Zeromev-Geth in place of your validator execution client
  • Zeromev-Geth reduces frontrunning most successfully when configured with static nodes used by the most popular user wallets
  • These have not yet been published by wallet node operators. Please check back here for updates
  • Please note that this early version only allows only for altruistic ordering meaning reduced rewards for validators
  • Zeromev-Geth is not compatible with MEV-Boost

license

The go-ethereum library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0

The go-ethereum binaries (i.e. all code inside of the cmd directory) is licensed under the GNU General Public License v3.0

About

Unilateral fair ordering for the Ethereum protocol

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 89.1%
  • C 5.3%
  • JavaScript 3.5%
  • Assembly 0.8%
  • Shell 0.2%
  • Java 0.2%
  • Other 0.9%