Blockchain/Nível VI · Depois do bitcoin/6.3 Ethereum e contratos inteligentes/Lição 1
O whitepaper do Ethereum e o EVM
Uma máquina de estado que roda em cada nó, alimentada por gás
MateriaisUma cópia do white paper do Ethereum (2014)O Yellow Paper do Ethereum (Gavin Wood, 2014)Acesso a um explorador de blocos como o Etherscan
Curiosidade
- Por que um computador replicado em milhares de máquinas precisa cobrar por cada instrução?
- O que se quebra se o código rodando nessas máquinas puder entrar em um ciclo infinito sem consequências?
- Como dois modelos de conta diferentes — UTXOs e saldos no local — podem representar a mesma riqueza de maneiras distintas?
Explorar
- Vitalik Buterin, então com dezenove anos, redigiu o white paper do Ethereum no final de 2013, propondo uma plataforma de computação de uso geral em vez de uma moeda específica. O projeto, anunciado publicamente em janeiro de 2014, reuniu cofundadores como Gavin Wood, Joseph Lubin, Charles Hoskinson, Anthony Di Iorio e Mihai Alisie. Uma venda coletiva foi realizada de julho a agosto de 2014, arrecadando aproximadamente 31.500 BTC para o empreendimento. A rede foi lançada oficialmente em 30 de julho de 2015, marcando uma mudança em relação ao sistema limitado de scripts do bitcoin, rumo a um ambiente totalmente programável no qual os desenvolvedores podiam criar aplicativos complexos diretamente na cadeia.
- O núcleo dessa arquitetura é a Máquina Virtual Ethereum (EVM), uma máquina de estados completa de Turing replicada em todos os nós completos. Diferentemente do modelo UTXO do Bitcoin, que rastreia saídas individuais não gastas, o Ethereum utiliza um modelo de conta no qual os saldos são atualizados diretamente. Cada conta – seja controlada por uma chave privada ou por código – mantém um nonce e um saldo. Quando uma transação é executada, a EVM a processa de forma determinística; cada nó calcula o mesmo resultado por conta própria, garantindo consenso sem a necessidade de confiança entre os participantes.
- Contratos inteligentes são programas escritos em linguagens de alto nível como Solidity, que são compilados em códigos operacionais de baixo nível executados pela EVM. Esses contratos armazenam valor e lógica simultaneamente. Um contrato pode reter ether, executar transações condicionais ou gerenciar votos de governança com base em entradas de outras contas. Como a execução é determinística e muitos contratos publicam seu código-fonte, qualquer pessoa pode verificar sua lógica antes de interagir com ele. Essa transparência elimina a necessidade de intermediários confiáveis em muitas aplicações financeiras, já que as regras são aplicadas por software, e não pela discricionariedade humana.
- Para evitar loops infinitos e ataques de negação de serviço, toda operação EVM consome “gás”, uma unidade de computação paga em ether. O remetente especifica um limite de gás antecipadamente; se a execução esgotar esse recurso, as alterações no estado são revertidas, mas o gás consumido ainda é deduzido. Essa restrição econômica obriga os desenvolvedores a escreverem código eficiente e protege a rede de contratos maliciosos ou com erros que poderiam congelar a cadeia. Os preços do gás sobem e descem conforme a demanda; inicialmente, os usuários simplesmente faziam lances, mas, desde 2021, uma taxa básica definida por protocolo é ajustada automaticamente, com gorjetas adicionais (um tópico abordado posteriormente).
- As escolhas de design no EVM refletem um trade-off entre expressividade e segurança. A completude de Turing permite cálculos arbitrários, mas introduz complexidade que pode abrigar vulnerabilidades. O modelo de conta torna alguns programas mais simples do que os UTXOs, mas contratos que se chamam mutuamente precisam ser escritos com cuidado para evitar erros como reentrância, a falha por trás do hack da The DAO (uma lição posterior). Essa padronização permite um vasto ecossistema de ferramentas e auditores familiarizados com o conjunto específico de instruções.
- Abra um explorador de blocos como o Etherscan e inspecione qualquer transação recente que tenha implementado um contrato inteligente. Observe o status de “Criação do Contrato” e o gás utilizado em comparação com o limite de gás. Note como os dados de entrada da transação contêm o bytecode compilado, armazenado no novo endereço. Este passo concreto revela a realidade mecânica da implementação: o código é carregado, verificado por todos os nós e fixado na máquina de estados da cadeia, pronto para execução em futuras interações.
Fatos-chave
- Vitalik Buterin escreveu o white paper do Ethereum no final de 2013; o projeto foi anunciado em janeiro de 2014.
- A venda coletiva de julho-agosto de 2014 arrecadou aproximadamente 31.500 BTC para o fundo de desenvolvimento do Ethereum.
- A mainnet do Ethereum foi lançada em 30 de julho de 2015, introduzindo uma máquina virtual completa de Turing.
- Cada operação da EVM consome gás, pago em ether, para evitar laços infinitos e garantir o término.
- O Ethereum utiliza um modelo de conta com atualizações de saldo no local (in-place), diferente do sistema UTXO do Bitcoin.
- Contratos inteligentes são normalmente escritos em Solidity, que é compilado para bytecode EVM determinístico.
Exercício nove, seis, três, um
9ReunirListe 9 restrições técnicas ou decisões de design no white paper do Ethereum que diferem do protocolo do Bitcoin.
6AgruparAgrupe esses 9 itens em 6 categorias com base em seu impacto: gerenciamento de estado, segurança, custo de execução, suporte a linguagens, consenso e governança.
3DestilarReduza os 6 clusters para 3 razões principais pelas quais a completude de Turing requer um mecanismo de gás.
1CristalizarEscreva 1 frase explicando como a natureza determinística da EVM garante um consenso global sobre as transições de estado.
Verificação de fatos
Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.