DÉFINITION du contrat Hashed Timelock
Un contrat Hashed Timelock (HTLC) est un type de contrat intelligent utilisé dans les canaux de crypto-monnaie pour éliminer le risque de contrepartie. Il permet la mise en œuvre de transactions assorties de délais.
Concrètement, cela signifie que les destinataires d'une transaction doivent reconnaître le paiement en générant une preuve cryptographique dans un certain délai. Sinon, la transaction n'a pas lieu.
Le commerce inter-chaînes atomique entre les crypto-monnaies est mis en œuvre à l'aide de HTLC. Le réseau Lightning de Bitcoin utilise également HTLC.
RUPTURE DU CONTRAT DE TIMELOCK HACHÉ
Un contrat Hashed Timelock (HTLC) utilise plusieurs éléments des transactions de crypto-monnaie existantes. Par exemple, les transactions HTLC utilisent plusieurs signatures, qui consistent en une clé privée et publique, pour vérifier et valider les transactions. Mais il y a deux éléments qui distinguent HTLC des transactions de crypto-monnaie standard.
Le premier est hashlock. Un hashlock est une version brouillée d'une clé cryptographique générée par l'initiateur d'une transaction. Il est utilisé pour déverrouiller le hachage d'origine. Dans HTLC, la partie d'origine génère une clé et la hache. Le hachage est stocké dans une pré-image qui est ensuite révélée lors de la transaction finale.
Le deuxième élément important de HTLC est un timelock. Deux verrous temporels différents sont utilisés pour définir des contraintes de temps sur les contrats générés à l'aide de HTLC. Le premier est CheckLockTimeVerify (CLTV). Il utilise une base de temps pour verrouiller et libérer des bitcoins. Cela signifie que les contraintes de temps sont codées en dur et les pièces ne sont libérées qu'à une heure et une date spécifiques ou à une hauteur spécifique de la taille du bloc.
Le second est CheckSequenceVerify (CSV). Cela ne dépend pas du temps. Au lieu de cela, il utilise le nombre de blocs générés comme mesure pour garder une trace du moment de finaliser une transaction.
Pour effectuer une transaction en utilisant HTLC, les parties intéressées doivent ouvrir des canaux entre elles.
Comment le HTLC est-il mis en œuvre concrètement?
Supposons qu'Alice veuille échanger son bitcoin contre du litecoin de Bob. Une transaction HTLC typique entre eux a lieu comme suit:
1. Alice génère un hachage à partir de sa clé privée et l'envoie à Bob sur la blockchain litecoin. Elle génère également une pré-image du hachage en créant une transaction nominale. Cette pré-image l'aidera à valider et finaliser la transaction.
2. Bob génère également un hachage à partir de sa clé et l'envoie à Alice. En plus de cela, il crée une pré-image en effectuant une transaction nominale (en litecoin) avec Alice.
3. Une fois que Alice reçoit la transaction litecoin de Bob, elle la signe en utilisant la clé d'origine qui est déjà disponible avec elle dans la pré-image. Bob fait de même de son côté, en utilisant sa clé privée pour déverrouiller la transaction d'Alice.
