jueves, 17 de junio de 2021

Hackeo en distintas DEFIS | GoCerberus, GarudaSwap, KetchupFinance

 Hackeo en distintas DEFIS | GoCerberus, GarudaSwap, KetchupFinance 


Hackeo en distintas DEFIS | GoCerberus, GarudaSwap, KetchupFinance


Malas noticias para el mundo de las criptomonedas, para ser exactos para la rama de las Defis.

Como muchos sabéis y ya hemos hablado aqui, las Defis, exchanges descentralizados etc, tienen el beneficio de no tener que identificarte con KYC, eres el dueño de tus tokens (esto los especificaremos ahora) etc.

Vale, lo de que eres dueño de tus tokens es cierto, ya que haces el cambio con tokens que están en tu cartera y recibes los otros en tu cartera, por lo tanto siempre tienes el control de los mismos.


EL PROBLEMA VIENE CON LOS DEPÓSITOS

Este tipo de proyectos uno de los atractivos que tiene es poder dar liquidez a los pares, utilizar sus pools y obtener un retorno que no se suele conseguir en ningún otro lado. Una vez haces eso, confías tus tokens a un tercero, ahí ya no eres el dueño, por lo que están expuestos a cualquier tipo de ataque.


Pues el día de ayer eso ha ocurrido, en teoría han encontrado la forma de acceder a los tokens nativos de las Defi pudiendo multiplicar casi hasta el infinito las recompensas obtenidas en las pool, por lo tanto, metieron todo al mercado y explotó.

La respuesta de GarudaSwap:  

El exploit no es inherente a nuestro contrato. La mayoría de las granjas de rendimiento utilizan un contrato de confianza llamado MasterChef, que incluso PancakeSwap utiliza para distribuir recompensas. El problema es que MasterChef nunca fue diseñado para todos estos tokens especiales, fue diseñado específicamente para recibir recompensas por tokens LP.

Pero, las granjas de rendimiento seguían apareciendo y agregando tokens que no eran LP y todo estaba bien. Hasta hace poco, los tokens con una tarifa de transferencia se hicieron más populares. La mayoría de nuestros tokens también tienen una tarifa de transferencia, así es como podemos tener nuestros tokenomics. Pero el problema es que MasterChef no fue diseñado para esto.

Debido al diseño del masterchef, si apuesta 100 tokens (con una tarifa de transacción del 5%) en un MasterChef, aún puede retirar 100 tokens del MasterChef. Pero debido a la tarifa de transferencia, solo 95 tokens llegaron al contrato. De hecho, pensamos que esto sucedería con nuestro token nativo GoCerberus, y actualizamos el masterchef para deducir la tarifa de transacción del saldo, eliminando el problema.

Pero, lamentablemente, no agregamos este código a nuestros grupos no nativos. Este no era un problema, ninguno de los tokens no nativos tiene una tarifa de transacción ... Excepto por el token de Garuda. Hoy temprano notamos que el saldo del grupo de Garuda se estaba reduciendo y algunos usuarios informaron que ya no podían retirarse. Habíamos inhabilitado los depósitos en este grupo y comenzamos a pensar en un plan de compensación. Entendimos que el problema tenía que ver con las tarifas de transacción en este momento, pero no sabíamos que esto podría explotarse aún más.

Esta es una de las razones exactas por las que necesitamos evolucionar a THOREUM masterchef.

En nuestro masterchef de THOREUM, cada token con tarifa de transacción será verificado y calculado exactamente desde el momento en que depositan para que esto no suceda (Rugdoc.io tiene un escaneo de esto y puede confirmarlo). Pero en un futuro cercano estaremos doblemente seguros al no agregar un grupo para ningún token deflacionario antes de que podamos confirmar que su tarifa de transacción es un número fijo que no se puede cambiar.

El drenaje inicial

Debido al funcionamiento interno de Masterchef, una vez que los saldos de los usuarios crecen más que el saldo total de tokens en el grupo, obtienen efectivamente un multiplicador en sus recompensas.
 Cualquiera que todavía estuviera en el estanque de Garuda estaba obteniendo cosechas mucho mayores de lo que debería. Hasta que llegó el momento en que se retiró tanto Garuda del grupo de Garuda, que este multiplicador se volvió tan grande que una sola cosecha cosechó todos los GoCerberus en el masterchef, alrededor de 40 millones de tokens (por valor de $ 190k en ese momento).

Entonces, ¿por qué cuando los saldos de los usuarios son mayores que los tokens del grupo, los usuarios obtienen un multiplicador en sus cosechas? Nuevamente, se debe a que los desarrolladores de masterchef nunca esperaron que hubiera un desajuste en estos números: en el masterchef, las recompensas por token apostado se calculan en realidad dividiendo las emisiones del grupo por el total de tokens en el contrato.
Hackeo en distintas DEFIS | GoCerberus, GarudaSwap, KetchupFinance

Entonces, si queda 1 token en el masterchef, las recompensas por token son iguales a las emisiones totales de ese grupo. Entonces, ¿qué sucede en nuestro caso anterior cuando solo puede haber 0.001 token en el grupo y los usuarios todavía tienen un saldo de miles de tokens? Sus cosechas son miles de veces más grandes de lo que deberían ser.

Creemos que después de que KetchupSwap fuera explotado hoy, rápidamente algunas personas se dieron cuenta de esto y consiguieron que el saldo en el grupo fuera tan bajo que pudieron sacar todas las fichas del masterchef de una sola vez.

Somos conscientes de esta lógica y la eliminamos por completo en nuestro masterchef THOREUM. THOREUM ya tiene lógicas más rígidas para verificar todas las posibilidades antes de la transferencia y asegurarse de que nadie pueda transferir si el suministro es cero o menos. (el detalle se publicará en otro artículo).

RESUMEN Y CONSEJOS.

Ahora mismo los tokens nativos están totalmente rotos. Si tienes tokens nativos en otros Defis que aun no han sido "hackeados" deberías venderlos y deshacerte de ellos ya que al ser un problema del Masterchef (todos usan el mismo) antes o después correrán la misma suerte.


El dinero está casi totalmente perdido, se debe estar a la espera para ver los Defis que harán planes de compensación (otros simplemente desaparecerán) pero esas compensaciones serán sobre un 10% de lo perdido más o menos..




No hay comentarios:

Publicar un comentario