A Ethereum Virtual Machine é uma das peças-chave na operação da blockchain Ethereum. Sua função é permitir a execução de programas ou contratos inteligentes, a fim de implantar uma série de funcionalidades adicionais no referido blockchain, para que os usuários possam usufruir deles.

La Máquina Virtual Ethereum o EVMÉ um máquina virtual que faz parte do ecossistema blockchain de Ethereum. É capaz de executar uma ampla gama de instruções que permitem grande flexibilidade na execução de diferentes operações.

No entanto, para facilitar a programação desta máquina virtual, uma linguagem especializada de alto nível chamada Solidity. Através desta linguagem de programação, a criação do smart contracts. A solidez é primeiro transformada em códigos de operação (OP_CODES) e depois para um bytecode. Esse bytecode é finalmente executado pelo EVM para executar as operações especificadas em um contrato inteligente. Tudo isso significa que o EVM pode funcionar como um computador real, executando desde as operações mais simples até as mais complexas.

Em poucas palavras, dado o recurso descentralizado da Ethereum e sua capacidade de armazenar contratos inteligentes em nós da rede e que, com a EVM, as ordens programadas nos referidos contratos inteligentes possam ser executadas, o Ethereum se torna um grande computador mundial descentralizado. Um que é capaz de executar instruções que levam à resolução de qualquer tarefa específica. De fato, ele pode resolver quase qualquer problema computacional e tudo isso ocorre na mesma rede Ethereum.

Todas essas instruções são escritas nos chamados contratos inteligentes Ethereum. Esses contratos são um tipo de conta que possui seu próprio código, e é habilitado a partir do momento em que chegam ao blockchain. O melhor de tudo é que para usar o potencial do EVM, só precisamos ter um pouco de éter e interagir com alguns DApp, contrato inteligente ou faça nosso próprio contrato. Não há limitação, qualquer pessoa pode tirar proveito do poder que a EVM tem à sua disposição.

Parece incrível, o EVM é um grande trabalho de desenvolvimento que exigiu enormes esforços de pessoas muito talentosas e que você encontrará abaixo.

Quem criou o EVM?

Os mentores por trás do desenvolvimento do EVM são Gavin woods y Greg Colvin. Gavin Woods foi quem criou o conhecido Ethereum Yellow Paper. Neste documento técnico, são especificadas as idéias e os recursos iniciais do EVM. Por outro lado, Greg Colvin é conhecido como o principal desenvolvedor do EVM.

Essas duas pessoas e a equipe que as acompanhou permitiram a criação do EVM. Uma tecnologia que transformou o Ethereum em um ecossistema único dentro das outras tecnologias que usam blockchain. Tudo porque o EVM é parte integrante do funcionamento interno da Ethereum e representa uma verdadeira inovação no desenvolvimento dessas tecnologias.

  • Gavin Woods criador do EVM
  • Greg Colvin Programador EVM

Como funciona a Máquina Virtual Ethereum (EVM)?

Para evitar que um programador possa tentar contra a segurança da rede, o EVM realiza uma abstração completa do sistema. Gerenciando o acesso aos recursos do computador e limitando suas ações em um ambiente controlado ou máquina virtual. Por sua vez, o EVM simplifica o desenvolvimento e a atualização de aplicativos e recursos disponíveis para aplicativos descentralizados.

O EVM permite o design e a execução de contratos inteligentes. Também graças a Solidity a criação desses contratos inteligentes é muito simples e gerenciável. Embora o EVM por si só não seja capaz de executar diretamente essa linguagem, ele o faz por meio de uma técnica conhecida como compilação de instruções.

Por sua parte, Solidity é uma linguagem de programação de alto nível muito semelhante a JavaScript e C ++. Esta linguagem é voltada para a criação de contratos inteligentes. Dessa forma, a maior parte do código-fonte dos contratos é escrito nessa linguagem e, em seguida, compilado em opcodes compreensíveis para o EVM.

O EVM usa esses opcodes (OP_CODES) para executar tarefas específicas. Essas limitações levam a EVM a criar métodos de trabalho que lhe permitam realizar suas operações, dentre as quais a mais importante é a memória de contrato. Essa memória é usada para armazenar informações que o EVM pode acessar rapidamente. Por outro lado, para armazenar dados indefinidamente e torná-los acessíveis para futuras execuções de contratos, você pode usar o contrato de armazenamento. Isso atua essencialmente como um banco de dados público, a partir do qual os valores podem ser lidos externamente sem a necessidade de enviar uma transação para o contrato, ou seja, sem comissões.

OP_CODES e Bytecode, os fundamentos da Ethereum Virtual Machine

OP_CODES são uma parte muito importante e essencial do EVM. Esses opcodes são o que define as operações válidas que o EVM pode executar. No EVM, há a capacidade de executar até 256 OP_CODES diferentes, embora atualmente não existam tantos códigos definidos. O motivo é que o desenvolvimento do EVM não exigiu a criação de tais códigos e os desenvolvedores têm o cuidado de incluir novos códigos devido a limitações em seus números.

Um exemplo simples do Solidity, um dos idiomas usados ​​para programar para EVM

Um aspecto importante do OP_CODES é que este é um nível intermediário de programação para o EVM. O primeiro nível viria de Solidity e linguagens de programação de alto nível semelhantes a este. Um segundo nível de profundidade seria o OP_CODES. Finalmente, teríamos o bytecode resultado da compilação do OP_CODES na linguagem de máquina equivalente ao EVM, algo praticamente impossível de entender e escrever por um ser humano.

Porém, como o Ethereum é um blockchain público e é um projeto que defende a abertura e a transparência, a linguagem de bytecode do EVM pode ser descompilada. Ou seja, podemos transformar o bytecode em OP_CODES e de lá levá-lo para uma linguagem próxima ao Solidity. Isso é importante porque dá ao EVM a capacidade de manter o conteúdo de um contrato inteligente aberto e claro. Além de permitir que você reconheça a ABI que possui. Uma informação importante, pois se trata basicamente de como se pode codificar as chamadas de um contrato para o EVM e, inversamente, como ler os dados das transações que esse contrato gera.

Todos os OP_CODES do EVM

Evolução futura do EVM

A rede Ethereum foi nomeada como o computador global porque cada um dos nós conectados à rede executa uma instância do EVM. Ao mesmo tempo, todos executam as instruções de forma idêntica, a fim de alcançar e manter um consenso sobre o estado do sistema. Essa particularidade do Ethereum torna seu cálculo mais lento e mais caro comparado a um computador comum. Mas oferece maiores vantagens, como uma alta defesa para Falhas bizantinas, maior proteção e integridade dos dados e maior resistência à censura.

Assim, O Ethereum funciona como um computador utilitário global descentralizado em uma rede ponto a ponto. Os contratos inteligentes e DApps desenvolvido na EVM poderia até assumir as funções da Internet como as conhecemos. Além disso, poderia permitir-nos criar economias mais estáveis, uma vez que o seu funcionamento pode ser garantido e não está sujeito à interpretação humana.

A aplicação de elementos como distribuição de arquivos, execução inteligente de contratos, aplicativos descentralizados e muitos outros elimina a confiança em terceiros, porque se os termos agendados não forem cumpridos, o contrato simplesmente não será executado.

No entanto, podemos comparar seu nascimento e desenvolvimento com a Internet dos anos 90. Ninguém tem idéia do que isso trará no futuro. Mas, sem dúvida, o EVM evoluirá com o tempo e permitirá que a rede se torne muito mais robusta. Onde certamente veremos as ações da Ethereum subirem, bem como o valor de seu token.

Quanto você sabe, cryptonuta?

O EVM pode ser expandido em funcionalidades?

VERDADEIRO!

Um dos principais recursos do EVM é que ele pode ser expandido em funcionalidades, mas os desenvolvedores não têm o cuidado de incluir novos devido à baixa capacidade de adicionar OP_CODES ao sistema. Apesar disso, o EVM pode ser aprimorado para ser incluído em todos os tipos de dispositivos e é um trabalho em andamento na comunidade Ethereum para massificar ainda mais seu uso.

Característica EVM

A Ethereum Virtual Machine é um software que possui muitas características ou qualidades positivas ou negativas. Entre eles podemos citar:

  1. A EVM está focada em fornecer segurança e executar código não confiável em computadores em todo o mundo.
  2. Os aplicativos descentralizados e os contratos inteligentes desenvolvidos no EVM são completamente descentralizados e distribuídos. Portanto, não requer a participação de terceiros. Eles não podem ser modificados ou alterados.
  3. O EVM permite o desenvolvimento de um número maior de aplicativos e que eles podem ser executados na mesma rede blockchain, sem afetar outras operações.
  4. Os contratos inteligentes projetados no EVM são invariáveis ​​e podem ser executados e aplicados por si só, de forma autônoma e automática. Isso elimina a burocracia, altos custos e tempo de espera típico dos contratos tradicionais.
  5. O EVM é substancialmente menos eficiente do que muitas outras máquinas virtuais convencionais. Isso ocorre principalmente porque seu design foi baseado na utilidade do momento e não no alto desempenho.
  6. As mudanças e melhorias experimentadas pelo EVM foram poucas até agora. Portanto, não é otimizado em termos de velocidade para diferentes plataformas de hardware.
  7. O design do EVM não visa à portabilidade, o que limita os espaços nos quais a referida máquina virtual pode ser implementada.