EVM, or Ethereum Virtual Machine, is a global distributed virtual machine that acts as an environment for executing smart contracts and creating DApps based on them, that define the processing and exchange of data in the Ethereum blockchain.
This is a fairly accurate definition of Ethereum Virtual Machine. Still, it may include some terms with which people who have experience with blockchain networks and veteran cryptocurrency transactions like Bitcoin are not very familiar.
If you don't even have a basic understanding of blockchain technology and its first implementation in Bitcoin, we highly recommend reading our article about Web 3.0. There we talk in detail about the past and present of the Internet, how the new technologies have changed it, and how blockchain technology is going to overturn the whole Internet soon.
Well, let's take everything apart to understand the role of each element and then put it together to get a complete understanding of all that. What is wrong with good old bitcoin or, as it is now called, blockchain 1.0? How is Ethereum superior to it, and why is Ethereum called blockchain 2.0? What is Ethereum virtual machine, and what is it for? What is evm crypto, and are there any examples of actual successful evm crypto projects? And why is Ethereum much more important for all industries than it might seem at first glance?
We talk about this not because of hype but because we have an extensive development experience in EVM compatible smart contracts for any purpose. And we have already had a chance to practice all the incredible possibilities it gives.
So we hope this article will help to understand the full power of Ethereum and Etherium Virtual Machine for the future of business, education, banks, and information technology in general. Let's not waste time and get to the heart of this amazing technology. But first, we must understand the context in which this technological marvel arose and give credit to its author.
If the history of bitcoin's creation is still a mystery, the history of Ethereum is much more transparent. Who created Ethereum? Who created Ethereum Virtual Machine? Why was it created?
The Ethereum network concept was proposed by Vitalik Buterin, a programmer and author from Canada. It involved expanding bitcoin's capabilities through the use of smart contracts.
It is important to note that smart contracts themselves as an idea were proposed earlier by computer scientist and cryptographer Nick Szabo back in 1996. However, at that time, it was a little ahead of its time and did not have good tools for practical implementation.
So Vitalik Buterin decided to combine blockchain technology and the idea of smart contracts, which gave birth to a new blockchain called Ethereum, Ether or ETH token, and EVM smart contract environment.
Throughout 2014, the company's founding was well underway, attracting a large roster of talent, who are now also listed as founders.
And from 2014 to 2016, there was a DAO, which greatly changed how to raise investments. A reward of 25,000 ether was offered to users for load testing the Ethereum blockchain to test and demonstrate the system's capabilities. More than $150 million of investment was raised, providing a solid foundation for further development. And the rest of the story unfolded before our eyes.
Let's start with what a virtual machine is and what they are. A virtual machine is a program that simulates the operation of a computer by isolating its real components and operating system. Thus, one physical computer can run several virtual computers, or more precisely, virtual machines.
Virtual machines can differ in their capabilities because they were developed for different tasks. For example, virtual machines such as Virtual Box fully simulate the computer hardware and allow you to run any operating system on it. Or there are virtual machines that simulate the processor operation and some memory things, such as Java Virtual Machine. And then some solutions look a lot like virtual machines but aren't, such as containers. Now we will not go into the specifics of each technology because each of them has its own set of approaches worthy of a separate article.
For example, we have a great article about using Docker. This technology has excited the whole market and rightly deserves a lot of attention. We have gained a lot of experience with Docker, and we are sharing it with you.
However, virtual machines have common features and criteria for their evaluation, regardless of what tasks they are designed to handle. Now we will tell you a little more about it.
As mentioned earlier, virtual machines run in isolation from other computer components, using only their computing resources. This is different from writing and executing native programs that directly work with all the computer components.
The developer writes native program source code, compiled into machine code executable by a processor with a specific architecture. In the case of virtual machines, source code is translated into bytecode, and then bytecode is compiled into machine code. The same bytecode is understandable for most processor architectures, unlike machine code, which is apprehensible only for the compiled processor architecture.
It is worth noting that there are different approaches to translating bytecode and compiling bytecode into machine code, but it is still the solution that uses bytecode.
The answer to why byte code is needed and why it is so important arises by itself. Thanks to bytecode, you can create an isolated universal environment for executing any program without worrying about its compatibility with the processor's architecture and other computer components. It is only necessary that were sufficient computing resources for the virtual machine and the programs running in it.
Of course, each approach has its disadvantages. Even such a great solution as a virtual machine requires some sacrifices. While its advantages completely offset them, the ever-increasing computing power and constant work on resource optimization often reduce the disadvantages to zero. The important thing is to choose a virtual machine that is strictly tuned to the tasks it will perform.
- Allows to isolate the execution of programs from other programs
- Allows to isolate the runing of the guest operating system inside the virtual machine from the host operating system
- Allows providing cross-platform solutions and not being tied to specific component architectures
- Requires additional computing resources
- Mass infection of all virtual machines is possible if the host system is weak.
- Finding the source of the errors is complicated by the multitude of local networks that the virtual machine is equipped with.
The result of the first implementation of blockchain technology was Bitcoin. Though not immediately, it deservedly gained its position and continues to hold it in many ways among hundreds of newer blockchain implementations. Such an innovation was the use of smart contracts.
Smart contracts are an algorithm of specific actions required to trigger a sequence of changes in the state of blocks in the blockchain network. In essence, these are transaction terms that each party must meet, only that it is written using mathematical algorithms and programming languages.
DApps or decentralized apps are a user interface that conveniently allows you to interact with smart contracts in the Ethereum blockchain.
They are essentially the same as the installed apps on your smartphone or the web apps you open in your browser. Only they do not exchange data with a central server but exchange data via a blockchain network and use smart contracts to process data and implement various functionalities.
Decentralized applications can provide the same functionality as conventional applications and at the same time take full advantage of decentralization, such as transparency, open access, constant uptime, and resistance to censorship.
However, it needs to notice that while the Ethereum blockchain itself and the Ethereum Virtual Machine are a fairly mature technology, decentralized applications are a more complex and high-level superstructure over them, which has not yet gained mass popularity. This means that this technology is not yet perfect, and although it is in all respects better than standard applications, the lack of its mass use imposes its limitations. Let's talk about it in a little more detail.
First, let's talk about the good stuff and discuss what specific benefits decentralized applications have.
If one communication node fails, the others can take over its work. Thus, it is very challenging to take down a decentralized application completely.
This allows decentralized applications to be resistant to such types of threats as:
Of course, in countries where human rights are respected, the lack of censorship is not so acute, and on the contrary, it can be perceived as a security threat. But there are still many countries or areas where censorship is a huge problem, and there are almost no reliable solutions. Decentralized applications can save threatened people's lives because of their nationality, sexuality, or religious and political views.
Corruption and fraud can destroy entire governments and ruin people's lives. However, if all transactions are transparent and even the source codes of all services and applications are available to anyone, then the risks of such things are significantly reduced. Moreover, smart contracts and decentralized applications can completely eradicate such phenomena if they are implemented everywhere.
More and more of our data is leaked or sold and does not really belong to us but to the companies on whose servers it is stored. Of course, it is possible to do useful things based on their analysis, but the opposite often happens. Data is sold from company to company, and our privacy remains a myth. Decentralized applications can significantly change this situation, distributing all data among all network participants and making it difficult to steal to the point where it becomes impractical.
As mentioned earlier, the shortcomings of DApps are not at the heart of the technology but rather are an inevitable consequence of its lack of widespread adoption. With the proper spread and its improvement over time, these shortcomings are likely to cease to be relevant.
Because basic smart contracts cannot be modified once deployed, developers need to plan and match future applications with decentralized applications in depth from the outset. The immutability of smart contracts can complicate the creation and design of decentralized applications.
Also, on the user side, any transaction they make is irreversible. Therefore, it is not possible to call support and return the entire EVM to its previous state at the user's request.
All transactions on the network require a network support fee. Of course, if you support the network with your node, then a minimal fee on simple transactions will not be a problem. But still, you need to consider this aspect because it can be a disadvantage for some.
There are many different virtual machines for different tasks. So what is a VM in Crypto, and how does it work? Once Ethereum allowed for the creation of smart contracts, the next step was to create an environment where all these smart contracts live and interact with each other. The result was the Ethereum Virtual Machine, whose state is translated into byte code and loaded into Ethereum, just like the smart contracts written and loaded into it.
A computer's calculations can be expressed as smart contracts using the Solidity programming language. When one user downloads a smart contract through his Ethereum node, it is included in the last block and distributed across the network, where it is stored on every other node in the network. Part of the block processing protocol for each node in EVM is to run the same code. Nodes process blocks and run any code enclosed in transactions.
Clearly, EVM is one of the most robust and intelligent networks today. There is a cost for each transaction that EVM executes, allowing the system not to get hung up on smart contracts that would require a lot of computing power.
Each time an instruction is executed, an internal counter keeps track of the commissions charged to the user. Each time the user initiates a transaction, his wallet sets aside a small number of funds (at the user's option) to pay those commissions.
Once the transaction is broadcasted to the network from a particular node - the network spreads the transaction everywhere so that all nodes can include it in the last block. There is a separate unit of measure for this commission.
Gas is the unit of work used to measure how computationally expensive a transaction in Ethereum will be, determined mainly by the smart contract terms. The cost of gas is paid in small amounts of Ethereum.
It is important to note that gas is a unit of work, not a sub-currency, so you cannot purchase and store it. Estimating how much effort needs to be put into each transaction step computationally is only needed. You just need to add Ethereum to your account.
The cost of gas ensures that the computation time on the network is appropriately priced. This works differently in Bitcoin, where the fee is based on transaction size in kilobytes. Because Solidity code can be complex, a short instruction can generate a lot of computational work, whereas a long instruction can generate less work. This is why EVM commissions are based on the amount of work performed, not the transaction size.
The question may arise why not price gas in Ethereum? Because Ethereum is publicly traded on cryptocurrency exchanges, it is subject to speculative periods of inflation and deflation. Using a unit of gas for computational work is appropriate because it separates the price of computation from the highly volatile price of the ether token.
The most effective regulator is economical. Ethereum uses economic incentives and disincentives to make attacks on the network impractical.
To understand the need for such regulation, we need to recognize that running an Ethereum node poses some risk:
- The cost of the hardware
- Time and energy costs of the node operator
- There is the cost of downloading and validating the proof-of-work and block header on the network side Blocks that consume excessive amounts of gas pose a great danger to Ethereum. They can take a long time to spread across the network due to their huge size. Therefore, it makes sense to charge a transaction fee to prevent attackers from consuming network performance.
In achieving this goal, the gas performs two functions:
- First, it guarantees a prepaid reward for the miners who execute the code and protect the network, even if the execution fails.
- Second, it ensures that code execution cannot go on longer than the time prepaid for it.
Thus, if an attacker sends a computationally complex smart contract to an EVM, the only person who will feel it will be himself. The computation will waste his ether and stop when it runs out. It won't have any effect on anyone else's transactions. You can't make it difficult for EVMs to work without paying a lot to do so in transaction fees.
Scaling is also done with a commission system in the form of gas. Miners are free to choose the transactions for which the highest commissions are paid and can collectively choose the gas limits on the block. The gas limit determines how many calculations can be performed (and how much memory can be allocated) in a single block.
It keeps the price of computation in EVMs flexible and easily responsive to the needs of system users, as well as to the costs of miners who do the important work of transaction processing, equipment maintenance and energy bills.
EVM is not a specific closed-source software but a set of specifications for creating Ethereum blockchain tools then, EVM can be written in different languages. The only requirement is that all EVM implementations must conform to the specification described in the Ethereum Whitepaper.
There are several implementations of EVMs in different programming languages. There is no final list because somewhere right now, some unknown enthusiast is trying to make his implementation of EVM that maybe will change the market or complete a list of noteworthy EVM implementations.
At least at the moment, you can see the most popular EVM implementations here:
- go-EVM - written entirely in Golang
- SputnikVM - written entirely in Rust
- Py-EVM - written entirely in Python
- evmone - mostly in C++, with some CMake.
- eEVM - almost entirely in C++ and quite a bit in CMake.
- Hyperledger Burrow - mostly Go, but also TypeScript, Solidity, and others.
- hevm - written in Haskel
Why are there so many implementations of EVM? Each programming language has advantages that carry over to an EVM implementation written in it. Also, some large companies want to implement an EVM using their long-standing expertise and huge resources, such as eEVM with support from Microsoft. And of course, every language has its community that wants to implement this technology in its favorite language.
As stated earlier, smart contracts and decentralized applications based on them are created and executed in the global decentralized EVM. Therefore, they all take advantage of its features and the capabilities it provides.
These many features that smart contracts inherit can take many industries to the next level. And with the ability to easily interact with them, well-done decentralized applications can become a multi-billion dollar business. Let's take a closer look at how smart contracts can change entire industries and how decentralized apps are already giving users access to this great technology.
Smart contracts can be used in various industries, and smart contracts are incredibly beneficial for any business. Often, this is what solves the long-standing problems of industry, taking the quality of its work to a whole new level.
Healthcare is one of those areas where the cost of error is too high. Smart contracts help store and synchronize important information about the course of treatment while keeping it confidential. It also helps keep track of the turnover of prescription drugs.
Moreover, if we look into the farther future, which is coming much faster than it may seem, smart contracts can play a huge role in regulating the delivery of drugs to the body. For example, when the insulin patch for people with diabetes will automatically deliver insulin to the bloodstream based only on the body's indications. And this is just one of the countless examples.
Smart contracts allow algorithms to be written into the network code so that payment history, security and fraud detection systems, automatic lending, etc., are greatly facilitated. It also provides optimized control over the movement of assets with the ability to constantly monitor and identify the status of the property, which is left as collateral for mortgages.
Obviously, fair elections may sound like a cruel joke or an unattainable dream to many. But this is where the transparency and reliability of blockchain, combined with the functionality of smart contracts, enable the voting platform of the future. Some local solutions can be like a voting platform for urban planning initiatives or important globality platforms like voting for presidential elections.
Smart contracts in the media sphere are now a tipping point. At first, artists suffered from a lack of transparency in distributing revenues by labels. Later, with the move away from cassettes and discs, artists became victims of mass piracy.
But smart contracts make the commercialization of art again an extremely transparent and lucrative business, providing tremendous opportunities even for local indie artists. And platforms that use smart contracts and publish their works there can eventually completely eradicate piracy from the entertainment industry and increase its capitalization.
This can already be seen in the gaming industry, where smart contracts make every game artifact unique and secure, helping the gaming industry again bombing the capitalization ceiling. Or look at the digital art industry, which has become profitable for the first time in its history and whose capitalization is astounding.
The IoT is growing extremely fast, gaining momentum every day. To function properly, it needs a unified system to bring together electronic devices and personal gadgets. Blockchain technology based on smart contracts could be the ideal solution for these processes.
After all, the correct operation of these systems is built on the flawless interaction of many conditions, which is the mission of smart contracts. This is especially important when it is not a separate smart house but the power supply system or the transport regulation of the whole city that is built on it.
Whether it's a car, a house, or anything else, renting property is very similar to some smart contract algorithms.
- Selecting an object to receive a lease
- Depositing a guarantee of the arrangements
- Payment for the lease with the possibility of renewal Problems often arise due to the lack of a tool that guarantees the terms. Yes, this is one more case where the idea of using smart contracts comes up and as if asking to be allowed to solve the problems of this industry, too. Smart contracts will significantly ensure the fulfillment of the terms, reduce associated costs and save time.
Supply is an area where you need to consider many factors that influence each other and ultimately affect the cost and relevance of supplies. Putting all of this data into a blockchain will make it much easier to process the data, eliminating possible errors and confusion, as well as the application of non-compliance measures.
The best part is that although a monopoly in this market is possible as in any other market, it is not of such a rigid nature. If you try to release your smartphone or computer to compete in the existing market, it would require unthinkable means and effort and would most likely fail.
However, the smart contract industry does not require a huge investment and is waiting for quality and in-demand solutions. In addition, even when the market becomes monopolized, there will always be local requests to create smart contracts that address local needs, such as local supply chains of small businesses.
The clearing is an extremely complex and important system, involving various representatives and requiring multiple conditions to be met simultaneously. And this system is not getting any easier as the world becomes more and more complex and requires more and more interactions. There is an obvious inevitability in implementing smart contracts, and whoever does it first and best will reap the greatest benefits.
Gambling has haunted humankind almost since its inception. No matter how much the world did not change, gambling only flourished, actively adopting new technologies. Obviously, this industry is not trusted by a certain percentage of people. But by introducing smart contacts that guarantee transparency and binding terms, the attitude to this industry could change dramatically and attract a huge number of people.
The ICO is one of the best examples of the use of smart contracts because these projects carry out the launch of the initial coin offering for a new cryptocurrency.
The algorithms for smart contracts are prescribed as early as the development stage of the application and include the following:
- Fixing all investors. The system algorithm independently identifies users who have invested their assets in the project and enters them into the general registry.
- Accruals. Users receive the required number of tokens automatically, thanks to the operation of a smart contract.
- Legitimacy control. Algorithms autonomously control the response of users to the transaction.
Gathering investment and entering the market is always a challenge because the competition is extremely high, and investors are very worried about their funds. Smart contracts help create a great additional incentive, gaining tremendous popularity.
Let's see what evm crypto projects have revitalized or changed some industries and created successful business niches.
A greatly transformed business niche that has greatly expanded with Ethereum and DApps is the prediction market. Prediction markets are decentralized exchanges where the objects of trade are not stocks and bonds but the results of various events. It can be like a decentralized sports betting exchange, which used to bring its owners a fortune, and with the arrival of DApps, several fortunes at once. Examples of popular DEXs are Uniswap, Curve, Balancer, SushiSwap, DODO, Bancor, and Kyber.
They can also be very different events that users themselves can create for each other and make predictions about who will see how many dogs during a car trip to another city. The smart contract terms are almost unlimited, and decentralized apps can provide this functionality to users without a technical background.
Decentralized lending and borrowing apps are the second most widely used DeFi app. Apps in this category allow users to lend or borrow crypto assets against cryptocurrency collateral without any restrictions, such as background credit checks. Some of the most popular decentralized apps of this type are Compound and Aave.
One of the most popular applications of DApps is the field of auctions and digital art in general, as, without this technology, it is extremely defenseless. That's why decentralized auctions were created, where each artwork is unique, and the site itself is much less exposed to threats and can control the bids much more accurately and guarantee the correct payment.
Decentralized Autonomous Organizations, or DAOs, are exactly what their name describes. Rather than relying on people and typical hierarchical management structures to operate, DAOs use smart contracts to execute decisions autonomously.
Very quickly, smart contracts found their way into the gaming industry, where before, it was challenging to defend the value of the products, except for imposing all sorts of subscriptions, etc., on the users. Many users weren't entirely honest either, and to this day, many still pirate their products.
Smart contracts made user identification much more reliable and many game artifacts unique, which gave them added value. More recently, there has been a lot of buzz about buying virtual reality land for huge sums of money. Although in essence, this virtual land, although unique, is still software code.
Examples abound, as gaming has always been one of the main drivers of IT instead of more conservative systems, so there are a lot of great examples. We will mention just a couple of the most popular them. Alien Worlds grew from 10,000 users to five million in a year and made with a market capitalization of over $99 million. Or Sorare, a fantasy soccer game, runs on Ethereum, an underlying blockchain network to secure ownership and inside distribution.
We have touched on the basics of this EVM and Ethereum technology, which are necessary to understand how it can be used. Many features of this technology deserve a separate article. And its implementations multiply every day and do not stop changing the technology market and transforming entire industries.
We are actively participating in this process, developing many EVM compatible smart contracts, and we can't stop wondering how many amazing opportunities this gives us. We would love to hear your ideas on how you would like to change the world or turn the market upside down with another Ethereum implementation. And our knowledge and experience will help implement it at the highest level. Just contact our Delivery Managers and get a high-quality consultation.
Previously published at maddevs.io/blog.