Succinct Atomic Swap (SAS), est un nouveau type d'échange atomique qui simplifie ce type d'opération, tout en offrant des possibilités d'échange beaucoup plus rapides, moins chères et plus sûres sans intermédiaires.
Ldéveloppeurs de tecnología blockchain Ils se concentrent de plus en plus sur l'apport de nouvelles fonctions, en particulier celles qui permettent le croisement de plusieurs blockchains, et l'une de ces technologies est la Swap atomique succinct (SAS) ou swaps atomiques succincts.
Le Succinct Atomic Swap ou SAS, sont en fait une évolution de la swaps atomiques ou swaps atomiques que l'on peut déjà voir déployé dans plusieurs blockchains. La différence est que SAS cherche à rendre le fonctionnement de cette technologie plus simple, plus efficace et plus sûr.
Succinct Atomic Swap (SAS), amélioration des swaps atomiques
L'idée de Succinct Atomic Swap (SAS) a son origine dans l'esprit de Ruben Somsen, qui, le 11 mai 2020, a écrit le message suivant sur la liste de développement Bitcoin: SAS: échange atomique succinct. Dans ce message, Somsen a décrit une idée qui a permis la création d'échanges atomiques rapidement, avec moins de complexité de code et de scripts, et avec une faible activité sur la blockchain. Tout en exploitant la flexibilité de l'ECDSA, et même en regardant vers l'avenir avec l'utilisation de Signatures Schnorr y adresses multi-signatures (MultiSig).
L'idée de Somsen a été soutenue par le travail du Monero (XMR) y leur échange atomique entre Monero et Bitcoin. Et aussi, il a fallu des idées sur ce qui était présenté par l'utilisateur @TierNolan en 2013 sur le célèbre forum Bitcointalk. Dans tous les cas, la proposition de Somsen simplifie considérablement la manière dont les échanges atomiques peuvent être effectués, réduisant en même temps leur impact sur la blockchain, sans renoncer à leur sécurité et à leur confidentialité.
Malgré l'idée géniale, ce type de protocole n'a pas encore été construit, restant dans un modèle expérimental.
Comment fonctionne le protocole?
Désormais, le fonctionnement de ce protocole dépend en premier lieu des technologies que nous avons déjà disponibles en Bitcoin. Nous parlons de crypto ECDSA, ou aussi des signatures Schnorr, des adresses multi-signatures et en plus de opcodes (OP_CODES) comme CLTV, nLockTime y nSequence. En termes simples, dans sa forme la plus élémentaire, vous n'avez rien à ajouter au protocole Bitcoin et aux autres crypto-monnaies dérivées de Bitcoin.
Démarrage du processus
Le processus d'exécution d'un SAS commence lorsque deux personnes lancent l'échange. Dans ce cas, nous appellerons ces personnes Laura et Daniel. Laura a 1 BTC qu'elle souhaite échanger dans son équivalent avec Daniel qui a Litecoin (LTC), et tout cela sans passer par un échange centralisé.
Nous avons donc Laura prépare 1 BTC dans une transaction qu'elle a signée avec une signature conjointe utilisant sa signature et celle de Daniel. Cette première transaction qui n'a pas encore été envoyée atteindra la blockchain dans un état d'attente. Ceci est possible en utilisant OP_CODES comme CLTV et nLockTime, qui permettent de définir un timeout et d'autres conditions nécessaires pour traiter la transaction. Dans ce cas, la condition pour la libération de ladite transaction est que Daniel révèle son secret à Laura, ce qui ne s'est pas encore produit à ce stade.
La programmation CLTV de cette transaction obéit également à un autre point, à savoir qu'au cas où les parties ne terminent pas l'échange, ladite transaction peut être envoyée à la blockchain, et après un certain temps, Laura peut la déverrouiller sans problème pour récupérer les fonds. Ceci est possible car CLTV peut transformer une adresse multisig en une adresse unique sous certaines conditions qui peuvent être programmées. En même temps que Laura récupère ses fonds, elle dévoilera un secret à Daniel, ce qui lui permettra de récupérer les fonds qu'il bloque dans sa transaction Litecoin.
Préparation de la deuxième transaction
Alors que la première transaction n'a pas encore été envoyée, Laura et Daniel préparent le reste des conditions pour l'échange. À ce stade, Laura et Daniel créent maintenant une nouvelle et deuxième transaction, mais y mettent un verrou au niveau de la transaction (en utilisant nSequence). Cela évitera que la transaction soit prise par les mineurs jusqu'à ce que le temps de blocage passe, cette heure est décidée par Laura et Daniel, et ils ont décidé de lui donner une heure de blocage.
Ce blocage de la transaction est fait comme une assurance qui empêche Laura de perdre son argent au cas où Daniel aurait agi de manière malhonnête. Et, grâce au blocage et aux conditions dans lesquelles cette transaction a été créée, Laura peut récupérer ladite transaction sans problème. Par conséquent, le choix du verrou est le OP_CODE nSequence, car il permet un verrou relatif. Autrement dit, le verrou ne peut être activé que lorsqu'une transaction précédente et ses sorties associées (la première transaction signée par Laura et Daniel) ont déjà été incluses dans la blockchain.
Envoi de transactions
Maintenant, la prochaine chose est de commencer à envoyer les transactions. Laura envoie d'abord la deuxième transaction, qui sera verrouillée indéfiniment jusqu'à ce que la première transaction atteigne la blockchain. Cependant, ce fait d'envoyer la deuxième transaction au réseau indique à Daniel que Laura a entamé le processus d'échange. Donc, la prochaine chose que fait Daniel est de créer une transaction en Litecoin pour l'échange total, et pour cette opération, il utilise Laura et ses signatures.
Cette transaction en Litecoin est vue par Laura qui, conformément à elle, procède à l'envoi de la première transaction, qui contient 1 BTC pour Daniel. Laura ne pourra pas accéder aux fonds en Litecoin car elle ne connaît pas le secret de Daniel nécessaire pour débloquer ladite transaction. Ainsi, une fois que Laura envoie la première transaction à la blockchain Bitcoin, l'horloge du bloc commence à tourner.
Maintenant, il reste un autre point, comment est-il possible que Laura et Daniel connaissent les secrets nécessaires pour déverrouiller leurs transactions respectives en Bitcoin et Litecoin? Eh bien, à ce stade, quelque chose appelé l'adaptateur de signature ECDSA entre en jeu. Cet adaptateur permet à ECDSA sous certaines conditions de révéler le secret nécessaire pour que Daniel et Laura puissent débloquer leurs transactions. De cette façon, ils peuvent réussir l'échange, ce que nous expliquerons ci-dessous.
Le moment de l'échange
Désormais, aussi vite que la première transaction s'effectue sur la blockchain Bitcoin, le processus d'échange commence. La première transaction est signée de telle manière qu'elle n'est valable que si Daniel révèle son secret. Autrement dit, si Daniel veut le Bitcoin, cela ne sera possible que si Daniel révèle le secret lors de l'interaction avec ladite transaction. En effet, Laura signe ladite transaction de telle manière qu'elle ne sera valable que sous cette hypothèse et que la personne en charge sera l'adaptateur de signature ECDSA. Il en va de même pour la deuxième transaction, donc Daniel n'a plus qu'une option, interagir avec ces transactions pour réclamer les bitcoins qu'il souhaite.
Ainsi, lorsque Daniel interagit avec la transaction pour réclamer le BTC, il révèle le secret à Laura. À ce stade, Laura connaît le secret de Daniel et le sien, elle peut donc accéder à la blockchain Litecoin et avec les deux secrets en son pouvoir pour déverrouiller la transaction Litecoin que Daniel a envoyée en échange du BTC. De cette manière, Laura et Daniel ont réalisé avec succès un Succinct Atomic Swap (SAS).
Si le processus se termine avec succès, cela rendra la deuxième transaction invalide. Mais si le processus ne se déroule pas, la deuxième transaction (bloquée avec nSequence) servira de transaction de remboursement, permettant à Laura de récupérer son BTC sans accroc. Au final, dans le meilleur des cas, un SAS peut toujours être transporté en deux transactions simples au sein de la blockchain.
Que savez-vous, cryptonuta?
Est-il possible d'implémenter Succint Atomic Swap sans changer le protocole de crypto-monnaie?VRAI!
L'un des avantages de ce type d'échange est qu'il n'est pas nécessaire que les deux crypto-monnaies aient les mêmes capacités de programmation, en fait, l'état actuel des scripts Bitcoin est suffisant pour permettre des échanges atomiques succincts avec toute autre crypto-monnaie, sans avoir à modifier pour rien du protocole Bitcoin ou des autres crypto-monnaies.
Avantages et inconvénients de Succinct Atomic Swap (SAS)
Maintenant, parmi les avantages de ce modèle, nous pouvons souligner:
- Il ne nécessite que deux transactions en chaîne pour se terminer avec succès, au lieu de quatre. Dans le pire des cas, le modèle nécessite trois transactions (pour effectuer le remboursement) ce qui est encore plus efficace que les swaps atomiques existants.
- Il est possible de réaliser ce type d'échanges sans scripts avancés, il est même possible de le faire sans blocage temporel dans l'une des chaînes.
Il peut être utilisé pour des échanges de confidentialité efficaces.
D'autre part, ses inconvénients sont:
- L'accès à l'argent dépend de la mémorisation des secrets (complexité de la sauvegarde).
- Vous devez être en ligne pendant tout le processus d'échange, sinon vous risquez de perdre de l'argent.
- De plus, il est nécessaire de construire des tours de guet ou des tours de guet blockchain qui prennent en charge le blocage du temps. Cela est nécessaire pour une configuration sécurisée à deux transactions, mais inutile dans un scénario utilisant trois transactions ou sans verrouillage horaire.