O artigo analiza os riscos de usar oráculos de prezos Uniswap V3 TWAP nos protocolos de préstamo, especialmente para activos de longa cola. Estes oráculos poden ser manipulados, resultando en importantes perdas. Para mitigar os riscos, os protocolos poden usar oráculos alternativos e considerar factores como o volume de Uniswap e a dispersión de liquidez.
Salvagarda dos activos de Long Tail nos protocolos de préstamo dos ataques TWAP Oracle
A maioría dos pirateos do protocolo de préstamo derivan de vulnerabilidades dos contratos intelixentes, o que orixina centos de millóns de dólares roubados cada ano. Os desenvolvedores e auditores volvéronse máis cautelosos cos ataques comúns, mentres que os protocolos pasan por varias roldas de revisións de código e programas de recompensas de erros. Non obstante, os protocolos de préstamo tamén se enfrontan a ataques económicos como resultado da volatilidade do mercado e problemas de prezos, como eventos de de-peg e manipulación de oráculos.
Para evitar estes ataques, a maioría dos protocolos enumeran só activos altamente líquidos e utilizan os provedores de oráculo máis fiables, principalmente Chainlink. Aínda que a maioría dos protocolos de préstamo non usan oráculos de prezo medio ponderado no tempo de intercambio descentralizado (TWAP), son unha das opcións máis accesibles. Non obstante, a maioría dos protocolos non foron capaces de atopar unha metodoloxía segura para usar só estes oráculos de forma segura, xa que normalmente é demasiado arriscado en comparación coas alternativas.
Os oráculos de prezos Uniswap V3 TWAP utilizáronse en protocolos de préstamo como Inverse Finance, Rari Capital e Euler Finance. Aínda que a Uniswap e os seus oráculos V3 se fai referencia repetidamente ao longo do informe, outros oráculos TWAP poderían funcionar de xeito similar. Estes oráculos teñen unha serie de vantaxes, como ser libre para integrarse en protocolos e depender menos de controis centralizados, pero as desvantaxes impiden un uso xeneralizado.
Hai moitos exemplos onde se manipularon os oráculos, especialmente os oráculos TWAP, xunto con investigacións que detallan por que ocorren estes ataques. Normalmente, é problemático cando a liquidez é inadecuada na fonte do oráculo, como un grupo Uniswap, deixando os protocolos de préstamo que utilizan o oráculo para os prezos en risco de sufrir un ataque.
O equipo de Euler Finance escribiu informes, incluíndo e lanzou un ataque de oráculo para cuantificar os riscos dos protocolos de préstamo utilizando oráculos de prezos Uniswap V3 TWAP. Parte do foco do informe é analizar a manipulación dos prezos spot durante polo menos un bloque. Esta consideración tamén se dá ao simulador Euler Oracle Tool, que se mostra na Figura 1 a continuación, xa que mostra os valores e custos por bloque ata dez bloques nos informes xerados.
Os atacantes tentarán limitar o risco de fracaso mediante un préstamo flash para completar o ataque nun bloque. Aínda que os préstamos flash permiten aos atacantes utilizar máis liquidez da que poderían ter, é improbable que os préstamos flash teñan éxito nos activos máis líquidos nun bloque.
Por exemplo, a Figura 1 a continuación mostra o custo total (598,85 millóns de dólares) para realizar un ataque dun bloque para un impacto do prezo do 20% no par de tarifas USDC/WETH 0,3%. Debido ás restricións de préstamos, como os factores de préstamo e garantía (coeficiente LTV), os atacantes normalmente necesitan aumentar ou baixar os prezos moito máis alá do 20 % para conseguir un ataque rendible.
Condicións para manipular oráculos de prezos
Minimizar o número de bloques para realizar un ataque é fundamental por dous motivos. En primeiro lugar, os atacantes utilizan préstamos flash que deben ser reembolsados no mesmo bloque. En segundo lugar, cantos máis bloqueos se produzan, aumentan as posibilidades de que o atacante sexa arbitrado, o que terminaría o ataque xa que os comerciantes verían a diferenza de prezo e realizarían un intercambio para devolver o prezo á normalidade antes de que se complete o ataque.
Os activos máis utilizados como USDC, USDT e WETH adoitan ser o suficientemente líquidos como para evitar un ataque de manipulación do oráculo TWAP, especialmente para os préstamos flash. Isto é máis evidente na rede principal de Ethereum xa que a maioría das cadeas de capa dúas e outras teñen menos liquidez. Os protocolos de préstamo normalmente usarán oráculos de prezos de Chainlink para os activos de chip azul de todos os xeitos, xa que paga a pena o custo de protexer estes activos, que a maioría das veces se establecen como activos de garantía.
Aínda que os pools máis líquidos non teñan liquidez suficiente, hai moitos outros pools en Uniswap e outros DEX que presentan oportunidades de arbitraxe instantánea. A diferenza de prezo entre dous tokens altamente líquidos en diferentes grupos será corrixida polos comerciantes que atopen manualmente a oportunidade de arbitraxe, os bots, os agregadores ou, probablemente, o Uniswap. .
O enrutador automático atopará o mellor prezo dispoñible dividindo as operacións en varios grupos. Isto significa que se un atacante atopaba un grupo de préstamos con depósitos substanciais que utilizaba un grupo de baixo volume e liquidez en Uniswap V3 como o seu oráculo, o ataque aínda podería fallar se os outros grupos para o mesmo token tivesen un gran volume e liquidez porque o seguinte O comercio do Auto Router aproveitaría a oportunidade de arbitraxe. É aínda máis difícil que o ataque teña éxito xa que o enrutador automático tamén se pode dividir en rutas doutras fichas non relacionadas.
Tamén se poden facer hipóteses similares sobre piscinas de alto volume e baixo líquido. Con pouca liquidez, o oráculo do grupo pode ser un obxectivo vulnerable. Non obstante, debido ao volume significativo, as operacións axustarán constantemente o prezo á taxa de mercado. Polo tanto, pode ser improbable que un ataque teña éxito.
Un atacante tamén debería ter en conta a distribución de liquidez en Uniswap V3, xa que os provedores de liquidez poden proporcionar liquidez de rango completo ou liquidez concentrada. A liquidez de rango completo, que engade tokens a ambos os dous lados para o rango de prezos completo de cero a infinito, aumenta os custos dun ataque. A liquidez concentrada, un rango específico que só pode ser unilateral, pode aumentar ou diminuír os custos dependendo do prezo actual e da asignación de liquidez dentro do rango. O CTO 0xGorilla de Wonderland entra en máis detalles sobre isto no seu artigo .
Un grupo Uniswap "seguro" non precisa ter miles de millóns de dólares en tokens repartidos nunha gama completa para que o oráculo de prezos estea seguro. Considere a Figura 1 anterior, onde custou 598.850 millóns de dólares mover o prezo un 20% nun bloque, e aínda custaría case 200 millóns en dez bloques. Este grupo ten case 70 millóns de dólares en valor total bloqueado. Non obstante, o spread deste pool non é puramente completo, xa que gran parte da liquidez está concentrada, o que pode aumentar o risco.
A ferramenta de oráculo de Euler tamén pode mostrar que 10 millóns de dólares moverán o prezo case un 14% cara abaixo cun custo de 1 millón de dólares e case un 56% cara arriba cun custo de 1,7 millóns de dólares para este grupo. Isto sería potencialmente preocupante para o seu uso como oráculo, pero este grupo de 0,3% probablemente non sería o grupo principal utilizado nos protocolos de préstamo, xa que o grupo de comisións do 0,05% contén 129 millóns de dólares en TVL e 2.400 millóns de dólares en volume de 7 días. Datos de Uniswap.
Perfís de liquidez
Os usuarios deben tomar nota dos diferentes perfís de dispersión de liquidez para comprender mellor os riscos de depositar nos protocolos de préstamo que utilizan oráculos de prezos Uniswap V3 TWAP. Os gráficos da Figura 2 mostran varios perfís de liquidez que un usuario pode atopar nos grupos Uniswap.
O gráfico LP 1 a continuación mostra un perfil de liquidez que moitas veces se asume dos pools Uniswap V3. A liquidez (L) concéntrase xeralmente ao redor do prezo actual (P), pero diminúe máis lonxe en cada dirección dos dous tokens, Token01 e Token02.
LP 2 demostra un perfil típico de pares de moedas estables, como USDC/USDT, onde a liquidez está moi concentrada a varios ticks ao redor do prezo actual.
LP 3 mostra como podería ser un grupo de gama completa sen garrapatas concentradas de liquidez.
A liquidez en LP 4 concéntrase no lado de Token01 do prezo actual, o que o fai caro de verter pero máis barato de bombear, mentres que LP 5 mostra o contrario.
Se o protocolo de préstamo permite os dous tokens como garantía, entón o atacante pode optar por bombear ou verter na dirección que sexa menos custosa e máis rendible. Se un activo está illado e non se pode usar como garantía, entón o atacante só pode botalo para lucrar. Hai outras formas de sacar proveito de bombear un activo illado, pero pode ser máis complexo, custoso ou arriscado en comparación con simplemente botar un activo illado nun ataque de oráculo ou depender doutros tipos de metodoloxía de explotación.
O LP 6 mostra isto en acción, xa que sería menos custoso botar o token do prezo antigo (P1) no punto A ao novo prezo (P0) no punto B.
Os usuarios deben ter en conta os niveis de liquidez, o spread e o volume de transaccións se un protocolo de préstamo usa oráculos de prezos Uniswap V3 TWAP para os seus pools. Un grupo Uniswap moi vulnerable para un atacante tería pouca liquidez, baixo volume, liquidez concentrada lonxe do prezo obxectivo e do prezo actual, e sen outros grupos de Uniswap e outros DEX, ou polo menos de conxuntos de estrutura similar.
Os grupos de activos de cola longa normalmente teñen pouca liquidez e custos máis baixos para atacar, pero non necesariamente menor risco para un atacante. Aínda que o volume baixo diminúe a posibilidade de que a arbitraxe interrompa un ataque, pode haber liquidez moi concentrada e un número baixo de fichas circulando no mercado aberto para adquirir para o ataque. Isto podería facer inviable para o atacante obter beneficios.
Anatomía dun ataque multibloque
A rendibilidade dun ataque multibloque depende de que o valor dos tokens do grupo Uniswap sexa inferior ao valor da liquidez do grupo obxectivo do protocolo de préstamo. A determinación do valor do grupo Uniswap tamén debería ter en conta o custo de manipular o oráculo se o valor do prezo do token actual é demasiado alto. Polo tanto, o valor do conxunto de Uniswap pode ser superior ao valor do conxunto do protocolo de préstamo, pero se o custo para reverter isto é inferior ao valor do conxunto do protocolo de préstamo, o ataque pode ser rendible.
Unha vez que o atacante determinou que poderá obter beneficios, entón pode descubrir se é máis eficiente comprar as fichas necesarias para o ataque ou prestalas. En primeiro lugar, deducirían o custo de compra dos tokens dos beneficios de vendelos en Uniswap no ataque. É máis probable que isto sexa unha perda debido ao deslizamento, dado que están tentando baixar o prezo nun grupo Uniswap con pouca liquidez. Non obstante, o problema tamén pode ser que non haxa fichas suficientes para mercar ou que non teñan capital suficiente para mercar fichas suficientes. Un atacante tamén pode considerar que unha perda potencial sería demasiado alta se o custo de mercar suficientes fichas é demasiado alto se o ataque fallase.
Se a compra dos tokens é demasiado problemática, o atacante podería tomar prestadas as fichas do protocolo de préstamo dirixido ou doutro. É máis probable que o atacante diminúa os custos tomando prestados os tokens do protocolo de préstamo dirixido, asumindo que outra persoa non dirixe o ataque. Debido aos cambios de prezo derivados da manipulación do oráculo, tórnase progresivamente máis barato pedir prestados tokens do protocolo de préstamo dirixido.
Finalmente, o atacante consideraría se quere minimizar os bloques ao tempo que se arrisca a máis garantía ou tenta varias roldas de endebedamento e venda para utilizar menos garantía. A situación ideal é atopar a cantidade mínima de garantía necesaria para roubar a maior cantidade de depósitos. Se o prezo cambia ou o prezo non pode baixar máis ata o obxectivo previsto, entón o ataque pode bloquear parte ou toda a súa garantía no protocolo.
Simulador de ataque multibloque
Podemos calcular o beneficio potencial asumindo que o atacante está a pedir prestados tokens do protocolo de préstamo dirixido e vendelos para manipular o oráculo de prezos en Uniswap. Para iso, debemos ter en conta as restricións do protocolo de préstamo, como o préstamo e os factores de garantía se ten ambos, unha cantidade de garantía para depositar e a liquidez do pool de oráculo.
Usando o ataque multibloque , podemos introducir un importe de depósito para a garantía, os factores de préstamo, a liquidez DEX, os tokens dispoñibles do grupo de préstamos e varias entradas de prezos para os tokens prestados e de garantía. A folla de cálculo fará cálculos coa entrada do usuario para o número de tokens recibidos das vendas en Uniswap xunto co novo prezo do token. O simulador axusta o novo valor dos tokens prestados despois de cada rolda de vendas.
A posición do usuario 1 mostra a cantidade máxima de tokens que o atacante pode pedir prestado en función da súa garantía depositada. O atacante vendería o máximo de tokens prestados no grupo Uniswap obxectivo e introduciría o beneficio e o novo prezo na sección Liquidate Round 1. A posición de usuario 2 e as roldas posteriores de liquidación mostran os novos valores tendo en conta a garantía necesaria para o prezo do novo token prestado.
O obxectivo das roldas adicionais é rastrexar cantas fichas se poden vender para crear un impacto no prezo desexado se a primeira rolda non é suficiente. Os usuarios tamén poden determinar canta garantía é necesaria para realizar un ataque rendible no menor número de rondas de venda posible. As seccións adicionais calculan o beneficio se o atacante deixa a súa garantía ou finaliza o ataque nunha rolda final, tomando calquera beneficio ou perda que acumulou.
Os usuarios poden simular diferentes escenarios e construír marcos de risco personalizados cando traballan con protocolos de préstamo mediante oráculos TWAP. Ao combinar a ferramenta de oráculo de Euler co simulador de ataques multibloque, os usuarios tamén poden ter unha imaxe completa dos riscos potenciais dos ataques de préstamos flash e de varios bloques. Ademais, os usuarios poden realizar numerosas simulacións para descubrir os parámetros de risco das mellores prácticas para os protocolos de préstamo, as categorías de tokens con máis risco de ataques de oráculo, desenvolver sistemas de alerta temperá e moito máis.
Os usuarios poden automatizar esta folla mediante API, complementos ou desenvolver unha aplicación baseada nos cálculos. O obxectivo dunha folla de cálculo é garantir unha metodoloxía que poida ser utilizada por calquera no futuro, no caso de que se elimine, restrinxa ou cambie unha API ou unha aplicación. O foco desta ferramenta é tratar de mellorar a conciencia do risco e proporcionar unha maior seguridade para o préstamo de activos de cola longa, que normalmente non están cubertos pola maioría dos oráculos. Esta ferramenta tamén ignora a arbitraxe e o número exacto de bloques nun ataque, senón que se centra en contabilizar os posibles custos e beneficios dun ataque multibloque.
O contén unha guía de usuario, cálculos e un exemplo para a comodidade dos usuarios. Fai unha copia e edita as celas azuis da pestana Simulador.
Conclusións
Aínda que existe un gran potencial para crear mercados de préstamos para activos de cola longa, é evidente que os riscos para permitir oportunidades de préstamo seguras poden superar os beneficios. Os protocolos deberían polo menos ofrecer máis ferramentas para que os usuarios sexan conscientes do nivel de risco que implica. Os activos de colas longas como memecoins, tokens de goberno e lanzamentos de tokens descentralizados poden beneficiarse dos mercados de préstamos e derivados, pero estes tokens tamén son os máis vulnerables á manipulación.
Séguese intentando desbloquear o potencial de préstamo e endebedamento dos activos de cola longa, xa que os esforzos inclúen engadir máis oráculos, limitar os préstamos, crear grupos illados e atrasar as retiradas. Non é certo que os controis de volatilidade funcionen nos activos máis ilíquidos porque o control probablemente non sería capaz de distinguir entre os movementos de prezos xenuínos e os destinados a manipular o oráculo.
Varios protocolos de préstamo analizaron a creación de préstamos baseados no tempo. Non obstante, o problema fundamental de crear débeda incobrable aínda existe e os prestamistas terían que estar dispostos a aceptar ese risco. Aínda que este estudo non afonda nesta área dos protocolos de préstamo, os protocolos baseados en tipos de interese variables seguen dominando o mercado.
As posibles solucións poderían considerar o volume de Uniswap, o spread de liquidez e a cantidade de tokens para determinar o risco nos mercados de préstamos e préstamos de cola longa. Os mercados con clasificacións de risco máis altas poderían bloquearse ou limitarse ata que se proporcione máis liquidez ao grupo de oráculo en Uniswap. Algúns destes factores utilizáronse no sistema de clasificación de oráculos de Euler V1.
Outras solucións estanse a desenvolver como ganchos Uniswap V4 e actualizacións e revisións de protocolos existentes como Euler V2 e Bunni. Os oráculos de prezos tamén poden facerse máis eficientes cando se utilizan outros tipos de intercambios descentralizados, como os creadores de mercado automatizados ponderados no tempo (TWAMM) ou o protocolo de préstamo baseado na carteira de pedidos descrito por Bedlam Research. Plataformas como Kamino Finance mostran unha serie de medidas de control de riscos, incluíndo LTV dinámico, mentres que outros protocolos, como GammaSwap, Timeswap e Ammalgam, ofrecen solucións sen oráculo e outras.
En definitiva, se só hai unha fonte de prezos de escasa liquidez, case ningunha cantidade de controis de risco pode facelo seguro e financeiramente viable para os participantes do protocolo de préstamo.