Découvrez comment fonctionnent les time locks sur les transactions et comment elles sont utiles avec l’atomic swap.
Les time locks sur les transactions
Il est désormais temps de rentrer dans les détails plus techniques. Maintenant que les bases ont été établies avec les épisodes précédents.
Par exemple, nous savons désormais comment une transaction est introduite sur la blockchain et dans les blocs pour ensuite être minée.
Mais il existe d’autres manières d’envoyer des transactions. En effet, il existe par exemple les time locked transactions. En d’autres termes, nous faisons une transaction qui sera validée et effective uniquement après la date que l’on aura indiquée.
Cela aide notamment dans le cas de légation de ses cryptos à ses proches ou encore dans le swap atomique ou encore pour permettre de faire des échanges avec des accords préalables entre deux parties.
Autrement dit, la transaction est envoyée, mais est minée seulement lorsque la date du time lock est dépassée. Les mineurs ne veulent pas miner une transaction qui ne peut pas encore être validée, ils ont autre chose à faire !
Il est également possible de faire, non pas un blocage en fonction de l’horodatage, mais en fonction de la taille du bloc. Vous pouvez donc faire en sorte qu’une transaction ne soit pas minée avant le minage du bloc 57000, par exemple. La transaction sera alors introduite dans la blockchain et minée lors du minage du bloc suivant, le bloc 57 001.
Le troisième type de transaction différée est la transaction avec un time lock “relatif”. En somme, la transaction est effective après une période donnée a compté du moment du dernier output.
Elle ne dépend donc pas d’une heure ou d’un nombre de blocs. C’est comme un chronomètre qui, lorsqu’il atteint 0, la transaction est effectuée.
“Le champ locktime vous permet d’empêcher l’extraction d’une transaction avant une hauteur ou une heure de bloc spécifique.
Une transaction avec un temps de verrouillage dans le futur ne sera pas non plus acceptée ou relayée par les nœuds, vous devez donc la stocker localement jusqu’à ce que le temps de verrouillage que vous avez défini sur la transaction soit passé.
En d’autres termes, fixer une heure de verrouillage sur une transaction équivaut à postdater un chèque.”
L’intérêt dans les atomics swaps
L’atomic swap est un échange de cryptomonnaies entre deux blockchains sans contrepartie. Par exemple, il y a l’atomic swap on-chain (transferts entre deux blockchains) et ceux off-chain comme le Lightning network.
Il est appelé atomic puisque, grâce à ces time lock et aux transferts à condition, soit l’échange se produit, soit les deux parties retrouvent l’intégralité de leurs fonds.
Dans le cas des atomics swaps, les deux parties envoient donc chacuns leurs fonds et on obtient le résultat suivant :
“Par exemple, elle peut être dépensée dans l’une seule de ces deux manières :
- En fournissant la pré-image de la signature SHA256 nommée H de la personne A.
- Avec la signature de la personne B après 48 heures.
De même, le résultat de la transaction contractuelle de A peut être dépensé de deux manières :
- En fournissant la pré-image de la signature de H et de la personne B.
- Avec la signature de la personne A après 24 heures”
Le temps de verrouillage dans ce genre d’échange est programmé par le script OP_CHECKSEQUENCEVERIFY. Cela évite toute fraude. La transaction utilise la fonction p2sh (Pay to script hash). Comme vu précédemment, le P2SH permet de ne révéler aucune information et de faciliter le processus de transactions.
Le processus permet donc de faire des échanges sécurisés. Par exemple, si la personne A veut échanger 2 BTC contre 2 SOL avec la personne B, l’envoi de ses 2 BTC n’est validé qu’une seule fois que les 2 SOL lui sont envoyés. De plus, les times locks permettent d’éviter la fraude et la double dépense.
Sources : Grokking Bitcoin, LearnMeaBitcoin.
Sur le même sujet :