Les swaps inter-chaînes ou échanges inter-chaînes sont un type d'échange P2P qui nous permet de transformer en toute sécurité nos crypto-monnaies ou autres, sans intermédiaires d'aucune sorte.
Lles swaps inter-chaînes ou les swaps inter-chaînes atomiques sont un type d'échange de devises qui a lieu entre deux crypto-monnaies différentes qui fonctionnent toutes seules blockchain. Autrement dit, il s'agit d'un mécanisme qui permet aux utilisateurs d'échanger différentes crypto-monnaies directement entre deux paires.
La façon la plus simple de voir ce type de changement est de changer le monnaies fiduciaires de toute la vie. Dans de tels échanges, deux personnes (l'une avec des euros et l'autre avec des dollars) veulent échanger leurs devises l'une contre l'autre à un certain taux. Pour cela, en fiat connaissant simplement le taux et faisant les comptes, chacune des parties peut remettre à l'autre le montant de pièces équivalent à la monnaie. Par exemple, 100 € équivaudraient à environ 121,55 USD, en utilisant un taux de change de 1,2155 USD par euro. Qu'il suffise de dire que ce changement a été direct et sans intermédiaire.
Cependant, dans cet exemple, nous parlons de choses tangibles, c'est de l'argent qui est dans le monde réel. La question ici est: comment rendre possible un tel échange en utilisant des crypto-monnaies dont les systèmes fonctionnent sur différentes plateformes? Eh bien, la réponse à cela est les swaps inter-chaînes et vous en apprendrez beaucoup plus à leur sujet ci-dessous.
Les débuts des swaps inter-chaînes
Le premier whitepaper ce qui explique en gros la nature des swaps inter-chaînes est "Swaps inter-chaînes atomiques"par Maurice Herlihy du département d'informatique de la Brown University Providence. Ce document, présenté lors du Symposium ACM 2018, explique clairement le fonctionnement d'un swap cross-chain atomique, ses possibilités et ses principaux défis pour créer ce type d'outil.
Fondamentalement, ce que fait un swap cross-chain est; prendre l'argent des parties et le déposer selon un calendrier spécial garantissant que l'opération ne pourra être achevée qu'avec l'approbation des deux parties. Et dans le cas où une partie agit de manière malveillante, elle ne peut pas prendre le contrôle de nos fonds.
Maintenant, la partie programmation a sûrement attiré votre attention à ce stade. Eh bien, tout d'abord, rappelez-vous que chaque transaction de crypto-monnaie se produit grâce au fait que lesdites devises répondent à une programmation ou contrats intelligents qui permet d'envoyer, de prendre et de livrer le contrôle desdites devises. Dans Bitcoin, par exemple, nous appelons cette programmation possible grâce à Script Bitcoin, Ethereum, grâce à Solidité. En général, toutes les crypto-monnaies utilisent ce modèle de gestion pour leurs opérations. Au fait, si vous voulez savoir comment commencer à programmer des contrats intelligents pour Ethereum, vous pouvez consulter notre article Comment débuter la programmation dans Solidity?
Maintenant, en tenant compte du fait que les crypto-monnaies sont des devises programmables, nous pouvons faire une programmation spéciale qui nous permet de les échanger cross-chain en toute sécurité. C'est ce qui rend ce type d'échange possible, et nous en reparlerons plus en détail dans la section suivante.
La programmation des devises, la clé des swaps cross-chain
Passons maintenant un peu au côté pratique des swaps inter-chaînes et pour cela nous prendrons, par exemple, Bitcoin. Comme nous l'avons déjà mentionné, dans Bitcoin, nous avons le langage de programmation Bitcoin Script. Ce langage de script nous permet d'envoyer et de recevoir des pièces de manière entièrement programmée. En fait, chaque transaction en Bitcoin n'est possible qu'en utilisant une telle programmation.
Mais il y a quelque chose de très intéressant avec les capacités de ce langage, plus précisément avec les fonctions OP_CHECKSEQUENCESSVERIFY (CSV) y OP_CHECKLOCKTIMEVERIFY(CLTV). Le premier est un code d'opération ou OP_CODE très utile, car il nous permet de bloquer l'exécution d'un certain script ou d'une transaction jusqu'à ce que certaines conditions soient remplies. Grâce à cela, des choses comme Réseau Lightning sont possibles, ainsi que échanges décentralisés et sécuriser les échanges P2P. Ces deux derniers sont précisément ceux qui entrent dans le domaine des opérations de swap cross-chain. Le deuxième code, quant à lui, nous permet de placer des verrous temporels sur nos transactions, ce que nous pouvons utiliser pour créer des mécanismes de sécurité pour nos échanges.
Ainsi, si nous utilisons un portefeuille capable de nous donner la possibilité d'effectuer des opérations de swap cross-chain, nous pouvons utiliser les fonctions OP_CHECKSEQUENCEVERIFY et OP_CHECKLOCKTIMEVERIFY, et effectuer des opérations de swap cross-chain avec des personnes qui ont la même capacité. Et tout, parce que notre portefeuille programmera les pièces de manière à ce qu'elles ne puissent être échangées que sous une série de conditions que les deux parties auront décidées à l'avance et sans intermédiaire.
Bien sûr, il s'agit d'une explication très simple de la façon dont tout se passe réellement, donc ci-dessous nous expliquerons comment tout cela se produit réellement.
Comment fonctionne un swap cross-chain?
Supposons maintenant le scénario suivant. D'une part, nous avons Laura qui veut échanger son Bitcoin (BTC) contre Monero (XMR). Et d'un autre côté, nous avons Juan qui veut échanger son Monero contre Bitcoin. Les deux ont besoin d'échange et les deux parties ont la monnaie dont ils ont besoin.
Compte tenu de cela, Laura et Juan commencent le processus d'échange en ayant leurs sacs à main formés pour cela. Tout d'abord, Laura crée une transaction à l'aide de l'opcode OP_CHECKSEQUENCEVERIFY et bloque la quantité de Bitcoin à échanger avec Juan. Ledit script ne peut être déverrouillé que lorsque Juan se conforme aux conditions d'échange, émet sa transaction équivalente dans Monero et connaît le secret qui protège la transaction de Laura. En cas de problème, la transaction de Laura a une mesure de sécurité qui lui permettrait de récupérer l'argent après un certain temps, en utilisant OP_CHECKLOCKTIMEVERIFY pour cela.
Pour sa part, Juan émet également une transaction dans Monero en utilisant la programmation correspondante. Dans ce cas, Monero ne prend pas en charge OP_CHECKSEQUENCEVERIFY, mais utilise à la place une opération appelée Contrat DLTC ou Timelock à enregistrement discret, un système qui permet des paiements conditionnels dans cette devise. Cette opération permet à Juan d'émettre un paiement en Monero, qui ne sera effectif que si Laura remplit les conditions. Comme Laura, Juan a inclus des conditions qui lui permettront de récupérer des fonds en cas de problème.
À ce stade, les deux parties ont émis les paiements, mais personne n'a l'argent. À ce stade, il est temps de vérifier les conditions de déverrouillage, ce qui permettra à Laura et Juan de retirer efficacement l'argent de l'échange. Ainsi, Laura et Juan révèlent les secrets qui protègent leurs transactions. C'est lorsque vous connaissez tous les deux ces secrets, que vous pouvez les utiliser pour déverrouiller le script qui contient les paiements. Dans le cas où l'une des parties aurait agi de manière malveillante, l'une des parties peut utiliser des mesures de sécurité pour ses transactions.
Ces mesures de sécurité sont des verrous temporels, et leur fonction est de garantir que les fonds sont inaccessibles aux deux parties pendant une certaine période de temps prudente. Ainsi, si au bout d'un moment, l'une des parties ne respecte pas les conditions, l'autre peut simplement retirer son argent de l'échange et le récupérer, en restant comme au début.
Swaps inter-chaînes avec d'autres crypto-monnaies
L'exemple que nous avons donné ici, nous l'avons fait avec Bitcoin et Monero. Et, bien que ce soit un exemple fictif, il est proche de la réalité de ce système. En fait, l'équipe Monero travaille actuellement sur un protocole inter-chaîne pour permettre aux utilisateurs de Bitcoin de convertir leur BTC en Monero en utilisant cette approche.
Bien sûr, cela ne se limite pas uniquement aux crypto-monnaies telles que Bitcoin ou Monero, toutes les crypto-monnaies ont cette possibilité, à condition qu'elles répondent à ces deux exigences:
- Ils doivent autoriser le blocage au niveau du script.
- Ils doivent permettre le blocage au niveau du temps.
Les deux verrous d'exécution de transaction sont destinés à ajouter la sécurité nécessaire pour que ces échanges soient sécurisés. Ainsi, par exemple, Ethereum pourrait implémenter ce système pour permettre le cross-chain avec d'autres crypto-monnaies, et de même avec le reste de la crypto. La seule limitation dans tout cela est celle que les développeurs peuvent interposer en ne prenant pas en charge certaines fonctions ou équivalents dans la blockchain et la crypto-monnaie.
d'autres alternatives
D'autres alternatives aux swaps inter-chaînes sont Échanges atomiques succincts (SAS), dont le fonctionnement permettrait également un échange de devises inter-chaînes. Cependant, ce système est à peine défini et pour le moment il n'existe pas de modèle de fonctionnement théorisé complet et révisé.
Avantages et inconvénients des swaps inter-chaînes
Tout d'abord, parmi les pros des swaps cross-chain, on peut citer:
- Il permet à une nouvelle fonctionnalité décentralisée, sécurisée et privée d'échanger nos devises contre d'autres sans dépendre d'échanges centralisés ou décentralisés.
- Cela nous aide à générer une dynamique beaucoup plus grande de l'utilisation des devises. Le change de devises, par exemple, nous permettrait d'étendre notre utilisation des devises à tout moment, et sans complications majeures. Nous pourrions donc changer notre BTC rapidement pour EOS, au cas où une entreprise ou un établissement accepterait seulement EOS comme moyen de paiement.
Par contre on peut citer:
- Si nous utilisons des portefeuilles qui ont une mauvaise implémentation de ce type de protocole, nous risquons de perdre notre argent. La sécurité de ce système réside dans la programmation de conditions très claires et sûres qui nous protègent à tout moment.
- Ils peuvent être quelque peu complexes à utiliser, en particulier pour ceux qui débutent dans le monde des crypto-monnaies.