Inicio Desarrollo y Gobernanza Script y Timelocks (CLTV/CSV)

Script y Timelocks (CLTV/CSV)

Bitcoin Script es el lenguaje de programación limitado que define las condiciones para gastar un UTXO. Los timelocks (CLTV y CSV) son instrucciones de Script que imponen condiciones temporales: un UTXO no puede gastarse antes de cierta altura de bloque o cierto tiempo transcurrido. Son la base de Lightning, multifirma con timeouts y contratos avanzados.

Bitcoin Script

Cada UTXO está "bloqueado" por un script que define qué condiciones deben cumplirse para gastarlo: una firma, varias firmas, un hash secreto, una condición temporal, o combinaciones. Script es intencionalmente limitado (no es Turing-completo) para evitar vulnerabilidades.

CLTV: CheckLockTimeVerify

Impide gastar un UTXO hasta que la blockchain alcance cierta altura de bloque o cierta marca temporal. Es un bloqueo absoluto: "no se puede gastar antes del bloque 900.000", independientemente de cuándo se creó la transacción.

CSV: CheckSequenceVerify

Impide gastar un UTXO hasta que haya transcurrido un número determinado de bloques desde que la transacción que lo creó fue confirmada. Es un bloqueo relativo: "no se puede gastar hasta 144 bloques después de su confirmación".

¿Por qué importa?

Los timelocks son la pieza técnica que hace posible Lightning Network (los canales necesitan timeouts para resolver disputas), la multifirma con recuperación temporal (si un firmante desaparece, los fondos se desbloquean tras cierto tiempo) y herencias programadas. Son "contratos inteligentes" en Bitcoin — sencillos, auditables y funcionales.

Errores habituales

  • Creer que Bitcoin no tiene "smart contracts" (los tiene, pero deliberadamente limitados)
  • Confundir CLTV (absoluto) con CSV (relativo)
  • Pensar que los timelocks son una funcionalidad exótica (son la base de Lightning)

Conceptos relacionados

Fuentes primarias

  • BIP 65 (CLTV)
  • BIP 112 (CSV)
  • Bitcoin Wiki: Script