El 8 de mayo de 2021, según Lianwen, el protocolo de agregación de ingresos de Ethereum, Rari Capital, tuvo una laguna debido a la integración de Alpha Finance y perdió casi 15 millones de dólares estadounidenses. Posteriormente, Rari Capital lanzó oficialmente el informe de análisis del accidente, analizando las principales causas del accidente. Sobre la base del análisis oficial, el equipo de seguridad de SlowMist combinó el análisis en profundidad del incidente realizado por el equipo de seguridad de SlowMist para interpretar mejor la causa del incidente de seguridad.
Este ataque ocurrió en el contrato RariManger de Rari Capital.Todo el proceso consiste en que el atacante primero tomó prestada una gran cantidad de fondos de dYdX a través de préstamos flash, y luego llamó repetidamente a las funciones de depósito y retiro en el contrato RariManger para completar la ganancia. Como se muestra abajo:
Entonces, ¿cómo se benefician los usuarios de las dos operaciones de depósito y retiro? Necesitamos analizar la función correspondiente:
El precio de BTC en el intercambio coreano UPbit una vez alcanzó los 71 000 dólares estadounidenses: El precio de BTC en el intercambio coreano UPbit una vez alcanzó los 79 422 000 wones (alrededor de 71 000 dólares estadounidenses), un récord. La "prima de Kimchi" alcanzó el 23%. [2021/4/7 19:54:00]
Lo anterior es parte de la lógica de la función de depósito.Primero, la función de depósito en sí misma llama a la función interna _depositTo, y luego llama a la función getFundBalance nuevamente para obtener el saldo del contrato. La función getFundBalance eventualmente llamará a la función getBalance del contrato del Rari Controller para obtener el saldo. Finalmente, el saldo se obtiene a través de la función getBalance de la biblioteca AlphaPoolController en el contrato Rari Controller. Como se muestra abajo:
El proceso es un poco complicado, y es más o menos como sigue para mostrarlo con un diagrama:
La salida neta de fondos en 24 horas de LINK es de 1.819 mil millones de yuanes: los datos de monitoreo de Jinse Finance muestran que las tres principales salidas netas en 24 horas en el mercado de criptomonedas son [2021/1/28 14:15:49]
Del análisis anterior, no es difícil encontrar que el contrato de Rari finalmente usa la función totalETH del contrato ibETH del proyecto Alpha Finance para obtener el saldo del contrato. El propósito es calcular el saldo real de ETH del contrato de Rari. basado en la proporción de totalETH y totalSupply. La función de depósito es para calcular la cantidad de REPT que se emitirá al usuario en función de la cantidad de ETH recargada por el usuario y la relación, y la fórmula de la función de retiro es similar. También es necesario obtener el saldo de ETH de el contrato a través de la función getBalance y calcule la relación, y luego de acuerdo con el token REPT del usuario. Los cálculos de saldo y relación deben devolver la cantidad de ETH al usuario. Pero el problema está precisamente en esta fórmula para conseguir el saldo de ETH.
Según la descripción oficial, el valor obtenido de la función totalETH obtenido del contrato ibETH puede ser manipulado por el usuario. El siguiente es el texto oficial:
Según la descripción oficial, los usuarios pueden manipular el valor devuelto por la función totalETH a través de la función de trabajo del contrato ibETH, lo que provoca el colapso de toda la fórmula de cálculo del valor de Rari. Analizamos la función de trabajo y la función totalETH de ibETH respectivamente:
función totalETH:
función de trabajo:
Las anteriores son implementaciones parciales de la función totalETH y la función de trabajo en el contrato ibETH. No es difícil encontrar que la función totalETH es en realidad para obtener la cantidad total de ETH del contrato. La función de trabajo en sí es una función de pago, es decir, el usuario puede controlar la cantidad de ETH en el contrato ibETH a través de la función de trabajo para cambiar el valor devuelto por totalETH. Para empeorar las cosas, la función de trabajo también admite llamar a otros contratos arbitrarios. Entonces toda la idea es muy clara.
1. Haga un préstamo rápido de dYdX y preste una gran cantidad de ETH;
2. Usar una parte de ETH para recargar en el contrato de Rari Capital En este momento, la proporción obtenida de ibETH sigue siendo normal;
3. Utilice el ETH restante para recargar en el contrato ibETH, llame a la función de trabajo del contrato ibETH y prepárese para el aumento posterior del valor total de retorno de ETH del contrato ibETH;
4. Al mismo tiempo, en la función de trabajo, se inicia el retiro del contrato de Rari Capital. Dado que el valor totalETH se aumentó en el paso anterior, pero el valor calculado de totalETH()/totalSupply() se eleva en comparación con la recarga, para que el atacante pueda obtener de Rari Use la misma cantidad de REPT en Capital para obtener más ETH.
Según este análisis, la razón principal es la incompatibilidad del protocolo.El atacante atacó a Rari Capital a través de préstamos flash y reingreso, causando enormes pérdidas. El equipo de seguridad de SlowMist sugiere que a medida que DeFi se vuelve cada vez más complejo, cuando cada proyecto DeFi interactúa entre protocolos, es necesario garantizar la compatibilidad entre protocolos para evitar pérdidas causadas por problemas de compatibilidad de protocolos.
[Enlace de referencia]
Análisis oficial de Rari Capital:
https://medium.com/rari-capital/5-8-2021-rari-ethereum-pool-post-mortem-60aab6a6f8f9
Transacción de ataque (una de ellas):
https://etherscan.io/tx/0x171072422efb5cd461546bfe986017d9b5aa427ff1c07ebe8acc064b13a7b7be
Por: yudan@equipo de seguridad de niebla lenta
Tags:
Ouyi OKEx y Jinse Finance lanzaron videos básicos de K-line para los usuarios. Los usuarios aprenderán conocimientos relacionados con K-line a través de videos.
1. Bajo el récord de ETH, la temporada de imitadores desencadenó un clímaxLa historia parece repetirse, y en todos los mercados alcistas de criptomonedas anteriores.
En la mañana del 6 de mayo, el precio de Ethereum (ETH), la segunda moneda digital cifrada más grande del mundo, superó los $3500, estableciendo un récord. Hace unos días.
El 8 de mayo de 2021, según Lianwen, el protocolo de agregación de ingresos de Ethereum, Rari Capital.
NFT puede considerarse como el producto blockchain más cercano y realista de nuestras vidas.Con la popularidad de NFT, han surgido varias plataformas NFT. Hay aquellos que solo se enfocan en un tipo de arte.
Madman escribe cada artículo de análisis con una actitud responsable, enfocada y sincera, con rasgos distintivos.
Los dos proyectos más populares en el campo de NFT recientemente, uno es Cryptopunks, que ha vendido repetidamente precios altísimos, y el otro es el novato Meebits.