MSTR Cat

Blockchain/Nivel VII · Evolución/7.1 Ethereum: el ordenador mundial/Lección 4

Firma explícita: UTXO frente a aprobaciones de tokens

La firma que gasta y el permiso que la sobrevive

MaterialesUna billetera de hardware con soporte para PSBTAcceso a Etherscan o un explorador de bloques similarLa interfaz de Revoke.cash

Curiosidad

  1. ¿Por qué un contrato inteligente puede mover tus tokens años después de que hayas interactuado con él?
  2. ¿Cuál es la diferencia estructural entre firmar una transacción y otorgar autoridad permanente?
  3. ¿Cómo logra un formato de archivo que todas las entradas y salidas de una transacción de Bitcoin sean visibles antes de aplicar la firma?

Explorar

  1. En las cadenas EVM, el estándar ERC-20 regula las transferencias de tokens. Para mover tokens desde una billetera externa hasta un contrato, el titular debe primero llamar a `approve`, otorgando al contrato permiso para gastar una cantidad específica de ese token en su nombre. Este permiso se registra en el estado del contrato y permanece vigente indefinidamente hasta que sea revocado o agotado. Un usuario que aprueba 10,000 tokens para un intercambio descentralizado mantiene esa autorización incluso después de que finalice el intercambio.
  2. EIP-2612 introdujo `permit`, que permite a los usuarios firmar un mensaje fuera de la cadena que establece este allowance sin enviar una transacción inmediata. La firma sigue siendo válida hasta que se usa o vence su plazo, y otorga el mismo poder de gasto. Una vez que existe un allowance, quien controle la dirección autorizada para gastar puede vaciarlo llamando a `transferFrom`, aunque el usuario no haya vuelto a interactuar con ese contrato.
  3. Los “drainers” de billeteras explotan esta arquitectura. Los sitios de phishing engañan a los usuarios para que firmen una autorización ilimitada de tipo “approve” o “permit” dirigida a una dirección maliciosa. Una vez firmada, el atacante dispone de permiso permanente para mover tokens a voluntad. Revocar estas autorizaciones requiere transacciones adicionales y tarifas de gas, lo que genera dificultades. El resultado es que una sola firma puede crear una vulnerabilidad permanente, invisible a menos que el usuario revise activamente sus autorizaciones vigentes utilizando herramientas como Revoke.cash o Etherscan.
  4. El modelo UTXO de Bitcoin funciona de manera diferente. No existen permisos permanentes. Cada transacción utiliza explícitamente ciertas salidas de transacciones no gastadas (UTXOs) para crear nuevas. Una firma autoriza el traslado de una moneda específica desde una dirección concreta a un destino determinado, sin dejar ninguna autoridad residual. Si un usuario firma una transacción para enviar 1 BTC a una exchange, esa firma no puede reutilizarse más tarde para enviar otros 1 BTC.
  5. BIP-174 define el formato de Transacción de Bitcoin Parcialmente Firmada (PSBT). Antes de la firma, una PSBT contiene todas las entradas y salidas, lo que permite a las billeteras de software o de hardware mostrar exactamente qué se está gastando y adónde va. El usuario ve la estructura completa de la transacción —entradas, salidas, comisiones— y firma ese contenido específico; con el tipo de firma predeterminado, la firma abarca toda la transacción. Como no se crean permisos ocultos, una firma maliciosa solo puede mover las monedas especificadas en esa única transacción; no puede dejar una puerta trasera para transferencias futuras.
  6. La contrapartida es la componibilidad. Las aprobaciones de EVM permiten interacciones complejas de varios pasos en las que los contratos gestionan los saldos de tokens en nombre de los usuarios a lo largo de múltiples acciones. El modelo explícito de Bitcoin exige que cada movimiento se firme individualmente, lo que limita la posibilidad de delegar autoridad en contratos inteligentes con la misma fluidez. Los usuarios ganan seguridad gracias a la transparencia y a la ausencia de permisos permanentes, pero sacrifican la comodidad de agentes automatizados que actúan de forma persistente.

Datos clave

  • La función `approve` de ERC-20 otorga a un contrato permiso para gastar tokens en nombre de un titular, permaneciendo vigente hasta que se revoca.
  • EIP-2612 permite que las firmas fuera de la cadena establezcan allowances de tokens sin una transacción inmediata.
  • Los wallet drainers explotan aprobaciones ilimitadas u olvidadas para vaciar los tokens de billeteras comprometidas.
  • Las transacciones de Bitcoin gastan UTXO específicos y crean nuevas salidas; no se crean permisos permanentes.
  • BIP-174 (PSBT) permite a los usuarios inspeccionar todas las entradas y salidas de una transacción de Bitcoin antes de firmarla.
  • La componibilidad de EVM depende de allowances persistentes, mientras que la seguridad de Bitcoin se basa en firmas explícitas y de un solo uso.

Ejercicio nueve, seis, tres, uno

9ReunirEnumera 9 acciones comunes en DeFi o cripto que requieren la firma del usuario. Indica cuáles crean permisos permanentes y cuáles son transferencias únicas.
6AgruparAgrupa los 9 en 6 según lo que deja tras de sí cada firma.
3DestilarReduce los 6 a 3 razones principales por las cuales los permisos permanentes generan riesgos de seguridad particulares en comparación con las transferencias únicas.
1CristalizarEscribe una oración sobre qué autoriza una firma en cada modelo y cómo persiste (o no) esa autorización.

Verificación de hechos

Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.

Abrir en la academia interactiva →

EN PT ZH JA KO RU DE FR MS