18 avril 2021 5:02

Contrat Timelock haché (HTLC)

Qu’est-ce qu’un contrat Timelock haché (HTLC)?

Un contrat Hashed Timelock (HTLC) est un type de contrat intelligent utilisé dans les applications blockchain pour éliminer le risque de contrepartie en permettant la mise en œuvre de transactions limitées dans le temps. Concrètement, cela signifie que les destinataires d’une transaction doivent accuser réception du paiement en générant une preuve cryptographique dans un certain délai. Sinon, la transaction n’a pas lieu.

Les swaps atomiques, les échanges inter-chaînes entre crypto-monnaies sont souvent réalisés à l’aide de HTLC. De plus, le Lightning Network (LN) de Bitcoin utilise également des HTLC.

Points clés à retenir

  • Un contrat de blocage temporel haché (HTLC) réduit le risque de contrepartie dans les contrats intelligents décentralisés en créant efficacement un séquestre temporel.
  • Ce type de contrat intelligent oblige le destinataire d’un paiement à l’accepter dans un certain délai ou à le renoncer.
  • Les paiements utilisant les HTLC sont conditionnels et présentent donc des avantages en termes d’efficacité pour les transactions blockchain. Cette propriété fait des HTLC un outil fondamental utilisé par le réseau Lightning.

Comment fonctionne un contrat 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-publique, pour vérifier et valider les transactions. Mais il y a deux éléments qui distinguent HTLC des transactions de crypto-monnaie standard ou des contrats intelligents ordinaires.

Le premier élément est le hashlock. Un hashlock est une version hachée ou cryptée d’une clé publique générée par l’expéditeur d’une transaction. La clé privée associée est ensuite utilisée 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. Les HTLC sont programmés pour expirer après une certaine période de temps ou un certain nombre de blocs générés, créant une date de fin connue.

Le deuxième élément important de HTLC est un calendrier. Deux délais 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 les bitcoins. Cela signifie que les contraintes de temps sont codées en dur et que 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 savoir quand finaliser une transaction.



Pour effectuer une transaction à l’aide de HTLC, les parties intéressées doivent ouvrir des canaux les unes avec les autres.

Exemples concrets d’un timelock haché

Supposons qu’Alice veuille échanger son Bitcoin contre du Litecoin de Bob. Une transaction HTLC typique entre eux se déroule 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 qu’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.