Bloqueos de tiempo: monedas que no pueden moverse hasta un momento determinado

·4 min de lectura·Por SSP Editorial Team
Portada de SSP Academy: bloqueos de tiempo en blockchains

Bloqueos de tiempo: monedas que no pueden moverse hasta un momento determinado

La mayor parte de la seguridad en cripto trata sobre quién puede gastar: qué claves y cuántas firmas. Los bloqueos de tiempo añaden una segunda dimensión: cuándo. Una moneda con bloqueo de tiempo no puede gastarse antes de una fecha o altura de bloque concreta, sin importar quién tenga las claves.

Parece una función de nicho, pero los bloqueos de tiempo sostienen discretamente buena parte del mundo cripto: canales de pago, calendarios de adquisición de tokens (vesting), planes de herencia y retrasos de gobernanza. Entenderlos también explica una decisión de diseño que encontrarás en la mayoría de los monederos.

Dos tipos de tiempo

Las blockchains miden el tiempo de dos maneras, y los bloqueos de tiempo usan ambas:

  • Tiempo absoluto. «No antes del 1 de enero de 2030» o «no antes del bloque 1.000.000». La moneda queda bloqueada hasta ese momento y después se comporta con normalidad.
  • Tiempo relativo. «No hasta 1.000 bloques después de recibir esta moneda». El reloj empieza a contar cuando se crea la moneda, así que cada depósito tiene su propia cuenta atrás.

Los bloqueos absolutos encajan con fechas fijas, como el periodo inicial de un vesting. Los relativos encajan con reglas del tipo «si nadie más actúa en 30 días, esta otra clave puede gastar», un patrón que aparece en diseños de recuperación y de herencia.

Cómo lo hace Bitcoin

Bitcoin tiene bloqueos de tiempo en dos niveles:

  • Nivel de transacción. Toda transacción tiene un campo nLockTime. Si se fija en un momento o bloque futuro, la red no aceptará la transacción hasta entonces. Esto bloquea la transacción, no la moneda: quien tenga las claves todavía puede firmar otra transacción distinta sin el bloqueo.
  • Nivel de script. Dos opcodes, OP_CHECKLOCKTIMEVERIFY (absoluto) y OP_CHECKSEQUENCEVERIFY (relativo), permiten que las propias reglas de gasto de una dirección exijan que haya pasado cierto tiempo. Estos bloquean la moneda: ninguna transacción puede gastarla antes de tiempo, la firme quien la firme.

Las versiones a nivel de script son las potentes. Permiten crear direcciones con varias vías de gasto, como «2 de estas 3 claves en cualquier momento, o esta única clave de respaldo pasado un año».

Cómo lo hacen las cadenas de contratos inteligentes

En Ethereum y cadenas similares, un bloqueo de tiempo es simplemente lógica del contrato: el contrato compara la hora del bloque actual con un plazo almacenado y se niega a actuar antes de que llegue. Eso hace que los bloqueos de tiempo sean flexibles: contratos de vesting que liberan tokens cada mes, sistemas de gobernanza que imponen un periodo de espera entre la aprobación de una votación y su ejecución, y contratos actualizables que anuncian los cambios con días de antelación para que los usuarios puedan reaccionar.

Este último uso es importante para la seguridad. Un intervalo entre «una clave de administrador decidió algo» y «ocurrió» da a todos tiempo para detectar un cambio malicioso; es una de las preguntas que conviene hacerse sobre los poderes de actualización de cualquier contrato.

Para qué sirven los bloqueos de tiempo

  • Herencia y acceso de emergencia. Una vía de respaldo que solo se abre tras un largo periodo de inactividad permite a los herederos recuperar los fondos sin poder tocarlos mientras sigues activo. Planificar la herencia a menudo se reduce exactamente a este tipo de regla.
  • Claves de recuperación. Una clave de recuperación que puede actuar sola, pero solo tras un retraso, es mucho menos peligrosa si la roban: el propietario tiene tiempo de mover los fondos antes.
  • Canales de pago. La Lightning Network se basa en bloqueos de tiempo relativos para dar a cada parte un plazo en el que impugnar un intento de trampa.
  • Vesting y compromisos. Bloquear tokens hasta una fecha convierte una promesa en algo que hace cumplir la cadena en lugar de la confianza.

Las contrapartidas

Los bloqueos de tiempo no salen gratis:

  • También te dejan fuera a ti. Un bloqueo no distingue a un atacante de una emergencia. Si necesitas el dinero antes de la fecha, sigue bloqueado.
  • La complejidad tiene costes. Los scripts con varias vías son más difíciles de construir, auditar y recuperar. Un error en un script con bloqueo de tiempo puede dejar los fondos inutilizables, y puede que solo salga a la luz años después, cuando expire el bloqueo.
  • Los bloqueos relativos requieren mantenimiento. Los esquemas de «tras un año de inactividad» suelen obligar al propietario a renovar sus monedas periódicamente para reiniciar el reloj.
  • El soporte de los monederos es desigual. Una dirección con bloqueo de tiempo solo es útil si el software con el que acabarás recuperándola la entiende.

Los bloqueos de tiempo y SSP

Hoy, las bóvedas de SSP son multifirma pura: un conjunto M de N de claves, sin condiciones de gasto basadas en el tiempo. Tu bóveda 2 de 2 puede gastarse en cualquier momento cuando ambas claves están de acuerdo, y nunca en otro caso. Es una contrapartida deliberada: un script sencillo es fácil de verificar, fácil de restaurar con herramientas estándar y no tiene ningún reloj que pueda sorprenderte dentro de unos años.

La recuperación en SSP funciona mediante tus claves y sus copias de seguridad, no mediante vías con retraso temporal. Cómo se comparan las distintas configuraciones multifirma repasa las opciones que importan a la mayoría de las personas y, para equipos, las bóvedas de SSP Enterprise te permiten elegir cuántos firmantes deben aprobar.

El resumen honesto

Los bloqueos de tiempo permiten que la cadena haga cumplir cuándo pueden moverse las monedas, no solo quién puede moverlas. Hacen posibles los planes de herencia, las claves de recuperación y los canales de pago sin tener que confiar en que alguien espere.

También añaden complejidad y pueden dejar fuera a sus propietarios con la misma firmeza que a los atacantes. Usados con cuidado, son una de las herramientas más útiles del mundo cripto, y los scripts más sencillos siguen siendo a menudo los más seguros.

Comparte este artículo

Artículos relacionados