Explicado · Defi
O que é um flash loan, o empréstimo devolvido antes do fim da transação
Sem colateral e sem capital próprio: o flash loan empresta da liquidez de um pool e exige a devolução do valor mais a taxa dentro da mesma transação. Se faltar o pagamento, tudo reverte. Na Aave v3 a taxa foi inicializada em 0,05%.
Um flash loan é um mecanismo pelo qual um protocolo empresta um ativo da liquidez de um pool sem que o tomador forneça colateral antes, com uma condição única: o valor tomado mais a taxa precisa voltar antes do fim da mesma transação. A documentação oficial da Aave descreve esses empréstimos como operações de um bloco. Se a devolução não estiver disponível no fechamento, por falta de saldo, de aprovação ou de colateral suficiente, a transação inteira é revertida e nada acontece. A própria documentação avisa que não existe análogo no mundo real para um empréstimo assim, porque depende de entender como o estado é confirmado dentro de um bloco.
A Aave v3 oferece duas vias. A flashLoan() dá acesso à liquidez de várias reservas em uma única transação, e o tomador pode, se quiser, abrir ao final uma posição de dívida com taxa variável, garantida pelo colateral que ele mesmo forneceu ou por delegação de crédito. A flashLoanSimple() trabalha com uma única reserva, não permite abrir dívida no fim e é descrita como a via mais econômica em gás. A taxa não é isenta para quem usa flashLoanSimple(), enquanto a flashLoan() dispensa a taxa dos tomadores aprovados, papel controlado pelo ACLManager. O dinheiro só alcança reservas com empréstimo habilitado.
O caminho da operação é sempre o mesmo. O contrato de quem recebe chama o Pool e pede o empréstimo; o Pool faz as verificações e transfere os valores para o contrato receptor; o Pool chama nele a função executeOperation(), e ali o código faz o que quiser com o recurso; ao final, o Pool puxa sozinho o valor mais a taxa, desde que o devedor tenha aprovado esse saque. Não há devolução manual: a cobrança é automática. Quando a flashLoan() recebe mode igual a 1 ou 2 para algum dos ativos, o endereço informado em onBehalfOf assume a dívida, desde que tenha aprovado antes o chamador a assumir dívidas em seu nome. Isso permite devolver parte na hora e deixar outra parte como dívida.
A própria Aave usa flash loans por dentro no recurso de troca de liquidez. Entre os usos citados na documentação estão a arbitragem entre ativos sem precisar do valor principal e a liquidação de posições devedoras sem pagar a dívida, usando o colateral descontado para quitar o valor mais a taxa. É um recurso voltado a quem opera contratos: a documentação pede conhecimento de EVM, programação e contratos inteligentes para usar.
A taxa é um dado de governança. A documentação informa que ela foi inicializada em 0,05% no lançamento e pode ser alterada por voto da governança, com o valor corrente lido no contrato em FLASHLOAN_PREMIUM_TOTAL. Desse total, a parte que fica com os provedores de liquidez é o que resta depois da cota do protocolo, FLASHLOAN_PREMIUM_TO_PROTOCOL, posta em zero na inicialização. No arranque, portanto, a taxa inteira ia para quem deposita na pool. Há ainda um alerta explícito: manter fundos parados no contrato receptor expõe o dinheiro a um ataque de griefing, no qual um atacante usa os valores depositados.
O que o mecanismo resolve e o que ele não resolve ficam claros nas regras. Ele resolve negócio sem capital próprio e sem colateral, no tempo de um único bloco. O que não existe ali é prazo de carência, amortização ou garantia: se o pagamento não entrar, a operação não existe. Todo o resto da segurança do flash loan está na regra de que a transação reverte por inteiro.