¿Sabías que una firma simple en Metamask puede vaciar tu billetera?
¿Sabías que una firma simple en Metamask puede vaciar tu billetera?
— korpi (@korpi87) Agosto 19, 2022
Un usuario muy experimentado (top 10 por Puntuación Degen) perdió casi 500k USDC en una vulnerabilidad hoy.
Podrías ser el siguiente...
Un hilo corto sobre cómo ocurrió y cómo puedes evitar tales vulnerabilidades en el futuro.
Fue una tarde tranquila cuando Joe (nombre cambiado) notó que 469k USDC salieron de su billetera.
— korpi (@korpi87) Agosto 19, 2022
No fue una transferencia sencilla, lo que significa que aparentemente un atacante no tenía acceso a la billetera de Joe.
Fue un contrato malicioso que vació todo el USDC de su dirección... pic.twitter.com/pTgTjfMMeu
Aquí necesitamos detener la historia para explicar algunas tecnicidades.
— korpi (@korpi87) Agosto 19, 2022
El token USDC es un contrato en Ethereum. Tiene muchas funciones que definen cómo interactuamos con USDC y qué se puede hacer con él.
Centrémonos en dos funciones:
> transferir
> transferirDesde pic.twitter.com/gekVmjmwvW
> transferir
— korpi (@korpi87) Agosto 19, 2022
Cuando mueves USDC (u otros ERC20) entre billeteras, usas la función transferir.
Mueve tokens desde el llamador (la dirección que llama a la función) a otra dirección.
Para usar maliciosamente transferir en tu nombre, alguien tendría que obtener el control sobre tu billetera. pic.twitter.com/3Z3pYbBnRq
> transferirDesde
— korpi (@korpi87) Agosto 19, 2022
Cuando interactúas con contratos, usan transferirDesde para mover tus tokens. Pueden tomar hasta la cantidad de permiso que estableciste en la función aprobar.
Si permites que un contrato gaste una cantidad infinita de USDC, puede tomarlo todo.https://t.co/QdUgLuZfZH
Volviendo a la historia de Joe…
— korpi (@korpi87) Agosto 19, 2022
La interacción con el contrato mencionada anteriormente que vació el USDC de Joe fue efectivamente la función transferFrom.
Pero transferirDesde solo funcionaría si Joe hubiera aprobado el contrato para gastar su USDC.
Y Joe estaba 100% convencido de que no había aprobado nada… pic.twitter.com/HH9xxYeQms
Espera un momento...
— korpi (@korpi87) Agosto 19, 2022
El historial de DeBank muestra claramente la aprobación infinita de USDC para el contrato malicioso 10 minutos antes de la vulnerabilidad...
¿Aprobó Joe realmente eso?
Sí. Pero también no. No directamente. pic.twitter.com/AqQQs7GZAV
Etherscan revela que la aprobación ilimitada no provenía de la función approve llamada por el propio Joe.
— korpi (@korpi87) Agosto 19, 2022
Fue la función permit llamada por otra dirección, y esta otorgó al contrato malicioso la aprobación para gastar todo el USDC de Joe.
¿Qué? ¿Cómo pueden otros aprobar contratos en tu nombre? pic.twitter.com/TS3iDbhOXu
La función permiso se introdujo para mejorar la experiencia del usuario en Ethereum.
— korpi (@korpi87) Agosto 19, 2022
Permite a un usuario modificar las cantidades de permiso sin enviar una transacción. Una firma es suficiente.
Con tu firma, cualquiera puede llamar a la función permiso y actualizar tu permiso para un gastador. pic.twitter.com/hem0lPsnW1
Puedes ver permiso en acción cuando usas la dApp 1inch.
— korpi (@korpi87) Agosto 19, 2022
Si quieres vender USDC, no es necesario aprobarlo primero.
Todo lo que necesitas es firmar un mensaje.
Esta firma otorga a 1inch el permiso para gastar todo tu USDC. 1inch no lo hará, pero un contrato malicioso podría hacerlo. pic.twitter.com/Dd7ggJFWtl
Es posible que Joe haya firmado accidentalmente un mensaje de este tipo en un sitio web malicioso.
— korpi (@korpi87) Agosto 19, 2022
Por desgracia, esta vez utilizó una billetera caliente y la firma fue simplemente un clic inofensivo.
Con una billetera de hardware, habría un momento de duda al firmar un mensaje en el dispositivo externo.
Con la firma de Joe, un actor malicioso envió una transacción con la función permit.
Esto le dio al contrato malicioso el permiso para gastar todo el USDC de la billetera de Joe.
Luego se llamó a la función transferFrom y el contrato malicioso vació los fondos. pic.twitter.com/1U6lWr9pmw— korpi (@korpi87) Agosto 19, 2022
Aparentemente, las firmas pueden ser catastróficas.
— korpi (@korpi87) Agosto 19, 2022
En algunos casos, Metamask te advertirá que firmar un mensaje puede ser peligroso.
Pero no en el caso de las aprobaciones firmadas, que técnicamente funcionan según lo diseñado, pero pueden causar mucho daño si se abusan de ellas.https://t.co/5H9rNWVR3b
¿Cómo evitar exploits similares en el futuro?
— korpi (@korpi87) Agosto 19, 2022
– No firmes cualquier cosa en Metamask.
– Tómate el tiempo para entender lo que firmas.
– Ten cuidado con las aprobaciones tradicionales (consulta el hilo enlazado)https://t.co/549NmPly5s
Espero que hayas encontrado útil este hilo.
— korpi (@korpi87) Agosto 19, 2022
Sígueme @korpi87 y revisa mi Notion: https://t.co/ZTqYKmhCNk para más.
Me gusta/Retuitea el primer tweet a continuación para proteger a otros de exploits similares: https://t.co/9pqCSXi9JH
¿La fusión de Ethereum conducirá a la captura regulatoria?
Los problemas de #Ethereum son causados por la optimización constante de la tokenomía en detrimento de la descentralización, la seguridad y la resiliencia. Parece que la Fusión y la PoS llevarán a una captura regulatoria completa por parte de los exchanges centralizados y las plataformas de staking, y no hay salida para ellos. 🧵👇 pic.twitter.com/Ur9tf42K5p
— Samson Mow (@Excellion) Agosto 19, 2022
¿Entonces cómo llegaron aquí? Decidieron establecer un requisito de 32 ETH para hacer staking como parte del protocolo (para bloquear la oferta y maximizar la tokenomía). Eso básicamente hizo que la PoS fuera tan centralizada como fuera posible, y además no tienen la cultura de #Bitcoin de 'no tus claves, no tus monedas'. pic.twitter.com/Ml4QV93ECP
— Samson Mow (@Excellion) Agosto 19, 2022
Así que ahora tienes el 66% de los validadores que deben adherirse a las regulaciones de OFAC. Y el ETH que han depositado para hacer staking no se puede retirar porque la funcionalidad de retiro no se programó... por la tokenomía. 📈 pic.twitter.com/BdjFqYk70J
— Samson Mow (@Excellion) Agosto 19, 2022
¡Pero espera! Los ethereanos solo pueden hacer #UASF como esos Bitcoin Maxis, ¿verdad? Como mostrarle totalmente a Coinbase quién es el jefe. pic.twitter.com/LBSRDOF79o
— Samson Mow (@Excellion) Agosto 19, 2022
No. Primero, los ethereanos no ejecutan sus propios nodos y segundo, la mayoría de los servicios dependen de Infura, pero ese no es el problema principal. pic.twitter.com/8rI1FsDwuU
— Samson Mow (@Excellion) Agosto 19, 2022
Antes de pasar a la siguiente parte, afirmaré que arrestar a desarrolladores por escribir código es horrible y establece un precedente terrible. Dicho esto…
— Samson Mow (@Excellion) Agosto 19, 2022
Para hacer #UASF necesitas software para ejecutar. Ahora todas las bifurcaciones de Ethereum tienen nombres de ciudades geniales como Estambul, Londres, Berlín, etc. Llamemos a esta hipotética bifurcación UASF de Ethereum "Pionyang". Pionyang impediría que Coinbase y la mayoría del 66% censuraran las transacciones sancionadas por OFAC.
— Samson Mow (@Excellion) Agosto 19, 2022
Otra forma de decir "impedir la censura de transacciones sancionadas por OFAC" podría ser "ayudar a evadir sanciones". Quizás olvidamos a Virgil. Así que en fin, ¿quién va a programar Pionyang? El tipo de Tornado Cash fue arrestado, por lo que los desarrolladores de Pionyang probablemente también sean arrestados. pic.twitter.com/HQNtkyTQkg
— Samson Mow (@Excellion) Agosto 19, 2022
¿Quién va a gobernar Pyongyang? ¿Los tipos que hacen señas con “X 🏴”? ¿Vincularán su nodo de Pyongyang a su cuenta .eth también? Coinbase, Kraken, Bitcoin Suisse y los demás que conforman la mayoría del 66% definitivamente no están gobernando Pyongyang.
— Samson Mow (@Excellion) Agosto 19, 2022
Bien, entonces un Ethereum #UASF está fuera de cuestión.
— Samson Mow (@Excellion) Agosto 19, 2022
“¡Pero podemos sancionar a Coinbase y a los demás si se atreven a cumplir!” pic.twitter.com/rmlgn8Cb2Y
Puede que sea un Maxi de Bitcoin Patético™, pero pasé 10 minutos investigando y descubrí que no hay ningún mecanismo para sancionar a Coinbase. No hay código para detectar y castigar a nadie por censurar transacciones. El mecanismo de sanción solo funciona para castigar el tiempo de inactividad o la doble firma.
— Samson Mow (@Excellion) Agosto 19, 2022
Así que estamos de nuevo necesitando la bifurcación de Pionyang que nadie programará ni ejecutará. Incluso si Pionyang pudiera existir, no hay forma para que los usuarios retiren ETH. Y aunque pudieran retirar, no importa porque solo Infura importa. pic.twitter.com/RQ44BWUqzE
— Samson Mow (@Excellion) Agosto 19, 2022
Asumiendo que todas las estrellas se alinearon mágicamente y que había una manera para que los usuarios de Ethereum sancionaran a Coinbase, etc., ¿qué significa eso? Significa que los accionistas minoritarios tendrían un mecanismo para castigar arbitrariamente a la mayoría. Eso no va a funcionar a largo plazo.
— Samson Mow (@Excellion) Agosto 19, 2022
Y por eso llamamos a #Ethereum una #shitcoin. Es un ejercicio inútil, plagado de decisiones de diseño atroces, y diseñado con el único propósito de bombear la moneda. pic.twitter.com/irYDrzJcOO
— Samson Mow (@Excellion) Agosto 19, 2022
Las mentes más inteligentes del mundo cripto ya leen nuestro boletín. ¿Quieres unirte? Únete a ellos.

Ibiam Wayas
Ibiam Wayas cubre la noticia de criptomonedas desde 2019. Estudió Ciencias de la Computación en la Universidad Abierta Nacional de Nigeria. Su trabajo ha aparecido en diversas plataformas de noticias sobre criptomonedas, incluyendo Coinfomania, Crypto News Australia y AltcoinBuzz. Aprovechando su formación en Ciencias de la Computación, ahora se centra en noticias sobre criptomonedas, robótica y longevidad.

















