Ethereum is probably not too worried about "backward compatibility". A few years ago, the Polkadot ecosystem was also upgraded all the way, and several important DeFi applications iterated from V1 and V2 to V3 and V4, and users hardly had much perception, not to mention that there was nothing that could not be changed...
V's new blog post mentions Apple's Rosetta system, which accurately reflects the technical challenges that the Ethereum mainnet will face if it wants to swap out EVMs for other VMs, much like when Apple ditched Intel in favor of its own M-series chips based on the Arm architecture.
What's so hard about that?
As we've said before, any code written in a high-level language ends up running on a certain instruction set:
- If your computer's CPU is Intel/AMD, then the program will be executed according to the x86 instruction set
- In the case of Apple M-series chips, the program will eventually run on the CPU according to the Arm instruction set
Then recall: How exactly did the program come about?
After a programmer writes code in a high-level language, he or she needs to use the compiler to compile it into an executable file "for a certain operating system and a certain instruction set". When downloading an app, your common "Linux-x86", "macOS-x86", "macOS-Arm" illustrates this, and the file name suffix represents the target instruction set (why there is still an operating system, next time you can talk about it)
So Tim, what is the price? 😡
When Apple decided to change the core, there was no ready-made compiled Arm version for a large number of applications, and the result was that macOS-x86 programs could not run natively on the M chip.
What to do? Find a translator: That's where Rosetta comes in.
Rosetta, from Rosetta Stone. The awesome thing is that the same content was recorded in three ancient languages, and the ancient Greek became the key to deciphering the Egyptian hieroglyphs. In the same way, Rosetta mainly acts as a "translation layer" between the two sets of instruction sets, translating the compiled program from the A instruction set into the B instruction set dynamically or all at once. In this way, the previous program can also run seamlessly on hardware that uses the new instruction set. Thanks to "computational equivalence", the translated program output is exactly the same, but at the cost of some performance.
Why is Rosetta rarely mentioned anymore? As the M-chip ecosystem matures, developers usually compile an Arm-version of the program when updating their applications. Only those old software that is old and unmaintained has to rely on Rosetta.
Therefore, if Ethereum really wants to replace the EVM, it will basically have to follow Apple's migration path again:
- Make your own "Rosetta" so that the old contract bytecode can continue to execute on the new VM
- Gradually, let the new contract compile directly to the native new VM
It's still a long, long, long road from laying out the compatibility layer to eventually covering all the old contracts.
7.3K
8
The content on this page is provided by third parties. Unless otherwise stated, OKX is not the author of the cited article(s) and does not claim any copyright in the materials. The content is provided for informational purposes only and does not represent the views of OKX. It is not intended to be an endorsement of any kind and should not be considered investment advice or a solicitation to buy or sell digital assets. To the extent generative AI is utilized to provide summaries or other information, such AI generated content may be inaccurate or inconsistent. Please read the linked article for more details and information. OKX is not responsible for content hosted on third party sites. Digital asset holdings, including stablecoins and NFTs, involve a high degree of risk and can fluctuate greatly. You should carefully consider whether trading or holding digital assets is suitable for you in light of your financial condition.