¿Qué es un HTLC?
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.