top of page

Améliorer Bitcoin : qu'est-ce que le Lightning Network ?


En résumé : Le Bitcoin est actuellement techniquement limité (nombre de transactions/seconde, frais de transaction...). Le Lightning Network est le nom d'une technologie permettant de corriger ces limitations. Le Lightning Network prend la forme d'un réseau parallèle (off chain) qui vient épauler le réseau Bitcoin principal.

La nécessité des sur-couches

La notion de layer (mot anglais signifiant une sur-couche) est un aspect déterminant dans la compréhension de l'architecture des blockchains. Un layer est un protocole venant s'appuyer directement sur une blockchain pour en améliorer les caractéristiques ou offrir des fonctionnalités supplémentaires. Nous prendrons dans cet article l'exemple du Bitcoin avec le layer Lightning Network qui répond à la nécessité d'améliorer la scalabilité du réseau afin de permettre les microtransactions à moindre frais et réduire les délais de confirmation des paiements.

En effet, le protocole Bitcoin fait actuellement face à plusieurs difficultés :

- Le réseau n'est pas en mesure d'absorber plus de 7 transactions/seconde.

- Les frais de transaction peuvent s'élever à plusieurs euros pour un seul paiement, empêchant toute micro-transaction.

- Plusieurs dizaines de minutes sont nécessaires à la confirmation d'un paiement (1 bloc miné toutes les 10 min).

Lightning Network, comment ça fonctionne ?

La principale utilité du réseau Lightning est l'ouverture de canaux de paiements améliorés. Contrairement au registre distribué du protocole Bitcoin où les transactions sont unidirectionnelles (Paul donne 1 BTC à Luc), la sur-couche Lightning introduit des canaux bidirectionnels, permet la mise en place de paiements conditionnels (Paul paye Luc si Luc paye Alice) et ses algorithmes assurent des échanges sécurisés instantanés sans frais.

On peut imaginer le protocole Lightning comme un dialogue entre deux utilisateurs. Toutes les transactions effectuées via Lightning sont réalisées off chain (en parallèle de la blockchain Bitcoin). L'ouverture d'un canal nécessite :

- Une transaction d'ouverture ou funding transaction.

- Une transaction de fermeture ou closing transaction.

Protocole Lightning Network

La funding transaction peut naturellement être partagée entre les deux utilisateurs (Paul et Luc y déposent par exemple tous les deux 5 BTC). Les fonds sont gelés au sein d'une adresse commune sécurisée en multi-signature. Contrairement au protocole traditionnel de la blockchain Bitcoin où les dons sont possibles (vous n'avez pas besoin d'être actif pour recevoir un paiement), utiliser le Lightning Network nécessite l'engagement des deux parties concernés.

Le canal de transaction ne s'ouvre qu'à partir du moment où la funding transaction est confirmée sur la Blockchain. La closing transaction peut-être déclenchée bi-latéralement ou uni-latéralement selon certaines conditions (voir suite).

Les utilisateurs échangent ainsi librement au sein d'un registre privé, partagé entre-eux uniquement. La balance totale ne peut pas dépasser la somme bloquée au départ sur l'adresse commune.

Confiance et sécurité

Comment Lightning crée-il de la confiance et permet-il d'échanger en toute sécurité sur le canal de paiement ? Le système repose sur le protocole HTLC ( Hash TimeLock Contract) que nous ne détaillerons pas ici. Pour résumer, il s'agit d'un schéma de transaction où le receveur doit prouver dans un temps imparti qu'il a bien reçu le paiement. Sans réponse de sa part, la somme est automatiquement retournée à l'envoyeur. Pour en savoir plus, vous pouvez consulter cet excellent article (lien en anglais) détaillant le fonctionnement du protocole.

Lightning inclue dans son code l'élaboration de commit transactions. Les commit transactions constituent une sécurité en cas de conflit où si l'un des utilisateurs ne répond plus. Au fil des paiements effectués dans le canal , les utilisateurs s'échangent leurs clefs de signatures privées. Cela permet ainsi à chacun de publier la closing transaction sur la Blockchain pour fermer le canal à tout instant. Cette fonction fondamentale permet d'être remboursé du montant de sa funding transaction (ou de sa balance à un moment -t) si l'autre utilisateur disparait. Rappel : l'adresse Bitcoin commune où sont gelés les fonds nécessite les clefs privées des deux parties pour être débloquée (multi-signature).

Enfin, le protocole Lightning prévoit une pénalité immédiate si l'un des utilisateurs tente de tricher (paiement d'une somme qu'il ne possède pas). Ses fonds sont perdus.

Transactions par chemins

Lightning est avant tout un réseau de paiement décentralisé en pair-à-pair. Cela signifie que son protocole ouvre la possibilité de procéder à des transactions via des canaux de paiements entre utilisateurs interposés. Cette fonctionnalité évite de devoir créer un canal dédié pour chaque interaction.

Exemple : Paul veut envoyer 5 BTC à Alice.

Paul n'a pas de canal ouvert avec Alice. Cependant un canal est déjà ouvert avec Luc, et Luc dispose d'un canal ouvert avec Alice.

La transaction prend donc la forme suivante :

Lightning Network Transaction chemin

Le réseau détermine automatiquement le chemin le plus rapide. Qu'en est-il de l'anonymat ? Lightning s'appuie sur le protocole Sphinx pour crypter les échanges (en savoir plus).

Communications entre les Blockchains

L'élaboration de nouvelles blockchains sur lesquelles s'appuient de nombreux projets met en lumière, au fil du temps, la nécessité de créer des ponts entre les différents réseaux. Nous pouvons imaginer des protocoles de communication permettant l'échange d'informations entre les différents registres distribués. Cet aspect rejoint notamment la notion de layer, où, dans le cas du Bitcoin par exemple, le Lightning Network inclue les fondations de logiciels permettant la connexion avec d'autres blockchains.

Il existe de nombreux autres layers, tels que Rootstock dont la promesse est de pouvoir établir des smart contracts sécurisés et ancrés sur la blockchain Bitcoin. Les canaux off chain n'ont pas pour unique vocation à contenir des transactions entre utilisateurs, mais peuvent assurer la mise en place de smart contracts et autres applications. Les possibilités restent infinies.

Ressources utiles :

Comments


bottom of page