Autor: cardaniansio
Por que não há ataques de empréstimo instantâneo em Cardano?
Muitos hacks na plataforma Ethereum usaram empréstimos instantâneos. Um invasor pode pedir emprestado uma grande quantidade de fundos sem garantia, usá-los para obter lucro e depois reembolsar o empréstimo na mesma transação. Neste artigo explicaremos porque não vemos esse tipo de ataque no DeFi de Cardano. Você entenderá uma das vantagens do modelo UTxO.
O princípio dos empréstimos instantâneos
Um empréstimo instantâneo é um empréstimo emprestado e reembolsado na mesma transação. É uma maneira de obter ganhos potencialmente substanciais sem ter que arriscar seu próprio dinheiro.
A maioria de nós está familiarizada com empréstimos normais. Um credor empresta dinheiro a um mutuário para ser reembolsado integralmente. Um empréstimo normalmente deve ser reembolsado de forma constante ao longo de um período de meses ou anos. Freqüentemente, os credores exigem que os mutuários apresentem garantias para garantir que, se o mutuário não puder pagar o empréstimo, o credor ainda poderá receber seu dinheiro de volta. Este é um empréstimo garantido.
Os empréstimos instantâneos não são garantidos, pois nenhuma garantia é necessária. Esta falta de garantias não significa que o credor não receberá o seu dinheiro de volta. Em vez de oferecer garantias, o mutuário precisa devolver o dinheiro imediatamente. Isso pode ser garantido com um contrato inteligente.
Um empréstimo instantâneo é instantâneo. Ao aproveitar a atomicidade das transações no Ethereum, os empréstimos instantâneos permitem que os usuários realizem múltiplas ações em uma única transação, desde que o tempo da transação não exceda o tempo de bloqueio.
Este conceito de atomicidade é crucial para o funcionamento dos empréstimos rápidos. Um contrato inteligente para um empréstimo instantâneo normalmente envolve o empréstimo de fundos, a realização de algumas operações (como arbitragem ou liquidação) e o reembolso do empréstimo, tudo em uma única transação. Se o empréstimo não for reembolsado até o final da transação, toda a transação será revertida e é como se o empréstimo nunca tivesse acontecido. Isto garante que o credor não perca fundos, mesmo que o empréstimo não tenha garantia.
Em outras palavras, a atomicidade garante a natureza tudo ou nada das transações.
É melhor explicar com um exemplo. Digamos que temos três partes envolvidas: um protocolo de empréstimo (A), um mutuário (B) e um protocolo de destino C. Essas três ações ocorrem em uma única transação: Empréstimo, Ação e Reembolso.
- Emprestar: O mutuário (B) inicia uma transação tomando emprestado fundos do protocolo de empréstimo (A). Isso debita o saldo de A e credita o saldo de B.
- Ação: O mutuário (B) então usa esses fundos emprestados para interagir com outro protocolo C. Isso pode ser para arbitragem, liquidação ou qualquer outra operação que possa gerar lucro. Isso debita o saldo de B e credita o saldo de C.
- Reembolsar: Finalmente, o mutuário (B) reembolsa o empréstimo ao protocolo de empréstimo (A), acrescido de quaisquer taxas ou juros. Isso debita o saldo de B e credita o saldo de A.
Quando a transação termina, parece que os fundos não foram emprestados.
Os contratos inteligentes no Ethereum podem ser programas autônomos complexos que podem realizar uma ampla gama de operações e interagir com outros contratos. Isso permite interações complexas entre vários contratos inteligentes em uma única transação, o que é um requisito fundamental para a execução de um empréstimo instantâneo. Observe também que em uma transação de empréstimo instantâneo, vários saldos estão envolvidos. Cada saldo pode ser debitado e creditado várias vezes em uma única transação.
Muitos desses conceitos são fundamentalmente diferentes da simplicidade dos scripts Plutus e do modelo UTxO. Esta é a razão pela qual ainda não houve nenhum ataque rápido de empréstimo a Cardano.
Por que não há ataques de empréstimo instantâneo em Cardano?
O propósito e a funcionalidade dos scripts validadores na Cardano e dos contratos inteligentes na Ethereum são diferentes, e isso impacta a implementação de empréstimos instantâneos.
Os scripts validadores na Cardano são usados para determinar se um UTxO pode ser gasto. Eles fazem isso verificando se certas condições são atendidas. Se as condições não forem atendidas, a transação não será validada e o UTXO permanecerá não gasto.
Um dos outros motivos para maior segurança no Cardano é o modelo UTxO.
Cada UTxO é um objeto separado que é independente do seu entorno. O modelo UTxO não possui o conceito de saldos, ao contrário do modelo baseado em contas utilizado pela Ethereum.
Um ou mais UTxOs podem ser a entrada de uma transação na qual podem ser gastos apenas uma vez e completamente. Novos UTxOs de saída serão criados a partir dos UTxOs de entrada.
Uma transação Cardano pode ser vista como uma função simples que consome UTxOs de entrada e produz UTxOs de saída. Os UTxOs que entram na transação são imutáveis e é possível garantir acesso exclusivo. Dentro da transação, é garantido que o valor de todos os UTxOs de entrada seja igual ao valor de todos os UTxOs de saída (esta também é uma condição de contratos inteligentes que implementam empréstimos instantâneos).
Na Ethereum, as transações têm estado, o que significa que podem alterar o estado do sistema. Este é um pré-requisito necessário para interações complexas entre vários contratos inteligentes em uma única transação, que é um requisito fundamental para a execução de um empréstimo rápido.
O modelo UTxO é mais sem estado. Durante a validação da transação, o script só tem acesso aos UTxOs de entrada, contexto da transação, Datum e Redentor. O script não tem capacidade, por exemplo, de interagir com outros UTxOs do sistema.
A principal diferença entre Cardano e Ethereum é que não é possível mover UTxO várias vezes para endereços diferentes durante a validação do script Plutus. Além disso, Cardano não suporta o encadeamento de contratos inteligentes numa única transação, ao contrário do Ethereum. Eles podem ser encadeados em uma série de transações.
A Cardano processa operações dentro de uma transação simultaneamente. Uma única transação Cardano representa uma atividade que ocorre simultaneamente, não em série. Isto significa que o conceito tradicional de empréstimos rápidos no Ethereum, onde os fundos são emprestados e reembolsados numa única transação, não se traduz diretamente no Cardano devido a estas restrições.
Empréstimos instantâneos não podem ser criados em Cardano porque seria necessário usar múltiplas transações para emprestar fundos, usar fundos e reembolsar atividades de fundos. Cardano não permite que os usuários criem empréstimos instantâneos por design.
Seria possível criar um empréstimo rápido em Cardano de alguma forma?
A lógica do script validador teria que ser a seguinte: permitir que este UTxO fosse gasto sob a condição de que fosse gasto de volta no mesmo endereço do script. No entanto, isso não faz sentido. UTxO não pode ser emprestado temporariamente dentro de uma transação. A contraparte não poderia usar UTxO.
Conclusão
No artigo, falamos negativamente sobre empréstimos instantâneos, porque eles são frequentemente usados para ataques. É justo dizer que os empréstimos rápidos são uma ferramenta poderosa para traders com as habilidades e conhecimentos técnicos necessários. O mesmo pode ser dito do Ethereum. Para alguns casos de uso, é vantajoso que os desenvolvedores possam encadear contratos inteligentes em uma transação.
As plataformas SC são apenas ferramentas e podem ser usadas para construir serviços financeiros úteis ou exploradas por hackers. O objetivo de toda a indústria é criar uma plataforma na qual seja possível criar serviços confiáveis e seguros. Cardano é seguro por design, mas algumas coisas são mais trabalhosas e complicadas de implementar em comparação com Ethereum. É sempre uma questão de encontrar o equilíbrio certo.
Você gostou deste artigo? Por Favor, compartilhe, obrigado!
1 post - 1 participant