Blockchain/Nivel IV · El protocolo a fondo/4.1 Script/Lección 5
Hashlocks y HTLCs
El secreto que lo desbloquea todo, y el temporizador que evita que se pierda para siempre
MaterialesCualquier editor de texto o línea de comandos con soporte para SHA-256Un explorador de bloques (p. ej., mempool.space)El documento técnico de la Red Lightning de Poon y Dryja
Curiosidad
- ¿Cómo se puede bloquear un pago con una clave que solo una persona conoce, sin que esa persona tenga que confiar en nadie más?
- Si revelar el secreto para reclamar su propio dinero lo expone a toda la red, ¿qué impide que otros lo roben primero?
- ¿Por qué cada salto en una ruta de pago con múltiples nodos necesita un plazo ligeramente diferente?
Explorar
- Un hashlock es una condición de la Script de Bitcoin que restringe el gasto hasta que se revelan datos específicos, la preimagen. Las monedas quedan bloqueadas detrás de un hash, generalmente proporcionado por quien posee el secreto. La propiedad crucial aquí es que si algún participante revela la preimagen para reclamar sus fondos, lo hace ante quien ve esa solicitud: en la cadena, ante todos; dentro de un canal Lightning, ante la contraparte.
- Esta revelación pública permite que otras partes que poseen salidas bloqueadas por el mismo hash también las puedan gastar. En la Red Lightning, esto significa que cuando el destinatario final (Charlie) revela el secreto para reclamar el pago de Bob, ese mismo secreto desbloquea la salida de Alice, que estaba bloqueada para Bob. Este mecanismo permite la atomicidad: o todos reciben su pago, o nadie lo hace.
- Sin embargo, un hashlock puro tiene una deficiencia: si Charlie desaparece y nunca revela la preimagen, los fondos quedan atrapados para siempre. Al añadir un timelock se crea un contrato con bloqueo temporal por hash (HTLC). El script ahora establece que, en el último salto ofrecido por Bob: “Charlie puede reclamar estas monedas revelando la preimagen antes de la fecha límite T, O bien Bob puede recuperarlas después de T”.
- Esta lógica de doble vía garantiza un funcionamiento sin necesidad de confianza. Si el pago tiene éxito, Charlie revela el secreto dentro del plazo establecido, lo que desencadena una cadena de reclamos por parte de Bob hacia Alice. Si el pago falla o Charlie se desconecta, cada HTLC vence su plazo y su proponente (Bob en el caso de Charlie, Alice en el caso de Bob) recupera los fondos a través de la rama de tiempo de espera del script.
- Este protocolo de equidad es lo que permite el enrutamiento multi-hop. Cada HTLC en la ruta tiene un tiempo de espera ligeramente más largo que el HTLC que su holder ofrece al siguiente nodo aguas abajo. Este intervalo protege a cada nodo intermedio: si su par aguas abajo reclama el pago con la preimagen en el último momento, el nodo intermedio todavía tiene tiempo de utilizar esa preimagen hacia arriba antes de que se pueda reembolsar su propio HTLC entrante.
- Aunque los acertijos basados en scripts pueden ser complejos, los contratos del mundo real como los HTLC siempre incluyen verificaciones de firmas junto con hashlocks y timelocks. Esto vincula la solución a partes específicas e impide el comportamiento de “front-running” por parte de los mineros, es decir, cuando un minero podría encontrar una preimagen válida en el mempool y redirigir el pago hacia sí mismo antes de que sea confirmado.
Datos clave
- Un hashlock restringe los gastos hasta que se revele públicamente un dato específico (la preimagen).
- Una vez que se abre cualquier hashlock que utilice un hash específico, la preimagen revelada permite gastar todos los demás hashlocks que usen ese mismo hash.
- Un HTLC combina hashlocks y timelocks para exigir que el destinatario gaste los fondos antes de una fecha límite o permitir al remitente un reembolso.
- Los HTLC se utilizan en las transacciones de compromiso de la Red Lightning para permitir un enrutamiento multi-hop sin necesidad de confianza, con atomicidad.
- El script proporciona OP_SHA256 y OP_HASH160 para los hashlocks; Lightning utiliza hashes de pago SHA-256.
- En 2013, Tier Nolan propuso intercambios atómicos entre cadenas utilizando este mecanismo de hashlock.
Ejercicio nueve, seis, tres, uno
9ReunirEnumera 9 escenarios del mundo real o criptográficos en los que una acción revela un secreto que permite llevar a cabo múltiples acciones adicionales (por ejemplo, abrir un cajón fuerte, publicar una prueba de trabajo).
6AgruparAgrupa los 9 en 6 según la forma en que se protege el secreto: único propietario, múltiples propietarios, con límite de tiempo, con límite de espacio, público pero costoso o irreversible.
3DestilarReduce los 6 a 3 mecanismos fundamentales que permiten la coordinación sin confianza entre partes que no se conocen.
1CristalizarEscribe una oración sobre por qué un hash es un compromiso y una preimagen es una clave, y cómo un temporizador los hace seguros.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.