EOS enters congestion mode due to EIDOS airdrop
What’s going on with EOS?
On November 1st 2019, Coinbase began seeing degraded performance for EOS transactions. Coinbase did not have enough staked CPU to successfully have its EOS transactions processed by the network. You can learn more about EOS and CPU here. This degraded performance can be attributed to the massive increase in activity on the EOS network related to the recently launched EIDOS token airdrop. Coinbase responded to this issue by increasing the amount of staked CPU in the wallets we control to unblock customer transactions. In this report we share our analysis of EOS resources, REX markets, and how these were affected by the EIDOS token airdrop.
- A token called EIDOS was released on the EOS network on October 31st 2019.
- EIDOS airdrop distribution involves sending EOS transactions to and from the EIDOS contract.
- Exchanges are listing EIDOS/USDT pairs, meaning that people can sell airdropped tokens for USDT.
- To take advantage of this trading opportunity, people are using leased CPU to dramatically increase the number of transfers processed by the EOS network.
- This increased activity has caused the EOS network to enter congestion mode, which limits the amount of transactions a user can broadcast to their pro-rata share of total staked CPU resources on the EOS network.
- Normal users are unable to get their transactions processed due to their relatively low amount of staked CPU resources.
- It is important to note that the EOS protocol is behaving as expected, but congestion mode prevents users from having transactions processed that exceed their CPU stake.
- The EOS network should be expected to stay in this state until it is no longer profitable to collect EIDOS or until the massive leases taken out on REX expire after 30 days and the leasers don’t renew their lease.
- An EOS user sends a minimum of 0.0001 EOS to the EIDOS contract.
- The EIDOS contract will then send a transaction returning the same amount of EOS back to the original sender.
- The EIDOS contract airdrops a certain amount of EIDOS to the original sender’s address. In this way, anybody holding at least 0.0001 EOS is able to receive EIDOS.
The image above illustrates the pattern of interacting with the EIDOS contract. Note that this behavior can be observed in the EIDOS contract code that is open-sourced here.
Exchanges are listing EIDOS
The above screenshot shows EIDOS/USDT trades clearing at 3:40pm PST on November 4th 2019. EIDOS is still worth a positive amount of Tether. Therefore, anyone who owns at least 0.0001 EOS can send a transaction to the EIDOS contract, receive some EIDOS, then attempt to trade it on an exchange for a non-zero amount of Tether.
EOS is dominated by EIDOS related actions
A number of parties realized that they can repeatedly invoke the EIDOS contract to obtain additional EIDOS, then trade the airdropped EIDOS for USDT. The EOS network has become flooded with these transactions. Note that in EOS, a single transaction can have a number of actions. One type of EOS action is a transfer, which sends some currency from the sender to the receiver.
Currently, we’re observing around 95% of all EOS transfer actions are related to the EIDOS contract. Because each transfer counts towards the amount of CPU used in a block, this spike in transfer actions caused the EOS network to enter congestion mode.
After the EIDOS launch, we see the actions per hour skyrocket.
Congestion Mode & CPU
The EOS network relies on special resources called CPU, NET, and RAM to perform actions on the network (e.g. interacting with a smart contract). These resources can be obtained by staking your own EOS assets or renting them from a specialized resource exchange called REX. When the EOS network is not congested (when the total CPU used in a block is under 40 milliseconds = 20% of a block’s CPU limit of 200ms), users of EOS are able to use more CPU than they’ve staked. However, congestion mode (when the total CPU used in a block is greater than or equal to 40 ms) strictly constrains the number of transactions a user can perform to the amount of CPU they’ve staked.
As a gross simplification, the less CPU an address has, the fewer transactions it will be able to get processed through the EOS network. We believe some parties predicted that the network would become congested as the result of the airdrop, and began proactively purchasing CPU leases on REX in order to dominate the network’s throughput.
On October 31st, around 10:30pm PST, the amount of staked EOS required for a ms of CPU (called “CPU price”) spiked drastically. Over the course of 4 hours, CPU price increased by ~100,000%.
Airdrop Participation Pattern
A number of addresses that made the early investment in CPU have been using it to extensively invoke the EIDOS contract with transactions to obtain airdropped EIDOS, then sending the EIDOS on various exchange platforms. The following sequence of transactions illustrates a common pattern of users renting CPU resources and eventually cashing out on a DEX:
Step 1: EOS address renting CPU
Step 2: EOS address participating in the EIDOS airdrop
Step 3: EOS address sending EIDOS to an exchange
The above address leases over 2000 EOS worth of CPU on November 1st. After leasing the CPU, the only transactions this address makes are to the EIDOS contract and deposits to exchanges.
Current EOS State
As of November 8th 2019, the EOS network is still in a congested state. Only addresses with significant CPU resources staked are able to have their transactions processed in a reasonable amount of time. As mentioned above, currently ~95% of transfer actions are related to EIDOS. It is fair to say that most of the CPU staked right now is being used for participating in the airdrop and collecting EIDOS.
Illustrated in the image above, around 84% of EOS on REX is currently in a leased state. According to the EIDOS project website, the airdrop is going to continue for the next 15 months. As long as the money made from selling EIDOS for USDT outweighs the cost for leasing CPU from REX, we can expect the EOS network to stay in this state.