The upgrade of EOF for ETH, starting from the Shanghai upgrade, is soon going to the Pectra upgrade. Unfortunately, it still won't be implemented this time, and we have to rely on subsequent upgrades.
The birth of this major patch for EOF is essentially to pay off ETH's past "technical debt".
After all, it's a protocol from 2015, and the EVM is not perfect:
For example, as Siyuan mentioned, the limit on code length is too small, which leads to constant combinations;
Another issue that greatly affects development is that the bytecode structure of the current EVM is not very clear, making it difficult for many development tools to be used, and thus formal verification and static analysis are also very challenging.
An illustration is as follows:
You can see that the latter (EOF) is much clearer.
Using an inappropriate analogy, launching EOF is equivalent to a new EVM.
So, this is a significant project.
Blockchain is different from traditional software; the obsession with forward compatibility in blockchain is much deeper.
We can't just say that when ETH updates, all old DeFi NFTs should stop and be redeveloped, right?
So if EOF is implemented, those contracts based on the old EVM must still be able to function normally.
Of course, users won't perceive all of this because it is the vast ETH nodes that are carrying the burden. In the future, the workload of the execution layer clients for nodes will double, and they must be able to:
Handle both old version EVM contracts
And handle new version EOF contracts
Many in the community oppose EOF, but short pain is better than long pain. At worst, it will still allow everyone to develop old EVM contracts in the future while encouraging the development of new EOF, allowing the market to freely choose and eliminate.
After all, nodes are running both sets simultaneously, so there's not much difference.