Ethereum: A Raiz do Golpe de US$ 1,5 Bilhão da Bybit Rcentemente, a exchange Bybit sofreu um ataque que resultou na perda de mais de 1,5 bilhão de dólares de uma carteira supostamente "fria". Esse incidente destaca um problema maior: a complexidade da blockchain Ethereum, que pode tornar até as instituições mais cuidadosas vulneráveis a ataques imprevistos. A Armadilha da Complexidade da Ethereum A Ethereum foi criada como uma plataforma descentralizada para executar contratos inteligentes, que são códigos que executam automaticamente acordos quando certas condições são atendidas. Embora essa flexibilidade seja atraente, ela também traz um custo: a complexidade técnica. Recomendo assistir ao vídeo do Tiago Salém, que explica detalhadamente esse exploit e as implicações da complexidade da Ethereum. Você pode conferir o vídeo aqui. https://youtu.be/Nx7kzGf6snk?si=QcLqRhPjax3tNmKf Tiago Salém é um grande programador brasileiro e suas análises são sempre valiosas. Camadas Sobre Camadas de Abstração No caso da Bybit, a exchange usava o Gnosis Safe, uma solução de segurança popular. No entanto, essa escolha revela as complicações da Ethereum: **Padrão de Proxy**: O uso de contratos proxy, que podem apontar para outros contratos, cria múltiplas camadas onde erros podem ocorrer. **DelegateCall**: Um comando que permite que um contrato execute o código de outro contrato. Isso é poderoso, mas pode ser perigoso. **Slots de Armazenamento**: A forma como a Ethereum armazena dados pode causar vulnerabilidades inesperadas. **Assinaturas e Verificação**: O sistema complexo de assinaturas para transações adiciona outra camada de possíveis falhas. Essas camadas de complexidade tornam difícil prever todas as vulnerabilidades.
Como a Complexidade Permitida o Ataque A Bybit não cometeu um erro simples de segurança; ela foi afetada pela complexidade da Ethereum. Aqui está como isso aconteceu: A Brecha Oculta nos Fundamentos O atacante explorou uma característica da Ethereum: o endereço do contrato proxy é armazenado em um local específico na memória (slot 0). Isso não é uma falha óbvia, mas uma consequência da forma como a Ethereum foi projetada. // Código aparentemente inofensivo: function transfer(address _addr) external { // Modifica o slot 0 assembly { sstore(0, _addr) } } Quando esse código é executado, ele pode comprometer a segurança de um sistema valioso não por descuido, mas pela complexidade de como a Ethereum gerencia contratos. A Ilusão da Segurança Multi-Assinatura O Gnosis Safe utiliza múltiplas assinaturas para autorizar transações, um método que deveria ser seguro. No entanto, a complexidade da Ethereum pode tornar esse sistema vulnerável: O atacante conseguiu uma assinatura válida (possivelmente por meio de engano). Com uma única transação assinada, ele alterou a implementação do sistema. Assim, as garantias de segurança foram anuladas. Um sistema que parece seguro pode se tornar vulnerável devido às interações complexas na Ethereum. Lightning Network: Quando a Complexidade Ameaça Até Mesmo o Bitcoin Enquanto o Bitcoin foi criado com uma estrutura simples, a introdução da Lightning Network (LN) para escalabilidade traz riscos de complexidade semelhantes aos da Ethereum. A Complexidade na Lightning Network A Lightning Network adiciona várias camadas ao Bitcoin: **Canais de Pagamento Bidirecionais**: Exigem que os participantes estejam sempre online. **Contratos HTLC**: Criam dependências temporais complexas. **Roteamento Multi-Hop**: Depende de nós intermediários, que podem falhar. **Gestão de Liquidez**: Pode bloquear fundos em canais desbalanceados. **Watchtowers**: Estrutura necessária para monitorar fraudes. Novos Riscos na Lightning Network Essas complexidades já resultaram em vulnerabilidades: **Ataques de Congestionamento**: Atacantes podem sobrecarregar canais com transações falsas. **Ataques de Esgotamento de Canal**: Manipulação do roteamento para drenar liquidez. **Problemas de Revelação de Pré-imagem**: Falhas podem deixar fundos presos. **Ataques Wormhole**: Explorando falhas de roteamento. **Ataques de Pinning**: Usando limitações do Bitcoin para atrasar transações. BCH e SmartBCH: A Segurança da Simplicidade Em contraste com a complexidade da Ethereum e da Lightning Network, o Bitcoin Cash (BCH) oferece uma abordagem diferente para contratos inteligentes, priorizando segurança através da simplicidade.
A Abordagem Minimalista dos Contratos em BCH Os contratos do Bitcoin Cash são baseados em princípios simples: **Linguagem de Script Limitada**: Ao contrário da Ethereum, o BCH usa uma linguagem que evita comportamentos imprevisíveis. **Contratos Predefinidos**: Em vez de permitir qualquer código, o BCH utiliza "templates" de contratos testados. **Determinismo**: Os contratos do BCH têm resultados previsíveis. **Sem Estado Global Compartilhado**: Contratos do BCH são isolados, reduzindo vulnerabilidades. CashScript: Segurança Através de Restrições A linguagem CashScript foi projetada para evitar problemas da Ethereum: // Exemplo de contrato CashScript - simples e previsível contract EscrowWithTimeout( pubkey buyer, pubkey seller, pubkey arbiter, int timeout ) { // Resolução por concordância function spend(sig buyerSig, sig sellerSig) { require(checkSig(buyerSig, buyer)); require(checkSig(sellerSig, seller)); } // Resolução via árbitro function resolve(sig arbiterSig, sig secondSig, pubkey secondPubkey) { require(checkSig(arbiterSig, arbiter)); require(checkSig(secondSig, secondPubkey)); require( secondPubkey == buyer || secondPubkey == seller ); } // Resolução por tempo limite function timeout(sig buyerSig) { require(checkSig(buyerSig, buyer)); require(tx.time >= timeout); } } Esse contrato ilustra a filosofia de que a funcionalidade deve ser clara e previsível. SmartBCH: O Melhor dos Dois Mundos A sidechain SmartBCH complementa o BCH com compatibilidade com EVM, mas com salvaguardas: **Isolamento por Design**: Opera independentemente do BCH. **Modelo de Federação Simplificado**: Um conjunto claro de validadores. **Compatibilidade Seletiva**: Implementa partes da EVM com modificações para segurança. **Mitigações Específicas**: Aprendendo com os exploits da Ethereum. Por Que o Ataque da Bybit Seria Impossível no BCH O hack da Bybit explorou vulnerabilidades específicas da Ethereum. No BCH: Não existem contratos proxy que mudam a implementação em tempo real. A ausência do `delegateCall` previne esse tipo de vulnerabilidade. Os contratos BCH não podem modificar slots de armazenamento arbitrariamente. O modelo de segurança é baseado em contratos bem definidos e testados. Segurança Através de Simplicidade O BCH mostra que a verdadeira inovação em contratos inteligentes está em encontrar um equilíbrio entre funcionalidade e segurança: **Funcionalidade Suficiente**: Oferece o essencial para contratos financeiros. **Restrições Deliberadas**: Limita o que os contratos podem fazer. **Isolamento por Design**: Evita interações complexas. **Verificabilidade Formal**: Contratos mais simples podem ser verificados. Por Que a Ethereum É Vulnerável a Ataques A complexidade da Ethereum cria um ambiente favorável a ataques por várias razões: 1. Superfície de Ataque Ampla Cada nova funcionalidade na Ethereum aumenta as chances de ataque. Isso inclui: Proxies atualizáveis Contratos que interagem entre si Slots de armazenamento Mecanismos de governança 2. Consequências Irreversíveis Na Ethereum, uma transação maliciosa não pode ser revertida. Isso se torna um problema quando combinado com complexidade: Não há como "desfazer" uma transação. Não existe uma autoridade central para corrigir erros. 3. Ferramentas Não Intuitivas O desenvolvimento na Ethereum usa linguagens como Solidity, que não priorizam a segurança: Comportamentos não intuitivos. Falta de garantias de segurança. Lições Para o Ecossistema Cripto O ataque à Bybit, os riscos da Lightning Network e a abordagem do BCH oferecem lições importantes: **Simplicidade é Segurança**: Menos complexidade pode resultar em maior segurança. **Limites Necessários**: Permitir a execução de qualquer código pode ser arriscado. **Novas Abordagens**: Precisamos repensar como projetamos sistemas seguros. **Funcionalidade vs. Segurança**: Adicionar recursos não é sempre a melhor opção. Conclusão O ataque à Bybit nos leva a questionar a complexidade nas plataformas blockchain. Enquanto a Ethereum oferece flexibilidade, sua complexidade pode introduzir vulnerabilidades. O Bitcoin Cash, com sua abordagem simplificada, pode ser a solução que prioriza segurança. À medida que a indústria evolui, o futuro pode pertencer não às plataformas mais poderosas, mas àquelas que equilibram funcionalidade e segurança - um equilíbrio que o Bitcoin Cash parece estar mais próximo de alcançar. *Nota: Esta análise reflete um ponto de vista sobre os riscos da complexidade em sistemas blockchain. É importante considerar diferentes perspectivas ao avaliar a segurança dessas tecnologias.*
No comments yet