Ethereum probably isn't too worried about the issue of "backward compatibility." A few years ago, the Polkadot ecosystem also went through upgrades all the way, with important DeFi applications iterating from V1, V2 to V3, V4, and users hardly noticed much. Moreover, there's nothing that can't be changed...
In V's new blog post, Apple’s Rosetta system is mentioned, accurately reflecting the technical challenges Ethereum's mainnet would face if it wanted to replace the EVM with another VM. Essentially, it’s akin to when Apple abandoned Intel and transitioned to its self-developed M-series chips based on the Arm architecture.
So, what makes this so difficult?
As we’ve mentioned before, any code written in a high-level language ultimately has to run on a specific instruction set:
- If your computer’s CPU is from Intel/AMD, the program runs according to the x86 instruction set.
- If it’s an Apple M-series chip, the program will eventually run on the CPU according to the Arm instruction set.
Now, recall how a program is created:
After a programmer writes code in a high-level language, it needs to be compiled by a compiler into an executable file "targeted at a specific operating system and instruction set." When downloading applications, you often see labels like "Linux-x86," "macOS-x86," or "macOS-Arm," which indicate the target instruction set (we can discuss why the operating system matters next time).
So, Tim, what’s the cost? 😡
The moment Apple decided to switch chips, a massive number of applications didn’t have pre-compiled Arm versions, meaning macOS-x86 programs couldn’t natively run on M chips.
What’s the solution? Find a translator: this is where Rosetta comes in.
Rosetta, named after the Rosetta Stone, is remarkable because it recorded the same content in three ancient languages, with Ancient Greek serving as the key to deciphering Egyptian hieroglyphs. Similarly, Rosetta acts as a "translation layer" between two instruction sets, dynamically or statically translating programs compiled for instruction set A into instruction set B. This allows older programs to run seamlessly on hardware using the new instruction set. Thanks to "computational equivalence," the output of the translated program remains identical, though it does consume some performance.
Why is Rosetta rarely mentioned now? As the M-series chip ecosystem has matured, developers typically compile an Arm version of their programs when updating their applications. Only old, unmaintained software still relies on Rosetta as a fallback.
So, if Ethereum truly wants to replace the EVM, it would essentially have to follow Apple’s migration path:
- First, build its own "Rosetta" to allow old contract bytecode to continue running on the new VM.
- Then, gradually enable new contracts to be compiled directly for the native new VM.
From laying down a compatibility layer to fully covering all old contracts, this journey remains very, very, very, very long.
7.35K
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.