Solo con fines educativos; no constituye asesoramiento de inversión, jurídico ni de seguridad. La seguridad de un HTLC depende de los scripts o contratos exactos, las reglas de las cadenas, la política de confirmación, las comisiones, la vigilancia y la actuación oportuna.
Respuesta directa
Un contrato con bloqueo de hash y tiempo (HTLC) es un pago condicional con dos rutas de gasto rivales. Antes del vencimiento, el receptor puede cobrar revelando un valor x cuyo hash coincida con el valor comprometido h = H(x) y cumpliendo las firmas o autorizaciones exigidas. Después, el pagador puede usar la ruta de reembolso. El orden exacto en el límite lo determinan la cadena y el contrato, no la palabra «antes».
El bloqueo de hash enlaza acciones: conocer la misma preimagen puede permitir cobrar un pago entrante relacionado tras pagar otro saliente. El bloqueo temporal limita cuánto permanece condicional el dinero. Los canales de pago usan estas propiedades para reenviar pagos y los intercambios atómicos para coordinar transferencias en sistemas distintos.
Un HTLC no es automáticamente sin confianza, atómico, privado ni autoejecutable. También exige scripts o contratos correctos, hash y codificación compatibles, vencimientos escalonados, supuestos de finalidad, acceso a comisiones, vigilancia y confirmación antes del plazo. El HTLC de Lightning es un diseño Bitcoin especificado; otro contrato puede tener semántica distinta.
- Rama de hash: revela la preimagen y satisface la autorización de éxito mientras la ruta sea válida.
- Rama de tiempo: satisface la autorización de reembolso cuando madura el bloqueo absoluto o relativo.
Cómo funciona
Para un pago, Bob elige una preimagen nueva e impredecible x, calcula h = H(x) y entrega h a Alice. Alice bloquea fondos con reglas que comprometen h, identifican a las partes autorizadas y fijan el vencimiento T.
- Alice comprueba algoritmo, codificación, importe, activo, receptor, destino de reembolso, cadena y vencimiento antes de financiar.
- Bob verifica la salida realmente financiada o el contrato desplegado, no un borrador ni la interfaz.
- Si Bob cobra por la rama de éxito, aporta
x; la lógica verificaH(x) = hy la autorización. - Publicar o transmitir
xpuede permitir que Alice o un intermediario liquide otro HTLC con el mismo hash de pago. - Si no se usa a tiempo la rama de éxito, el reembolso pasa a ser válido en
T; eso no lo transmite ni confirma. - Aún hay que preparar o conservar la transacción, pagar comisión suficiente, enviarla, vigilar reemplazos y conflictos y obtener confirmaciones.
- Tras revelar
xa una contraparte o cadena pública, debe tratarse como público y no reutilizarse en otra condición.
Bitcoin distingue bloqueos absolutos y relativos. OP_CHECKLOCKTIMEVERIFY de BIP 65 impide gastar hasta la altura o tiempo de bloque codificado por el tiempo de bloqueo; OP_CHECKSEQUENCEVERIFY de BIP 112 espera a que la entrada alcance una edad relativa. Los campos de la transacción también deben ser compatibles. Un bloqueo temporal es una regla de validación, no un programador.
En Lightning, update_add_htlc lleva importe, payment_hash y cltv_expiry. Cada salto ofrece un HTLC saliente que vence antes que el entrante correspondiente, dejando tiempo para conocer la preimagen y cobrar aguas arriba. BOLT 3 define las rutas de salida de compromiso, HTLC-success y HTLC-timeout, además de firmas, revocación, recorte por polvo y demoras; el esquema de dos ramas no implementa un canal completo.
Ejemplo
Supongamos, solo como ejemplo didáctico, que Alice cambia 1 BTC por 20 ETH de Bob. Solo ilustra el orden: una implementación real necesita código revisado para cada cadena y no debe copiar estos plazos nominales.
- Alice genera
xyh = H(x)nuevos y bloquea1 BTCpara que Bob cobre con la preimagen y Alice reembolse tras48 hours. - Tras verificar la transacción Bitcoin y su política de confirmación, Bob bloquea
20 ETHcon hash y codificación compatibles; la ruta de Alice termina tras24 hoursy luego queda la de reembolso de Bob. - Antes de revelar
xpara cobrar20 ETH, Alice verifica ID de cadena Ethereum, bytecode, dirección, activo, importe, partes,hy ambas rutas invocables. - Bob obtiene
xdel cobro o del mensaje acordado e intenta la ruta de éxito Bitcoin antes de su plazo posterior. - Si el intercambio se detiene antes de revelar, cada reembolso solo se habilita conforme a su cadena; cada parte debe enviarlo y confirmarlo.
La diferencia entre 48 hours y 24 hours es un margen de reacción, no un valor universalmente seguro. Hay que modelar reorganizaciones, tiempo de bloque, finalidad, ejecución, relés, mempool, comisiones, censura y latencia en ambos sistemas. La segunda parte no debe actuar solo porque una interfaz diga «confirmado».
Riesgos
- Compromiso incorrecto: algoritmo, longitud o codificación difieren entre tramos y el mismo
xno sirve en ambos. - Artefacto incorrecto: salida, ID de cadena, dirección, bytecode, activo, importe, receptor o reembolso no coinciden con la interfaz.
- Orden inseguro: vencimientos iguales o demasiado próximos impiden cobrar aguas arriba después de pagar aguas abajo.
- Error de límite: altura, tiempo de bloque, marca temporal, edad relativa y comparaciones
<y<=no equivalen. - Sin reembolso automático: la madurez solo valida el gasto; una cartera, nodo, usuario o vigilante debe actuar.
- Comisión y polvo: el cobro puede no ser rentable, recortarse en Lightning, atascarse o requerir el activo nativo de comisión.
- Confirmación y reorganización: ver una transacción o preimagen no implica liquidación irreversible.
- Carrera y congestión: éxitos, tiempos agotados, reemplazos, conflictos o retrasos maliciosos consumen el margen.
- Implementación: fallos de script, contrato, cartera, firma, nonce, RPC o cliente pueden anular las rutas.
- Vigilancia: una parte desconectada puede perder revelación, vencimiento, cierre forzoso, reemplazo o última hora útil.
- Privacidad: hashes reutilizados, preimágenes, importes, tiempos y eventos pueden correlacionar transferencias.
- Opcionalidad y bloqueo: una parte puede inmovilizar liquidez y abandonar; no se garantizan finalización ni compensación.
Antes de arriesgar valor, pruebe éxito y reembolso con un importe insignificante, registre artefactos y plazos, reserve comisiones y asigne vigilancia y transmisión para fallos.
Errores comunes
- «Los fondos vuelven automáticamente al vencer». Normalmente solo se habilita el reembolso; alguien debe transmitirlo y confirmarlo.
- «Cumplir
H(x) = hes todo el contrato». También importan firmas, ramas, campos, reglas de cadena, revocación y autorización. - «El mismo vencimiento en ambos tramos es justo». El intermediario o segundo actor necesita margen aguas arriba tras conocer
x. - «Una preimagen visible garantiza tiempo para cobrar». Confirmaciones, reorganización, congestión, comisiones y censura pueden agotarlo.
- «Atómico significa que ambas cadenas cambian en una transacción indivisible». Se coordinan estados separados; siguen existiendo aborto, reembolso y estados unilaterales temporales.
- «Los HTLC son anónimos y eliminan toda confianza». Filtran señales y dependen de código, cadenas, claves, vigilancia y operación.
Temas relacionados
Fuentes
- BIP 65: OP_CHECKLOCKTIMEVERIFY - Bitcoin Improvement Proposals (consultado: 2026-08-20)
- BIP 112: CHECKSEQUENCEVERIFY - Bitcoin Improvement Proposals (consultado: 2026-08-20)
- BOLT #2: protocolo entre pares para gestionar canales - Lightning BOLTs (consultado: 2026-08-20)
- BOLT #3: formatos de transacciones y scripts de Bitcoin - Lightning BOLTs (consultado: 2026-08-20)
- BOLT #4: protocolo de enrutamiento cebolla - Lightning BOLTs (consultado: 2026-08-20)