A very detailed report was published yesterday regarding the episode of the cryptocurrency crash in mid-March 2020 that caused the prices of all cryptos to plummet.
Just published: “Evidence of Mempool Manipulation on Black Thursday: Hammerbots, Mempool Compression, and Spontaneous Stuck Transactions” https://t.co/koXjcbSaDK
— Blocknative (@blocknative) July 22, 2020
The biggest damage came with the sudden drop in the price of Ethereum (ETH) by about 40% in a few hours. This resulted in the liquidation and closure of several vaults that had been opened by collateralizing ETH to generate stablecoin DAI.
In addition, this congestion had made to close positions at 0 bid, allowing to recover ETH at a good price, since when a vault goes into liquidation, to encourage the purchase of the collateral, the price suffers a strong discount and therefore many have benefited: we are talking about about $ 8 million in ETH.
What happened during the crypto crash of March 2020
To write the report on this cryptocurrency crash, the Blocknative team analyzed over 30 million lines of data from March 12 and 13, 2020, and found that it was an elaborate attack that generated 3 types of problems:
- Stuck Transactions: the mempool was saturated and this allowed the transactions to stall, blocking subsequent transactions from the same address;
- Mempool Compression: it reduced part of the mempool to make it gas efficient;
- Hammerbots: the automatic transactions generated by the bots amplified the previous problems.
When a transaction is made, it passes through the nodes that analyze it and if the gas is too low it is queued, waiting for the network to normalize.
But this type of “evicted” transaction is not recognized by the node and therefore there is a discrepancy between when the transaction starts and the actual processing.
This problem is accentuated especially if the transactions start from the same account, so in case one transaction is not processed and another is done, the system gets congested. This is the same process that occurs using bots that process several transactions automatically.
Moving on to mempool compression, we see that as the number of requests and transactions increases, the node fails to process them all and starts to make a selection of the most profitable ones, i.e. those with the most gas.
But in this way we cut out all those that have too low gas, which has gradually increased the minimum threshold for gas for a simple transaction. This problem is even more pronounced these days than ever before.
Finally, the problem has been amplified by bots, and in particular by a type of bot nicknamed Hammerbot, because they consume mempool resources and instead of increasing the gas, this remained the same despite the certainty that the transactions would not be processed. This effectively destroyed the mempool ecosystem, which led to the problems mentioned above.
In detail, we are talking about a replacement frequency of transactions every 6.86 seconds, for a total of at least 418 unique replacement transactions with the same nonce.
This has allowed us to take advantage of the “zero bid bots” to obtain a not inconsiderable advantage, since the operation window is 10 minutes.
Finally, the report draws attention to the critical aspects of mempool operation, which should have parameters to keep under control at all times in order to avoid problems or prevent new ones in the future.