Unidad 7 · Lección 7.1

CLTV y CSV

Unidad 7: Timelocks y herencia · lección 1 de 4

Al terminar esta lección podrás

  • Distinguir el plazo absoluto (CLTV, after) del relativo (CSV, older) y saber desde cuándo cuenta cada uno
  • Saber con qué se compara un plazo por fecha y cuál es el primer bloque en que se puede gastar

Casi todo plan de herencia con bitcoin acaba en la misma frase: «esta clave puede gastar, pero no antes de tal momento». Eso se escribe con un timelock, y hay dos formas de medir el momento. Elegir una u otra es elegir cómo vas a mantener el plan durante años.

  • Absoluto: CLTV, after(). El script lleva escrita una altura de bloque o una fecha. Por debajo de 500.000.000 el número es una altura; desde ahí, una hora Unix. Todas las monedas de ese script se abren a la vez, lleguen cuando lleguen. Aplazar la fecha exige otro script y mover los fondos.
  • Relativo: CSV, older(). El plazo cuenta desde que se confirma cada moneda. Cada UTXO tiene su reloj, y al moverlo vuelve a cero, así que el plazo se renueva sin cambiar de billetera. Tiene techo: 65.535 bloques, unos 455 días, o 65.535 saltos de 512 segundos, unos 388 días.

Tres detalles separan un plan que funciona de uno que falla por poco. Uno: el script no mira el reloj. Compara su número con un campo de la transacción que gasta, nLockTime o nSequence, y son los nodos los que no la dejan entrar en un bloque antes de tiempo. Dos: un plazo por fecha no se compara con la hora del bloque, sino con la mediana de los 11 anteriores (BIP-113), que va alrededor de una hora por detrás. Tres: «a partir del bloque 900.000» quiere decir que la transacción entra como pronto en el 900.001.

Para tu plan, todo eso se resume en una regla: nada se programa al bloque ni a la hora. Pasar de bloques a fechas es una estimación, y el ritmo real de los bloques varía.

«Script y Timelocks (CLTV/CSV)» es larga. Para esta lección lee «Cuatro piezas, no dos», «Altura o tiempo: el umbral de 500.000.000», «La mediana de tiempo (BIP-113)», «El script no lee el reloj», «Primer bloque válido» y «Requisitos que se olvidan». La codificación de nSequence y los límites de older() quedan para la lección siguiente. De «Bitcoin Script» basta con «scriptSig y scriptPubKey» y «Opcodes clave», si te hace falta un repaso.

Lee en Bitcoinpedia

Pruébalo

Conversor de timelocksAbrir aparte
Prueba:
100 % local: nada sale de tu navegador
Actividad

En el conversor, elige «Una fecha o altura fija», deja la referencia que viene puesta y escribe la altura 1.000.000. ¿Cuál es el primer bloque que puede incluir la transacción? ¿Qué fecha estima y hacia qué lado puede fallar? Pulsa después «1 de enero de 2027»: ¿con qué hora se compara esa fecha? Por último pulsa «6 semanas» y compara las dos formas de contar. Solución: el primer bloque es el 1.000.001; la estimación es hacia el 6 de mayo de 2027, probablemente antes. La fecha se compara con la mediana de los 11 bloques anteriores (BIP-113). Por tiempo salen 7.088 unidades de 512 segundos, algo más de seis semanas porque se redondea hacia arriba; por bloques, 6.048, que son seis semanas solo si los bloques llegan cada 10 minutos. Ahora, en tu escenario, apunta qué clase de plazo encajaría en una rama de recuperación, absoluto o relativo, y por qué. Piensa en quién la mantendría: la persona con ahorros casi no mueve su dinero, Marta y Luis gastan poco y Luis no se maneja con la técnica, y en la cafetería quizá la respuesta sea que no hace falta plazo. Lo decidirás del todo en la lección 7.4.

Piénsalo o escríbelo a mano. No guardamos lo que respondas.