Script y Timelocks (CLTV/CSV)
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