Atomic Swaps en bref

En juillet 2019, il y avait environ 2000 crypto-monnaies, mais il n'y a pas de mécanisme d'échange unique entre les différentes blockchains. Dans cet article, nous considérons de manière simpliste comment une des technologies d'échange sans intermédiaires est arrangée - les échanges atomiques.
Bonne lecture!


logo


Atomic Swaps: qu'est-ce que c'est et avec quoi mange-t-il?


Les swaps atomiques sont une série de transactions sur les deux chaînes de blocs qui vous permet d'échanger des pièces sans la participation d'un tiers et de faire confiance au deuxième participant de l'échange. En substance, une telle transaction est créée, dont la sortie peut être dépensée soit en présence d'une certaine clé, soit après un certain temps.
Toutes les chaînes de blocs ne permettent pas à AtomicSwap d'être implémenté. Il y a deux exigences principales:


  • soutien aux contrats intelligents (générateur de cette transaction très "initiale");
  • utilisation de la même cryptomagie (fonction de hachage).

Des contrats intelligents? Non, pas entendu

Les contrats intelligents sont, au sens large, un algorithme «non adhérent» qui effectue des actions dans des conditions connues et rien d'autre. Dans notre cas, un contrat intelligent peut être considéré comme une grande boîte noire, qui est envoyée à l'adresse du destinataire, à l'adresse de l'expéditeur, au montant de l'envoi, au temps de détention de l'argent et à attribuer un identifiant unique (hachage). La sortie est la transaction souhaitée avec les conditions.


Hash et ses amis

Une fonction de hachage est un autre personnage d'un conte de mathématiques supérieures. Convertit le flux d'entrée en une valeur différente. Les mêmes données donnent le même résultat. En règle générale, l'entrée est un grand nombre appelé clé secrète et la sortie est un hachage. La conversion d'un hachage en une clé secrète n'est pas possible.


Quand tout se passe bien


Considérez l'échange entre Alice (oui, oui, Alice n'est plus la même) et Bob. Alice a Bitcoin (btc), Bob a Ether (eth). Les deux personnages ont des adresses sur les deux blockchains. Ex: les grands signes de crypto-monnaie symbolisent les chaînes de blocs.



Alice génère une clé (un grand nombre) et ne dit modestement à personne:



Sur la base de la clé, elle considère le hachage:



Crée un contrat avec un identifiant unique égal à un hachage:



Envoie de l'argent à un contrat. Maintenant, elle ne peut pas les passer un certain temps (timelock):


Le temps est écoulé, ou timelock

Timelock - temps après lequel le créateur du contrat pourra retourner l'argent s'il envoie une transaction d'un certain type (appelons-le "remboursement"). Aucune clé secrète n'est nécessaire pour cette transaction. Un autre utilisateur peut retirer de l'argent pour l'adresse du destinataire spécifié dans le contrat (important: pas le sien) s'il envoie une transaction d'un type différent (appelons-la racheter) avec la clé secrète.


En général, le mécanisme de traitement des transactions contractuelles est le suivant:


if (transaction_type == "refund" and sender == contract_creater and timelock < now()) { send_to(creator_address); } else if (transaction_type == "redeem" and hash(secret_key) == contract_id) { send_to(receiver_address); } 


Alice rapporte le hachage à Bob. Maintenant, il peut vérifier (vérifier) ​​tous les champs du contrat: assurez-vous que les adresses sont correctes, le montant de l'envoi, le moment où l'argent a été stocké sur le contrat (la période pendant laquelle Alice ne pourra pas le retirer):



Si tout va bien, Bob crée un contrat sur la deuxième blockchain similaire à Alisinom (avec le même identifiant). Le destinataire et, éventuellement, le montant changent (si le taux n'est pas de 1 à 1).



Alice audite le contrat:



Si elle triple tout, elle crée une transaction sur Ethereum qui dépense de l'argent sur le contrat de Bob. La seule façon de le faire est de fournir une clé. Maintenant, il est connu:



Alice obtient eth:



Bob regarde la clé et crée une transaction qui dépense de l'argent sur le contrat d'Alice en utilisant sa clé:



Succès! Les loups sont pleins, les moutons sont en sécurité!


Quand le monde n'est pas parfait


Cependant, parfois quelque chose peut mal tourner. Il y a deux endroits où l'échange peut échouer. Pour ce faire, il existe un mécanisme permettant de restituer l'argent à leurs propriétaires légitimes.


Supposons qu'Alice en tant que fille décente ait envoyé de l'argent pour un contrat, mais après un audit, Bob a changé d'avis sur la séparation avec les airs:



Alice attend l'expiration du délai spécifié dans le contrat (par exemple, 48 heures) et retourne les grillons sanguins:



Une autre histoire raconte le volage d'Alice, qui n'a pas voulu continuer l'échange atomique après que Bob a créé le contrat. Scénario alternatif: Alice a perdu la clé et ne peut pas le faire:



Bob attend un certain temps pour bloquer de l'argent (il est généralement inférieur à celui d'Alice, de sorte qu'Alice ne retire pas l'argent de Bob à la dernière minute, puis ne retourne pas le sien; par exemple, 24 heures). Alice rend son argent après son timelock.



Conclusion


Les échanges atomiques sont très pratiques pour les échanges point à point, contournant les échanges et les intermédiaires. Les participants s'engagent à ne payer qu'une commission pour l'envoi des transactions.


En résumé, dans l'échange entre A et C sur les blockchains B1 et B2, les étapes suivantes peuvent être distinguées:


  1. initialisation du contrat sur B1 par le participant A;
  2. écoute d'un contrat sur B1 par la partie C;
  3. initialisation du contrat sur B2 par le participant C;
  4. Écoute d'un contrat B2 par A;
  5. fournir une clé et retirer de l'argent à B2 par le participant A;
  6. obtenir une clé sur B2 par le participant C;
  7. Retrait d'argent à B1 par la partie S.

La technologie est nouvelle, mais est déjà activement introduite. Peut-être que dans un proche avenir, elle sera en mesure de remplacer le centralisé et donc idéologiquement étranger à l'échange de blockchain.

Source: https://habr.com/ru/post/fr458646/


All Articles