Com uma única transação, um robô trader conseguiu lucrar 800 ETH na terça-feira (27). Mas a alegria do seu operador durou pouco: logo em seguida, um hacker foi capaz de invadir sua carteira e roubar 1.100 ETH, equivalente a R$ 7,7 milhões na atual cotação do ether.
O caso foi narrado no Twitter por Bert Miller, pesquisador que estuda o comportamento de MEV na rede Ethereum. A sigla em inglês para “valor máximo extraível” representa a técnica usada por traders que, por meio de robôs, vasculham transações de usuários comuns à espera de validação na blockchain para encontrar uma oportunidade de arbitragem.
Uma vez encontrada a transação ideal, esses robôs criam a mesma ordem e usam velocidade e dinheiro para fazer com que suas transações entrem primeiro na blockchain, deixando o trader original no prejuízo.
Foi exatamente isso que aconteceu na terça-feira (27). Segundo Miller, o robô tirou proveito de um usuário que tentava vender na exchange descentralizada (DEX) Uniswap o equivalente a US$ 1,8 milhão em cUSDC, o token que representa USDC depositado no Compound.
Com a ação, o investidor original que queria vender seu balanço de cUSDC teve prejuízo, recebendo de volta apenas US$ 500 por causa da ação rápida do robô.
Mas a história não acaba por aí: nas horas seguintes, todos esses lucros foram desviados por um hacker.
LEIA TAMBÉM:
Robô Investidor Vale a Pena? Descubra Qual É a Verdade Antes de Comprar!
Roubando o robô
Pouco tempo depois de lucrar à custa de outro investidor, a carteira do robô que armazenava as criptomoedas foi invadida. Ao todo, foram 1.101 ETH roubados no ataque. A invasão foi possível por erros no código do contrato que o robô usava para operar na dex dYdX. Bert Miller deu mais detalhes sobre o ataque:
“Parece que o 0xbaDc0dE [inicial do endereço do robô] não protegeu adequadamente a função que usava para executar flash loans [empréstimos relâmpagos] no dYdX. Quando você recebe um flash loan, o protocolo do qual você está emprestando chamará uma função padronizada em seu contrato. Neste caso, dYdX chamado “callFunction” em 0xbaDc0dE, mas o código infelizmente permitiu a execução arbitrária.”
Fonte: Portal do Bitcoin