De cura a veneno: Por qué el permiso se ha convertido en una fuente de riesgo

1. ¿Qué es el permiso?

Empecemos con una pequeña historia sobre pedir dinero prestado:

Imagina que quiero pedir prestado 1 millón a mi amigo Jack Ma. Sin dudarlo, Jack coge el teléfono y llama al banco, confirmando su identidad y dándoles instrucciones para que me autoricen un límite de retirada de 1 millón. El banco registra esta autorización, y todo lo que tengo que hacer es visitar el banco, identificarme y retirar la cantidad autorizada. Si el banco no encuentra la autorización, mi solicitud es denegada.

Veamos ahora cómo cambia este proceso con un método diferente: el permiso. En este escenario, cuando le pido a Jack 1 millón, él saca un cheque, rellena la cantidad, lo firma y me lo entrega. Llevo el cheque al banco, e incluso sin un registro de autorización, el banco lo cobra basándose en la firma de Jack.

Esto ilustra la diferencia entre Approve y Permit. Approve, una característica esencial de ERC-20, ha sido ampliamente utilizada desde el lanzamiento de Ethereum. Pero, ¿por qué se introdujo Permit más tarde a través de ERC-2612 para lograr el mismo efecto?

2. ¿Por qué se necesitaba el permiso?

La propuesta ERC-2612 fue presentada en marzo de 2019 y finalizada en octubre de 2022. Su desarrollo coincidió con varios picos en los precios del gas de Ethereum. El frenesí del mercado durante las carreras alcistas llevó a los usuarios a gastar más en tarifas de gas para realizar transacciones más rápidas, donde incluso una ventaja de un bloque podría significar un beneficio sustancial.

Sin embargo, este fenómeno suponía una carga para los usuarios, ya que el proceso de dos transacciones necesario para Aprobar resultaba costoso, especialmente para aquellos con fondos más pequeños. La introducción de Permit permitió la firma offline, eliminando la necesidad de autorización inmediata en la cadena. Este cambio significaba que la autorización podía proporcionarse junto con la transferencia de tokens, algo parecido a cobrar un cheque sin necesidad de aprobación bancaria previa.

Aunque esto parecía beneficioso -ahorrarle a Jack una llamada telefónica y reducir las tasas de transacción de los usuarios-, abrió inadvertidamente la caja de Pandora.

3. El rápido aumento de los riesgos

Antes de Permit, los piratas informáticos solían recurrir a métodos de suplantación de identidad que requerían que los usuarios firmaran Aprobar transacciones, lo que incurría en gastos de gasolina y levantaba sospechas. Incluso si los usuarios hacían clic accidentalmente, el tiempo de retardo de las transacciones en la cadena les permitía revertir la acción con una nueva transacción.

Sin embargo, el permiso ha cambiado las reglas del juego. Elimina las tasas de gas y sólo requiere una firma, lo que disminuye la vigilancia del usuario. Como la firma no está en línea, los piratas informáticos pueden tomar el control y aprovecharse de la situación cuando quieran, maximizando sus ganancias.

El impacto de este cambio es evidente en el creciente número de víctimas de phishing y en las cantidades robadas. Según @ScamSniffer:

  • En 2023, las pérdidas por phishing alcanzaron los 295 millones de dólares.
  • A mediados de 2024, esa cifra ya había superado los 314 millones de dólares.
  • En el tercer trimestre de 2024, se produjo un incidente significativo en el que un monedero fue víctima de un ataque de phishing de Permit, que provocó la pérdida de 12.000 $spWETH, valorados en aproximadamente 30 millones de dólares.

Es probable que los desarrolladores que propusieron el Permit, inicialmente destinado a reducir los costes del gas y mejorar la experiencia del usuario, no previeran tales resultados. Lo que pretendía ser un arma de doble filo resultó ser un cuchillo afilado que cortó las barreras protectoras en torno a los activos de los usuarios.

Han surgido métodos similares de firma sin conexión, como Permit2 de Uniswap, que aumenta la dependencia de la firma sin conexión y amplifica los riesgos de suplantación de identidad.

¿Qué es el permiso?

4. Cómo protegerse

Ante esta amenaza inminente, los usuarios pueden tomar varias precauciones para mitigar las pérdidas:

1. Aumentar la sensibilización

  • Cuidado con las tentaciones de lanzamiento desde el aire: Los airdrops pueden ser tentadores, pero muchos son intentos de phishing. Comprueba siempre la legitimidad de un envío aéreo a través de varias fuentes antes de participar.
  • Evitar la señalización ciega: Si entras sin querer en un sitio de phishing y aparece una ventana de transacción, examina los detalles de la transacción. Términos como Permit, Permit2, Approve o IncreaseAllowance indican posibles problemas de autorización, lo que justifica la precaución. Los monederos electrónicos como Keystone pueden ayudar analizando y mostrando los detalles de la transacción, evitando acciones impulsivas.

2. Utilizar herramientas

  • ScamSniffer: Esta extensión del navegador alerta a los usuarios antes de entrar en URL sospechosas, permitiéndoles detener las interacciones rápidamente.
  • Revocar: Revoke.cash muestra los registros de autorización de tokens en tu monedero, aconsejando a los usuarios que revoquen cualquier autorización sospechosa o ilimitada. Limpiar regularmente las autorizaciones minimiza los riesgos.

3. Aislamiento de activos y carteras multifirma

El dicho «no pongas todos los huevos en la misma cesta» también se aplica a los criptoactivos. Almacena los activos importantes en carteras frías como Keystone, utilizando pequeñas carteras calientes para las transacciones diarias. De esta forma, incluso si una cartera se ve comprometida, no todos los activos están en riesgo.

Para mayor seguridad, los monederos multifirma pueden proporcionar una mayor protección. Solo se puede acceder a los activos con un número predeterminado de aprobaciones de monedero, lo que garantiza que un único monedero en peligro no provoque una pérdida total.

5. Conclusión

Aunque no podemos negar el valor que aporta Permit, el creciente número de robos sugiere que sus riesgos pueden superar a sus beneficios. Al igual que ocurrió con el método ethsign, que acabó abandonándose por motivos de seguridad, Permit se enfrenta ahora a un momento crítico. Los desarrolladores deben considerar detenidamente si mejoran o abandonan este método de cara al futuro.