- Voltar ao menu
- Voltar ao menuPreços
- Voltar ao menuPesquisar
- Voltar ao menuConsenso
- Voltar ao menu
- Voltar ao menu
- Voltar ao menu
- Voltar ao menuWebinars e Eventos
Manipulação de Mempool permitiu roubo de US$ 8 milhões em garantias do MakerDAO na Quinta-feira Negra: Relatório
Uma nova pesquisa sugere que o evento “Cisne Negro” de março para o Ethereum pode ter sido um plano sofisticado para lucrar com uma liquidação global.
A lição:
- Uma empresa que mantém dados em mempools do Ethereum ao redor do mundo, a Blocknative, pode ter uma explicação para o ataque "zero-bid" ao MakerDAO na Quinta-feira Negra.
- Mempools são um depósito de transações esperando para serem mineradas em blocos. Sob estresse de mercado, eles tendem a ficar obstruídos.
- No dia do ataque, a Blocknative encontrou um fluxo interminável de transações inteligentes e inúteis em mempools, aparentemente projetadas para dificultar a passagem das transações.
- A queda nos preços de ETH desencadeou leilões de garantias no MakerDAO. Como os mempools estavam entupidos, os licitantes não conseguiam obter lances nesses leilões em muitos casos, permitindo que os invasores WIN garantias de ETH com lances no valor de $ 0.
- Os agressores levaram US$ 8,3 milhões.
Uma operação inteligente nos mempools do Ethereum permitiu que invasores roubassem US$ 8,3 milhões de usuários do MakerDAO na Quinta-feira Negra, de acordo com uma pesquisa publicada na quarta-feira.
Para recapitular: O preço deéter (ETH) despencou em 12 de março e a rede Ethereum ficou congestionada por uma enxurrada de tentativas de transações. À medida que os investidores fugiam para o fiat, o preço do ETH caiu o suficiente para desencadear liquidações da garantia mantida na plataforma de empréstimos MakerDAO. Essas liquidações programáticas permitiram que os invasores saíssem com US$ 8,3 milhões em ETH, de graça, vendendo a descoberto os tomadores e a própria MakerDAO.
O congestionamento, porém, foi fundamental e completamente intencional, de acordo comBloconativo, uma empresa focada em estudar ações em mempools de blockchain.
A nova pesquisa sugere que o evento “Cisne Negro” de março para Ethereum pode ter sido, na verdade, um plano sofisticado para lucrar com uma liquidação global alimentada por preocupações com a COVID-19.
"Todo o caso significou que [os invasores] conseguiram realizar mais de 1.000 leilões de lance zero... e coletar esse valor subjacente com quase nenhuma despesa direta", disse o CEO da Blocknative, Matt Cutler, ao CoinDesk em uma entrevista.
Manipulação do Mempool
No centro do trabalho da Blocknative estão os mempools: o armazenamento temporário em cada nó Ethereum onde as transações aguardam para serem mineradas e finalizadas.
Em meados de março, os mempools ficaram congestionados com transações inúteis de propósito, disse a Blocknative, como parte de um plano para WIN leilões de lance zero para ETH na MakerDAO sob exatamente essas condições.
Na verdade, a Maker Foundation escreveu o mesmo emsua autópsiapublicado em abril:
"Congestionamento de rede e altos preços de GAS causaram atrasos nas transações e, em muitos casos, falhas. Esses problemas, combinados com a queda sem precedentes no valor dos ativos, pegaram os proprietários do Maker Vault, Keepers e pools de liquidez desprevenidos."
(A Maker Foundation encaminhou a CoinDesk para a postagem do blog acima e se recusou a fazer mais comentários sobre esta história.)
Obviamente, muitos usuários do Ethereum vão se perguntar se a queda no preço do ETH em si foi de alguma forma fabricada, mas essa questão está fora do escopo da investigação da Blocknative. Os invasores podem ter sido preparados para tirar vantagem oportunisticamente de uma queda dramática no preço do ETH; se a queda de preço em si foi fabricada permanece desconhecido.
Dito isso, a Blocknative encontrou o que parece ser um teste de execução da mecânica do ataque em 8 de março, um fato que a empresa de pesquisa T descreve em seu relatório.
"É uma coincidência interessante que o teste e o ataque tenham ocorrido com apenas quatro dias de diferença", disse Cutler ao CoinDesk. "[Mas] T temos nenhuma evidência de que isso seja algo diferente de oportunista."
De qualquer forma, os atacantes tiraram vantagem de alguns insights muito sutis sobre Ethereum e MakerDAO. "Eles basicamente exploraram algumas técnicas que nunca tinham sido vistas antes", disse Cutler.
Mais sobre essas técnicas depois. Primeiro, precisamos cobrir alguns conceitos básicos sobre MakerDAO e Ethereum.
Noções básicas do MakerDAO
MakerDAO é conhecido como o criador deDAI (DAI), a stablecoin descentralizada atualmenteamado pelos agricultores. DAI é criado com dívida. Usuários colocam ETH ou outros criptoativos como garantia na plataforma Maker para então retirar uma parte do valor desses ativos na forma de DAI novinho em folha.
Para obter de volta suas garantias, os usuários devem pagar o DAI que tomaram emprestado mais quaisquer juros que o empréstimo tenha acumulado (no jargão do MakerDAO, essa é a "taxa de estabilidade", mas é apenas uma taxa de juros variável). O MakerDAO aplica o preço do DAI liquidando a garantia se seu valor cair abaixo do limite mínimo para manter a garantia adequada. Para ETH, isso é 150%, mas a maioria dos usuários coloca muito mais ETH do que o mínimo.
Então, se o ETH estivesse em US$ 200 e o usuário postasse 1 ETH para pegar emprestado 100 DAI, ele T seria liquidado a menos que o ETH caísse abaixo de US$ 150.
Mas na Quinta-feira Negra, o preço do ETH caiuquase $100, a partir de US$ 193, o que desencadeou muitas liquidações.
A propósito, liquidações podem ser feitas por qualquer pessoa, com bots chamados "Keepers". A própria MakerDAO administra um Keeper, mas algumas outras entidades desconhecidas também o fazem.
Os detentores WIN liquidações por meio de um leilão (descrito passo a passo em linguagem simples)por CoinList), então diferentes Keepers tentaram fechar o empréstimo e, na Quinta-feira Negra, esses leilões duraram apenas 10 minutos, ou algumas dezenas de blocos de Ethereum .
A ideia é que esses leilõesdeve(e normalmente têm) resultou em usuários recebendo de volta suas garantias menos o quanto eles deviam, mais a taxa de estabilidade e a taxa de liquidação (é a última parte que dói). Mas isso énão foi o que aconteceu desta vez.
Os mutuários não receberam nada e, de fato, a MakerDAO recebeu muito pouco DAI e todo o sistemaestava subcolateralizado.
Noções básicas sobre Ethereum
Ethereum é uma blockchain, o que significa que ela está sempre coletando transações e os mineradores estão competindo para compor blocos dessas transações, criptografá-las, quebrar a criptografia e então provar seu trabalho para o resto dos mineradores para WIN uma recompensa por bloco.
As transações não T realaté que estejam em um bloco minerado. E geralmente há mais transações lá fora esperando para entrar em um bloco do que há espaço para mais transações. Essas transações atrasadas esperam no que é chamado de "pool de memórias."
Mempools são uma daquelas coisas em que a maioria das pessoas T precisa pensar na maior parte do tempo, exceto quando se tornam realmente importantes quando as situações se tornam urgentes: como quando o preço do ETH está caindo vertiginosamente.
"Quando você mais precisa ter certeza de que as coisas estão acontecendo de forma ordenada", disse Cutler, "é quando as coisas são menos confiáveis".
Este é o ponto principal do Blocknative. A empresa mantém um detalhadoconta de mempools em todo o mundo, estudando o que chama de "valor em movimento". A Blocknative ajuda seus clientes a decidir se precisam ser mais agressivos em coisas como pagamentos de GAS quando as coisas estão ficando loucas. Dados do Mempool são "valor em movimento"; dados de blockchain finalizados são valor em repouso.
Crucialmente, os mineradores não podem processar uma nova transação se a transação anterior T tiver sido concluída. Cada transação no Ethereum de uma carteira recebe um número, e 515 T será concluída se 514 T tiver sido concluída (isso é rastreado pela transação "nonce", na linguagem do Ethereum). Essa realidade sequencial acaba sendo a chave para o ataque.
O que a Blocknative descobriu
A Blocknative vem mantendo dados do mempool para Ethereum desde o início de 2018 (também suas testnets e para a rede Bitcoin ). A empresa decidiu dar uma olhada nos dados do mempool para ver o que aconteceu por volta de 12 de março.
A Blocknative descobriu que uma proporção anormalmente alta do mempool estava obstruída por transações com preços de GAS muito baixos.
Normalmente, essa proporção T é muito alta porque os usuários realmente querem que suas transações sejam concluídas, então eles monitorarão os preços do GAS e os definirão em níveis que provavelmente serão captados por um minerador. Mas não foi isso que aconteceu em 12 de março. Havia muitas transações no pool que tinham preços baixos de GAS . Muitas.
Isso permitiu que os invasores enviassem "lances zero" nos leilões colaterais da MakerDAO com altos preços de GAS vinculados, sabendo muito bem que provavelmente WIN esses leilões contra bots Keeper bem-intencionados que T conseguiam fazer seus lances passarem.
Blocknative descreve algo chamado "Hammerbots". Esses seriam bots projetados para criar transações precisamente com o propósito de obstruir o mempool.
"Os bots martelaram o mempool com transações que nunca foram destinadas a serem finalizadas. Esses 'Hammerbots' consumiram recursos do mempool emitindo taxas extremamente altas de transações de substituição sem qualquer aumento correspondente em GAS", Blocknative escreveuem seu blog.
Essas transações também foram projetadas com muitas operações inúteis que poderiam ser facilmente alteradas e modificadas para variar o hash, mas pareciam não servir a nenhum propósito real.
"Essas transações em particular seriam particularmente boas em consumir recursos do mempool", disse Chris Meisl, cofundador da Blocknative, ao CoinDesk.
Problemas em cascata
Então esse é o primeiro problema: o congestionamento dificultou para os tomadores de empréstimo no MakerDAO adicionar mais garantias e dificultou para os Keepers aprovarem lances.
"Isso resultou em condições anômalas no mempool, o que acabaria favorecendo certas transações", relata a publicação do Blocknative.
Mas houve outra observação crucial que os invasores parecem ter feito sobre os Keepers: eles T pareciam estar verificando se as transações estavam sendo realizadas.
"Quando você faz transações em uma conta ou endereço no Ethereum, elas precisam ser ordenadas", disse Meisl.
Como escrevemos acima, se um nonce estiver faltando no registro de uma blockchain, os mineradores T podem pegar transações posteriores até que uma com o nonce anterior passe. Então, uma transação posterior ficará presa, mesmo que tenha um preço de GAS muito alto anexado, até que a ONE passe.
Isso teve um resultado bizarro. Do post do blog Blocknative:
"Quando visto em conjunto, embora o volume de transações que entram no mempool tenha aumentado drasticamente, o preço do GAS de uma parte significativa do mempool caiu para um valor artificialmente baixo."
Resumindo: Os atacantes sabiam que os Keepers não conseguiriam fazer seus primeiros lances passarem e isso resultaria em lances subsequentes "probabilisticamente" (nas palavras de Cutler) travando. E isso funcionou com bastante frequência.
O código de código aberto que a MakerDAO publicou para os bots do Keeper T tinha medidas para verificar transações travadas.
Isso criou uma lacuna potencial que permitiu ao invasor enviar um lance com um preço de GAS forte, mas um lance de 0 DAI para a garantia, dando início ao curto período de leilão de 10 minutos.
"Embora os sistemas de negociação automatizados sejam frequentemente projetados para aumentar programaticamente o preço do GAS das transações, muitos desses sistemas de negociação não lidam bem com lacunas de nonce — se é que o fazem", alerta a publicação do Blocknative.
Em 1.462 casos, os Keepers não perceberam que seus lances estavam ficando presos nos mempools; os invasores venceram o lance, roubando milhões de dólares em ETH e quase forçando um desligamento de emergência no MakerDAO.
O MakerDAO estendeu o tempo do leilãoaté seis horas. A Blocknative abriu seu conjunto de dados de atividade do mempool para que os membros da comunidade possam estudar mais profundamente.
A postagem do blog observa:
"O mempool é um elemento crítico – ainda que efêmero e frequentemente negligenciado – do ecossistema blockchain. Como tal, os mempools apresentam muitas 'desconhecidas incógnitas' para construtores e usuários."
Neste caso, no entanto, os invasores estudaram o código Keeper do Maker e perceberam que era possível saber o que os Keepers reais T.