In the heart of ethereum is a virtual computer.
Memorized on tens of thousands of nodes that make up the platform, the virtual machine ethereum, or EVM, is responsible for the execution of innumerable tokens, dapps, DAOs and digital kittens of which the blockchain is composed.
It is an engine above which the totality of ethereum operates, and speaks in a language called "bytecode EVM" – strings of raw information with 256 bits able to provide any conceivable equation (provided it falls within the self-imposed limit of the platform, gas).
Powerful and important sounds eh? Something not to mess up too much?
Still, that integral part of the ethereum infrastructure is preparing for a complete rewrite.
"I would like to state that there was not a huge amount of design thought entered at the start," Lane Rettig, an ethereum developer, told CoinDesk of the evm. "It was a bit like a tool – a Swiss army knife is the way I would describe it – it does a lot of things but not incredibly well."
As such, the current EVM will be replaced by a new virtual machine called eWASM.
EWASM is just the ethereum version of the WASM code (which stands for WebAssembly), created by the World Wide Web Consortium (W3C), the developer team responsible for web maintenance and standardization.
there are many highly paid engineers, very experienced engineers and many thousands of hours of professional engineer who have entered the construction set concept [the WASM] – compared to the EVM, "Rettig, which contributes to the development of eWASM, he said.
In fact, eWASM allows developers to code in multiple programming languages - not just the specific language of ethereum, Solidity – and is said to come with a series of performance improvements.
And with the merit to make the decision, ethereum will join several competitors, I excluding EOS, Tron and Cardano, who have distributed (or planned to implement) virtual machines specific to the project to manage the decentralized calculation using the WASM code.
By ethereum , the switch is set to run along with a couple of other updates now nicknamed "Shasper" which includes resizing the solution and rewriting mine of Casper, in the next few years. And while an exact timeline for the switch is not fixed, the development of eWASM is making rapid progress and is preparing for the launch of its testnet at Devcon 4, the ethereum developers' conference, in Prague in October.
Speaking to the Decision to replace the existing machine, Rettig summarizes:
"Ethereum is at the point where it is moving from a clunky custom homebrew build job that we are driving around our farm up to a real car from race that we can take on the highway
A "warty" way
The basis of the switch is the awareness that while the EVM is an innovative technology – for the first time, it provides a solution to decentralized attack-resistance computing – it's not as clean as it could be.
As a matter of fact, most of the developers of programs already in ethereum Solidity, a high-level programming language that automatically compiles into a form compatible with the EVM code.
Because the EVM is based on "very wide and wide ion instructions," said Rettig, even the smallest types of calculations, such as basic arithmetic, avr they needed to be converted into 256-bit strings – a complex process for simple math – for EVM to process them.
This is just one of several operations integrated into the system code that Rettig claims should not be there. Another includes the popular SHA-3 hash function.
For this reason Rettig describes the EVM as "warty".
And Nick Johnson, a leading developer of ethereum, agreed, telling CoinDesk that when he joined ethereum, it was immediately obvious to him that EVM was built by developers with in-depth knowledge of computing , but without much experience in the construction of widely usable products.
As an instrument, Johnson emphasized, the EVM was "optimized for theoretical purity, rather than practical use."
"It has these huge registers, but they are all the same, and it is very consistent internally and so on, "he said," but it is not built with the implementation of the real world in mind. "" Closer to the metal "
The WASM code, on the other hand, was built thinking about production.
For one, Rettig said, it is built "closer to the metal", which means that the code is runs is close to the actual hardware instructions, so there is less effort spent on translating ng different logic to encoding.
"The instructions simulate the current hardware instructions very closely," continues Rettig. "These instructions can directly map direct instructions to real devices, so in theory you can get pretty interesting performance improvements."
For example, developers who rely on ethereum will be able to code using multiple languages - whatever the most comfortable – including those with additional security benefits.
Another key advantage – that Rettig said some developers cite as the "key motivation behind eWASM" – is that it potentially eliminates what is called a "precompiled".
Since the EVM is composed of a cumbersome code, some operations must be built inside the system, otherwise the operations would exceed the costs of the gas associated with them. Pre-populate calls to make these operations available on a network requires system-level updating or a fixed fork; and these updates proved to be risky and complicated to orchestrate.
With eWASM, however, developers claim that operations can simply be written as intelligent and implemented contracts, skipping the hard fork scenario.
"With eWASM, it is quite efficient in doing computational things that most of these precompiles could be eliminated and replaced with eWASM contracts only," Johnson said.
However, like any substantial change in a decentralized ecosystem, the drive to deprecate the EVM is
For one, Greg Colvin, ethereum's core developer, who was dedicated to the maintenance of # EV; EVM for years, is reluctant to let go of the old code.
Colvin was designing an improved version of EVM code itself, called EVM 1.5, which originally had to be the future of the virtual ethereum machine. However, without notice, its funding was cut by the Ethereum Nonprofit Foundation.
"I was pissed off," Colvin, who helped form the Board of Ethereum Magicians, a discussion group dedicated to promoting the technical expertise of ethereum, after the experience, told CoinDesk. "I wanted to wait a minute, you would not pay me $ 8.40 the hour when you've already reduced my hours to 20 from 35, so why I'm doing it … And then for the rest of the year I could not the more I allow myself to volunteer. "
However, Colvin's reason for opposing a WSASM is not just pride.
According to him, there are also technical problems with eWASM. For example, because eWASM supports multiple languages, the code relies on what is known as "compilers" – something that Colvin claims could be a single point of failure for attackers.
Furthermore, he is not convinced that smart eWASM contracts could replace the need for precompiled ones.
"There seems to be a model in technology and computer science where the best designed things, not only do not necessarily win, but they do not seem to do very well," said Rettig.
Not to mention, according to Colvin, for all the development work behind WASM, the code is still relatively untested in nature.
Colvin at CoinDesk:
"I did not understand why we wanted to be the first to adopt an experiment, when we were already the first to adopt our experiment."
Conflicts aside, eWASM is gaining ground among many developers ethereum
Indeed, plan planning is to implement it as a testnet before the ethereum developers' conference, Devcon4, in November.
However, this does not mean that the new virtual machine will be deployed anytime soon.
Because eWASM will first be highlighted on a fragment or on a sidechain, before replacing the EVM itself, the launch of eWASM is closely related to Shasper's upgrade. And in terms of timing, this means that developers will have to watch the research that underlies those changes before moving to eWASM.
Unfortunately, the progress of this research can be unpredictable.
In fact, the ambiguity involved with such code updates has been confusing for a large group of developers ethereum who have built on the platform.
"If you are creating a new customer there is a lot of confusion: I should build eWASM" Do I have to build EVM? Should I build both? I have to build something else, "Rettig told CoinDesk.
The lack of clarity was one of the main frustrations for Colvin, because when it comes to current EVM, there are some performance issues that could be easily improved. , but those were excluded from the sudden change in the roadmap.
"It was my frustration for a while," andWASM was clearly on the horizon, but without too much resources, EVM 1.5 the near horizon was active. And now, it's still feasible, but it was pushed, a whole year was wasted, "Colvin told CoinDesk
The more we are, the better?
Both Rettig and Colvin admit that this uncertainty is only part contributing to an open-source project without central leadership.
"The appearance of the community is so important. If this were a company, I would have long ago, "Colvin told CoinDesk.
Furthermore, Rettig was quick to argue that when it comes to improvements ethereum, there is no work wasted.  In truth, he continued, due to the nature of the sharding upgrade – which divides ethereum into smaller and more manageable chunks – multiple virtual machines could possibly be supported on ethereum.
On an updated ethereum, Rettig said : "There is not a single ethereum, there is not a single roadmap, it's not a single authority, it's a community, it's a family of technologies, and I do not think the future is just one chain to dominate them all. "
In line with this, eWASM will unlock new levels of interoperability, for example, it is built in a language that has been standardized for the World Wide Web, so adding browser support for an ethereum light client would be trivial.
And it could open the way to interoperability by discovering also different blockchains.
"Maybe you have here the quadratic quotient and Plasma here, and maybe they overlap in some places, and maybe we have a Dfinity chain who speaks to an ethereum chain that speaks to the bitcoin through Cosmos and Polkadot, "said Rettig, suggesting:
" We simply do not know, so do not be taken from the official canonical roadmap, whatever it is. "
Image of the paper heart through Shutterstock