Le Lightning Network est un système qui se place au-dessus de Bitcoin. Son objectif est de permettre d'effectuer des transactions off-chains sans contrainte de vitesse et de volume.

Là est toute la magie de Lightning Network, se détacher des limitations de Bitcoin en termes de scalabilité (transactions par seconde), tout en utilisant Bitcoin pour enregistrer de façon durable le règlement de ces transactions (settlements). C'est ce que l'on appelle une solution Layer 2.

La technologie Lightning est fonctionnelle sur toute Blockchain similaire à Bitcoin qui utilise SegWit : Litecoin, Komodo ou encore Decred. Mais pas Bitcoin Cash qui n'a pas souhaité activer SegWit et a provoqué le fork d'août 2017.

Pourquoi a-t-on besoin de Lightning Network ?

Malgré ses qualités, Bitcoin ne peut pas être utilisé comme moyen de paiement à grande échelle.

  • Transactions lentes : il faut attendre au moins quelques minutes afin que la transaction soit confirmée
  • Coût des transactions élevé : vous devez payer plus si vous souhaitez que votre transaction soit traitée plus rapidement
  • Scalabilité faible : plus Bitcoin est utilisé, plus le réseau est lent et encombré

Lightning Network propose des réponses à ces problématiques :

  • Paiement instantané : les paiements ne nécessitent plus d'attendre la confirmation d'un bloc
  • Micropayments : Lightning permet d'envoyer des fonds jusqu'à 0,00000000001 Bitcoin à très peu de frais
  • Scalabilité forte : les transactions sur le Lightning Network sont effectuées hors de la blockchain (off-chain)

Qui développe Lightning Network ?

Lightning Network est avant tout un protocole. Il est décrit dans un white paper puis a fait l'objet de spécifications plus précises sous la forme d'une RFC. Plusieurs équipes travaillent à une implémentation des principes décrits dans cette RFC. À ce jour il existe trois implémentations principales :

  • LND - Lightning Network Daemon par Lightning Labs
  • eclair - A Scala implementation of the Lightning Network par ACINQ
  • c-lightning - A Lightning Network implementation par Blockstream
  • lit - Lightning Network node software par le MIT

Ces implémentations sont interopérables mais encore incomplètes.

Pour ceux qui viennent du monde du Web, on retrouve ce même principe avec la norme HTML et les navigateurs. Firefox, Chrome et Edge respectent tous les spécifications ou RFC du W3C. Ils sont interopérables, vous pouvez consulter une même page web sur tous les navigateurs, mais disposent de spécificités d'interfaces, de langages de développement ou encore de fonctionnalités.

Fonctionnement du Lightning Network en quelques mots

Le principe fondateur du Lightning Network est l'utilisation des canaux de paiements (payment channels).

A l'inverse des transactions on-chain classiques, pour effectuer une transaction Lightning vous allez devoir au préalable ouvrir un canal de paiement. Cela se fait en scannant un QR code. Il comprend les informations nécessaires à votre wallet pour contacter l'autre participant et construire une route y accédant.

  1. On crée une transaction Bitcoin classique pour ouvrir un canal de paiement avec une personne ou un site spécifique. Les fonds sont bloqués dans le canal.
  2. On échange avec cette personne mais aussi avec ses contacts, sur un nombre illimité de transactions. Cela peut être pour 1 minute, 1 mois ou 10 ans.
  3. Quand on veut récupérer ses fonds, on ferme le canal (ce n'est pas le seul moyen). Une transaction est émise sur Bitcoin pour tracer le solde final de chacun. Les fonds sont à nouveaux disponibles dans votre wallet Bitcoin.
Un exemple tout bête serait quand vous allez vous faire une ardoise chez un commerçant. Vous allez déposer une somme en début de mois, effectuer un certain nombre de transactions puis à un moment vous allez faire les comptes.

À noter que vous ne pouvez pas recevoir de l'argent de manière passive en utilisant un système non custodial, comme c'est le cas sur Bitcoin ou Ethereum. Des solutions custodial comme tippin.me le permettent, mais vous n'êtes pas le propriétaire des fonds et passez par un tiers de confiance.

Sa force, les paiements multi-hop

Plutôt que d'ouvrir un canal avec chaque personne ou site que vous souhaitez utiliser, le Lightning Network vous permet d'utiliser votre réseau pour joindre un destinataire.

La transaction va partir de votre wallet, se connecter à un premier noeud de bordure qui lui est connecté à des noeuds principaux (très bien connectés). Le chemin le plus optimisé sera utilisé, la transaction ressortira par un noeud de bordure afin d'attendre le wallet du destinataire.

Coté sécurité, un niveau de chiffrement en oignon est utilisé. Cela permet d'être sûr que seul le véritable destinataire est en mesure de répondre à votre transaction.

Si nous devions faire un parallèle, il faut imaginer que vous souhaitez atteindre un destinataire distant de deux personnes. Vous allez prendre 3 enveloppes, et les mettre les une dans les autres avec à chaque fois l'adresse du destinataire suivant. Le premier destinataire va ouvrir un courrier qui lui est adressé et va trouver à l'intérieur une enveloppe à faire parvenir au destinataire suivant. L'enveloppe peut être accompagnée d'un petit billet pour payer les fees ;)

Pour quel usage ?

Le fait de proposer des paiements très rapides et à peu de frais ouvrent de nouvelles perspectives : les micropayments.

Plutôt que de payer un forfait pour un service, nous pourrons payer à l'usage et cela sera viable même pour des toutes petites sommes. De l'ordre du millième de centime.

  • Payment streaming : payer pour chaque minute de vidéo regardée, pour chaque musique écoutée sur Spotify, pour chaque tour de roue de sa trottinette électrique...
  • Machine à machine : payer pour l'usage d'une API ou d'un service en temps réel
  • Paiement du quotidien : payer son pain ou son café de manière instantané, à peu de frais, sans passer par un tiers

Est-ce utilisable dès maintenant ?

Le réseau Lightning n'est pas si jeune, mais il devient seulement utilisable pour le grand public. Tous les outils ne sont pas encore là et les wallets sont jeunes. Il manque également quelque chose du côté de chez Ledger pour y associer notre hardware wallet.

Contraintes

Il existe également un certain nombre de contraintes (à l'écriture de cet article en avril 2019).

  • Il faut bien choisir la taille de son canal de paiement en fonction de l'usage que l'on veut faire
  • Il faut être online pour recevoir de l'argent et vérifier très régulièrement l'état de ses canaux
  • Il faut monitorer la blockchain pour savoir si personne ne triche ou utiliser un système de watchdog
  • Il faut sauvegarder ses canaux et savoir forcer leur fermeture pour récupérer vos fonds dans le cas où vous n'auriez pas de backup.

TL;DR

  • Lightning Network n'est pas une nouvelle devise, il se place au-dessus de Bitcoin
  • Aucun minage n'est requis à l'intérieur d'un canal de paiement
  • Pour ouvrir un canal, il faut y déposer des Bitcoins
  • Les fonds contenus dans un canal de paiement sont bloqués off-chains
  • Suivre les transactions Lightning ne peut se faire que sur votre wallet ou celui du destinataire
  • Des frais sont collectés par les noeuds via lesquels vos transactions Lightning vont passer
  • Afin de ne pas perdre les fonds bloqués dans un canal, il est nécessaire de le sauvegarder
  • L'un ou l'autre des membres du canal de paiement peut demander sa fermeture à n'importe quel moment
  • La fermeture d'un canal crée une transaction sur la Blockchain Bitcoin avec le résultat des opérations effectuées dans le canal de paiement

Pour aller plus loin

Il existe des sites listabt les principaux outils ou services qui utilisent le Lightning Network :


Je pense personnellement que cette technologie et son usage seront un des déclencheurs de l'usage du Bitcoin en général. Des questions pratiques se posent encore aujourd'hui, mais 2019 devra être l'année des réponses.