Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Comprendre le réseau Lightning Partie 2

Par Anis BENZIANE Publié le 18/08/2019 à 15:05:25 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Cette suite d'articles traite du fonctionnement du protocol Lightning dans la blockchain Bitcoin. Pour pouvoir comprendre cet article vous devez avoir au préalable des notions sur la blockchain, les node et input output de la blockchain.

Lightning a été l'un des sujets les plus abordés dans la communauté bitcoin depuis des années, c'est un nouveau protocole construit sur la blockchain Bitcoin qui permet une meilleure évolutivité.

Attribuer le blâme

Pour commencer le processus de pénalisation, vous devez d'abord déterminer qui blâmer, afin de le faire, vous devez déterminer qui a diffusé une transaction plus ancienne, ce qui se produit en ayant la moitié des transactions signées en possession de chaque partie, de sorte qu'Alice a des transactions qui ont été signées par Bob et vice versa, ces transactions passent par les mêmes sorties mais ont différents contenus, et vous pouvez facilement trouver laquelle de ces transactions a été diffusé et le tracer vers Alice ou Bob.

Révocation du contrat

Cela se produit en ayant différents types d'output sur l'engagement le plus récent et les engagements plus anciens, l'engagement le plus récent a deux voies d'output, le premier est un output de livraison, dépensant les output de la contrepartie immédiatement et le second est un output de livraison révocable, ce qui permet de consacrer les autres output à vous-même, ce sont des output avec blocage du temps ( time-locked ) qui peut seulement être racheté après un certain bloc nombre. Lorsque la transaction d'engagement devient ancienne, un autre type d'output est ajouté et c'est l'output de réparation de brèche ( Breach Remedy output ), la sortie de réparation de brèche est utilisée comme output de pénalisation car elle dépense immédiatement vos output vers votre contrepartie.

Par exemple : Disons que l'allocation actuelle convenue est de 0,5 btc pour Bob et 0,5 btc pour Alice, que Bob a une transaction d'engagement ( commitment transaction en anglais ) qui dépense immédiatement 0,5 btc pour Alice et dépense 0,5 pour lui-même seulement remboursable après 1000 blocs, que Alice a une transaction d'engagement qui dépense immédiatement 0,5 à Bob et dépense 0.5 à elle-même seulement remboursable après 1000 blocs, si l'allocation passe à 0,2 à Bob et à 0,8 à Alice, une autre transaction d'engagement identique à la précédente est créée, mais avec les nouvelles allocations, cependant, une sortie de réparation de brèche est ajoutée à la transaction précédente. Dans la transaction de Bob, il dépense immédiatement les pièces de monnaie de Bob à Alice et vice versa, cette output fonctionne comme un mécanisme de pénalisation comme si une partie diffusait une ancienne transaction, dans les 1000 premiers blocs, la contrepartie peut avoir toutes les pièces, pas seulement les siennes.

La plupart du temps, toutes ces mesures de sécurité ne seront pas appliquées, dans le cas où les deux parties coopére, elles peuvent diffuser sur la blockchain l'état actuel à tout moment, un membre du parti peut contacter l'autre partie et dépenser de la transaction de financement avec un résultat qui correspond aux résultats de la plus récente transaction de l'engagement, cela permet aux deux membres du parti de mettre à jour le channel comme ils le souhaitent aussi longtemps du moment que l'autre membre du parti soit d'accord, de sorte que les soldes peuvent se déplacer dans les deux sens tant qu'il est égal ou inférieur au total des fonds dans la transaction de financement, la fermeture coopérative du channel réduit le nombre de transactions qui ont lieu sur la blockchain et les deux parties reçoivent leurs fonds immédiatement, sans avoir à attendre un 1000eme blocs pour le résultat de livraison révocable.

Hashed Timelock Contracts

Tout cela est génial, mais cela n'explique toujours pas comment nous pouvons l'utiliser pour autre chose que deux participants et voici la beauté de Hashed Timelock Contracts, HTLC pour faire court, le but d'un HTLC est de permettre un état global sur plusieurs noeuds via hashes, il fonctionne en faisant une sortie qui dépend d'une donnée entrée depuis un hash connu, expliquons cela avec un exemple.

Disons que je suis Bob et que je veux payer la librairie, mais je n'ai qu'un canal de paiement avec Alice et je ne veux pas en ouvrir un autre, Alice a un canal de paiement avec Martin qui à son tour a un canal de paiement avec la librairie, donc je génère une donnée aléatoire R et la hash avec ma clé privée H, puis j'envoie la clé privée au magasin et sur mon canal de paiement avec Alice je lance une sortie HTLC indiquant que si Alice possède certaines données depuis un hash H connu, je vais lui envoyer 0,1 btc. Mais si 3 jours se sont écoulés et qu'elle ne les a pas, je vais juste reprendre mon argent. Alice à son tour commence une sortie HTLC avec Martin dans les mêmes conditions, seulement ses 2 jours pas 1, et Martin commence une avec le café avec les mêmes conditions et seulement avec 1 jour, maintenant Alice et Martin savent que leur argent est en sécurité, comme Bob a promis à Alice l'argent si elle a les données et Alice a promis l'argent s'il a les données le café a la clé privée pour pouvoir envoyer les données à Martin et demander la 0.1 btc, qui à son tour le renvoie à Alice et réclame l'argent et ainsi de suite jusqu'à ce que l'argent soit réclamé à Bob, de cette façon Bob peut prouver cryptographiquement que l'argent est arrivé à la librairie et si un noeud dans le chemin vers la librairie n'est pas coopératif, vous pouvez toujours trouver un autre noeud qui a un chemin vers la librairie, le seul problème étant que vous devrez attendre l'échec du HTLC et vous récupérer votre argent "promis".

Parfois, les destinataire peuvent ne pas être en mesure de produire la pré-image R le premier jour, si cela se produit et le destinataire pourrait la produire dans les jours suivants, le destinaire ne doit divulguer R à aucun participant du canal multihop, comme si, dans ce cas, certaines node peuvent demander le paiement sans obligation de payer le destinataire, auquel cas l'émetteur aura uniquement dépensé l'argent pour se retrouver dans les poches d'une node intermédiaire, non les destinataires.

Il est important de ne pas envoyer d'énormes sommes d'argent par HTLC. Si l'une des nodes du chemin ne coopère pas, le paiement sera bloqué et l'expéditeur devra attendre l'expiration avant de recevoir à nouveau les fonds, il est recommandé d'utiliser de petits paiements en gardant à l'esprit le compromis entre les frais de transaction sur une longue route et le montant des pièces que vous pouvez risquer de bloquer.

Pour régler les transactions sur la blockchain, il y a deux cas différents, l'un est que l'expéditeur diffuse la transaction d'engagement qui inclut le HTLC, ce qui suppose que ce HTLC n'a jamais été réglé hors chaîne, l'autre partie peut produire la pré-image R et ils seront en mesure de rembourser les fonds du HTLC sur la blockchain, si le temps est écoulé, l'expéditeur peut diffuser une transaction de Timeout, cette transaction est une transaction RSMC et n'a pas besoin de pré-image R pour être rachetée et elle ne peut être rachetée qu'après 1000 blocs, après la période d'échéance l'expéditeur peut diffuser une transaction HTLC Timeout Revocable Delivery et demander les fonds. Si le destinataire diffuse la transaction, il a deux options, soit produire R et diffuser une transaction HTLC Exécution, attendre 1000 blocs et ensuite diffuser une transaction HTLC Exécution Révocable Livraison qui lui permettra de recevoir immédiatement les fonds. Ou si le temps s'est écoulé et qu'il n'a pas été en mesure de produire l'image R, l'expéditeur peut diffuser une transaction de livraison de délai d'attente HTLC et réclamer les fonds immédiatement.

Les frais de réseau Lightning sont payés directement entre les nodes à l'intérieur du canal, ils ne sont pas pour la puissance de calcul comme les frais de la blockchain, mais plutôt pour la valeur temporelle de l'argent qu'une node risque dans un canal.

Les risques de Lightning

Lightning n'est pas forcément une bonne chose, bien qu'étant l'une des techniques les plus innovantes de Bitcoin, certains des risques qu'elle apporte à la table sont

Timelocks incorrects

Si les participants choisissent des Timelocks avec un temps insuffisant, il est possible que les transactions considérées comme non valides deviennent valides, ce qui permet le vol de pièces par la contrepartie, de sorte qu'il y a toujours un compromis entre des Timelock plus long avec d'avantage frais.

Spam à expiration forcée

Si une node malveillante crée plusieurs canaux et les force tous à expirer en même temps, cela peut causer du spam sur la chaîne de blocage elle-même, ce qui peut rendre certaines transactions verrouillées dans le temps valables.

Vol de pièces de monnaie par piratage

L'un des risques d'avoir un canal est que votre clé privée doit toujours être en ligne car elle est utilisée en permanence pour signer, alors que le risque peut être réduit pour l'expéditeur et le destinataire, les nodes intermédiaires sont toujours en ligne et doivent donc avoir une bonne sécurité pour pouvoir concurrencer les autres sur le long terme et effectuer des volumes de transactions plus importants.

Perte de données et oubli de diffusion à temps

Dans le cas où une partie perd des données ou oublie d'émettre à temps, la contrepartie peut voler des fonds, ces risques peuvent être atténués en déléguant un service tiers pour conserver les données ou surveiller la chaîne de blocs pour vous.

Conclusion

Le réseau Lightning apporte différents cas d'utilisation qui n'étaient pas et ne pouvaient pas être disponibles sur la blockchain, comme les transactions instantanées, l'arbitrage d'échange, les micropaiements, les contrats intelligents et les paiements inter-chaînes.

Les paiements inter-chaînes sont probablement l'utilisation la plus innovante de Lightning, il utilise Lightning sur différentes blockchains pour faire un commerce trustless ( sans avoir besoin de confiance ) entre deux parties dans différentes Blockchain, donc disons que j'ai 100 Litecoins et 5 Bitcoins et Bob a 2 Bitcoins et a besoin 40 Litecoins, via HTLC Je peux envoyer les Litecoins à Bob en échange pour une information qui m'assure d'avooir ses 2 Bitcoins, ceci peut diminuer le besoin pour un échanges centralisés qui a un seul point d'échec risque.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels