Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Comprendre le réseau Lightning Partie 1

Par Anis BENZIANE Publié le 18/08/2019 à 22:55:02 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é.

Pourquoi lightning ?

Le problème a commencé lorsque le réseau Bitcoin a gagné des utilisateurs et alors que les transactions nécessaires par seconde ont augmenté, les transactions réelles par seconde n'ont pas augmenté, le réseau de Bitcoin avec le pré-Segwit 1MB de taille de bloc avait une limite supérieure de 7 transactions par seconde, comparé à la limite Visa 65000 transactions par seconde qui est assez lent et certainement non évolutif.

Le protocole blockchain fait que chaque node doit être au courant de chaque transaction et si nous avions simplement augmenté la taille du bloc, cela signifierait que les nodes devraient traiter et stocker des centaines de téraoctets de données chaque année, ce qui ne permettrait pas aux ordinateurs personnels et donc aux opérateurs de node de diminuer, et pas seulement de nuire à la décentralisation du Bitcoin, l'une de ses valeurs les plus fondamentales, mais aussi de faire des parties de confiance centralisées sur lesquelles on s'appuie pour le mining et la validation des blocs, ce qui nuit à la sécurité et à l'équité de la blockchain, ces sources centralisées peuvent accepter de facturer des frais plus élevés, cesser d'accepter des transactions et toute autre action qui nuit au réseau et leur faire des gains.

Pour éviter cette situation, une node Bitcoin doit être suffisamment bon marché pour faire fonctionner un ordinateur personnel à la maison, mais nous voulons aussi qu'il soit assez évolutif pour traiter des milliers, des millions et peut-être des milliards de transactions par seconde et nous avons donc Lightning.

Lightning est un protocole de délégation de transactions hors chaîne, il utilise un réseau de canaux de micropaiement entre les node pour différer l'information de la blockchain sur chaque transaction, au lieu de simplement informer la blockchain sur une transaction initiale et une transaction finale, avec quelques transactions supplémentaires dans certains cas spécifiques, et toutes les transactions entre les deux sont juste entre les node impliqués dans la transaction, ou plus.

Channel

Un channel ( canal ) est initialement ouvert avec une transaction de financement, la sortie de cette transaction est un script multisignature 2 sur 2 avec les deux parties dans ce channel, les signatures de ce script ne sont pas encore échangées et ne sont échangées que lorsqu'une transaction remboursant les sorties de la transaction de financement à ses utilisateurs est signée. Bitcoin utilise ici SIGHASH_NOINPUT pour dépenser à partir d'une transaction non signée, avant le softfork SIGHASH_NOINPUT une transaction ne pouvait être dépensée que lorsqu'elle était diffusée. L'initialisation du canal pourrait donc se dérouler comme suit

  1. Créer l'opération de financement

  2. Créer les transactions enfant (appelée transaction d'engagement)

  3. Signez les transactions enfants

  4. Échange de signatures pour les enfants

  5. Signer le parent

  6. Échanger des signatures pour le parent

  7. Diffuser le parent sur la blockchain.

Ceci est fait pour s'assurer qu'en cas de désaccord sur le channel, les conditions initiales du channel ne sont pas modifiées et qu'aucun blocage de fonds ne peut se produire.

Un problème survient lorsque des node agissent malicieusement dans le channel de paiement, disons que je suis Bob et vous êtes Alice et que nous avons tous les deux accepté d'ouvrir un channel de paiement avec 0,5 btc pour chacun d'entre nous, après quelques transactions nous réglons sur un solde de 0,2 à Bob et 0.8 à Alice, mais Bob n'est pas satisfait de ce règlement, donc il ne va pas fermer le channel de paiement tant qu'il n'aura pas récupéré tout son argent, le réseau Bitcoin a besoin de savoir quel ensemble de transactions est le vrai, sur le réseau il le fait en ayant un système d'horodatage ( time stamping system ), c'est essentiellement des blocs qui se suivent et les derniers blocs contiennent les véritables valeurs, donc si vous envoyez 0.3 btc à Alice, vous ne pouvez les renvoyer ou les rembourser à nouveau. Nous ne voulons pas utiliser ce système d'horodatage jusqu'à ce qu'il soit nécessaire pour éviter d'encombrer la blockchain et donc nous utilisons la transaction d'engagement et continuons à mettre à jour les transactions de signature du channel de paiement qui est juste entre nous deux, le problème ici persiste, à la fermeture du channel tout participant peut diffuser toute transaction de ceux-ci au réseau et cela serait l'état final, même si elle est ancienne.

Conclusion

Nous essayons de concevoir un script qui invalide toutes les anciennes transactions et ne permet de diffuser que la transaction la plus récente, mais vous ne pouvez pas vraiment le faire, une fois qu'une transaction Bitcoin est émise, elle ne peut pas être "inédite" et repose ici sur un des concepts fondamentaux de Lightning. Lightning utilise différentes mesures de sécurité pour s'assurer qu'il pénalise les actes malveillants dans le channel de paiement.

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