Qu’est-ce qu’un Atomic Swap ?

atomic-swap

Comment échanger des crypto-monnaies sans intermédiaire ?

Quand vous possédez des cryptos, peu importe lesquelles, et que vous désirez les échanger contre d’autres, vous devez recourir à un intermédiaire pour que cela puisse s’effectuer. Cet intermédiaire est en général un exchange.

Si l’utilisation des exchanges pour acheter et revendre des crypto-monnaies est répandue, cela pose toutefois certains problèmes :

  • Les exchanges peuvent se faire hacker.
  • Ils prennent des commissions sur les transactions.
  • Des commissions sont également prélevées sur les retraits et les dépôts afin de payer, en partie, les mineurs.

 

Afin de résoudre le problème des hacks, des exchanges décentralisés (appelés DEX, pour Decentralized Exchange) commencent à se créer petit à petit. Komodo en est un exemple. Malheureusement, ils sont loin d’être efficaces. Et pour l’instant, seuls les tokens ERC-20 sont supportés. De plus, ces derniers prennent également des frais pour fonctionner.

A l’heure actuelle, si on désire faire un échange de crypto-monnaies entre particuliers hors exchange, cela ne peut se faire que si les deux personnes envoient chacune de leur côté le montant convenu. La porte est donc ouverte à tous les scams, car une personne crédule peut envoyer ses cryptos à une personne qui ne lui enverra rien du tout en retour.

C’est là qu’intervient le fameux Atomic Swap qui permettra de résoudre ce problème de confiance. Voyons en détails comment cette technologie fonctionne.

 

Atomic Swap : définition

Une fois n’est pas coutume, le terme Atomic Swap provient de l’Anglais. Atomic est un terme informatique qui signifie à peu près : “une chose se produit complètement ou pas du tout“.

Cette définition est importante car un Atomic Swap permet d’échanger des crypto-actifs entre 2 personnes sans intermédiaire et sans avoir besoin de faire confiance à l’autre personne. Si une des deux personnes ne respecte pas son engagement et n’envoie pas les tokens, alors la première personne sera remboursée de son envoi grâce à une protection inscrite dans un smart contract.

 

Fonctionnement détaillé de l’Atomic Swap

Pour expliquer comment fonctionne l’Atomic Swap, nous allons prendre l’exemple entre deux personnes qui désirent échanger des ETH contre du BTC.

 

Exemple pratique de l’utilisation d’un Atomic Swap

Jean et Robin sont deux amis, mais afin d’éviter tout soucis, ils décident d’utiliser l’Atomic Swap pour faire un échange entre l’Ethereum et le Bitcoin.

  • Robin possède 10 ETH.
  • Jean possède 0.5 BTC.
  • Ils veulent s’échanger ces deux crypto-actifs sans utiliser d’intermédiaire.

 

1. Robin crée un hashlock

Un hashlock est un smart contract qui va bloquer les tokens jusqu’au moment où un code secret est divulgué. Pour se faire, Robin utilise la méthode suivante :

  • Il choisit un grand nombre, que l’on appelle pré-image. Cela sera le code secret.
  • Il utilisera ensuite cette pré-image pour créer un autre nombre, que l’on appellera hash.
  • Robin devra ensuite créer un smart contract pour envoyer 10 ETH à Jean, qui sera bloqué avec ce hash. Les ETH ne seront envoyés que si Jean est capable d’indiquer la pré-image qui correspondra au hash.

Le calcul du hash de la pré-image à l’étape 2 est facile, mais le calcul de la pré-image en fonction du hash est (presque) impossible. Cela signifie que Jean ne pourra pas recevoir les ETH sans que Robin lui fournisse la pré-image.

 

2. Jean fait de même

Jean vérifie que Robin a bien envoyé un smart contract hashlock pour 10 ETH. Il peut vérifier cela en regardant sur la blockchain publique.

Si c’est le cas, Jean envoie alors à son tour un contract hashlock à Robin pour 0.5 BTC qui est verrouillé avec le même hash que celui que Robin a utilisé. Cela fera en sorte de lier les deux transactions entre elles. Mais les transactions auront besoin d’être débloquées pour que l’échange puisse s’effectuer.

 

3. Déblocage les tokens

Quand Robin désire débloquer les bitcoins que Jean lui a envoyé, il aura besoin d’utiliser le nombre de pré-image pour autoriser la transaction.

Lorsqu’il effectuera cette opération, le nombre de pré-minage ira sur la blockchain et deviendra une information publique. Jean pourra alors utiliser cette information pour débloquer ses 10 ETH, car le hash utilisé dans les deux transactions est le même.

Voilà donc en quoi consiste un Atomic Swap… ou à peu près.

Nous avons oublié de considérer une option : que se passe-t-il si Robin ne donne jamais la pré-image à Jean ? Dans ce cas les smarts contracts seront indéfiniment bloqués.

 

4. Remboursement d’un Atomic Swap raté

Si un Atomic Swap est raté, alors il ne peut pas être annulé et les transactions seront bloqués ad vitam eternam. Sauf si on ajoute une sécurité dans le smart contract. Par exemple, disons que si Robin n’a pas donné le nombre de pré-image dans les 24h, alors la transaction est automatiquement annulée.

Cette protection est appelée time lock. Désormais, si Robin ne montre pas la pré-image à Jean, ils seront tous les 2 remboursés.

Les choses sont-elles réglées pour autant ? Pas tout à fait, car Robin peut encore causer des problèmes.

 

5. Une double durée de time lock pour Robin

Disons que Robin est un petit malin et qu’il essaie d’abuser du système en décidant d’utiliser son nombre de pré-image après 23h55 pour débloquer le contrat. Cela ne laisserait à Jean que 5 minutes pour débloquer le sien. Dans ce cas, il y a de fortes chances que Jean ne puisse pas récupérer ce que Robin lui doit du fait du délai trop court.

Robin récupérera alors les BTC de Jean et verrait ses 10 ETH revenir dans son wallet grâce au smart contract. Robin aurait donc volé les bitcoins de Jean.

Cela se résout avec une solution toute simple : doubler le time lock pour que Robin récupère son argent. De cette façon, si Robin essaie d’escroquer Jean, il aura 24h de plus pour récupérer sa part du contrat.

Nous voici donc avec un Atomic Swap parfaitement fonctionnel et sûr !

 

Inconvénients des Atomic Swap

Nous l’avons vu, sur le papier, les Atomic Swap sont bien construits et ont l’air intéressants. Toutefois, voici quelques problèmes au moment où nous écrivons cet article (octobre 2018) :

  • Cette technologie est très lente.
  • La plupart des exchanges et des wallets ne supportent pas les Atomic Swap.
  • Cela ne fonctionne qu’avec les crypto-actifs pour lesquels on peut écrire un smart contract.

Ces problèmes devraient être résolus avec le temps. Un jour viendra où les crypto-monnaies pourront s’échanger entre particuliers de manière simple efficace et sûre.

 

N’hésitez pas à vous rendre sur notre page Foire Aux Questions pour découvrir d’autres articles de questions/réponses sur le monde des crypto-monnaies et de la blockchain 🙂



Cet article vous a aidé ❤ ? N’hésitez pas à nous le faire savoir en attribuant une note sur 5 ou en nous laissant un commentaire 🙂

Avis des lecteurs
[Total : 3    Moyenne : 5/5]


Poster un Commentaire

avatar

Remonter en haut de la page