Le vendredi 31 octobre 2008, Satashi Nakamoto a envoyé une proposition pour "un nouveau système de caisse électronique entièrement peer-to-peer, sans tiers de confiance", à une liste de diffusion cryptographique. La première réponse - la première fois que quelqu'un publiquement a commenté le bitcoin - est arrivé le dimanche suivant: "Nous avons très, très besoin d'un tel système", a écrit James A. Donald, "mais d'après ce que je comprends de votre proposition, elle ne semble pas évoluer à la taille requise."
Poursuivant 10 ans plus tard, cette critique sonne toujours vrai. Même les évangélistes les plus ardents de Bitcoin admettent que cela ne vaut rien pour faire de petits achats quotidiens. Mais le Lightning Network, l'un des projets de mise à l'échelle des bitcoins les plus prometteurs actuellement en cours, pourrait changer cela.
Le réseau Lightning
S'exprimant lors du sommet Blockstack en juillet 2017, la PDG de Lightning Labs, Elizabeth Stark, a cité cette première critique de l'argent électronique de Nakamoto, mais a exprimé sa confiance dans le fait que le bitcoin puisse en fait évoluer. "Nous sommes fondamentalement à nouveau en 1995 en ce qui concerne les chaînes de blocs et les technologies décentralisées", a-t-elle déclaré, se référant à la période précédant l'acquisition d'Internet par HTTP et des autres couches de transport et d'application TCP / IP.
Le réseau Lightning est l'une des applications de "couche 2" les plus parlées pour la blockchain bitcoin. Proposé pour la première fois par Joseph Poon et Tadge, alias Thaddeus Dryja en 2015 (la version la plus récente de leur livre blanc est disponible ici), la foudre a été intégrée dans une spécification de fonctionnement appelée lightning-rfc ou "BOLTS" par trois sociétés, chacune ayant sa propre implémentation: Lightning Labs a lnd, Blockstream a c-lightning et ACINQ a eclair. Il existe également des implémentations non BOTLS en cours de développement, comme le tonnerre.
Le réseau Lightning est déjà opérationnel, mais il en est à ses balbutiements. De vrais bitcoins ont été envoyés et presque toujours reçus à l'aide des implémentations de Lightning Labs, Blockstream et ACINQ, et les trois sont interopérables. La vidéo ci-dessous montre un ingénieur ACINQ envoyant presque 0.000001 bitcoin (environ 0, 01 $) presque instantanément d'un nœud eclair à un nœud lnd via un nœud c-lightning:
Pour voir combien d'amélioration cela représente, nous avons essayé une transaction similaire sur la blockchain bitcoin en utilisant GreenAddress, une application de portefeuille mobile. L'application a suggéré de payer aux mineurs 0, 00001907 BTC (0, 19 $): des frais de 1, 907%. Bien qu'il ne soit pas clair combien de blocs ces frais étaient censés confirmer dans (nous avons contacté GreenAddress pour le savoir), la réponse est probablement six blocs, soit environ une heure.
Nous ne saurons jamais combien de temps cette transaction aurait réellement pris, cependant: un message d'erreur nous a informés que "les sorties inférieures à 546 satoshis sont considérées comme de la poussière non rentable par Bitcoin. Veuillez augmenter la valeur."
Lightning Labs a également testé des échanges atomiques entre chaînes à l'aide du réseau; ce sont des transferts de valeur entre différentes blockchains, en l'occurrence le bitcoin et le litecoin, qui marquent potentiellement une première étape vers la construction d'échanges décentralisés.
Lightning permet des micropaiements que le bitcoin ne peut pas lui-même, mais les implémentations existantes sont toujours boguées. Stark exhorte les utilisateurs à en apprendre davantage sur la foudre en utilisant le "testnet" de Bitcoin (c'est-à-dire utiliser de la fausse monnaie), plutôt que le "mainnet" de tir réel. Cependant, environ 50 000 $ de transactions ont été effectuées sur le réseau principal au moment de la rédaction de cet article, et certaines personnes ont perdu de l'argent à cause d'un bogue c-lightning. (Christian Decker, ingénieur technique principal chez Blockstream, m'a dit par e-mail que les fonds étaient finalement récupérés dans la plupart des cas.)
Alors, comment fonctionne la foudre?
Comment fonctionne Lightning
La solution de Lightning est basée sur des canaux de paiement bidirectionnels hors chaîne. Supposons qu'Alice et Bob effectuent fréquemment des transactions entre eux en petites quantités. Les paiements en chaîne ne sont pas pratiques dans ce cas en raison des frais et des longs délais de confirmation impliqués, ils décident donc d'ouvrir un canal leur permettant d'envoyer des bitcoins dans les deux sens, instantanément et sans frais.
Ouverture d'une chaîne
Pour ouvrir un canal, Alice, Bob ou les deux contribuent une certaine quantité de bitcoins à une adresse spéciale via ce qu'on appelle une transaction de financement (la case verte dans le diagramme ci-dessous). Supposons qu'Alice contribue 1 BTC. Elle envoie les fonds à ce qu'on appelle une adresse multisig 2 sur 2, ce qui oblige Alice et Bob à «signer» cryptographiquement toute transaction d'envoi avec leurs clés privées. Une transaction normale ne nécessite que la signature de la (unique) clé privée correspondant à la clé publique de l'adresse d'envoi.
Il est important de noter que la transaction de financement n'est pas encore signée ou diffusée sur le réseau.
Ensuite, Alice et Bob créent une "transaction d'engagement" en utilisant la transaction de financement comme "parent": ils utilisent sa sortie non confirmée de 1 BTC comme entrée pour une transaction "enfant" qui envoie 0, 5 BTC à Alice (sortie 0) et 0, 5 BTC à Bob (sortie 1). Si vous protestez contre le fait que le protocole de bitcoin ne permet pas aux utilisateurs de signer une dépense sans connaître les signatures de l'entrée, cette capacité a été accordée via un soft fork.
Alice signe ensuite la sortie en envoyant 0, 5 BTC à Bob; Bob signe la sortie en envoyant 0, 5 BTC à Alice. Les deux signent et diffusent ensuite la transaction de financement, qui est engagée dans la blockchain bitcoin (et soumise aux frais de réseau et aux temps d'attente).
Ils ont maintenant un canal de paiement ouvert à travers lequel ils peuvent transférer le bitcoin d'avant en arrière instantanément et gratuitement. Soit Alice soit Bob peuvent le fermer à tout moment et réclamer leur 0, 5 BTC chacun, ou quel que soit le solde mis à jour.
Ouverture d'une chaîne… en anglais
À moins que vous ne connaissiez déjà assez bien les entrailles du réseau de foudre, il est probablement difficile de digérer le "signe ici, partez ici, dépensez ceci, diffusez cela - non pas cela " .
Voici une description plus conceptuelle. La transaction de financement ressemble à cela: elle fournit les fonds pour la chaîne. Il agit également comme un plafond pour la chaîne: aucune des parties ne peut se retrouver avec plus que le montant de financement initial, et les soldes des deux parties doivent s'additionner à ce montant. La raison pour laquelle la transaction de financement est créée en premier, mais diffusée en dernier, est que si elle avait simplement été publiée dans la blockchain en une seule étape, rien n'aurait été accompli à part une transaction unique et simple. La foudre ne les rend pas plus rapides ou moins chères.
En laissant la transaction de financement ouverte, en insérant une transaction d'engagement - qui, comme décrit ci-dessous, fonctionne comme une sorte de contrat intelligent - puis en fermant la transaction de financement, les éclairs ouvrent une sorte de trou de ver dans le réseau. Il vous permet de déplacer le bitcoin d'avant en arrière le long d'un seul chemin défini. Vous utilisez le protocole bitcoin, mais en contournant les retards et les dépenses imposés par les mineurs.
Garder Lightning sans confiance
Supposons que Bob veuille maintenant payer Alice 0.1 BTC en utilisant son canal ouvert. Les deux parties mettent simplement à jour la transaction d'engagement - pas besoin de faire appel aux mineurs. Le solde, auparavant 0, 5 BTC chacun, est désormais de 0, 6 BTC pour Alice, de 0, 4 BTC pour Bob.
Le seul problème est, comment le faire en toute sécurité? Parce qu'ils ont déjà échangé des signatures pour la transaction initiale, Bob peut signer celle-ci - plutôt que la plus récente - et repartir avec 0, 5 BTC au lieu de 0, 4 BTC qu'il est réellement redevable. En d'autres termes, il peut voler environ 1 000 $ à Alice, en fonction des prix au moment de la rédaction. La réponse pourrait être de n'ouvrir des canaux qu'avec des personnes de confiance. Mais alors quel est l'intérêt d'utiliser le bitcoin?
Trouver une solution cryptographique à ce dilemme se résume à un seul objectif: rendre impossible la signature d'une ancienne transaction et fermer le canal d'une manière qui reflète un état précédent. Tant que cela est une option, la foudre a un problème de double dépense.
N'oubliez pas que Bob signe la moitié de la transaction d'engagement (engagement Tx 1a ci-dessous), que seule Alice peut diffuser car la sienne est la signature manquante. Alice signe l'autre (engagement Tx 1b), que seul Bob peut ensuite diffuser. Soit on peut le faire et fermer le canal, mais en utilisant les capacités d'écriture de contrat intelligente (limitée) de bitcoin, les sorties des deux moitiés de la transaction d'engagement peuvent être soumises à différentes restrictions. Plus précisément, une sortie peut permettre au bénéficiaire de dépenser les fonds immédiatement, tandis que l'autre peut être annulée par l'une ou l'autre des parties - via un contrat de maturité de séquence révocable (FFRS) - pour une période définie, comme 1000 blocs, ou environ une semaine.
Voici pourquoi c'est utile. Si Bob s'avère sournois et sans principes, il ne peut que signer et diffuser l'engagement Tx 1b (ci-dessus), qui verse immédiatement Alice (livraison 1b) et conserve ses fonds dans les limbes révocables pendant une semaine (livraison révocable 1b). Alice, voyant que Bob a tenté de la changer, peut déclencher la révocation et réclamer non seulement le 0, 1 BTC que Bob a tenté de voler, mais le 0, 4 BTC auquel il aurait autrement eu droit.
En d'autres termes, toute la chaîne va à Alice si elle surprend Bob en train de tricher. C'est possible parce que lorsque les parties créent une nouvelle transaction d'engagement (C2a et C2b ci-dessous), promettant en effet de ne pas diffuser une ancienne transaction d'engagement (C1a ou C1b), elles mettent leur argent là où se trouvent leurs bouches. Parallèlement à la nouvelle transaction d'engagement, ils créent une transaction de réparation de violation avec deux sorties (BR1a et BR1b) s'appliquant à l'engagement précédent. Alice donne à Bob sa clé privée pour sa moitié de la transaction de réparation de violation, et vice-versa. Maintenant, si l'une ou l'autre essaie de diffuser l'ancienne transaction, la contrepartie peut profiter de la période d'attente de 1000 blocs et foncer avant cette transaction, en prenant le solde entier de la partie incriminée.
Le problème est qu'Alice doit porter une attention semi-constante à ses chaînes, de peur que Bob ne la surprenne pour 1000 blocs. Poon et Dryja suggèrent de désigner un tiers dont le travail consiste à déclencher des transactions de réparation de violation - celles récompensant tous les fonds de la chaîne à la partie lésée - lorsqu'une contrepartie tente de tricher. Ceux-ci pourraient être payés sur la pénalité.
Olaoluwa Osuntokun, co-fondateur et CTO de Lightning Labs, développe des "tours de guet" pour servir de ces tiers exécuteurs. Alors que des inquiétudes ont été exprimées quant au fait que ces nœuds pourraient agir en tant que parties de confiance et introduire de l'insécurité dans le réseau, Osuntokun dit à CoinDesk qu'une seule tour de guet honnête serait nécessaire pour un canal donné.
De plus, comme le souligne Christian Decker, ingénieur technologique principal chez Blockstream, la fraude est risquée. C'est un pari important de supposer que la partie que vous essayez de voler ne s'enregistrera pas au moins une fois par semaine, et le risque de perdre tout l'argent de votre chaîne peut être suffisamment dissuasif.
Connexion des canaux
Dans le monde réel, Alice ne veut pas traiter exclusivement avec Bob, ni Bob exclusivement avec Alice. Les deux ont un nombre illimité de contreparties pour lesquelles elles doivent payer et être payées. L'ouverture de canaux avec chacune de ces parties serait impossible. Même si l'interface utilisateur était simplifiée à la perfection, peu d'utilisateurs auraient la liquidité nécessaire pour bloquer le bitcoin dans une douzaine de canaux ouverts ou plus.
Heureusement, ils n'ont pas à le faire. Comme le montre la vidéo ci-dessus, les utilisateurs peuvent acheminer les paiements via les canaux des utilisateurs intermédiaires, de sorte que le paiement à quiconque avec un ou deux canaux ouverts devrait être possible grâce au principe des six degrés de séparation. Contrairement aux transactions au sein d'un seul canal, ces transactions multicanaux impliqueront probablement de petits frais pour inciter les nœuds à financer les canaux et à les garder ouverts. Le routage Oignon, la technique utilisée pour déguiser les utilisateurs du navigateur TOR, empêche les nœuds intermédiaires de voir le chemin complet emprunté par une transaction, atténuant les problèmes de confidentialité.
Il reste à voir dans quelle mesure ce réseau de canaux fonctionne dans la pratique, et il est concevable que si les paiements doivent emprunter une route trop compliquée - avec trop de «sauts» via des canaux intermédiaires - les frais facturés par ces utilisateurs pourraient s'additionner.
Lightning peut-il rester décentralisé?
Ces inquiétudes sont liées à une qui, pour les critiques, représente une faille insurmontable dans le réseau de foudre. Dans les implémentations d'aujourd'hui, un canal est livré avec un plafond: le montant de bitcoin dans la transaction de financement initiale limite le montant total d'argent dans le canal.
Cette situation impose un compromis aux utilisateurs disposant de ressources raisonnablement limitées. Ils peuvent soit financer des canaux avec de grandes quantités de bitcoin afin de s'assurer qu'ils ont les fonds pour effectuer tout paiement dont ils auraient besoin, soit financer des canaux plus petits et avoir du bitcoin disponible pour d'autres utilisations. (Étant donné que les paiements peuvent être acheminés via des canaux liés, un utilisateur donné n'a probablement pas besoin d'ouvrir plus d'une poignée de canaux, et peut-être seulement deux.)
Le choix se résume à avoir de la liquidité dans les canaux de foudre ou de la liquidité en dehors d'eux, en chaîne. Choisir de financer des canaux de paiement liquides pourrait être risqué si les tours de guet ou une autre solution n'empêchent pas la perte de fonds par inattention. D'un autre côté, si les canaux de paiement sont sécurisés et que la foudre devient la principale méthode d'utilisation quotidienne du bitcoin, il n'y aurait pas de problème à laisser des fonds dans les canaux. Ils serviraient de "carte de débit rechargeable ou d'argent comptant", comme le dit Decker, tandis que la chaîne principale agit comme un compte d'épargne.
Stark fait un argument similaire: le financement d'un canal de foudre vous empêche d'utiliser ce bitcoin pour autre chose, sauf "un réseau de nombreux nœuds qui, à travers le multihop, acceptera instantanément le bitcoin", a-t-elle écrit par e-mail. "Nous envisageons que les fonds sur les canaux Lightning soient plus utiles que les bitcoins en chaîne pour les transactions en raison de la vitesse instantanée et des frais peu élevés", a-t-elle ajouté.
Hubs?
Mais avec qui mettriez-vous ces chaînes en place? Choisir le Bob à votre Alice est une décision économique, pas cryptographique, et pour les critiques du réseau de foudre, la réponse évidente serait une sorte de «hub», un nœud avec beaucoup de capital, lui donnant la possibilité de maintenir des chaînes ouvertes bien financées avec plusieurs partis à la fois.
L'idée que ce qui équivaut à une industrie bancaire bitcoin hors chaîne pourrait se développer perturbe les amateurs de bitcoin, qui le considèrent comme centralisant le réseau.
Stark conteste cette argumentation. "Des milliers d'utilisateurs exécutent des nœuds complets pour Bitcoin", écrit-elle, "et nous pensons que ceux-ci et d'autres exécuteront également des nœuds sur Lightning (c'est plus facile parce que vous n'avez pas besoin d'un nœud complet Bitcoin avec lui, et contrairement aux nœuds complets Bitcoin, vous peut faire de petits frais de routage). " Elle souligne également que son équipe travaille sur "l'épissage", qui permettrait de recharger les canaux en utilisant le bitcoin de la chaîne principale. Cette capacité pourrait atténuer le compromis entre le fait de mettre du bitcoin dans un canal ou de le laisser sur la chaîne principale, ce qui pourrait à son tour réduire la tendance des hubs à se former.
Decker considère qu'il est probable qu'un «réseau à deux niveaux se formera, avec un grand nombre de nœuds fiables et agissant comme l'épine dorsale du réseau». Il s'attend cependant à ce que ce soient des commerçants plutôt que des hubs qui existent uniquement pour fournir des canaux liquides. Fournir ces canaux à plusieurs utilisateurs, soutient-il, coûterait cher, obligeant les hubs à facturer des frais élevés et à les rendre non compétitifs par rapport aux autres nœuds.
Le PDG d'ACINQ, Pierre-Marie Padiou, ne prétend pas savoir comment le réseau éclair pourrait se développer. "Il est très difficile de prédire quel sera l'équilibre entre la centralisation et la décentralisation", a-t-il écrit par e-mail. "Bien sûr, il y aura des nœuds plus gros et des nœuds plus petits, mais dans quelle mesure il est difficile de le dire à l'avance."
La bonne façon d'évoluer?
Poon et Dryja affirment que «en utilisant un réseau de ces canaux de micropaiement, Bitcoin peut évoluer vers des milliards de transactions par jour avec la puissance de calcul disponible sur un ordinateur de bureau moderne aujourd'hui». Peut-être, mais ce n'est certainement pas le cas aujourd'hui. Moins de 1 000 nœuds Lightning Mainnet sont ouverts au moment de la rédaction.
La foudre n'est pas non plus la seule proposition de mise à l'échelle. Un concurrent majeur est le bitcoin cash, une fourchette dure litigieuse de bitcoin qui permet de plus gros blocs. Le débat entre les partisans de Bitcoin Cash, les partisans de la foudre et les partisans de diverses troisièmes façons - même les anti-détartrants occasionnels - est animé, si acrimonieux. Il se peut que l'un ou l'autre vienne en tête, qu'ils continuent de coexister ou que tout échoue.
Dans tous les cas, le réseau Lightning est une tentative prometteuse pour surmonter le dilemme d'évolutivité qui hante le Bitcoin depuis le premier week-end de Bitcoin en 2008.
