O que é um flash loan e como funciona no âmbito da DeFi?

O que é um flash loan?
Um flash loan é um empréstimo on-chain temporário que tem de ser reembolsado dentro da mesma transação, incluindo um eventual prémio. On-chain significa que toda a operação ocorre diretamente na blockchain.
Num flash loan direto, um smart contract recebe temporariamente liquidez sem que o requerente tenha de imobilizar colateral antecipadamente para esse flash loan. A liquidez, neste contexto, é a quantidade disponível de criptomoedas ou tokens que um protocolo pode emprestar. Assim, o empréstimo não é um empréstimo comum que permanece aberto durante dias, semanas ou meses.
Os flash loans são sobretudo um bloco de construção programável no âmbito da DeFi. DeFi significa aplicações financeiras que funcionam numa blockchain através de smart contracts. Por isso, um utilizador normalmente não executa um flash loan manualmente como num empréstimo comum. Um smart contract previamente programado solicita o empréstimo e, depois, executa automaticamente todos os passos necessários.
Na Aave V3, um denominado receiver-contract recebe os tokens emprestados. Este é o smart contract que recebe o flash loan e executa as ações planeadas. Em seguida, o protocolo invoca um callback: um momento previamente definido em que o receiver-contract executa o seu próprio código. Esse código pode, por exemplo, trocar tokens, ajustar uma posição existente e, depois, reembolsar o empréstimo mais o prémio.
A condição é rigorosa: todos os passos têm de ser bem-sucedidos dentro de uma única transação. Por isso, um flash loan é sobretudo adequado para ações DeFi rápidas e compostas, e não para crédito pessoal ou financiamento de longo prazo.
Pontos principais
- Um flash loan é um empréstimo on-chain temporário que, normalmente, é liquidado numa única transação.
- Num flash loan direto, não é necessário imobilizar colateral antecipadamente para o empréstimo temporário.
- Os smart contracts executam automaticamente o empréstimo, as ações subsequentes e o reembolso.
- Se o reembolso do capital e do prémio não for possível, a transação é revertida.
- Os flash loans podem ser utilizados, entre outros, para arbitragem, trocas de colateral e ajustes de posições DeFi.
Como funciona um flash loan?
Um flash loan funciona porque um smart contract pede tokens emprestados temporariamente, executa ações previamente programadas e reembolsa o empréstimo mais o prémio antes do fim da mesma transação.
O processo decorre, normalmente, da seguinte forma:
- Iniciar o flash loan: Um smart contract chama a função de flash loan de um protocolo. O protocolo envia a criptomoeda escolhida para o receiver-contract.
- Executar a ação planeada: O receiver-contract utiliza a liquidez temporária para os passos programados. Podem ser, por exemplo, swaps, ou o reembolso e a reconfiguração de uma posição DeFi.
- Disponibilizar saldo suficiente: Após essas ações, o receiver-contract tem de ter tokens suficientes para o capital e para o prémio do flash loan. Esse prémio é uma fee por disponibilizar liquidez de forma temporária.
- Permitir o reembolso: O receiver-contract autoriza o pool a levantar o montante devido. Isto chama-se uma token approval: o contract permite que o protocolo debite um determinado número de tokens.
- Concluir a transação: O protocolo levanta o capital e o prémio. Só então é que toda a transação é processada de forma definitiva.
A Aave V3 tem uma função flashLoanSimple para uma única reserve. Uma reserve é o pool com liquidez disponível de um criptoativo específico. A função mais abrangente flashLoan pode suportar vários ativos ao mesmo tempo.
Nessa função mais abrangente, existe também, sob certas condições, outra via. Se essa via estiver configurada dessa forma e existir colateral suficiente, o montante emprestado pode ser aberto como uma posição de dívida regular em vez de ser reembolsado de imediato. Isto é diferente de um flash loan direto padrão. Através de flashLoanSimple, esta possibilidade não existe.
Porque é que um flash loan tem de ser reembolsado numa única transação?
Um flash loan direto tem de ser reembolsado numa única transação porque, dessa forma, todos os passos podem ser executados de modo atómico. Atómico significa que toda a sequência de ações é totalmente bem-sucedida ou é totalmente revertida.
Veja uma transação como um único pacote selado com várias instruções. Nesse pacote, um contract pode pedir tokens emprestados, trocar esses tokens, amortizar uma dívida e reembolsar o empréstimo. Só quando cada instrução tiver sido executada corretamente é que o pacote é processado na blockchain.
Isto protege o pool de liquidez contra um empréstimo em aberto e sem cobertura. No final da transação, o pool levanta o montante emprestado mais o prémio. Se isso não for possível, a transação é rejeitada.
A explicação de que um flash loan ocorre dentro de um block é, muitas vezes, útil na prática, mas é menos precisa. A regra de segurança importante é que toda a operação é liquidada de forma atómica dentro de uma única transação.
O que acontece se o reembolso não ocorrer?
Se um flash loan direto não puder ser totalmente reembolsado, a transação é revertida. Reverter significa que a blockchain desfaz as alterações dessa transação falhada.
O protocolo não fica, então, com um flash loan por liquidar. Os tokens temporariamente emprestados não permanecem como dívida em aberto no receiver-contract. Também as swaps, depósitos e outras alterações que faziam parte da mesma transação falhada são revertidas.
No entanto, o remetente pode perder gas. Gas é a remuneração pelo trabalho computacional necessário para executar uma transação numa blockchain. Uma parte desse trabalho computacional pode já ter sido executada antes de a transação reverter, pelo que as gas fees podem continuar a ser devidas.
Apenas na função mais abrangente flashLoan da Aave V3 é que uma via escolhida pode, sob certas condições, levar a uma posição de dívida regular. Para isso, tem de existir colateral suficiente e os controlos do protocolo têm de o permitir. Isto não se aplica a flashLoanSimple.
Para que são utilizados os flash loans?
Os flash loans são usados para combinar, numa única transação atómica, várias ações DeFi dependentes entre si. Isto pode ser útil quando um passo só é possível depois de outro passo ter sido executado imediatamente antes ou depois.
As aplicações comuns incluem:
- arbitragem entre mercados;
- a troca de colateral dentro de uma posição de empréstimo;
- o reembolso de uma dívida com colateral;
- o fecho ou a reestruturação de uma posição DeFi.
Uma flash swap segue um princípio semelhante. Nesse caso, alguém pode retirar tokens de um pool e apenas pagar ou devolver tokens no final da mesma transação. Uma flash swap e um flash loan não são tecnicamente a mesma coisa, mas ambos usam liquidez temporária dentro de uma execução atómica.
Como funcionam a arbitragem e as diferenças de liquidez com flash loans?
A arbitragem procura aproveitar uma diferença de preço para o mesmo ativo, ou para ativos economicamente comparáveis, entre diferentes mercados. Um flash loan pode fornecer capital de negociação temporário para este fim, para que o executor não tenha de possuir antecipadamente o montante total.
Uma estratégia simples de arbitragem pode ser assim:
- Um smart contract pede tokens emprestados temporariamente através de um flash loan.
- O contract vende ou faz swap desses tokens num mercado onde o preço é relativamente elevado.
- Compra de volta o mesmo ativo noutro mercado onde o preço é mais baixo.
- O contract reembolsa o flash loan e o prémio.
- Só um eventual excedente permanece como resultado.
Exemplo: Suponha que um token pode ser vendido, numa pool, a um preço executável mais alto do que o preço a que pode ser recomprado noutra pool. Um smart contract pode pedir tokens emprestados temporariamente, executar as duas swaps e amortizar o empréstimo. Se, após todos os custos, existir um excedente, então a transação foi rentável.
Uma diferença de preço visível não é automaticamente uma oportunidade de lucro. O retorno real tem de ser superior ao capital, ao prémio do flash loan, às taxas de swap, aos custos de rota, ao gas e à slippage.
O price impact também desempenha um papel. Price impact é a alteração de preço que a própria negociação provoca num pool de liquidez. Uma swap grande num pool com pouca liquidez pode alterar o preço de tal forma que a diferença de preço inicial desaparece.
Como podem os flash loans ser utilizados para trocas de colateral?
Uma troca de colateral substitui o colateral de uma posição de empréstimo numa única transação. Colateral é a criptomoeda que um utilizador deposita num protocolo de empréstimo como garantia de um empréstimo.
Este tipo de swap pode ajudar quando um utilizador pretende substituir o colateral de uma posição de empréstimo existente sem, primeiro, ter meios próprios suficientes disponíveis para amortizar a dívida. Um flash loan pode fornecer temporariamente a liquidez necessária para executar todos os passos intermédios dentro de uma única transação. A sequência exata depende do protocolo e da lógica de smart contract utilizada.
Uma possível troca de colateral com recurso a um flash loan decorre da seguinte forma:
- Pedir emprestado temporariamente o ativo da dívida: O smart contract pede emprestado, via flash loan, o ativo em que a dívida existente está denominada.
- Amortizar a dívida existente: Com os tokens temporariamente emprestados, a dívida é amortizada, libertando o colateral original.
- Levantar o colateral original: O smart contract levanta a garantia libertada da posição de empréstimo.
- Trocar o colateral: O colateral original é trocado pelo novo criptoativo de colateral pretendido.
- Depositar o novo colateral: O novo ativo é depositado como colateral no protocolo de empréstimo.
- Reabrir a dívida: Com base no novo colateral, o ativo da dívida é novamente pedido emprestado.
- Reembolsar o flash loan: Com esses tokens, o contract reembolsa o empréstimo temporário mais um eventual prémio.
No final da transação, o utilizador volta a ter uma posição de empréstimo, mas com outro colateral. Se um passo necessário falhar, ou se o flash loan não puder ser totalmente reembolsado, toda a transação é revertida.
Um fluxo relacionado, mas diferente, é amortizar a dívida com colateral. Nesse caso, o contract pede temporariamente emprestado o ativo da dívida, amortiza a dívida existente, levanta o colateral libertado e troca uma parte desse colateral para reembolsar o flash loan. O objetivo aqui não é reabrir a mesma posição de dívida com outro colateral, mas amortizar total ou parcialmente a dívida existente.
A viabilidade desse fluxo depende, entre outros fatores, dos ativos suportados, da liquidez disponível, do LTV e dos parâmetros de liquidação. O LTV indica que parte do valor do colateral pode ser, no máximo, emprestada. Os parâmetros de liquidação determinam quando uma posição está insuficientemente coberta e pode ser encerrada.
Os flash loans continuam a ser rentáveis?
Os flash loans não são rentáveis por si só, porque apenas fornecem financiamento temporário para uma estratégia específica. Se uma transação gera lucro depende do retorno final após todos os custos e riscos.
Na arbitragem, uma estratégia só faz sentido se o retorno realizado for superior a:
- o prémio do flash loan;
- gas fees;
- custos de swap e de rota;
- price impact;
- slippage.
O prémio do flash loan não é uma percentagem fixa universal. Pode variar por protocolo, chain, deployment e configuração e pode ser ajustado. O gas também é variável. Os custos dependem, entre outras coisas, da quantidade de trabalho computacional, da base fee e da priority fee associadas a uma transação na Ethereum.
A concorrência torna, além disso, as pequenas oportunidades vulneráveis. Pesquisadores automatizados podem tentar explorar as mesmas diferenças de preço rapidamente. Além disso, uma simulação ou uma quote não é uma garantia de que a execução real mantém o mesmo preço e retorno.
Assim, os flash loans não são um método de rendimento fixo. São uma ferramenta técnica que só pode ter valor quando uma transação concreta continua a ser favorável após todos os custos.
Quais são as vantagens dos flash loans?
Os flash loans oferecem aos smart contracts acesso temporário a liquidez sem que o iniciador tenha de imobilizar antecipadamente o capital total como colateral para esse empréstimo temporário.
As principais vantagens são:
- Acesso temporário a liquidez: Uma estratégia pode ser executada com um montante maior do que o que o executor tem disponível antecipadamente para esse empréstimo específico.
- Sem execução parcial: Devido à atomicidade, todas as alterações de estado são revertidas se um passo necessário falhar. Assim, um utilizador não fica com uma posição parcialmente ajustada.
- Várias ações numa única transação: Pedir emprestado, fazer swap, reembolsar, levantar e depositar novamente podem ser executados como um todo único.
- Gestão de posições mais eficiente: Trocas de colateral e outros ajustes de posições DeFi podem ser agregados sem que cada passo intermédio tenha de ser financiado separadamente.
Não ter capital inicial não significa não ter custos. Para uma transação de flash loan, normalmente continuam a ser necessários tokens nativos para pagar gas. Também pode ser necessário saldo para cobrir um prémio ou uma execução desfavorável.
Que riscos e limitações têm os flash loans?
Os flash loans implicam riscos técnicos, financeiros e de execução, apesar de o empréstimo direto ser revertido se o reembolso falhar. A estrutura atómica protege sobretudo o prestador de liquidez contra um empréstimo direto em aberto e sem cobertura. Não elimina todos os riscos para o utilizador ou para o programador.
Uma transação de flash loan é complexa. O receiver, as token approvals, as swaps, os controlos de preço e o reembolso têm de funcionar em conjunto sem falhas. Um erro num componente pode fazer reverter toda a transação e gerar custos de gas.
Além disso, a capacidade de empréstimo é limitada. Um protocolo só pode emprestar o que está disponível na reserve ou no pool relevante. Assim, um volume pretendido nem sempre está disponível.
Por fim, uma transação pode ser tecnicamente bem-sucedida e, ainda assim, ser financeiramente desfavorável. Por exemplo, uma swap pode avançar a um preço mau quando a slippage permitida está definida de forma demasiado ampla.
Como podem os erros de smart contract ser explorados?
Um flash loan pode explorar, em grande escala, um erro existente noutro protocolo porque um atacante pode controlar temporariamente muitos tokens. O flash loan não causa esse erro, mas pode fornecer o capital necessário para explorar a fraqueza dentro de uma única transação.
Um desenho arriscado é, por exemplo, um protocolo que confia num preço spot diretamente manipulável. Um preço spot é o preço visível nesse exato momento num pool. Um atacante pode influenciar temporariamente o preço com uma grande negociação, executar uma ação dependente e desfazer a negociação na mesma transação atómica.
A posse temporária de tokens também pode ser perigosa quando um protocolo utiliza isso, sem proteção adicional, como sinal de segurança ou de governance. Governance é o processo através do qual os participantes decidem sobre regras ou alterações a um protocolo.
A proteção reside sobretudo num desenho sólido do protocolo. Exemplos incluem oráculos de preço mais robustos, dados de preço ponderados no tempo quando adequado, controlos de limites económicos e desenvolvimento defensivo e auditorias a smart contracts.
Que papel desempenham os custos de transação e a slippage?
Os custos de transação e a slippage determinam muitas vezes se uma estratégia com flash loan é realmente rentável. Mesmo quando a ação principal é bem-sucedida, estes custos podem eliminar totalmente um retorno esperado.
As gas fees são os custos do trabalho computacional executado na Ethereum. Transações complexas com vários smart contracts, swaps e token approvals normalmente consomem mais gas do que uma transferência simples. Uma transação que reverte durante a execução pode, ainda assim, custar gas.
Price impact e slippage não são a mesma coisa:
- Price impact é a alteração de preço que a sua própria negociação provoca. Este efeito é, normalmente, maior quando a negociação é grande em relação à liquidez de um pool.
- Slippage é a diferença entre o resultado esperado de uma swap e o que é efetivamente recebido. O preço pode mudar entre o momento em que uma transação é preparada e o momento em que é executada.
Um limite de slippage demasiado baixo pode fazer com que uma transação reverta. Um limite demasiado alto pode, pelo contrário, permitir que a swap prossiga a um preço muito pior. Por isso, o gas, o prémio, o price impact e a slippage têm todos de ser subtraídos ao retorno bruto antes de uma estratégia poder ser considerada rentável.
Qual é a diferença entre flash loans e crypto borrowing?
Os flash loans e o crypto borrowing são ambas formas de pedir criptomoedas emprestadas, mas funcionam de forma fundamentalmente diferente. No crypto borrowing, um utilizador normalmente abre uma posição de empréstimo que pode existir durante mais tempo. Um flash loan, pelo contrário, destina-se a usar liquidez temporariamente dentro de uma única transação na blockchain.
No crypto borrowing, um utilizador normalmente deposita criptomoedas como colateral para poder pedir emprestado outro criptoativo. A dívida fica depois em aberto até ser amortizada. Durante esse período, pode acumular-se juros sobre o empréstimo. Se o valor do colateral descer demasiado em relação à dívida, a posição pode ser liquidada.
Num flash loan direto, não é necessário imobilizar colateral antecipadamente para o empréstimo temporário. No entanto, o montante emprestado tem de ser reembolsado, juntamente com um eventual prémio, dentro da mesma transação. Se isso não acontecer, toda a transação reverte e as alterações executadas são desfeitas.
As diferenças são claras:
- Duração: O crypto borrowing pode originar uma posição de dívida que permanece aberta durante dias, meses ou mais. Um flash loan direto existe apenas dentro de uma única transação.
- Colateral: No crypto borrowing, normalmente é necessário colateral. Num flash loan direto, não é necessário colateral antecipadamente para o empréstimo temporário.
- Risco de liquidação: No crypto borrowing, uma posição pode ser liquidada quando o colateral não oferece cobertura suficiente. Um flash loan direto não tem uma posição de longo prazo que possa ser liquidada: quando o reembolso não é possível, a transação reverte.
- Custos: No crypto borrowing, podem acumular-se juros enquanto a dívida está em aberto. Num flash loan, normalmente paga-se um prémio por utilizar liquidez temporariamente.
- Utilização: O crypto borrowing é utilizado para pedir capital emprestado sem vender imediatamente o colateral. Os flash loans são usados sobretudo para ações DeFi automatizadas, como arbitragem, trocas de colateral e reestruturação de posições de empréstimo. Em suma, o crypto borrowing destina-se a manter um empréstimo durante mais tempo, enquanto um flash loan fornece liquidez temporária para uma sequência de ações executada numa única transação.
A Aave V3 introduz aqui uma nuance. Através da função mais abrangente flashLoan, uma transação pode, sob certas condições, terminar numa posição de dívida regular quando existe colateral suficiente. Nesse caso, já não é um flash loan direto padrão, mas, na prática, crypto borrowing.
Considerações finais
Um flash loan é um bloco de construção DeFi que permite a um smart contract usar liquidez temporariamente e reembolsá-la dentro da mesma transação. A força está na atomicidade: todos os passos têm êxito em conjunto, ou a blockchain reverte toda a transação.
Assim, os flash loans podem ser úteis para ações compostas como arbitragem, trocas de colateral e ajuste de posições de empréstimo. Não oferecem retorno automático e também não são um empréstimo comum para utilização prolongada. O resultado final depende do código, da liquidez disponível, das gas fees, do price impact, da slippage e da estratégia escolhida.
Sobretudo para programadores e estratégias DeFi automatizadas, os flash loans são uma ferramenta poderosa. Ao mesmo tempo, uma utilização segura exige smart contracts fiáveis, bons controlos de preço e um cálculo realista de todos os custos e riscos.