Fonctionnement du HTLC
Ce type de contrat utilise de nombreux éléments de transactions de cryptos existantes, comme plusieurs signatures composées d’une clé privée et d’une clé publique pour vérifier puis valider les transactions. Deux éléments distinguent toutefois ce contrat des transactions standards avec des contrats intelligents :
- Le hashlock : verrouillage du hachage
- Le timelock : verrouillage du temps
Le verrouillage du hachage (hashlock)
Il s’agit d’une version hachée (chiffrée) d’une clé publique générée par celui qui a initié la transaction. La clé privée associée est par la suite utilisée pour déverrouiller le hachage d’origine. Dans le HTLC, celui qui initie la transaction génère alors une clé puis la hache. Le hachage est alors stocké dans une pré-image révélée lors de la transaction finale. Les contrats de verrouillage de temps haché sont programmés pour expirer après un temps défini ou après qu’un nombre spécifique de blocs aient été générés, créant ainsi une date et une heure de fin connues.
Le verrouillage du temps (timelock)
Dans un HTLC, deux verrous temporels différents sont utilisés afin de définir des contraintes de temps :
- CLTV (CheckLockTimeVerify) : Ce verrou utilise une base de temps pour verrouiller puis libérer la cryptomonnaie. Les contraintes de temps sont alors codées en dur et les jetons ne seront libérés qu’à une date et une heure précises, ou à une taille de bloc spécifique ;
- CSV (CheckSequenceVerify) : Ce verrou utilise le nombre de blocs générés comme mesure de suivi afin de déterminer le temps pour finaliser une transaction.
Les atomic swaps ou échanges atomiques interchaînes sont généralement effectués grâce à des HTLC. Par ailleurs, le Lightning Network (LN) de Bitcoin utilise aussi des contrats de verrouillage de temps haché.
Processus d’un contrat de verrouillage de temps haché
Un contrat de verrouillage de temps haché abrégé en HTLC utilise deux types de verrous : le verrouillage de hachage (hashlock) et le verrouillage du temps (timelock). Voyons comment cela se traduit-il.
Jacquie souhaite échanger un jeton de Bitcoin contre du Doge de Michel. Voilà comment va se dérouler une transaction HTLC typique entre ces deux propriétaires de cryptomonnaie :
- Jacquie génère alors un hachage à partir de sa clé privée Bitcoin et l’envoie à Michel, ainsi qu’une pré-image du hachage en créant une transaction nominale. Cette pré-image permettra par la suite de valider et de finaliser la transaction.
- De son côté, Michel génère aussi un hachage à partir de sa clé Litecoin et l’envoie à Jacquie. Et tout comme elle, il créera une pré-image en réalisant une transaction nominale.
- Une fois que Jacquie reçoit la transaction Litecoin provenant de Michel, elle la signe en utilisant la clé d’origine déjà disponible dans la pré-image. Michel fait la même chose de son côté en utilisant sa clé privée afin de déverrouiller la transaction provenant de Jacquie.
- Une fois que Jacquie et Michel ont saisi leurs clés puis accepté la transaction, le HTLC l’exécute dans la mesure où les conditions ont été remplies. Ni l’un ni l’autre ne pourra modifier la transaction une fois que celle-ci est exécutée ce qui permet d’éliminer la possibilité que l’un puisse tromper l’autre en annulant l’échange au dernier moment par exemple. Le risque de contrepartie est également inexistant grâce à ce type de contrat intelligent.
Laisser un commentaire