WEB3DEV

Cover image for EVM Parte 1: O ABC da Máquina Virtual da Ethereum (Ethereum Virtual Machine)
Isabela Curado Nehme
Isabela Curado Nehme

Posted on

EVM Parte 1: O ABC da Máquina Virtual da Ethereum (Ethereum Virtual Machine)

21 de fevereiro de 2023

Observação:
Esta será uma série de várias partes com todos os detalhes extensos e imperativos sobre a Máquina Virtual da Ethereum, Opcodes, Bytecodes, etc.

As próximas partes desta série serão publicadas apenas no site oficial do Decipher with Zaryab (Decifre com o Zaryab).

Inscreva-se gratuitamente agora.
JUNTE-SE a zaryabs.com.

EVM Part I: The ABCs of Ethereum Virtual Machine

A beginner-friendly quick-start guide to the Ethereum Virtual Machine and its working mechanisms.

favicon zaryabs.com

EVM em 100 palavras

A Máquina Virtual da Ethereum pode ser entendida de forma simples como um ambiente isolado especificamente projetado para processar transações de contratos inteligentes bem como, e mais importante, determinar o estado geral da blockchain Ethereum com cada novo bloco que é minerado.

Imagine a EVM (Máquina Virtual da Ethereum) como um computador especializado em lidar com transações de contratos inteligentes, bem como definir as regras para mudanças de estado de bloco a bloco na blockchain Ethereum.

No entanto, ao contrário de computadores físicos, a EVM é uma máquina virtual que não está vinculada a um único sistema operacional ou localização, permitindo assim acessibilidade global para qualquer pessoa que queira executar um nó (node) da Ethereum.

Tudo certo, lá vai você! A EVM agora está explicada precisamente em 100 palavras. Vá em frente, conte! 😃

Vamos começar a decifrar a EVM

Agora é hora de mergulhar um pouco mais profundo em Máquinas Virtuais da Ethereum (EVMs).

Se você já tentou entender e ler sobre EVM antes, você deve ter encontrado diferentes maneiras pelas quais a EVM é definida. Por exemplo:

  • A EVM é uma Máquina Virtual…
  • A EVM é uma Máquina de Estado…
  • A EVM é uma máquina Quase-Turing (Quasi-Turing) completa…

Eu acredito que a melhor forma de entender a EVM efetivamente é decifrar cada uma dessas declarações sobre a EVM.

Então, vamos começar.

A EVM como uma Máquina Virtual

Para iniciar, vamos começar com a parte VM (virtual machine - máquina virtual) da EVM.

Vamos voltar um pouco e esquecer sobre a Ethereum e até mesmo sobre máquinas virtuais.

Vamos falar sobre máquinas físicas.

Máquinas físicas podem ser simplesmente entendidas como o hardware que roda no seu computador como x86, ARM, ou, talvez o seu favorito, o novo M1 da Apple. É importante observar que o nível mais baixo de instrução, para uma máquina física, é o Binário. Basicamente, apenas zeros e uns.

As máquinas físicas executam ações baseadas nas suas próprias interpretações dessas instruções binárias de opcode.

Agora, as máquinas virtuais são muito semelhantes às máquinas físicas, pois também possuem opcodes para executar tarefas específicas. Algumas máquinas virtuais que você deve conhecer são JVM, LLVM, etc.

No entanto, uma diferença crucial é o fato de que essas máquinas virtuais, embora sejam bastante semelhantes às máquinas físicas, não estão vinculadas a nenhum hardware físico.

Isso significa que as máquinas virtuais fornecem um ambiente de tempo de execução (runtime), mas são completamente independentes da plataforma. Elas permitem compatibilidade entre uma ampla variedade de sistemas, independentemente do hardware subjacente.

Tudo bem, agora que entendemos as VMs, não será difícil compreender a máquina virtual da Ethereum.

A EVM é uma máquina virtual, o que significa que pode ser executada em vários hardwares, independentemente da plataforma/sistema operacional subjacente. Isso é crucial, pois desempenha um papel importante na habilitação da descentralização, já que podemos executar a EVM em quantas plataformas quisermos.

Na verdade, a EVM é o que torna a Ethereum tão interessante e meio revolucionária, porque agora temos o poder de executar qualquer código arbitrário em uma blockchain.

Na Era pré-EVM, isso teria sido um pesadelo, tendo em vista que uma nova blockchain com lógica personalizada precisava ser criada toda vez que um novo aplicativo com caso de uso específico estava para ser construído.

Assim, a EVM é uma máquina virtual que nos fornece um ambiente de realização de tempo de execução (runtime) totalmente virtual para processar transações de contratos inteligentes e possui acessibilidade global onde qualquer pessoa com qualquer hardware pode facilmente executar esta máquina virtual.

A EVM como uma Máquina de Estado

Conforme discutido anteriormente, na introdução da EVM em 100 palavras, um dos objetivos essenciais da EVM é determinar o estado da blockchain Ethereum, daqui vem o termo máquina de estado.

Mas o que exatamente são as Máquinas de Estado?

A máquina de estado, em termos muito mais simples, é um dispositivo especializado em armazenamento de estado, bem como definição das regras de mudança de estado de um determinado sistema.

Ela pode alterar (transitar) seu estado de um para o outro, dependendo das entradas fornecidas a ela. Veja.

Agora, considerando o mundo da Ethereum, o estado se refere a uma extensa estrutura de dados que mantém todas as contas, ou seja, contas de propriedade externa (Externally-owned accounts - EOAs) ou contas de contrato (Contract Accounts - veremos mais sobre isso mais tarde), ligadas entre si por hashes.

Em outras palavras, todos os detalhes da blockchain Ethereum, ou seja a quantidade de tokens ERC20 que você possui, propostas de governança e suas contagens de votos, propriedades de NFT, etc. são estados tecnicamente diferentes na rede. Esses estados são redutíveis a um único hash raiz ou, como o chamamos, o Estado Mundial.

Esse Estado Mundial da Ethereum basicamente representa o estado atual de toda a blockchain, que compreende todos os estados históricos que juntos formam esse hash de estado atual.

Agora é importante notar que, mesmo a menor mudança em qualquer uma das contas (EOA ou Contract Accounts), leva a uma mudança/transição no estado mundial. Isso significa que cada transação minerada, seja ela uma mudança de um NFT de sua propriedade ou uma proposta de governança sendo executada, leva a uma mudança no estado geral da cadeira. Leia mais sobre o estado mundial da Ethereum neste artigo.

Em poucas palavras, toda transação executada com sucesso, independentemente de quão grande ou pequena, leva a uma mudança no estado da Ethereum.

# Figura 1a - Fonte: ethereum.org

E tudo isso é possível porque a EVM atua como uma máquina de estado.

Bem, por que isso é importante?

A EVM, sendo uma máquina de estado, desempenha um papel significativo em tornar a blockchain Ethereum tão eficaz.

Se dermos uma olhada rápida na blockchain Bitcoin, descobriremos que é um registro distribuído bastante rígido em suas transições de estado. As transações na blockchain Bitcoin levam as transições de estado global que principalmente rastreiam ou registram a propriedade da moeda nativa (BTC).

Enquanto, por outro lado, a Ethereum, sendo uma máquina de estado distribuída, oferece muito mais do que isso.

Em vez de simplesmente registrar os estados de propriedade da moeda, ela também tem o poder de fazer a transição para um novo estado em resposta a dados de entrada de um contrato inteligente arbitrário.

Isso é incrivelmente significativo porque essa flexibilidade nas transições de estado é o que nos permite criar moedas personalizadas (tokens ERC20), NFTs, protocolos DeFi complicados ou até mesmo uma DAO completa usando contratos inteligentes.

A EVM como uma Máquina Quase-Turing Completa

Tudo bem, então, de acordo com nossa abordagem usual, vamos esquecer a Ethereum ou a EVM e focar apenas na parte Quase-Turing Completa.

Na verdade, foque apenas na parte Turing Complete (Turing Completa).

Turing Complete (um sistema Turing Completo) refere-se ao tipo de máquina que possibilita a execução de um programa capaz de responder/resolver qualquer problema computacional, independemente do tempo ou memória necessários para tal.

Em outras palavras: 👇

# Sim, esse é o Alan Turing, quem cunhou a ideia de “Completude Turing” (Turing Completeness) 😃

Por exemplo, linguagens como C, C++ ou Java são sistemas Turing Completos.

Bom, agora vem a pergunta óbvia - A blockchain Ethereum pode ser considerada um sistema Turing Completo?

Bem, sim, claro. (Mas leia tudo, tem uma pegadinha.)

Ela é Turing Completa, pois pode executar qualquer programa semelhante a uma máquina Turing e pode ler tanto quanto registrar dados na memória. Na verdade, ser Turing-Completa desempenha um papel significativo em permitir que a Ethereum execute lógicas arbitrárias por meio de contratos inteligentes, que outras blockchains são incapazes de fazer.

No entanto, existe uma ressalva com a completude Turing da Ethereum que não pode ser esquecida. Aí vem a pegadinha.

Se você se lembrar da natureza dos sistemas de máquinas Turing, eles basicamente podem rodar para sempre e usar memória infinita.

No mundo da Ethereum, no entanto, não podemos realmente ter programas que rodam para sempre ou usam memória infinita.

Embora os computadores comuns podem simplesmente parar esses programas em execução infinita, não podemos fazer o mesmo com a Ethereum, pois é um computador global (e um registro distribuído) que deve estar acessível/online o tempo todo.

Agora, a fim de evitar o problema de parada na Ethereum, ela inclui um tipo específico de limitação nas etapas computacionais para qualquer execução de contrato inteligente. Ela impõe essa limitação usando o conceito de Gas.
Confira este artigo da Consensys para saber mais sobre os fundamentos de Gas na Ethereum.

Isso significa que a EVM rastreia todas as instruções que estão para ser executadas e cobra uma quantia específica de taxa de Gas (em ETH) para todo cálculo ou armazenamento usado na transação. Em outras palavras, se você ficar sem Gas (basicamente, dinheiro), não poderá mais executar a transação, resolvendo assim o problema de transações/cálculos que são executados infinitamente.

Em termos mais simples, a Ethereum é de fato um sistema Turing Completo. No entanto, ela impõe limitações ao usar Gas, o que realmente não permite que esse sistema inclua cálculos com execução eterna ou que usam armazenamento infinito.

Portanto, embora a EVM não pertença completamente à categoria de um sistema Turing Completo, nós a chamamos de um Sistema Quase-Turing Completo.

Compreendendo os componentes cruciais da EVM e Ethereum

A EVM pode ser considerada uma máquina com uma arquitetura simples baseada em pilha (stack-based).

Para entender efetivamente o mecanismo de trabalho da EVM, devemos entender alguns de seus componentes mais cruciais e suas responsabilidades.

No entanto, antes de mergulhar nos componentes da EVM, acho importante abordar alguns conceitos fundamentais da blockchain Ethereum.

Observação: esses conceitos fundamentais nos ajudarão a entender melhor os componentes da EVM. No entanto, sinta-se à vontade para ignorá-los caso você já esteja ciente deles.

Revisão rápida do básico

1. Contas na Ethereum

Uma conta na blockchain Ethereum pode ser definida simplesmente como um componente que representa tanto um usuário individual quanto contratos inteligentes na blockchain e permite que eles iniciem transações.

A Ethereum inclui 2 tipos diferentes de contas:

  • Contas de propriedade externa (Externally Owned Accounts) - também chamadas de EOA.
  • Contas de contrato (Contract Accounts).

Vamos entender rapidamente cada uma delas:

a. Contas de propriedade externa são controladas por sua chave privada. Em termos mais simples, uma EOA específica é controlada por um usuário que possui a chave privada dessa conta.

  • Essas contas são capazes de iniciar transações na blockchain. No entanto, as transações entre duas EOAs podem ser limitadas apenas a transferências de Ether ou token.
  • Como essas contas pertencem a chaves privadas, o proprietário da chave deve assinar a transação para iniciar qualquer atividade em sua conta.
  • Por exemplo, esta é uma conta de propriedade externa - AQUI.

b. Contas de contrato, por outro lado, não são controladas por uma chave privada, mas sua própria lógica de contrato inteligente.

  • Você já implantou em alguma cadeia EVM? O endereço que você obtém após a implantação do contrato é basicamente uma conta de contrato.
  • Essas são as contas que não apenas mantêm seu saldo de Ether ou token, mas também são capazes de armazenar códigos de contratos inteligentes dentro de si.
  • Embora as contas de contrato também sejam capazes de enviar transações, elas o fazem apenas em resposta ao recebimento de uma transação específica. Em outras palavras, elas não enviarão uma transação a menos que sua lógica permita.
  • Também deve ser observado que, ao contrário das contas de propriedade externa, a criação de um contrato tem um custo associado, pois estamos implantando dados na cadeia.
  • Isso, por exemplo, é uma conta de contrato.

2. O conceito de GAS

Lembra quando discutimos que a EVM é um sistema Quase-Turing Completo? Bem, o conceito de Gas desempenha um papel significativo em torná-la um.

O Gas, em termos leigos, pode ser entendido como uma unidade que descreve a quantidade de poder computacional necessário para executar transações específicas na blockchain.

Para uma transação ser executada e afetar o estado mundial da cadeia Ethereum, é preciso pagar uma certa quantia de Gas. Além disso, essa quantia de Gas depende do peso de uma transação. Quanto mais pesada a transação, mais Gas deve ser pago para executá-la.

Por exemplo, transferir 1 ETH para seu amigo pode custar menos Gas que executar uma função Swap (de troca) nos contratos inteligentes da Uniswap.

3. Transações na Ethereum

Tudo bem, discutimos brevemente como as EOAs são capazes de iniciar e enviar uma transação, mas… O que exatamente são transações no contexto da EVM?

Uma resposta de uma linha seria:

Uma transação na cadeia Ethereum é basicamente uma ação que pode ser acionada por qualquer conta de propriedade externa para realizar uma interação de mudança de estado na blockchain.

Isso significa que, se você usar sua conta Ethereum para transferir um NFT para seu amigo ou interagir com o contrato inteligente PushCore para criar um canal no Protocolo Push ou implantar um novo contrato inteligente, tudo é uma transação na blockchain, que contém mensagens de dados assinadas criptograficamente, definindo a tarefa a ser executada.

As transações na blockchain Ethereum podem ser amplamente categorizadas em 2 tipos específicos:

a.Transações de Chamada de Mensagem:

  • Chamadas de mensagem referem-se às transações que são acionadas por uma EOA para interagir com uma conta de contrato ou ainda outra EOA.
  • Você enviar USDT para o meu endereço ou interagir com a Uniswap são exemplos de transações chamadas de mensagem.

b. Transações de Criação de Contrato:

  • Como o nome sugere, são transações que visam a criação de uma nova conta de contrato na cadeia.
  • Por exemplo, implantar um novo contrato inteligente para seu próximo projeto na Web3 é um tipo de transação de criação de contrato.

A arquitetura de uma transação na Ethereum

Vamos entender rapidamente alguns dos campos cruciais que uma transação na Ethereum contém:

  • nonce: um contador que continua aumentando toda vez que você inicia uma transação de uma EOA específica.
  • recipient or to (destinatário ou para): o endereço do destinatário dessa transação (pode ser uma EOA ou uma conta de contrato).
  • value (valor): a quantidade de Ether a ser transferida do remetente para o endereço do destinatário. Pode ser deixado como zero caso nenhuma transferência de ETH deva acontecer na sua transação.
  • data (dados): um campo opcional para incluir qualquer dado arbitrário. Esse campo pode conter código em uma transação específica para uma conta de contrato.
  • gaslimit (limite de Gas): que se refere à quantidade de Gas que pode ser usado em uma transação específica.
  • maxPriorityFeePerGas, bem como maxFeePerGas;
  • e signature (assinatura).

Tudo bem, agora que entendemos os tópicos fundamentais da blockchain Ethereum, estamos todos prontos para mergulhar fundo para obter a essência de alguns componentes cruciais da EVM.

Arquitetura da EVM e seus componentes

# Fig. 1b - takenobu-hs github

Armazenamento

Para começar, o armazenamento (Storage) pode ser visto como o disco rígido do computador que armazena dados permanentemente.

Armazenamento pode ser entendido simplesmente como o armazenamento permanente da EVM. Qualquer valor registrado no armazenamento é retido, mesmo após a conclusão da execução.

Em termos mais simples, o armazenamento é basicamente um sistema de armazenamento de chave-valor que mapeia slots de 32 bytes para valores de 32 bytes.

É imperativo observar que, como o armazenamento mantém os dados permanentemente, ele consome mais Gas e, portanto, é mais caro para usar em seus contratos inteligentes.

💡 Considerando o fato de que as operações de armazenamento custam mais Gas, (= mais dinheiro), é sempre recomendável otimizar seus contratos para usar as operações de armazenamento apenas onde for necessário e remover, limpar, o restante.

Memória

Enquanto o armazenamento da EVM se assemelha a um disco rígido, a memória é mais como uma RAM no computador, um detentor temporário de dados.

A memória da EVM não é realmente persistente e é apagada assim que a execução da função é concluída.

Ao contrário do armazenamento, o uso de memória em contratos inteligentes é comparativamente uma operação barata que custa menos Gas. No entanto, deve se ter em mente que o custo do uso da memória pode aumentar à medida que o uso da memória aumenta em uma função.

Dados de chamada

Os dados de chamada (Calldata) são uma seção interessante da EVM e igualmente imperativa.

É uma localização de dados bastante especial da EVM, que se refere ao local que armazena os parâmetros de entrada ou argumentos da função que deve ser chamada.

Muito semelhantes à memória, os dados de chamada também são um detentor de dados não persistentes, que são limpos após a execução da transação.

Os dados de chamada são muito mais baratos e custa muito menos Gas.

Também deve ser observado que nunca podem ser registrado, pois são somente leitura.

Pilha (stack)

A pilha (stack) é o componente mais importante da EVM.

A EVM é tecnicamente uma máquina de pilha, pois desempenha um papel significativo em cada cálculo ou operação realizada na EVM. Com um tamanho máximo de um total de 1024 valores, a pilha da EVM pode conter palavras de 256 bits.

É usada principalmente para armazenar entradas de contratos inteligentes, assim como saídas.

Contador de programa

O contador de programa (program counter) em uma EVM indica a instrução específica do código, que deve ser lida e executada em seguida pela EVM.

Esse contador basicamente permite que a EVM percorra todo o código do contrato e interprete, bem como execute, as instruções específicas para alcançar o resultado/estado desejado.

No começo de qualquer execução de transação, o contador de programa é definido como ZERO.

Como funciona a EVM?

Tudo bem, agora que compreendemos os fundamentos primordiais da Máquina Virtual da Ethereum, bem como seus componentes, é hora de combinar tudo isso e pegar a essência de como funciona uma EVM.

Observação: esta é uma perspectiva de olho de águia de como a EVM funciona. Vamos mergulhar em muitos detalhes técnicos, aprofundados e divertidos sobre a EVM nos próximos artigos desta série.

Antes de mergulhar no mecanismo de trabalho da EVM…

Se você se lembrar da primeira linha da seção A EVM em 100 palavras do artigo, ela dizia - A máquina virtual da Ethereum é especificamente projetada para processar transações de contratos inteligentes.

Embora seja verdade, também deve ser mantido em mente que a EVM não pode realmente executar contratos inteligentes em Solidity diretamente. Isso porque a EVM não entende de fato uma linguagem de alto nível como a Solidity e, por isso, não pode interpretar ou executá-la diretamente.

Todo contrato inteligente em Solidity é compilado em instruções de máquina de baixo nível, chamadas opcodes, que são compreensíveis pela EVM.

Para executar qualquer tarefa, armazenamento de dados em variáveis de estado ou execução de uma troca (swap) de tokens, a EVM usa esses opcodes.

Existem cerca de um total de 140 opcodes únicos no momento e cada um deles tem uma funcionalidade específica atribuída a ele. Leremos sobre opcodes extensivamente no próximo artigo desta série.

Mecanismos de trabalho da EVM

Para começar, tudo começa com uma transação.

Aqui está como uma transação fictícia na Ethereum pode parecer. 👇

{
 from : "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8" ,
 to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a" ,
 gasLimit: "21000" ,
 maxFeePerGas: "300" ,
 maxPriorityFeePerGas: "10" ,
 nonce: "0" ,
 value: "10000000000" ,
 data: "0xabcd" ,
}
Enter fullscreen mode Exit fullscreen mode

Vamos considerar essa transação como aquela que a EVM está prestes a executar.

1. Instanciação da EVM

Sempre que uma transação aciona a execução do código de um contrato inteligente, uma máquina virtual da Ethereum é instanciada com todas as informações necessárias. Esses detalhes estão relacionados ao bloco atual que está sendo criado.

O endereço do campo ’para (to)’ é o endereço do contrato que está sendo visado. Além disso, a transação inclui todos os outros detalhes cruciais, como limite de Gas, valor do Ether, bem como os dados que devem ser executados no contrato de destino.

Assim que uma EVM é instanciada, ela basicamente se prepara para iniciar o processamento de uma nova transação de contrato inteligente.

Essa preparação, por exemplo, envolve:

  • O contador de programa da EVM ser definido como zero;
  • O armazenamento ser carregado da conta do contrato;
  • Variáveis de ambiente serem definidas, bem como a memória ser inicializada para zero, etc.

A EVM então puxa o contrato e seu código associado para o endereço fornecido na transação.

É aqui que o papel significativo do contador de programa (Program Counter) começa. O contador de programa agora auxilia a máquina a percorrer todo o código, o que permite que a EVM interprete e execute as instruções fornecidas uma a uma.

Uma vez que todas essas preparações estão concluídas, a EVM está tecnicamente pronta para começar a executar as instruções (opcodes) e resultar nas mudanças
de estado do contrato pretendidas.

2. Fornecimento de Gas e Ajustes

Embora a EVM agora esteja configurada para começar a processar esses opcodes, não podemos manter o conceito de Gas fora dessa equação.

Conforme discutido anteriormente na seção A EVM como uma máquina Quase-Turing Completa, para toda operação de contrato inteligente a ser executada, uma taxa de transação deve ser paga na forma de Gas.

Ao iniciar uma transação de contrato inteligente, o remetente da transação deve fornecer um determinado valor de taxas de Gas (na forma de Ether) que ele está disposto a pagar para que essa transação seja executada.

Curiosamente, à medida que as operações do contrato inteligente são executadas, o fornecimento de Gas oferecido com a transação diminui.

Em outras palavras, se o remetente não oferecer um fornecimento de Gas adequado necessário para que a transação seja concluída, o fornecimento eventualmente chega a zero e a EVM apresenta um erro de exceção falta de Gas (Out of Gas). Isso interrompe imediatamente o avanço da execução da transação.

Se tal evento acontecer, toda a transação é revertida e nenhuma alteração é incluída no estado da Ethereum.

O saldo de Ether do remetente, no entanto, diminui, pois ele teve que pagar pelo Gas que foi consumido até o momento pela transação.

O Gas também pode ser reembolsado

Algumas transações também podem incluir um limite de Gas maior, ou seja, a quantidade de Gas que o remetente está permitindo que seja consumido em sua transação.

No entanto, se o limite de Gas fornecido for muito maior do que o Gas necessário na transação, a EVM simplesmente reembolsa o Gas não utilizado de volta ao remetente.

# Fig. 1c - Fonte: Ethereum.org

3. Processamento de transações e Mudança de estado mundial

Tudo bem, vamos considerar que a transação mencionada acima não apresenta nenhum erro de falta de Gas, e nem possui nenhum erro de lógica que possa levar à sua rejeição.

Isso significa, tecnicamente, que essa transação pode ser processada com sucesso pela EVM, consumir a quantidade necessária de Gas e levar às mudanças esperadas não apenas no estado do contrato de destino, mas também em todo o estado mundial da cadeia.

Contratos chamando contratos

Um ponto interessante a ter em mente é que os contratos inteligentes podem iniciar transações ou chamadas para outros contratos inteligentes também.

Uma transação iniciada por uma EOA para algum Contrato X também pode levar a uma nova transação iniciada pelo Contrato X de destino para algum outro Contrato Y, se necessário.

Cada nova chamada para um novo contrato cria um ciclo semelhante de instanciação da EVM e execução de transação que, em última análise, leva às mudanças de estado desejadas.

Deve-se notar, no entanto, que toda nova transação de contrato inteligente dentro da transação original requer Gas para executar adequadamente a transação.

Portanto, uma nova instanciação da EVM depende muito da quantidade de Gas restante para a execução da nova transação. Caso o Gas repassado com a transação não seja suficiente para fazer novas chamadas para novos contratos, a transação deverá ser totalmente revertida.

O diagrama abaixo representa tais transações com bastante clareza.

# Fig. 1d - Fonte: ResearchGate

Empacotando-o

Isso nos leva ao final da primeira parte da série sobre EVM.

Lembre-se, o objetivo principal desta parte foi estabelecer uma base sólida dos fundamentos básicos e detalhes importantes sobre as máquinas virtuais da Ethereum. Assim, nos preparando para mergulhar muito mais fundo em seus detalhes técnicos na próxima série.

Agora, temos uma ideia muito clara de:

  • Noções básicas da EVM.
  • Por que a EVM é uma máquina de estado e o que exatamente são máquinas virtuais?
  • Por que a EVM é chamada de máquina Quase-Turing Completa em vez de máquina de Turing Completa?
  • Componentes principais da EVM.
  • Uma perspectiva panorâmica (olho de águia) do mecanismo de trabalho da EVM.

Na próxima parte, começaremos a explorar toda a jornada dos contratos inteligentes - desde o desenvolvimento até sua execução em cadeia (on-chain). Fique atento.

Leitura adicional

Inscreva-se para Decifrar com Zaryab

👇

Decipher with Zaryab

A collection of articles deciphering Web3, Smart Contracts & well evaluated mental models

favicon zaryabs.com

Esse artigo foi escrito por Zaryab Afser e traduzido por Isabela Curado Nehme. Seu original pode ser lido aqui.

Top comments (0)