Paradigma

🚜 O Método Público que Foi Usado Pra "Hackear" U$24M de #DeFi

Empréstimos-relâmpago, o ataque à Harvest.Finance, e uma tática publicada há mais de um ano atrás.

Harvest.finance é um serviço de yield farming que tem como símbolo o emoji de um trator.

A proposição de valor é idêntica à da Yearn.Finance. A arquitetura também — o código é forkado. Usuários depositam uma variedade de moedas em diferentes "vaults", e estas alocam o capital a certas "estratégias" on chain.

A Harvest detinha mais de U$1 bilhão em depósitos quando, na madrugada de hoje, foi alvo de um exploit que custou U$24M (para os provedores de liquidez da pool de cripto-dólares no protocolo).

Para entender o "ataque" recomendamos que você primeiro se familiarize com o funcionamento das Vaults. E depois que revise o que são Flash Loans.

🗡️ O Ataque

O endereço que executou o ataque, e as interações de que participou. Fonte: Bloxy

O adversário tomou um empréstimo-relâmpago de U$50 milhões (em USDT e USDC) da Uniswap v2, e então:

1. Trocou $11.4M USDC por USDT (elevando o preço do USDT) na Curve;

2. Depositou $50.6m USDT na fVault (Vault de cripto-dólares da Harvest);

3. Trocou $11.4M USDT por USDC (derrubando o preço do USDT) na Curve;

4. Resgatou $51.1M USDT da fVault (embolsando U$0.5m de lucro, deduzidos os custos transacionais).

(A razão pela qual mais USDT são retirados da Vault do que depositados é porque os USDT valem menos do que valiam no momento do depósito, portanto as "shares" da Vault dão direito a uma quantia maior de USDT — a distorção é momentânea e ínfima, mas, como se vê, mais do que suficiente.)

Um ciclo destes durou um bloco (~14 segundos), e rendeu ~U$500k em lucros. O adversário repetiu os mesmos passos 32 vezes, ao longo de 7 minutos. Parou porque quis. Drenou U$24M, mas podia ter passado dos 100 milhões tranquilamente.

Todos os cripto-dólares provenientes foram passados pelo Tornado.Cash e trocados por renBTC, antes de serem convertidos em "BTC de verdade". U$2.5M foram retornados para o endereço "deployer" da Harvest.Finance — um gesto que já ocorreu em outros hacks e é visto como uma tentativa de distração.

Quebra dos gastos do "hacker" da Harvest, por destino. Fonte: Jiecut42

O ataque poderia ter empregado qualquer outra moeda ERC20 que tanto pode ser emprestada em uma Flash Loan quanto compõe uma pool suficientemente líquida na Curve — DAI, USDT, USDC, TUSD, renBTC, wBTC.

O(a) autor(a) certamente tem experiência prática com Flash Loans. As especulações recaíram sobre alguns operadores de robôs on-chain com aptidões propícias, o próprio time de desenvolvedores, e o hacker da Eminence (que deu as caras há algumas semanas atrás). 

Vale ressaltar que o método utilizado é público há mais de ano, e foi muito bem descrito pelo pesquisador samczsun em "Taking Undercollateralized Loans for Fun and for Profit" (2019).

Fevereiro de 2019: quando começou-se a discutir a vulnerabilidade em se usar feeds de preços da Uniswap (para calcular shares das Vaults, no caso da Harvest).

🌲 E a "Floresta Negra"?

Dark Forest é o apelido dado à mempool da Ethereum em um cenário de hipervigilância por parte de robôs arbitradores e frontrunners. Nesse cenário, qualquer transação lucrativa será detectada e frontrunned por um minerador mais bem capitalizado que o autor da transação original.

O fato de que a exploração da Harvest durou quase dez minutos (num padrão com quase nenhuma disrupção) denuncia que nem todo tipo de movimento especulativo está no radar destes robôs.

⚡ Flash Loans & Flash Mints

Flash Loans ("empréstimos-relâmpago") são alvo de polêmica na comunidade da Ethereum desde sua incepção.

Alguns criticam o mecanismo por não ter muita utilidade além de derrubar barreiras de entrada para a arbitragem.

Outros reconhecem sua neutralidade, e o benefício que traz ao expôr vulnerabilidades críticas o mais cedo possível.

O fato é que existem, e devem ser levadas em conta em qualquer modelo de risco. 

A coisa vai ficar muito mais feia para protocolos mal construídos quanto os Flash Mints entrarem em cena.

Flash Loans são limitadas à quantidade de capital disponível para ser emprestado. Flash Minting é uma funcionalidade nova, já implementada na última versão do wETH, e que tem tudo para se tornar um standard entre tokens. 

Com Flash Mints, é possível imprimir trilhões de unidades de uma moeda durante um bloco, desde que se comprometa a destruí-las todas na mesma transação. 

Somente os oráculos fortes sobreviverão.

Este artigo veio da assinatura Paradigma Pro

Relatórios de pesquisa, carteiras recomendadas, indicadores on-chain, mais de 10 mini-cursos e live semanal com os analistas. R$ 1.438,80 por ano, equivalente a R$ 119,90 por mês.

Ver o plano