Para os menos familiarizados com o mundo das moedascriptográficas, os smart contracts são um conjunto de operações que são executadas automaticamente quando algum “input” é enviado para o contrato.
Por exemplo:
Os smart contracts são uma das razões porque o Ethereum é tão popular. Eles são o que alimenta a maior parte das ICOs atuais, mas também executam outros serviços tipos de serviços baseados no Ethereum.
Smart Contracts são apenas código
Smart contracts são de facto um pedaço de código, e como em tantos outros pedaços de código, existem vulnerabilidades. O número dessas vulnerabilidades é diretamente proporcional à quantidade de LOF (Linhas de Código) e à sua complexidade.
Uma dessas vulnerabilidades foi descoberta no verão de 2016, que levou ao roubo de 50 milhões de ethers da organização TheDAO.
Essa vulnerabilidade despertou uma maior “caça à vulnerabilidade” no Ethereum.
Em 2016, foi criada uma ferramenta chamada Oyente com o objetivo de detetar erros em contratos inteligentes. Esta ferramenta detetou inicialmente 8.833 contratos vulneráveis num varrimento de 19.366.
Novo incidente desencadeia nova ferramenta para varrimento de vulnerabilidades
Mais uma vez, no final do outono de 2017, foi explorada uma nova vulnerabilidade no Ethereum.
Este incidente aconteceu em novembro passado, quando um utilizador do GitHub chamado Devops199 acidentalmente – ou intencionalmente (não sabemos) – bloqueou mais de US $ 285 milhões de Ether dentro das carteiras Parity usando um bug que ele descobriu.
Este incidente levou a criação de uma nova ferramenta chamada Maian.
Depois do incidente, uma equipa de cinco pessoas usou a Maian para analisar uma enorme quantidade de contratos inteligentes — foram970.898, com os seguintes resultados, apresentados na tabela abaixo:
Os resultados mostram que 3,5% dos contratos estão afetados por uma grande vulnerabilidade que pode ajudar os criminosos a roubar fundos ou simplesmente congelar o Ether dos utilizadores.