MSTR Cat

Blockchain/Nível VI · Depois do bitcoin/6.3 Ethereum e contratos inteligentes/Lição 3

O hack do DAO e o Ethereum Classic

O erro de reentrada que dividiu uma cadeia e definiu o debate sobre imutabilidade

MateriaisInterface de explorador de blocos (por exemplo, Etherscan)Código-fonte do contrato inteligente da DAO (versão pré-fork)Um caderno para rastrear mudanças nas variáveis de estado

Curiosidade

  1. Por que uma linha de código que é executada antes das atualizações de estado permite que um invasor esvazie fundos repetidamente?
  2. O que acontece quando uma comunidade vota para reescrever a história em vez de preservá-la?
  3. Quem detém a autoridade final: o mecanismo de consenso ou os desenvolvedores que o mantêm?

Explorar

  1. A DAO foi lançada em abril de 2016 como um fundo de investimentos autônomo, arrecadando aproximadamente 12,7 milhões de ETH de mais de 11.000 investidores. Esse valor representava cerca de 14% de todo o ether em circulação na época. O projeto operava inteiramente por meio de contratos inteligentes, permitindo que os detentores de tokens votassem quais projetos financiar, sem gestão centralizada ou estruturas tradicionais de governança corporativa.
  2. Em 17 de junho de 2016, um atacante explorou uma vulnerabilidade de reentrância na função de divisão da DAO. Esse erro permitiu que o contrato fosse chamado novamente antes que seu saldo interno fosse atualizado. O atacante transferiu aproximadamente 3,6 milhões de ETH para uma “DAO filha”, onde um período de retenção de 28 dias congelou os fundos. Essa exploração demonstrou que máquinas Turing-completas introduzem riscos complexos de gerenciamento de estado, ausentes em sistemas mais simples como o Bitcoin.
  3. A comunidade Ethereum enfrentou um dilema imediato: respeitar a imutabilidade do livro-razão ou proteger os investidores de uma falha crítica no código. Os desenvolvedores argumentaram que o erro era um problema de implementação, e não um comportamento intencional, e que manter os fundos bloqueados minaria a confiança na utilidade da plataforma. Os críticos, por sua vez, afirmaram que alterar o histórico da cadeia violava o princípio fundamental do consenso descentralizado, criando um precedente perigoso para intervenções futuras na governança.
  4. Em 20 de julho de 2016, o Ethereum realizou um hard fork no bloco 1.920.000 para reverter o ataque e transferir os fundos para um contrato de reembolso. Os detentores de tokens DAO puderam então recuperar seu ether a partir desse contrato de reembolso. Uma minoria rejeitou essa intervenção, continuando a minerar a cadeia original e não modificada. Esse grupo formou o Ethereum Classic (ETC), aderindo estritamente ao princípio de que “código é lei” e de que nenhuma entidade deve ter o poder de reescrever a história.
  5. O fork criou duas realidades paralelas a partir de um único livro-razão. Enquanto o Ethereum continuou se desenvolvendo como uma importante plataforma de contratos inteligentes, o Ethereum Classic permaneceu como uma rede menor, servindo em grande parte como uma declaração filosófica sobre a descentralização. Esse incidente influenciou o desenvolvimento posterior de protocolos em todas as criptomoedas.
  6. Consulte o bloco 1.920.000 em um explorador de Ethereum e em um explorador de Ethereum Classic: as duas cadeias são idênticas até o bloco 1.919.999 e diferem a partir do bloco 1.920.000. O fork não movimentou o ether da DAO por meio de uma transação; o novo software cliente aplicou uma alteração irregular no estado naquele bloco, e é por isso que a reversão aparece no código e não em nenhuma lista de transações.

Fatos-chave

  • A DAO arrecadou aproximadamente 12,7 milhões de ETH, cerca de 14% de todo o éter em circulação no momento do lançamento.
  • Um erro de reentrada permitiu que um atacante desviasse cerca de 3,6 milhões de ETH para uma DAO filha em 17 de junho de 2016.
  • O Ethereum sofreu um hard fork em 20 de julho de 2016, no bloco 1.920.000, para reverter o ataque e devolver os fundos.
  • Uma minoria continuou a minerar a cadeia original, que se tornou Ethereum Classic (ETC), citando o princípio de que “o código é lei”.
  • O fork resultou em holders possuírem tanto ETH na nova cadeia quanto ETC na antiga.
  • O incidente provocou debates duradouros sobre imutabilidade, autoridade dos desenvolvedores e a definição de consenso.

Exercício nove, seis, três, um

9ReunirListe 9 casos em que uma atualização de software ou mudança de protocolo alterou dados de usuários existentes ou histórico de transações. Indique quem iniciou a mudança e qual justificativa foi apresentada.
6AgruparAgrupe os 9 em 6 categorias com base em se a alteração foi uma correção de erro, uma adição de recurso, um rollback de segurança, uma atualização de consenso, um hard fork ou um soft fork.
3DestilarReduza os 6 para 3 tipos de autoridade que acabaram decidindo essas mudanças.
1CristalizarEscreva 1 frase sobre o que 'código é lei' promete e o que ele sacrifica quando o código falha.

Verificação de fatos

Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.

Abrir na academia interativa →

EN ES ZH JA KO RU DE FR MS