Empecemos con una historia simple sobre pedir prestado dinero:
Estoy planeando pedir prestado un millón a mi buen amigo Jack Ma. Sin dudarlo, Jack Ma levanta el teléfono, llama al banco y, después de verificar su identidad, le dice al banco: "Estoy autorizando a fulano de tal a retirar un millón". El banco reconoce y registra esta autorización.
El siguiente paso es ir al banco y decirle al cajero que estoy aquí para retirar el millón de dólares autorizados por Jack Ma. El banco verifica el registro de autorización y, después de confirmar que soy la persona correcta, entrega el millón de dólares.
Esta historia es una buena analogía de cómo funciona la autorización de Aprobar en Ethereum. En este proceso, solo Jack Ma (el propietario del activo) puede llamar al banco para dar la autorización (en la cadena), y el banco (contrato de token) gestiona estas autorizaciones. Solo después de esto puedo (la parte autorizada) retirar una cantidad que no exceda la autorización. Si el banco no encuentra ningún registro de autorización, mi solicitud de retiro será rechazada sin duda.
Ahora, ¿qué pasaría si usáramos un método diferente de autorización, como Permitir? ¿Cómo funcionaría entonces pedir dinero prestado a Jack Ma?
Esta vez, pido prestado otro millón. Generoso como siempre, Jack Ma ni siquiera se molesta en llamar al banco. En lugar de eso, saca un talonario de cheques, rellena la cantidad, lo firma y me lo entrega. Luego llevo este cheque al banco. A pesar de que el banco no tiene ningún registro de autorización, el banco puede verificar la firma de Jack Ma en el cheque y, en base a eso, me entrega la cantidad especificada.
Hasta ahora, probablemente puedas ver la diferencia en los procesos. Aprobar, como función principal de ERC-20, se ha utilizado ampliamente desde poco después del lanzamiento de Ethereum. Entonces, ¿por qué se introdujo el método de Permiso en ERC-2612 para lograr un resultado similar?
La propuesta ERC-2612 fue presentada en marzo de 2019 y completó su revisión final en octubre de 2022. Su implementación está estrechamente relacionada con los fuertes aumentos en los precios de gas que experimentó la red principal de Ethereum durante ese período.
Imagen: Los precios del gas en la red principal de ETH se mantuvieron altos de 2020 a 2022
La combinación de un mercado alcista furioso y el efecto de creación de riqueza de nuevos proyectos on-chain avivó el entusiasmo de los usuarios por realizar transacciones on-chain. Estaban dispuestos a pagar tarifas más altas para que sus transacciones se procesaran más rápido porque a veces incluso ser confirmados solo un bloque antes podría resultar en retornos significativamente más altos.
Sin embargo, esto tuvo un inconveniente: cuando los usuarios querían comerciar tokens en la cadena, a menudo tenían que soportar tarifas de gas exorbitantes. Con el método Approve, completar un solo intercambio de tokens requería dos transacciones (TX). Para los usuarios con fondos más pequeños, las tarifas de transacción podrían ser una pesadilla.
La introducción de Permit en ERC-2612 cambió este proceso al reemplazar la aprobación en cadena con firmas fuera de línea, las cuales no necesitan ser presentadas de inmediato. Los usuarios solo necesitan proporcionar la autorización al transferir tokens, similar a cómo en la historia de préstamos, solo necesitaba mostrar el cheque de Jack Ma al retirar el dinero del banco.
Jack Ma ocupado se ahorra una llamada telefónica, y parece que los usuarios también se ahorran una TX. Cuando los precios del gas son altos, los ahorros en comisiones pueden ser sustanciales, lo que hace que parezca una situación beneficiosa para todos. Sin embargo, casi nadie se dio cuenta de que se estaba abriendo silenciosamente la caja de Pandora...
Antes de la aparición de Permit, una de las tácticas comunes que los hackers usaban para pescar a los usuarios de cripto era engañarlos para que firmaran una transacción de Aprobar. Como estas transacciones requerían que los usuarios gastaran gas, a menudo se despertaban sospechas, lo que dificultaba que los hackers tuvieran éxito. Incluso si los usuarios hicieran clic accidentalmente en la transacción, el hecho de que tardara algún tiempo en confirmarse en la cadena les daba la oportunidad de enviar otra transacción con el mismo nonce para cancelarla, lo que hacía relativamente difícil que los hackers llevaran a cabo sus planes.
Sin embargo, la llegada de Permit fue como un sueño hecho realidad para los hackers. A diferencia de Approve, Permit no consume gas y solo requiere una firma, lo que disminuye significativamente la guardia del usuario. Además, debido a la naturaleza de las firmas sin conexión, el control está en manos del hacker. No solo los usuarios no tienen oportunidad de deshacer sus errores, sino que los hackers también pueden mantener la autorización y atacar en el momento más ventajoso, maximizando sus ganancias.
Esto ha conducido a un aumento notable en el número de víctimas de phishing y la cantidad de fondos robados. Según estadísticas de @ScamSniffer"">@ScamSniffer:
Imagen: Informe de Ataques de Phishing de ScamSniffer para la Primera Mitad de 2024
Tal escenario probablemente estaba más allá de lo que los desarrolladores originales imaginaron. El propósito de introducir Permit era reducir los costos de gas, mejorar la experiencia del usuario y aumentar la eficiencia. Lo que se pensaba que era una espada de doble filo, con ganancias y pérdidas, resultó ser una hoja de un solo filo, afilada como una navaja, abriendo un agujero enorme en el escudo que supuestamente protegería los activos de los usuarios.
El permiso no es el único método de autorización basado en firmas. Por ejemplo, Uniswap introdujo más tarde Permit2, lo que permite que todos los tokens ERC-20 admitan firmas fuera de línea. Como el DEX número 1, el movimiento de Uniswap aumentó aún más la dependencia de los usuarios de las firmas fuera de línea, lo que, a su vez, aumentó el riesgo de ataques de phishing.
Como usuarios comunes, ¿qué pasos podemos tomar para evitar pérdidas y protegernos de esta espada de Damocles, una afilada cuchilla, que cuelga sobre nosotros?
1⃣ Aumentar la conciencia
Mantén la calma cuando te tienten los airdrops.
Los airdrops de proyectos criptográficos pueden parecer tentadores, pero la mayoría de las veces son ataques de phishing disfrazados de airdrops. Cuando te encuentres con esta información, no te apresures a reclamarla. En su lugar, verifica la legitimidad del airdrop y su sitio web oficial a través de múltiples fuentes para evitar caer en trampas de phishing.
Evitar la firma ciega
Si aterrizas accidentalmente en un sitio web de phishing y no te das cuenta, tómate un momento para revisar cuidadosamente la transacción cuando tu billetera te solicite firmar. Si aparecen términos como Permitir, Permitir2, Aprobar o AumentarAutorización, significa que la transacción está solicitando autorización de tokens. En este punto, debes tener precaución porque los airdrops legítimos no requieren este proceso. Las billeteras de hardware Keystone han implementado funciones de análisis y visualización de transacciones, lo que permite a los usuarios comprender mejor los detalles de la transacción y evitar la firma a ciegas, lo que podría resultar en consecuencias graves debido a decisiones apresuradas.
Imagen: Keystone Hardware Wallet, Rabby Wallet Analizando y Mostrando Transacciones de Firma Permit2
2⃣ Hacer buen uso de las herramientas
ScamSniffer
Para el usuario promedio, identificar con precisión los sitios web de phishing puede ser muy desafiante y es fácil que algunos pasen desapercibidos. Al utilizar el complemento del navegador de ScamSniffer, recibirás alertas al intentar acceder a posibles sitios de phishing, dándote la oportunidad de dejar de interactuar antes de que sea demasiado tarde.
Revocar
Revoke.cashte permite ver las autorizaciones de tokens en tu billetera. Recomendamos revocar cualquier autorización sospechosa o ilimitada. Es una buena práctica limpiar regularmente tus autorizaciones y limitarlas solo a las cantidades necesarias.
3⃣ Segregación de activos y Multi-Sig
Como dice el dicho, no pongas todos los huevos en la misma cesta, este principio también se aplica a los activos de criptomonedas. Por ejemplo, puedes almacenar grandes cantidades de activos en una billetera fría como Keystone, mientras usas una billetera caliente para transacciones diarias. Incluso si eres víctima de un ataque, tu saldo completo no se verá comprometido.
Para aquellos con mayores demandas de seguridad, el uso de monederos multi-firma (multi-sig) puede mejorar aún más la protección. Los activos bajo multi-firma solo pueden moverse cuando se alcanza un cierto umbral de aprobaciones de monederos. Si se compromete un monedero pero no se alcanza el umbral, los hackers no tendrán acceso a sus activos.
Si bien no podemos negar el valor que ha aportado Permit, el creciente número de robos también muestra que los riesgos que presenta pueden superar sus beneficios. Al igual que el antiguo método de ethsign, que era preferido por los hackers debido a su poca legibilidad y graves fallos de seguridad, la mayoría del software de billetera ha desactivado Permit, reemplazando sus funcionalidades por alternativas más seguras.
Mientras nos enfocamos en Permit, ¿no estamos también en una encrucijada similar a la que enfrentó ethsign? Si mejorar y actualizar o descartar por completo es una pregunta que los desarrolladores de ETH necesitan tomarse el tiempo para considerar y discutir.
Antes de llegar a cualquier conclusión, Keystone tiene como objetivo mejorar la prevención de riesgos relacionados con el Permiso en sus monederos de hardware. Estamos iniciando una votación para agregar las siguientes características:
Empecemos con una historia simple sobre pedir prestado dinero:
Estoy planeando pedir prestado un millón a mi buen amigo Jack Ma. Sin dudarlo, Jack Ma levanta el teléfono, llama al banco y, después de verificar su identidad, le dice al banco: "Estoy autorizando a fulano de tal a retirar un millón". El banco reconoce y registra esta autorización.
El siguiente paso es ir al banco y decirle al cajero que estoy aquí para retirar el millón de dólares autorizados por Jack Ma. El banco verifica el registro de autorización y, después de confirmar que soy la persona correcta, entrega el millón de dólares.
Esta historia es una buena analogía de cómo funciona la autorización de Aprobar en Ethereum. En este proceso, solo Jack Ma (el propietario del activo) puede llamar al banco para dar la autorización (en la cadena), y el banco (contrato de token) gestiona estas autorizaciones. Solo después de esto puedo (la parte autorizada) retirar una cantidad que no exceda la autorización. Si el banco no encuentra ningún registro de autorización, mi solicitud de retiro será rechazada sin duda.
Ahora, ¿qué pasaría si usáramos un método diferente de autorización, como Permitir? ¿Cómo funcionaría entonces pedir dinero prestado a Jack Ma?
Esta vez, pido prestado otro millón. Generoso como siempre, Jack Ma ni siquiera se molesta en llamar al banco. En lugar de eso, saca un talonario de cheques, rellena la cantidad, lo firma y me lo entrega. Luego llevo este cheque al banco. A pesar de que el banco no tiene ningún registro de autorización, el banco puede verificar la firma de Jack Ma en el cheque y, en base a eso, me entrega la cantidad especificada.
Hasta ahora, probablemente puedas ver la diferencia en los procesos. Aprobar, como función principal de ERC-20, se ha utilizado ampliamente desde poco después del lanzamiento de Ethereum. Entonces, ¿por qué se introdujo el método de Permiso en ERC-2612 para lograr un resultado similar?
La propuesta ERC-2612 fue presentada en marzo de 2019 y completó su revisión final en octubre de 2022. Su implementación está estrechamente relacionada con los fuertes aumentos en los precios de gas que experimentó la red principal de Ethereum durante ese período.
Imagen: Los precios del gas en la red principal de ETH se mantuvieron altos de 2020 a 2022
La combinación de un mercado alcista furioso y el efecto de creación de riqueza de nuevos proyectos on-chain avivó el entusiasmo de los usuarios por realizar transacciones on-chain. Estaban dispuestos a pagar tarifas más altas para que sus transacciones se procesaran más rápido porque a veces incluso ser confirmados solo un bloque antes podría resultar en retornos significativamente más altos.
Sin embargo, esto tuvo un inconveniente: cuando los usuarios querían comerciar tokens en la cadena, a menudo tenían que soportar tarifas de gas exorbitantes. Con el método Approve, completar un solo intercambio de tokens requería dos transacciones (TX). Para los usuarios con fondos más pequeños, las tarifas de transacción podrían ser una pesadilla.
La introducción de Permit en ERC-2612 cambió este proceso al reemplazar la aprobación en cadena con firmas fuera de línea, las cuales no necesitan ser presentadas de inmediato. Los usuarios solo necesitan proporcionar la autorización al transferir tokens, similar a cómo en la historia de préstamos, solo necesitaba mostrar el cheque de Jack Ma al retirar el dinero del banco.
Jack Ma ocupado se ahorra una llamada telefónica, y parece que los usuarios también se ahorran una TX. Cuando los precios del gas son altos, los ahorros en comisiones pueden ser sustanciales, lo que hace que parezca una situación beneficiosa para todos. Sin embargo, casi nadie se dio cuenta de que se estaba abriendo silenciosamente la caja de Pandora...
Antes de la aparición de Permit, una de las tácticas comunes que los hackers usaban para pescar a los usuarios de cripto era engañarlos para que firmaran una transacción de Aprobar. Como estas transacciones requerían que los usuarios gastaran gas, a menudo se despertaban sospechas, lo que dificultaba que los hackers tuvieran éxito. Incluso si los usuarios hicieran clic accidentalmente en la transacción, el hecho de que tardara algún tiempo en confirmarse en la cadena les daba la oportunidad de enviar otra transacción con el mismo nonce para cancelarla, lo que hacía relativamente difícil que los hackers llevaran a cabo sus planes.
Sin embargo, la llegada de Permit fue como un sueño hecho realidad para los hackers. A diferencia de Approve, Permit no consume gas y solo requiere una firma, lo que disminuye significativamente la guardia del usuario. Además, debido a la naturaleza de las firmas sin conexión, el control está en manos del hacker. No solo los usuarios no tienen oportunidad de deshacer sus errores, sino que los hackers también pueden mantener la autorización y atacar en el momento más ventajoso, maximizando sus ganancias.
Esto ha conducido a un aumento notable en el número de víctimas de phishing y la cantidad de fondos robados. Según estadísticas de @ScamSniffer"">@ScamSniffer:
Imagen: Informe de Ataques de Phishing de ScamSniffer para la Primera Mitad de 2024
Tal escenario probablemente estaba más allá de lo que los desarrolladores originales imaginaron. El propósito de introducir Permit era reducir los costos de gas, mejorar la experiencia del usuario y aumentar la eficiencia. Lo que se pensaba que era una espada de doble filo, con ganancias y pérdidas, resultó ser una hoja de un solo filo, afilada como una navaja, abriendo un agujero enorme en el escudo que supuestamente protegería los activos de los usuarios.
El permiso no es el único método de autorización basado en firmas. Por ejemplo, Uniswap introdujo más tarde Permit2, lo que permite que todos los tokens ERC-20 admitan firmas fuera de línea. Como el DEX número 1, el movimiento de Uniswap aumentó aún más la dependencia de los usuarios de las firmas fuera de línea, lo que, a su vez, aumentó el riesgo de ataques de phishing.
Como usuarios comunes, ¿qué pasos podemos tomar para evitar pérdidas y protegernos de esta espada de Damocles, una afilada cuchilla, que cuelga sobre nosotros?
1⃣ Aumentar la conciencia
Mantén la calma cuando te tienten los airdrops.
Los airdrops de proyectos criptográficos pueden parecer tentadores, pero la mayoría de las veces son ataques de phishing disfrazados de airdrops. Cuando te encuentres con esta información, no te apresures a reclamarla. En su lugar, verifica la legitimidad del airdrop y su sitio web oficial a través de múltiples fuentes para evitar caer en trampas de phishing.
Evitar la firma ciega
Si aterrizas accidentalmente en un sitio web de phishing y no te das cuenta, tómate un momento para revisar cuidadosamente la transacción cuando tu billetera te solicite firmar. Si aparecen términos como Permitir, Permitir2, Aprobar o AumentarAutorización, significa que la transacción está solicitando autorización de tokens. En este punto, debes tener precaución porque los airdrops legítimos no requieren este proceso. Las billeteras de hardware Keystone han implementado funciones de análisis y visualización de transacciones, lo que permite a los usuarios comprender mejor los detalles de la transacción y evitar la firma a ciegas, lo que podría resultar en consecuencias graves debido a decisiones apresuradas.
Imagen: Keystone Hardware Wallet, Rabby Wallet Analizando y Mostrando Transacciones de Firma Permit2
2⃣ Hacer buen uso de las herramientas
ScamSniffer
Para el usuario promedio, identificar con precisión los sitios web de phishing puede ser muy desafiante y es fácil que algunos pasen desapercibidos. Al utilizar el complemento del navegador de ScamSniffer, recibirás alertas al intentar acceder a posibles sitios de phishing, dándote la oportunidad de dejar de interactuar antes de que sea demasiado tarde.
Revocar
Revoke.cashte permite ver las autorizaciones de tokens en tu billetera. Recomendamos revocar cualquier autorización sospechosa o ilimitada. Es una buena práctica limpiar regularmente tus autorizaciones y limitarlas solo a las cantidades necesarias.
3⃣ Segregación de activos y Multi-Sig
Como dice el dicho, no pongas todos los huevos en la misma cesta, este principio también se aplica a los activos de criptomonedas. Por ejemplo, puedes almacenar grandes cantidades de activos en una billetera fría como Keystone, mientras usas una billetera caliente para transacciones diarias. Incluso si eres víctima de un ataque, tu saldo completo no se verá comprometido.
Para aquellos con mayores demandas de seguridad, el uso de monederos multi-firma (multi-sig) puede mejorar aún más la protección. Los activos bajo multi-firma solo pueden moverse cuando se alcanza un cierto umbral de aprobaciones de monederos. Si se compromete un monedero pero no se alcanza el umbral, los hackers no tendrán acceso a sus activos.
Si bien no podemos negar el valor que ha aportado Permit, el creciente número de robos también muestra que los riesgos que presenta pueden superar sus beneficios. Al igual que el antiguo método de ethsign, que era preferido por los hackers debido a su poca legibilidad y graves fallos de seguridad, la mayoría del software de billetera ha desactivado Permit, reemplazando sus funcionalidades por alternativas más seguras.
Mientras nos enfocamos en Permit, ¿no estamos también en una encrucijada similar a la que enfrentó ethsign? Si mejorar y actualizar o descartar por completo es una pregunta que los desarrolladores de ETH necesitan tomarse el tiempo para considerar y discutir.
Antes de llegar a cualquier conclusión, Keystone tiene como objetivo mejorar la prevención de riesgos relacionados con el Permiso en sus monederos de hardware. Estamos iniciando una votación para agregar las siguientes características: