Open Heart Surgery: Inside Ethereum’s Crucial Replacement of the EVM


At the heart of ethereum lies a virtual computer.

Stored across tens of thousands of nodes that make up the platform, the ethereum virtual machine, or EVM, is responsible for executing the countless tokens, dapps, DAOs and digital kittens of which the blockchain is comprised of.

It’s an engine on top of which the entirety of ethereum operates, and it speaks in a language named “EVM bytecode” — raw, 256-bit strings of information that can deliver any conceivable equation (providing it falls within the platform’s self-imposed limit, gas).

Sounds powerful and important huh? Something not to be messed with too much?

Yet, that integral part of ethereum’s infrastructure is gearing up for a complete rewrite.

“I would make the case there wasn’t an enormous amount of design thinking put into it at the beginning,” Lane Rettig, an ethereum developer, told CoinDesk about the EVM. “It was kind of like a tool – a swiss army knife is the way I would describe it – it does a bunch of things but not incredibly well.”

As such, the current EVM will be replaced by a new virtual machine called eWASM.

EWASM is just ethereum’s version of the WASM (which stands for WebAssembly) code, created by the World Wide Web Consortium (W3C), the team of developers responsible for maintaining and standardizing the web.

“There are many highly paid, very experienced engineers, and many thousands of professional engineer hours that went into the conception of [the WASM] construction set – compared to EVM,” Rettig, who contributes to eWASM development, said.

Indeed, eWASM will allow developers to code in multiple programming languages — not just the ethereum-specific language, Solidity — and is said to come with a host of performance enhancements as well.

And leading credence to the decision, ethereum will join several competitors, including EOS, Tron and Cardano, who have each deployed (or plan to deploy) project-specific virtual machines to handle decentralized computation using the WASM code.

For ethereum, the switch is set to execute alongside a couple other updates now nicknamed “Shasper,” which includes scaling solution sharding and mining rewrite Casper, in the next few years. And while an exact timeline for the switch isn’t fixed, eWASM development is making rapid progress, and is gearing up to the launch of its testnet at Devcon 4, the ethereum developer conference, in Prague in October.

Speaking to the decision to replace the existing machine, Rettig summarized:

“Ethereum is at the point where it’s transitioning from a clunky homebrew custom build job that we’ve been riding around our farm to a real racecar that we can take out on the highway and open up.”

A ‘warty’ way

Underlying the switch is the realization that while the EVM is an innovative technology — for the first time, providing a solution to attack-resistance decentralized computation — it’s not as clean as it could be.

Case in point, most dapps developers program in ethereum’s Solidity, a high-level programming language which automatically compiles into an EVM bytecode compatible form.

Because the EVM relies on “very large, wide instructions,” Rettig said, even the smallest kinds of computations, such as basic arithmetic, would need to be converted into 256-bit strings – a complex process for simple math – for the EVM to process them.

This is just one of several operations built into the system code that Rettig contends shouldn’t be there. Another includes the popular hash function SHA-3.

Because of this, Rettig describes the EVM as “warty.”

And Nick Johnson, an ethereum core developer, agreed, telling CoinDesk that when he joined ethereum, it was immediately obvious to him that the EVM was built by developers with a deep understanding of computer science, but without much experience building broadly useable products.

As a tool, Johnson emphasized, the EVM has been “optimized for theoretical purity, rather than practical use.”

“It has these enormous registers, but they’re all the same, and it’s very internally consistent and so on,” he said, “but it’s not built with real-world implementation in mind.”

‘Closer to the metal’

The WASM code, on the other hand, was built with production in mind.

For one, Rettig said, it’s built “closer to the metal,” meaning that the code it runs is close to actual hardware instructions, so there’s less effort spent on translating different coding logics.

“The instructions very closely mimic actual hardware instructions,” Rettig continued. “These instructions can map one-to-one directly to the instructions the actual devices run, so you can, in theory, get pretty exciting performance improvements.”

For instance, developers building on ethereum will be able to code using multiple languages – whatever they’re most comfortable with – including those with additional security benefits.

Another key advantage — which Rettig said some developers are citing as the “key motivation behind eWASM” — is that it potentially does away with what is called a “precompile.”

Because the EVM is comprised of unwieldy code, certain operations need to be built inside the system — otherwise, the operations would exceed the gas costs associated with them. Called precompiles, to make such operations available on a network, a system-wide upgrade, or hard fork, is required; and such upgrades have proved risky and complicated to orchestrate.

With eWASM, though, developers maintain that operations can simply be written as smart contracts and deployed, skipping the hard fork scenario.

“With eWASM, it’s efficient enough at doing compute stuff that most of those precompiles could be done away with and replaced with just eWASM contracts,” Johnson said.

Broken heart

Still, like any substantial change in a decentralized ecosystem, the push to deprecate the EVM is not without its critics.

For one, ethereum core developer Greg Colvin, who’s been devoted to the EVM’s upkeep for years, is reluctant to let the old code go.

Colvin had been designing a newly improved version of the EVM code himself, named EVM 1.5, which was originally intended to be the future of the ethereum virtual machine. However, without warning, his funding was cut by the non-profit Ethereum Foundation.

“I was pissed,” Colvin, who helped form the Council of Ethereum Magicians, a discussion group devoted to furthering the technical proficiency of ethereum, after the experience, told CoinDesk. “I was like wait a minute, you won’t pay me $8.40 an hour when you’ve already decreased my hours to 20 from 35, so why am I doing this. And then for the rest of the year I could no longer afford to volunteer time.”

Yet, Colvin’s reason for opposing aWASM isn’t only pride.

According to him, there are technical issues with eWASM as well. For example, because eWASM allows multiple language support, the code relies heavily on what is known as “compilers” — something that Colvin maintains could be a single point of failure for attackers.

He’s also unconvinced that eWASM smart contracts could replace the need for precompiles.

Plus, Colvin has further design-orientated critiques that even Rettig agrees with. According to both the developers, for some reason more inefficient tech usually wins out. Take Javascript for example, which is one of the most widely used programming languages, but is known for being particularly ugly.

“There seems to be a pattern in technology and computer science where the best-designed things, not only do they not necessarily win, but they seem to not do very well,” Rettig argued.

Not to mention, according to Colvin, for all the development work behind WASM, the code is still relatively untested in the wild.

Colvin told CoinDesk:

“I didn’t understand why we wanted to be early adopters of an experiment, when we were already early adopters of our own experiment.”

Unpredictability

Conflicts aside, eWASM is gaining steam among many ethereum developers.

Indeed, the plan planning is to deploy it as a testnet prior to the ethereum developer conference, Devcon4, in November.

Yet, that doesn’t mean the new virtual machine will get deployed any time soon.

Because eWASM will first be brought out on a shard, or a sidechain, before replacing the EVM itself, the rollout of eWASM is closely bound to the Shasper upgrade. And in terms of timing, that means developers will need to attend to the research that underpins those changes, before moving on to eWASM.

Unfortunately, the progress of such research can be unpredictable.

Indeed, the ambiguity involved with code upgrades of this sort has been a source of confusion for a wide group of ethereum developers building on the platform.

“If you’re in the process of building a new client there’s a lot of confusion: Should I be building eWASM? Should I be building EVM? Should I be building both? Should I be building something else,” Rettig told CoinDesk.

The lack of clarity was one of the key frustrations for Colvin, because when it comes to the current EVM, there are some performance issues that would be easy to improve on, yet those have been side-barred by the sudden shift in the roadmap.

“It’s been a frustration of mine for a while, eWASM was clearly over the horizon, but without too much resources EVM 1.5 was on the near horizon. And now, it’s still doable, but it got pushed, a whole year got wasted,” Colvin told CoinDesk.

The more, the merrier?

Still, both Rettig and Colvin admit that this uncertainty is just a part of contributing to an open-source project without any central leadership.

“The community aspect is so important. If this was a company I’d be long gone,” Colvin told CoinDesk.

Plus, Rettig was quick to argue that when it comes to ethereum improvements, there’s no wasted work.

Indeed, he continued, because of the nature of the sharding upgrade — which splits ethereum up into smaller, more manageable chunks — multiple virtual machines could eventually be supported on ethereum.

On an updated ethereum, Rettig said, “There is no single ethereum, there is no single roadmap, there is no single authority, it’s a community, it’s a family of technologies, and I do not believe that the future is just one chain to rule them all.”

In line with that, eWASM will unlock new levels of interoperability as well. For one, it’s built in a language that has been standardized for the World Wide Web, so adding in-browser support for an ethereum light client would be trivial.

And it could pave the way for undiscovered interoperability between different blockchains as well.

“Maybe you have quadratic sharding over here, and Plasma over here, and maybe they overlap in places, and maybe we have a Dfinity chain talking to an ethereum chain talking to bitcoin through Cosmos and Polkadot,” Rettig said, suggesting:

“We just don’t know, so don’t get so caught up in the official canonical roadmap, whatever that may be.”

Paper heart image via Shutterstock

The leader in blockchain news, CoinDesk is a media outlet that strives for the highest journalistic standards and abides by a strict set of editorial policies. CoinDesk is an independent operating subsidiary of Digital Currency Group, which invests in cryptocurrencies and blockchain startups.


Be the first to comment

Leave a Reply

Your email address will not be published.


*


Privacy Policy

WideBitcoin.com is committed to safeguarding your privacy. Contact us at if you have any questions or problems regarding the use of your Personal Data and we will gladly assist you.

By using this site or/and our services, you consent to the Processing of your Personal Data as described in this Privacy Policy.

Table of Contents

  1. Definitions used in this Policy
  2. Data protection principles we follow
  3. What rights do you have regarding your Personal Data
  4. What Personal Data we gather about you
  5. How we use your Personal Data
  6. Who else has access to your Personal Data
  7. How we secure your data
  8. Information about cookies
  9. Contact information

Definitions

Personal Data – any information relating to an identified or identifiable natural person.
Processing – any operation or set of operations which is performed on Personal Data or on sets of Personal Data.
Data subject – a natural person whose Personal Data is being Processed.
Child – a natural person under 16 years of age.
We/us (either capitalized or not)

Data Protection Principles

We promise to follow the following data protection principles:

  • Processing is lawful, fair, transparent. Our Processing activities have lawful grounds. We always consider your rights before Processing Personal Data. We will provide you information regarding Processing upon request.
  • Processing is limited to the purpose. Our Processing activities fit the purpose for which Personal Data was gathered.
  • Processing is done with minimal data. We only gather and Process the minimal amount of Personal Data required for any purpose.
  • Processing is limited with a time period. We will not store your personal data for longer than needed.
  • We will do our best to ensure the accuracy of data.
  • We will do our best to ensure the integrity and confidentiality of data.

Data Subject’s rights

The Data Subject has the following rights:

  1. Right to information – meaning you have to right to know whether your Personal Data is being processed; what data is gathered, from where it is obtained and why and by whom it is processed.
  2. Right to access – meaning you have the right to access the data collected from/about you. This includes your right to request and obtain a copy of your Personal Data gathered.
  3. Right to rectification – meaning you have the right to request rectification or erasure of your Personal Data that is inaccurate or incomplete.
  4. Right to erasure – meaning in certain circumstances you can request for your Personal Data to be erased from our records.
  5. Right to restrict processing – meaning where certain conditions apply, you have the right to restrict the Processing of your Personal Data.
  6. Right to object to processing – meaning in certain cases you have the right to object to Processing of your Personal Data, for example in the case of direct marketing.
  7. Right to object to automated Processing – meaning you have the right to object to automated Processing, including profiling; and not to be subject to a decision based solely on automated Processing. This right you can exercise whenever there is an outcome of the profiling that produces legal effects concerning or significantly affecting you.
  8. Right to data portability – you have the right to obtain your Personal Data in a machine-readable format or if it is feasible, as a direct transfer from one Processor to another.
  9. Right to lodge a complaint – in the event that we refuse your request under the Rights of Access, we will provide you with a reason as to why. If you are not satisfied with the way your request has been handled please contact us.
  10. Right for the help of supervisory authority – meaning you have the right for the help of a supervisory authority and the right for other legal remedies such as claiming damages.
  11. Right to withdraw consent – you have the right withdraw any given consent for Processing of your Personal Data.

Data we gather

Information you have provided us with
This might be your e-mail address, name, billing address, home address etc – mainly information that is necessary for delivering you a product/service or to enhance your customer experience with us. We save the information you provide us with in order for you to comment or perform other activities on the website. This information includes, for example, your name and e-mail address.

Information automatically collected about you
This includes information that is automatically stored by cookies and other session tools. For example, your shopping cart information, your IP address, your shopping history (if there is any) etc. This information is used to improve your customer experience. When you use our services or look at the contents of our website, your activities may be logged.

Information from our partners
We gather information from our trusted partners with confirmation that they have legal grounds to share that information with us. This is either information you have provided them directly with or that they have gathered about you on other legal grounds. See the list of our partners here.

Publicly available information
We might gather information about you that is publicly available.

How we use your Personal Data

We use your Personal Data in order to:

  • provide our service to you. This includes for example registering your account; providing you with other products and services that you have requested; providing you with promotional items at your request and communicating with you in relation to those products and services; communicating and interacting with you; and notifying you of changes to any services.
  • enhance your customer experience;
  • fulfil an obligation under law or contract;

We use your Personal Data on legitimate grounds and/or with your Consent.

On the grounds of entering into a contract or fulfilling contractual obligations, we Process your Personal Data for the following purposes:

  • to identify you;
  • to provide you a service or to send/offer you a product;
  • to communicate either for sales or invoicing;

On the ground of legitimate interest, we Process your Personal Data for the following purposes:

  • to send you personalized offers* (from us and/or our carefully selected partners);
  • to administer and analyse our client base (purchasing behaviour and history) in order to improve the quality, variety, and availability of products/ services offered/provided;
  • to conduct questionnaires concerning client satisfaction;

As long as you have not informed us otherwise, we consider offering you products/services that are similar or same to your purchasing history/browsing behaviour to be our legitimate interest.

With your consent we Process your Personal Data for the following purposes:

  • to send you newsletters and campaign offers (from us and/or our carefully selected partners);
  • for other purposes we have asked your consent for;

We Process your Personal Data in order to fulfil obligation rising from law and/or use your Personal Data for options provided by law. We reserve the right to anonymise Personal Data gathered and to use any such data. We will use data outside the scope of this Policy only when it is anonymised. We save your billing information and other information gathered about you for as long as needed for accounting purposes or other obligations deriving from law, but not longer than 1 year.

We might process your Personal Data for additional purposes that are not mentioned here, but are compatible with the original purpose for which the data was gathered. To do this, we will ensure that:

  • the link between purposes, context and nature of Personal Data is suitable for further Processing;
  • the further Processing would not harm your interests and
  • there would be appropriate safeguard for Processing.

We will inform you of any further Processing and purposes.

Who else can access your Personal Data

We do not share your Personal Data with strangers. Personal Data about you is in some cases provided to our trusted partners in order to either make providing the service to you possible or to enhance your customer experience. We share your data with:

Our processing partners:

  • facebook.com
  • google.com
  • bing.com
  • twitter.com
  • pinterest.com

Our business partners:

  • facebook.com
  • google.com
  • bing.com
  • twitter.com
  • pinterest.com

Connected third parties:

  • facebook.com
  • google.com
  • bing.com
  • twitter.com
  • pinterest.com

We only work with Processing partners who are able to ensure adequate level of protection to your Personal Data. We disclose your Personal Data to third parties or public officials when we are legally obliged to do so. We might disclose your Personal Data to third parties if you have consented to it or if there are other legal grounds for it.

How we secure your data

We do our best to keep your Personal Data safe. We use safe protocols for communication and transferring data (such as HTTPS). We use anonymising and pseudonymising where suitable. We monitor our systems for possible vulnerabilities and attacks.

Even though we try our best we can not guarantee the security of information. However, we promise to notify suitable authorities of data breaches. We will also notify you if there is a threat to your rights or interests. We will do everything we reasonably can to prevent security breaches and to assist authorities should any breaches occur.

If you have an account with us, note that you have to keep your username and password secret.

Children

We do not intend to collect or knowingly collect information from children. We do not target children with our services.

Cookies and other technologies we use

We use cookies and/or similar technologies to analyse customer behaviour, administer the website, track users’ movements, and to collect information about users. This is done in order to personalize and enhance your experience with us.

A cookie is a tiny text file stored on your computer. Cookies store information that is used to help make sites work. Only we can access the cookies created by our website. You can control your cookies at the browser level. Choosing to disable cookies may hinder your use of certain functions.

We use cookies for the following purposes:

  • Necessary cookies – these cookies are required for you to be able to use some important features on our website, such as logging in. These cookies don’t collect any personal information.
  • Functionality cookies – these cookies provide functionality that makes using our service more convenient and makes providing more personalised features possible. For example, they might remember your name and e-mail in comment forms so you don’t have to re-enter this information next time when commenting.
  • Analytics cookies – these cookies are used to track the use and performance of our website and services
  • Advertising cookies – these cookies are used to deliver advertisements that are relevant to you and to your interests. In addition, they are used to limit the number of times you see an advertisement. They are usually placed to the website by advertising networks with the website operator’s permission. These cookies remember that you have visited a website and this information is shared with other organisations such as advertisers. Often targeting or advertising cookies will be linked to site functionality provided by the other organisation.

You can remove cookies stored in your computer via your browser settings. Alternatively, you can control some 3rd party cookies by using a privacy enhancement platform such as optout.aboutads.info or youronlinechoices.com. For more information about cookies, visit allaboutcookies.org.

We use Google Analytics to measure traffic on our website. Google has their own Privacy Policy which you can review here. If you’d like to opt out of tracking by Google Analytics, visit the Google Analytics opt-out page.

Read more about cookies on our Cookie Policy

Contact Information

email: contact@widebitcoin.com

Changes to this Privacy Policy

We reserve the right to make change to this Privacy Policy.

You can configure your Internet browser, by changing its options, to stop accepting cookies completely or to prompt you before accepting a cookie from the website you visit. If you do not accept cookies, however, you may not be able to use all portions of the WideBitcoin Websites or all functionality of the Services.

Please note that disabling these technologies may interfere with the performance and features of the Services.

You may also disable cookies on the WideBitcoin Sites by modifying your settings here:

Visitor comments may be checked through an automated spam detection service.

Last Update: May 25, 2018