Difference between revisions of "Ethereum Virtual Machine (EVM)"

From CryptoWiki

m (1 revision imported)
(Removed redirect to Ethereum (ETH))
Tags: Visual edit Removed redirect
Line 1: Line 1:
#REDIRECT [[Ethereum (ETH)]][[Category:Jargon/Various]]
[[Category:Jargon/Various]]
__STATICREDIRECT__
The [[Virtual Machine (VM)|Virtual Machine]] popularized by the [[Ethereum (ETH)|Ethereum]] [[Blockchain]], but implemented in [[MANY|many]] other [[blockchains]] since then. Some of the most well known are [[Binance Smart Chain (BSC)|Binance Smart Chain]], [[Polygon (MATIC)|Polygon]], [[Fantom (FTM)|Fantom]] and most of [[Polkadot (DOT)|Polkadot's]] parachains like [[Moonbeam]].
*The following information comes from [https://media.consensys.net/answers-to-the-40-most-asked-questions-about-blockchain-2b69d1191801 this post] by [[Consensys]] (5-9-2019):
''At the [[foundation]] of [[Ethereum]] is the Ethereum [[Virtual Machine]] (EVM), which is the executable and [[trustless]] environment for [[smart contracts]]: computer protocols that facilitate, verify, and enforce the negotiation and performance of some sort of digital agreement. The EVM executes a [[contract]] with whatever rules the developer initially programmed, such as sending money from [[Alice]] to Bob. The EVM executes these programs through a bytecode language. Ethereum developers are able to use Ethereum programming languages such as [[Solidity]] and others to write smart [[contracts]] and build [[decentralized applications]]."''
 
== Basics ==
 
* [https://doseofdefi.substack.com/p/evm-compatibility-and-the-future?token=eyJ1c2VyX2lkIjoxMzk3OTAwLCJwb3N0X2lkIjo0OTMyMTgzNywiXyI6IllXeFVGIiwiaWF0IjoxNjQ1OTMwMjQ3LCJleHAiOjE2NDU5MzM4NDcsImlzcyI6InB1Yi0yNTk5NyIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.W2g8552aNOXy7uu3Wvt4-WhkRR-7xpCAZcp8C-EWqao&utm_source=url&s=r From] [[Dose Of DeFi|Dose of DeFi]] (25-2-2022):
 
''"When thinking in [[Decentralized Finance (DeFi)|DeFi]] years, [[Ethereum (ETH)|Ethereum]] has already reached legacy [[status]]. It survived its first [[wave]] of “Ethereum killers”, followed by a surge in popularity of low cost chains ([[Polygon (MATIC)|Polygon]], [[Binance|BSC]], [[Fantom (FTM)|Fantom]]) running the Ethereum Virtual Machine (EVM). And now, after launching with limited success, these same Ethereum killers are integrating the EVM and racing to enter the [[multichain]] world. Specifically, [[Polkadot (DOT)|Polkadot]] has added [[Moonbeam]], [[NEAR (NEAR)|Near]] – [[Aurora (EVM on NEAR)|Aurora]], and soon (announced but not yet launched), [[Evmos]] will be on [[Cosmos (ATOM)|Cosmos]] and Neon on [[Solana (SOL)|Solana]].''
 
''When these chains were first launched (without EVM compatibility), they claimed to have superior designs, with features such as popular programming-language support and speed. As these chains begin to support EVM, it now seems they’re less [[bullish]] about the advantages of their own technology, and instead realize the need to support Ethereum’s. By doing so, these chains are backtracking on their original vision to build an alternative tech [[stack]] to Ethereum’s. Here, we’ll take a look at the different architectures and how emerging standards around EVM across blockchains will create more composability. Plus, we see the resulting chain-specific ecosystems becoming a hot-bed for product experimentation.''
 
''Think of EVM as a computer that calculates the results of operational outputs of smart contracts, given certain inputs. A copy of EVM runs on each [[node]] – it’s imperative to remember that it’s not located in one single place. EVM is also referred to as “a runtime” or “an environment”.''
 
''EVM takes in programs written in [[Solidity]] language, and to make the language more powerful, a number of “libraries” were created. Developer tools such as [[Truffle]] or [[Hardhat]] make the writing and testing of smart contracts much easier. Also, because we’re talking about networked environments, outside [[Wallet|wallets]] connect to the EVM via [[API]] libraries such as [[Web3]].js.''
 
''And among those tools more familiar to the average user, there’s the powerful blockchain [[explorer]] [[Etherscan]]. It knows how to look into thousands of [[transactions]] and present them in a human-readable way. Plus, there’s the [[MetaMask]] [[wallet]], which connects users to EVM by broadcasting their commands over a network.''
*From [https://nulltx.com/what-is-the-ethereum-virtual-machine/ this post]:
''"This project focuses on preventing [[Denial-of-service attacks]], which have become somewhat common in the cryptocurrency world. Moreover, the EVM ensures programs do not have access to each other’s [[state]], ensuring communication can be established without any potential interference.''
 
''To put this into a language everyone can understand, the Ethereum Virtual Machine is designed to serve as a runtime environment for [[Smart Contract|smart contracts]] based on Ethereum. As most cryptocurrency enthusiasts are well aware of, smart contracts are very popular these days. This technology can be used to automatically conduct [[Transaction (Tx)|transactions]] or perform specific actions on the Ethereum [[blockchain]]. Many people predict smart contracts will help revolutionise finance and other industries over the coming years.''
 
''It is also worth mentioning the Ethereum Virtual Machine has been hinted at in the [[Yellow Paper]] drafted by [[Gavin Wood|Dr. Gavin Wood]] several years ago. It is evident the Ethereum project was built with the prospect of introducing such a sandboxed environment to hone the [[smart contract]] technology in the future. A clever piece of design and coding, and one that will certainly help elevate Ethereum and smart contracts to the next level over the coming years.''
 
''Since the Ethereum Virtual Machine is completely isolated from the rest of the main network, it is a perfect testing environment. Any company looking to create a smart contract can do so using the EVM, without it affecting the main blockchain operations. Testing this technology is of the utmost importance, as flawed code can spell demise for even the most exciting of smart contracts. Moreover, one could look at the EVM as a “learning environment” to build bigger, better, and more robust smart contracts as well.''
 
''It is also worth mentioning every Ethereum [[node]] in the network runs their own EVM implementation and is capable of executing the same instructions. It is evident there is a bright future ahead for this project, as it will continue to receive some updates over time. It is a gateway to building proper smart contracts, both for novice and experienced coders looking to get a hands-on approach with the [[Solidity]] language. Additionally, the EVM have been implemented in [[Python]], [[Ruby]], [[C++]], and a few other coding languages."''
*More information about the inner workings of the EVM can be found in [https://medium.com/mycrypto/the-ethereum-virtual-machine-how-does-it-work-9abac2b7c9e this article] by [[MyCrypto]].

Revision as of 03:44, 11 March 2022

The Virtual Machine popularized by the Ethereum Blockchain, but implemented in many other blockchains since then. Some of the most well known are Binance Smart Chain, Polygon, Fantom and most of Polkadot's parachains like Moonbeam.

At the foundation of Ethereum is the Ethereum Virtual Machine (EVM), which is the executable and trustless environment for smart contracts: computer protocols that facilitate, verify, and enforce the negotiation and performance of some sort of digital agreement. The EVM executes a contract with whatever rules the developer initially programmed, such as sending money from Alice to Bob. The EVM executes these programs through a bytecode language. Ethereum developers are able to use Ethereum programming languages such as Solidity and others to write smart contracts and build decentralized applications."

Basics

"When thinking in DeFi years, Ethereum has already reached legacy status. It survived its first wave of “Ethereum killers”, followed by a surge in popularity of low cost chains (Polygon, BSC, Fantom) running the Ethereum Virtual Machine (EVM). And now, after launching with limited success, these same Ethereum killers are integrating the EVM and racing to enter the multichain world. Specifically, Polkadot has added Moonbeam, NearAurora, and soon (announced but not yet launched), Evmos will be on Cosmos and Neon on Solana.

When these chains were first launched (without EVM compatibility), they claimed to have superior designs, with features such as popular programming-language support and speed. As these chains begin to support EVM, it now seems they’re less bullish about the advantages of their own technology, and instead realize the need to support Ethereum’s. By doing so, these chains are backtracking on their original vision to build an alternative tech stack to Ethereum’s. Here, we’ll take a look at the different architectures and how emerging standards around EVM across blockchains will create more composability. Plus, we see the resulting chain-specific ecosystems becoming a hot-bed for product experimentation.

Think of EVM as a computer that calculates the results of operational outputs of smart contracts, given certain inputs. A copy of EVM runs on each node – it’s imperative to remember that it’s not located in one single place. EVM is also referred to as “a runtime” or “an environment”.

EVM takes in programs written in Solidity language, and to make the language more powerful, a number of “libraries” were created. Developer tools such as Truffle or Hardhat make the writing and testing of smart contracts much easier. Also, because we’re talking about networked environments, outside wallets connect to the EVM via API libraries such as Web3.js.

And among those tools more familiar to the average user, there’s the powerful blockchain explorer Etherscan. It knows how to look into thousands of transactions and present them in a human-readable way. Plus, there’s the MetaMask wallet, which connects users to EVM by broadcasting their commands over a network.

"This project focuses on preventing Denial-of-service attacks, which have become somewhat common in the cryptocurrency world. Moreover, the EVM ensures programs do not have access to each other’s state, ensuring communication can be established without any potential interference.

To put this into a language everyone can understand, the Ethereum Virtual Machine is designed to serve as a runtime environment for smart contracts based on Ethereum. As most cryptocurrency enthusiasts are well aware of, smart contracts are very popular these days. This technology can be used to automatically conduct transactions or perform specific actions on the Ethereum blockchain. Many people predict smart contracts will help revolutionise finance and other industries over the coming years.

It is also worth mentioning the Ethereum Virtual Machine has been hinted at in the Yellow Paper drafted by Dr. Gavin Wood several years ago. It is evident the Ethereum project was built with the prospect of introducing such a sandboxed environment to hone the smart contract technology in the future. A clever piece of design and coding, and one that will certainly help elevate Ethereum and smart contracts to the next level over the coming years.

Since the Ethereum Virtual Machine is completely isolated from the rest of the main network, it is a perfect testing environment. Any company looking to create a smart contract can do so using the EVM, without it affecting the main blockchain operations. Testing this technology is of the utmost importance, as flawed code can spell demise for even the most exciting of smart contracts. Moreover, one could look at the EVM as a “learning environment” to build bigger, better, and more robust smart contracts as well.

It is also worth mentioning every Ethereum node in the network runs their own EVM implementation and is capable of executing the same instructions. It is evident there is a bright future ahead for this project, as it will continue to receive some updates over time. It is a gateway to building proper smart contracts, both for novice and experienced coders looking to get a hands-on approach with the Solidity language. Additionally, the EVM have been implemented in Python, Ruby, C++, and a few other coding languages."