¿Qué es un HTLC?

José Maldonado
16 NOV 2020
¿Qué es un HTLC?
1.

Introducción

Un HTLC o Hash Time Locked Contract son un medio para crear canales de pagos rápidos en Bitcoin y altcoins derivadas. Los contratos inteligentes HTLC (Hashed Timelock Contract) se han venido utilizando en las transacciones mediante canales de pago, como en Lightning Network, para el intercambio de criptomonedas de diferente naturaleza, para eliminar el riesgo de contraparte. Estos contratos permiten la implementación de transacciones de duración determinada y la atomización de dichas transacciones.

2.

¿Qué es un Hash Time Locked Contract (HTLC)?

Un contrato Hash Time Locked o HTLC es una clase de pagos que utilizan hashlocks y temporizadores (timelock) para requerir que el receptor de un pago reconozca haber recibido el pago antes de una fecha límite generando un comprobante de pago criptográfico o perder la capacidad de reclamar el pago, devolviendo al pagador.

La prueba de pago criptográfica que genera el receptor se puede utilizar para activar otras acciones en otros pagos, lo que convierte a los HTLC en una técnica poderosa para producir pagos condicionales en Bitcoin.

En otras palabras, significa que quienes generan la transacción tienen un tiempo límite para reconocerla en el canal de pago donde se generó dicha transacción, de lo contrario, el dinero se devuelve al pagador y el receptor pierde el derecho a recibir este dinero.

Con los HTLCs se pueden implementar aplicaciones en otras capas de la blockchain, tal como sucede con Lightning Network en Bitcoin, que le da un cierto grado de escalabilidad a la red Bitcoin, mediante la agilización de las transacciones y la disminución de las comisiones que se pagan para validar transacciones directamente en la blockchain. 

Esto, debido a que Lightning Network utiliza canales de pago, mediante el uso de HTLC, que permite administrar las transacciones de la red fuera de la blockchain, lo que permite tener una mayor velocidad al momento de registrar las transacciones. Los registros que Lightning Network realiza en la blockchain de Bitcoin obedecen a momentos y condiciones específicas inherentes a la forma de trabajo de la red. 

3.

Origen de esta idea

La idea de crear una alternativa a los intercambios en Bitcoin, nace de la necesidad de contar con un mecanismo que tenga mayor escalabilidad ante la creciente demanda de transacciones que se registran a diario en la red Bitcoin.

El uso de los contratos inteligentes HTLCs, le permiten a las aplicaciones como Lightning Network implementar una segunda capa en la red blockchain de Bitcoin para gestionar transacciones fuera de la misma a través de canales de pago. Esta posibilidad, les permite a los usuarios de la red, acceder de manera mucho más rápida a la realización de sus negociaciones sin necesidad de tener que esperar a que dichas transacciones sean confirmadas mediante la agregación de éstas a la blockchain de Bitcoin, por ejemplo, lo que representaría al menos unos 60 minutos, en una red descongestionada, para dar por irreversible la transacción efectuada.

4.

¿Cómo funcionan?

Los HTLC constan de dos partes bien significativas, el hashlock y el timelock. Estas son funciones que le permiten a los contratos inteligentes ejecutarse bajo ciertas condiciones acordadas en la realización del contrato.

Cuando un participante está interesado en realizar una transacción con otro participante de mutuo acuerdo, hace uso de estos contratos para establecer las condiciones en que se realizará la transacción, de esta forma cada participante recibe un hash a partir de su clave privada, que le permitirá desbloquear la transacción en cuestión dentro de un determinado rango de tiempo. 

En el contrato se especifica un tiempo prudencial para que quienes participan en la transacción puedan realizar las acciones necesarias para que la transacción se realice sin inconvenientes. Si vencido el tiempo establecido, las condiciones para realizar la transacción aún no han sido satisfechas, la operación se invalida y los fondos se devuelven a sus propietarios originales.

Las redes que implementan estos contratos, como Lightning Network, agregan las condiciones necesarias en que se realizan estos contratos, por lo que es aconsejable documentarse acerca de estas condiciones antes de intentar realizar cualquier operación a través de alguna de estas redes.

Un contrato Hashed Timelock (HTLC) utiliza varios elementos de transacciones de criptomonedas existentes. Por ejemplo, las transacciones HTLC utilizan varias firmas, que consisten en una clave pública y privada, para verificar y validar transacciones. Pero hay dos elementos que distinguen a HTLC de las transacciones de criptomonedas estándar.

 

¿Qué es un HashLock?

Como se mencionó antes, los Contratos de Hash Timelock (HTLC) forman parte importante de la Lightning Network de Bitcoin, pero también son uno de los componentes clave que hacen posible los atomic swaps. Como su nombre indica, se basan en dos funciones clave: un hashlock y timelock.

El hashlock es la función de un HTLC que impide que los fondos se gasten a menos que se revele una parte de los datos (la clave de uno de los participantes en la transacción, por ejemplo). 

Entonces se puede decir que un hashlock es una versión codificada de una clave criptográfica generada por el originador de una transacción. Se utiliza para desbloquear el hash original. En HTLC, la parte de origen genera una clave y le aplica un hash. El hash se almacena en una imagen previa que posteriormente se revela durante la transacción final. 

¿Qué es un timelock?

Por otro lado, la función Timelock es la parte que garantiza que el contrato solo puede ejecutarse dentro de un rango temporal predefinido. En este sentido, el uso de HTLC elimina la necesidad de confianza, porque crea un conjunto específico de reglas que impiden que las transacciones, especialmente los atomic swaps, se ejecuten parcialmente.

En HTLC se utilizan dos bloqueos de tiempo diferentes para establecer restricciones de tiempo en los contratos generados mediante HTLC. El primero es CheckLockTimeVerify (CLTV). Utiliza una base de tiempo para bloquear y liberar bitcoins. Esto significa que las limitaciones de tiempo están codificadas de forma rígida y las monedas se lanzan solo en una fecha y hora específicas o una altura específica del tamaño del bloque.

El segundo es CheckSequenceVerify (CSV). No depende del tiempo. En cambio, utiliza la cantidad de bloques generados como medida para realizar un seguimiento de cuándo finalizar una transacción.

HTLC, como código en Bitcoin

El lenguaje utilizado en la red Bitcoin para implementar los HTLCs son scripts que esta red es capaz de interpretar y ejecutar para hacer que las condiciones plasmadas en los contratos se ejecuten ante la ocurrencia de alguna eventualidad determinada dentro de la red o en alguna aplicación que que se ejecute en una de las capas de las blockchain. En este sentido, los desarrolladores han estado implementando novedosas maneras de interactuar con la blockchain con lenguajes de scripting más fáciles de programar y con mayor eficiencia.

5.

Principales usos de los HTLC

Como ya se apuntó anteriormente, una de las aplicaciones más conocidas de los HTLCs es la que usa Lightning Network en la implementación de los canales de pagos, pero también se usan intensivamente en atomic swaps, aspecto este, que se abordará más detalladamente en uno de los subtítulos siguientes.

Los HTLCs también se usan frecuentemente para la realización de micropagos, con el objeto de hacer factible la ejecución de transacciones con cantidades mínimas de criptomonedas que de otra manera sería imposible de realizar mediante transacciones normales dentro de la blockchain debido al pago de comisiones, que por su alto costo, hace prohibitiva la realización de estos micropagos.

Por ejemplo, mediante Lightning Network se pueden realizar envíos de dinero con comisiones cercanas a cero sin necesidad de usar un tercero de confianza. Por ejemplo, se podrían realizar pagos por artículo en una revista o pagos por mega usado a un servicio de Internet.

Canales de pagos (Payments Channels)

Los contratos Hashed TimeLock (HTLC) se definen como una función especial que se usa para crear contratos inteligentes que pueden modificar los canales de pago. Es decir, los HTLCs permiten la implementación de transacciones de duración determinada entre dos usuarios. 

El destinatario de una transacción HTLC debe reconocer el pago mediante la presentación de una prueba criptográfica dentro de un intervalo de tiempo específico o un número de bloques. Si el destinatario pierde o no reclama el pago, los fondos se devolverán al remitente original.

Estos contratos HTLC se aplican tanto a los canales de pago bidireccionales como a los enrutados, para permitir transferencias seguras de fondos a través de varios canales, sin requerir la confianza de ninguno de los intermediarios.

Atomic Swaps

Los atomic swaps, también conocido como intercambios atómicos, son una técnica mediante la cual se puede intercambiar rápidamente varios tipos de criptomonedas diferentes, que se ejecutan en distintas redes de blockchain. 

Este proceso, también recibe el nombre de atomic cross-chain trading, y está basado en la ejecución de contratos inteligentes, que permite a los usuarios intercambiar sus monedas directamente desde sus wallets personales. En resumen, los atomic swaps son operaciones peer to peer (P2P) a través de diferentes blockchains.

Relacionado: Explicación de Lightning Network (Red Relámpago)

6.

Pros y contras de los HTLC

Una de las mayores ventajas de los contratos HTLCs es la facilidad que brindan a los usuarios para realizar transacciones de un punto a otro, pasando a través de una serie de nodos, prácticamente al instante, sin necesidad de confiar en los nodos intermediarios gracias a la tecnología hash implicada en el proceso.

Todo esto llevado a cabo gracias a la flexibilidad que provee HTLC para llevar realizar las operaciones acorde con las condiciones especificadas en el contrato.

La escalabilidad que los HTLCs aportan a la red Bitcoin también es de marcada importancia, dado que se evitan los cuellos de botella originado por el cúmulo de transacciones estándar pendientes en la red que contribuyen a un alza en el valor de las comisiones que se cobran por incluir una determinada transacción en la blockchain.

La reducción de los gastos originados por las comisiones en las transacciones es otro punto a favor que han conseguido los HTLCs en la implementación de los canales de pago, así como la posibilidad que esta característica abre de realizar micropagos.

Por otro lado, algunos laboratorios y expertos del mundo de la criptografía, han hallado sus puntos flacos en los contratos HTLCs, incluyendo la trazabilidad de las operaciones, haciendo relativamente fácil determinar algorítmicamente el origen y el destino de una transacción a través del sistema de enrutamiento de dichas transacciones utilizando para ello las claves compartidas en el sistema.

La existencia de agujeros de gusanos, que podrían servir como puerta de entrada a personas maliciosas que pudieran usar esta debilidad para hurtar comisiones de algunos nodos en la red.

7.

Otras alternativas a los HTLC

A pesar de las ventajas que ofrece la implementación de los HTLCs, algunos desarrolladores tienen su interés enfocado hacia el desarrollo de nuevas alternativas a estos contratos inteligentes. Desarrolladores del ecosistema de Lightning Network están sumando esfuerzos para realizar cambios profundos en esta red con miras a utilizar PTLC en la ejecución de transacciones con un nivel mucho mayor de privacidad que las que ofrece actualmente HTLC.

Otros contratos inteligentes que se perfilan en la ejecución de transacciones multifirmas están los Taproots, Grafroot que combinados con las firmas Schnorr y MAST, persiguen una nueva era de contratos inteligentes en la red Bitcoin que les den mayor privacidad, versatilidad y seguridad a las transacciones.

8.

Conclusiones

Lightning Network en Bitcoin es uno de los casos de uso más populares de HTLC con su implementación de canales de pago para realizar transacciones entre los usuarios al margen de la blockchain. Esta manera de realizar operaciones la hace más rápida de tal manera que los usuarios puedan hacer sus transacciones casi de inmediato.

Al implementar HTLC en los canales de pago, los fondos se pueden transferir de un usuario a otro a través de nodos interconectados en la red, sin requerir ningún nivel de confianza. A este proceso se le conoce como enrutamiento de red. Y le permite a un usuario X intercambiar fondos con un usuario Y, incluso si no están conectados directamente a través de un canal de pago. Mediante estos contratos HTLCs se abre la posibilidad que el usuario X envíe sus fondos al usuario Y a través de otros participantes conectados a la red, y las funciones de hashlock y timelock garantizan que los nodos intermedios no puedan interceptar los fondos.

Además de usarse en Lightning Network, los HTLC también pueden ser útiles en otros contextos, como atomic swaps entre cadenas, contratos inteligentes financieros y depósito en garantía, y mucho más.