The EOS Network, the first implementation of EOS.IO blockchain, was heavily congested in November 2019 due to some airdrop that made its participants barely use any of the available CPU. The EOS.IO governance had no choice but to explain the origins of such a collapse and ways to improve CPU issues.
Distribution Blamed for Everything
In order to provide a better explanation of what was going on in the EOS network 20 days ago, Block.one's CTO Daniel Larimer outlined the role of the Resource Exchange (REX), the "market" of CPU used for EOS transactions. Mr. Larimer admitted that the demand for transfers were so high that REX had run out of EOS tokens to lease. Since the bandwidth allocated to one EOS holder depends on the quantity of tokens that he/she has at stake, the transactions will get congested.
In short, such situations may only occur in systems that are extremely far from the "normal" (well-balanced) distribution of CPU rental demand. It is here that the crucial mismatch between initial assumptions and the reality of REX should be located.
In a real blockchain, both the deposits and withdrawals from REX are distributed on Pareto, explains Mr. Larimer. This balance is highlighted more by the fact that a staker's income can be claimed by withdrawing before the 30-day rental period expires. The combination of these conditions can result in a price volatility for renting resources, as well as the unavailability of EOS to rent.
To avoid such situations, 100% of all CPU time should be leased by the system contract at an EOS price that grows exponentially as the percentage of CPU leased increases simultaneously. This is in accordance to Mr. Larimer's proposal. Then, the sum of EOS paid to lease the CPU time would be distributed between EOS stakers.
This approach eliminates the dynamic supply of tokens staked to the CPU. Therefore, people are not incentivized to withdraw EOS from REX, causing shocks to the CPU rental market and CPU time prices.
The best way to switch from the existing consensus to the proposed one is to shift the percentage of CPU allocated via “inflating the CPU supply” over time. As a result, the sharing of "system contract" will grow, and EOSians will more or less be comfortable with migrating to a new network.
In a brief, Daniel Larimer plans to do following:
- Make all CPU time leased from the system contract
- Make the price for leasing grow exponentially as the percentage of CPU leased increases
- Distribute the EOS paid for the CPU time between EOS stakers.
Remember, Block.one will also be voting for block producers on the new EOS. Won't this centralize the system? Write us in Twitter!