Last week, Ethereum recorded record transaction costs that peaked at around $ 7,000,000 per hour in fees.
While this was unusually high, even in the quietest of times, the fees are approaching $ 1,000,000 per hour.
These high fees are a result of the fact that block space is limited. Blocks in Ethereum can accommodate around 500 transactions, although the exact number depends on the complexity of those transactions. The transactions selected for these blocks are generally chosen based on a very simple criterion: whoever pays the most gets in.
A common requirement is to increase the size of blocks. It is clear that more block space for transactions leads to less competitive pressure and therefore lower fees and a higher number of transactions per second. While all of this is true in theory, in practice it is not that simple. Then what is the problem and what is being done about it?
State is the problem
The main cause of the problem is “condition”. Status is information about an Ethereum address or a smart contract.
For example, the amount of ether held by an address or ownership of a non-fungible token. A key difference between the status of Ethereum and Bitcoin’s UTXOs is that the former allow the creation and operation of smart contracts of any complexity.
This feature has been the main reason for Ethereum’s success for the past five years with ERC-20 tokens, NFTs, and more recently with DeFi.
Currently, however, Ethereum is a victim of its own success.
The more people use Ethereum, the more states there are. Did you send 0.01 ether to another address a few years ago to see how it worked? The information about this account balance will be saved.
Do you have different drops of air with random tokens in your wallet? Each of these requires state. Every NFT, ERC-20, DeFi project (alive or dormant) takes on its state and it adds up to one big and growing problem.
The state is growing
As the state increases, the time to access part of that state increases. Although data access methods in computers continue to improve, the sheer size of the state and the unpredictability of access to it mean that state access is by far the slowest task in performing Ethereum transactions.
This is important as every transaction on Ethereum accesses the status in some form (and usually updates it). If the time required to process the transactions in a block becomes too long, this leads to a destabilization of the chain: there are more alternative branches, more resources for a local copy of the chain and a significantly higher risk of denial-of-service. Attacks needed.
There is an ongoing battle between the growth of the state on the one hand and the increase in efficiency to access this state via faster hardware, optimized algorithms and the like, but the growth of the state wins. So the focus is shifting from being able to manage the entire state to being able to reduce it.
State must be reduced
There are many ideas on how best to reduce the size of the Ethereum state, but there are three main options.
The first solution is to introduce the concept of “state rent”, in which the state is paid on an ongoing basis. If no payment is made, the status will be removed, resulting in a smaller and more manageable status. The removed status can be reintroduced with an appropriate payment if necessary.
This has the advantage that it is an economical solution, since after implementation it is up to Ethereum users which state they are interested enough in to pay. However, this is only a partial solution as even with the existing rent there is no guarantee of the size or growth of the state.
The second solution is to provide a two-tier status. The “Active” status remains unchanged. However, if the status is no longer accessed after a while, it is considered “inactive” and moved to a second memory area.
The cost of accessing the inactive state is significantly higher, which is the cost of putting data back in the active state. This is similar to the first solution, but it is more automated.
However, gas consumption varies greatly from transaction to transaction, and the technical challenges of moving the status between active and inactive branches add significant complexity for customers.
The third solution is to completely remove the condition.
In its place, a single small value called the “root of state” is held on Ethereum, and all of the actual state is kept out of chain. Every time a transaction is sent to the Ethereum network, the pieces of status read from the transaction are provided next to it in a structure called a “witness”.
This increases the size of transactions, but significantly reduces the time it takes to process the transaction by eliminating the need to get status. This option also has the highest technical requirements, since the status master must be updated in a trustworthy and decentralized manner with each block and transactions themselves need access to the status in order to be able to create the corresponding witness.
However, this fixes the entire state growth problem related to Ethereum nodes, so a great effort is being put into this option.
The state must remain decentralized
Regardless of the solution or solutions used, they must not compromise Ethereum’s basic premise of providing a decentralized blockchain.
This takes time, and the lack of it is particularly painful today in times of high network congestion and astronomical charges.
However, progress towards the ultimate goal of a highly scalable, no-compromise solution continues. When additional work like Layer 2 and broken glass is added to the mix, that goal actually looks very accurate.
Where can i learn more?
A good introduction to Ethereum can be found on the Ethereum Foundation’s official website.
You can find more information in our technical articles on the use of Ethereum 2.
AAbout the author
Jim McDonald – Chief Technology Officer Attestant Limited
Jim has worked on Internet infrastructure for nearly 30 years, including running one of the first publicly available Internet services. He has worked on hardware and software, in startups and multinationals, in technical, management and leadership positions. He is currently focused on Ethereum 2, decentralized infrastructure and advanced validation strategies.
This article was written by Attestant.io. Attestant was founded in 2019 and has designed, developed, tested and deployed a non-custodial, institutional participation service for banks, stock exchanges, family offices, financial institutions and HNW individuals with a minimum of 1,000 ethers since December 1st, 2020.
Attestant Limited is registered in England and Wales under company number 12540798 at 7 Albert Buildings, 49 Queen Victoria Street, City of London, EC4N 4SA, UK.