193 total views
The MEV-Geth implementation mechanism has changed the expected transaction ordering rules in the original network, and may have already harmed the interests of users in the ecosystem.
Original Title: “Viewpoint | The Era of Primitive Disordered MEV”
Written by: Kai
Imagine a situation: a user trades on an AMM-type DEX, no matter what slippage is set, it will eventually be traded at the worst price you can accept. This may be a scary scenario for users.
The current MEV-Geth implementation mechanism has changed the expected transaction ordering rules in the original network, leading to many issues of openness and impartiality that are extremely fearful, and may have already harmed the interests of users in the ecology.
Ethereum network transaction pool native rules
In the current Ethereum network, if a user sends a transaction in a native way, the transaction will be spread across the entire peer-to-peer network composed of all Ethereum nodes, and the content of the transaction is completely transparent, which means that any full node in any network can See the transaction content of most transactions.
As a result, there will be several situations in the Ethereum network that undermine the expectations and experience of the transaction sender (usually identified as a certain degree of “attack”),
- Front-running refers to making a profit by placing a specific transaction before the target transaction (attacked transaction) in the same block, mainly for clearing and arbitrage transactions;
- Back-running refers to making a profit by placing a specific transaction after the target transaction in the same block. The typical target is an information input mechanism (Oracle) transaction or a large order transaction;
- Sandwich attack, the combination of the above two forms of attack, allows the target transaction to be caught in the middle of two specific structured transactions, thereby making a profit. Sandwich attacks have greatly broadened the scope of attack. Even an ordinary AMM DEX transaction may be targeted. The attacker’s first construction transaction creates greater transaction price fluctuations. After the target transaction is executed, the second construction transaction will be executed immediately in exchange for the token that launched the attack to complete the benefit.
The target of the attack is uncertain. In theory, everyone who knows the content of your transaction may attack you, and dApp project parties, professional attackers, wallets, and mining pools may all attack you (there is no ” accountability “).
The difficulty of the attack is related to the consensus rules of the network and the infrastructure generally available in the ecosystem (difficulty of attack, ” responsiveness “); for example, if everyone fully complies with the current transaction pool rules, it will only be affected by gas price competition The block producer’s order of transactions (requires block mining pools to adhere to industry self-discipline), the sandwich attack is more difficult to launch.
At present, due to the ability to directly determine the execution order of the transactions in the block they packaged, the miner-pool has always been regarded as the most likely participant to launch an attack. This is also the “MEV” (the income obtained by the miner due to the ability to sort transactions The origin of this concept; but in fact, because the attack opportunity has a certain timeliness, it may be fleeting, and the attacker and the mining pool are more expressed as a relationship of division and cooperation.
These backgrounds are what makes me feel uneasy about MEV-Geth and other forms of direct sandwich attacks by mining pools.
Current MEV-Geth implementation
The current MEV-Geth implementation (as of 2021-04-10) is only the searcher (Inspect) that searches for MEV opportunities in the network, forwards the atomic transaction packet to the registered mining pool node (Relay), and the block-producing node allows jump in the queue (MEV) -Geth client). Construct a simple network between the registered mining pool and the Relay server.
MEV-Geth is a special customized Ethereum node client that runs on the mining pool. It allows the MEV Bundle distributed by Relay to be stored through the client, and these special transactions are packaged into the head of the queue in the block.
Users can use MEV-Geth to broadcast a transaction package called Bundle; the information contained in a Bundle includes: a transaction list (indicating the number of consecutive transactions that the sender wants to chain), arbitrage calculation block height, minimum and maximum timeout time . In a block on the chain of a single Bundle, the sender will pay the block producer (ie, the mining pool) ETH as a commission through a coinbase transaction (not through Gas Price).
In the current MEV-Geth implementation, there can only be one Bundle for each block, so the block producer will select the Bundle with the largest coinbase payment and put it on the chain.
This current implementation simplifies the difficulty of implementing sandwich strikes. On the one hand, the attacker can explicitly state the context of the flanking transaction; secondly, the flanker has no worries about the future. Even if the flanker loses in the chain competition with other flankers, the transaction will only time out in the MEV-Relay network. Invalid, no Gas fee is required.
According to the public statement of the Flashbots team, they are developing a solution that allows multiple Bundles in the same block. Perhaps we will soon see a block full of sandwiches with zero gas fees.
Find MEV-Geth transaction
According to the current implementation, the most notable feature of the MEV-Geth transaction is that the Gas Price of the two front and back transactions is 0.
Open the block explorer website etherchain.org and view the transaction list of any block (this list reflects the execution order of the transactions in the block), if a sandwich strike appears at the beginning of the list, and the gas price of the transaction is 0 , Then this is most likely a Bundle initiated by MEV-Geth.
12200018 The head of the list of height blocks
The whole process of a certain transaction
MEV-Geth has been fully deployed on the network
The current MEV situation can be obtained by querying the transaction with 0 gas price and gas used greater than 21000. For details, see the dune dashboard I created temporarily
As can be seen from the figure, many mining pools have participated. There are about 3,500 MEV-related transactions every day, and more than 1,000 MEV transactions are generated. According to the average block generation time of 12s, there are 7200 (60x60x24/12) blocks every day, that is, there are MEV-Geth transactions in nearly 1/3 of the blocks every day. Some mining pools do not use MEV-Geth, and arbitrageurs have not yet switched to this new competitive model.
Game in different environments
We can compare the operation of several trading pools to understand what users have gained and what they have lost.
Open game state
If the network returns to its original state, and block producers abide by industry self-discipline, all transactions are fully public, and anyone can discover unpackaged transactions by establishing nodes or through node services; then, if you want to flick a certain transaction, you need to send Two transactions, and the gas price is set before and after the attacked transaction to ensure the order of flanking, and in the case of competition, multiple copies of the transaction must be sent to increase the success rate. Finally, if any transaction fails to execute, it will face the cost of mining fees. punishment.
From the user’s point of view, everyone is in an equal and open environment. When you see that your transaction is flanked or rushed away, there is an opportunity to speed up or cancel the transaction to avoid potential losses.
Moreover, the finally formed block can not only show the winner of the transaction pool competition, but also truly reflect the actual situation of the transaction pool competition.
Private transaction service
The “private transaction” here refers to a special channel opened by the mining pool. The transactions that enter the trading pool of the mining pool from this channel are not broadcast, but are still sorted and packaged according to the form of Gas Price priority.
When ordinary users use the privacy transaction service, their transactions are not disclosed to the outside world. Therefore, unless the mining pool itself violates the confidentiality commitment or participates in the attack, the user will not be subject to the above-mentioned attacks.
Considering from the other side, if an attacker attacks a public network visible transaction through a private transaction service, the attacked person cannot discover that something is about to happen and cannot respond. However, the sandwich attack is still limited by the randomness of transaction routing and transaction pool sorting, and cannot be easily implemented.
Moreover, when multiple people compete for the same profit opportunity, as long as the mining pool does not disclose the competing transactions, they will not be able to understand the competitors’ bids, and they can only blindly get out of the price and enter the sorting queue, which in a disguised way increases the cost and difficulty of the attack.
In addition, the finally formed block can still truly reflect the entire situation of the transaction pool competition, and the success and failure and the reasons can be observed from the outside.
If MEV-Geth becomes mainstream
After the emergence of MEV-Geth, arbitrage rush runners will submit arbitrage and flanking transactions to this network for bidding, and the bundles with the most profit from the submitted mining pool will be selected for priority execution in the next packaged block. The packaged transaction can achieve a 100% success rate.
At present, if you also deploy an MEV-Geth node, the Bundle content is transparent to you, so if someone attacks you, you can respond in time.
But if you don’t know what MEV-Geth is, your situation is the same as if someone used a private transaction to attack you; what’s worse is that the certainty of the attacker has improved a lot, and the bidding of the attack process cannot be known. Because the formed block will only expose the winning transaction, but will not expose the process of competition.
Flashbots believes that this will bring some benefits to the network: the process of arbitrage competition is moved to another network, which can alleviate the burden of the Ethereum P2P network; only the winner occupies the block space, which can alleviate block congestion. There is a report on subreddit/EtherMining that lists the additional profit in the current block, but it may not be able to catch up with the decrease in total revenue caused by the decline in miner fees in the long run, and more long-term data tracking studies are needed.
The original network consensus expectation is that Ethereum Defi users and pre-runners are under the same rules, and the process and results of the competition are also transparently exposed in the block. With the involvement of mining pools, things have become more complicated. Both private transactions and MEV-Geth have allowed the bottom layer of the network to clearly intervene in the upper layer business. MEV-Geth seems to justify the sandwich attack on users with various benefits, and allows the bidding process to occur in an externally unobservable network, and the network operation process has become unfriendly and transparent.
I have a few questions here,
It may be understandable that the mining pool sets out to obtain benefits for the miners who provide computing power, and deploys the MEV-Geth at this stage to obtain more benefits. This may be understandable. But does this conform to the openness and fairness of decentralization and the network?
Flashbots’ previous public commitments mentioned the protection of the openness and decentralization of Ethereum. Before the issues of MEV-Geth privacy and public auction competition are not resolved, is it the right time to deploy to the current network?
The super power derived from the sorting right of the mining pool (miner) may not be removed in the decentralized network, that is, MEV is an objective thing. However, the emergence of MEV-Geth has made the abuse of MEV more convenient, and has even become a legitimate excuse to hack into user transactions. Does this cause long-term adverse effects?
There are also many controversies in the community about the implementation of MEV or MEV-Geth, and many voices are worried
Cornell Professor Ari Juels published “Miners, Front-Running-as-a-Service Is Theft” on CoinDesk
“MEV auctions considered harmful” published by Ed Felten, the co-founder of Offchain Lab, this article is not aimed at this topic, it is opposed to this method of auctioning the right to order one day.
- Vitalik has a response to this
“MEV Auctions Will Kill Ethereum” published by netizen pmcgoohan on Ethererum Research Forum
Paramdigm fund partner Charlie Noyes also mentioned “MEV Can Harm Users, MEV Can Harm Ethereum” in “MEV and Me” published
If Ethereum wants to become a financial foundation platform that supports the entire world, it is very important to maintain the security of user assets and the fairness (randomness) of transaction sequencing. All participating parties compete for the position of the packaging queue according to the mining fee bidding rules. If the execution fails, the paid miner fee will be lost. The mining pool completely ignores the transaction content during the packaging process, and only sorts the transactions based on the level of the miner’s fee. The network validator and the application participant are isolated and do not interfere with each other.
The full deployment of MEV-Geth and the gradual intrusion of miners into the application layer of the Ethereum network made me feel something is wrong. I thought about and checked the materials for two days on the weekend, and finally wrote this content, hoping that more people can think about this Issues that may have a far-reaching impact on Ethereum. I would also like to thank my friends who helped proofread the content in the past few days. Special thanks to Mr. Ajian for constantly asking me questions about the logic and sequence of the explanation to make the content of the article more complete and logical.
Flashbots related content index