Core Lightning : comment le changement de marque de mise en œuvre de Blockstream témoigne de sa vision à long terme pour Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Core Lightning : comment le changement de nom de la mise en œuvre de Blockstream témoigne de sa vision à long terme pour Bitcoin

Désormais appelée Core Lightning, la mise en œuvre du réseau Lightning de Blockstream cherche à être la norme interopérable et axée sur les spécifications de Bitcoin.

La société d'infrastructure Bitcoin Blockstream a récemment renommé son implémentation Lightning Network de c-lightning à Core Lightning (CLN) dans le but de mettre en évidence l'accent à long terme du projet sur l'interopérabilité et le travail de spécification.

Le nom initial, qui faisait allusion au langage de programmation C dans lequel l'implémentation est intégrée, ne reflétait pas l'intention réelle de l'entreprise avec le projet. Désormais, Core Lightning cherche à refléter la proposition de valeur de l'implémentation Blockstream.

"Nous espérons que le nom actualisé communique mieux l'accent mis par CLN sur l'interopérabilité, le travail de spécification et l'objectif continu de fournir une implémentation de référence avec la priorité sur l'exactitude et la robustesse", a déclaré la société dans un communiqué. déclaration.

Pourquoi existe-t-il différentes implémentations du Lightning Network ?

Le Lightning Network est un concept abstrait de ce qui est, en fait, de nombreux canaux Lightning différents connectés ensemble. Les canaux de paiement Lightning établissent la base du réseau lorsque deux participants verrouillent une quantité de bitcoins sur la couche de base du réseau Bitcoin pour effectuer des paiements hors chaîne rapides et bon marché entre eux. Cependant, en ouvrant plus de canaux avec différents participants, les paiements peuvent ensuite être acheminés dans ce « réseau maillé », d'un participant à l'autre jusqu'à ce qu'un destinataire final d'un paiement Lightning soit trouvé.

Par conséquent, l'abstraction qui est "le réseau Lightning” exige que différents participants communiquent entre eux afin qu'ils puissent acheminer les paiements les uns des autres et permettre une interaction sans friction. Cette communication se produit entre les nœuds qui exécutent le logiciel du protocole Lightning et sont donc capables d'envoyer et de recevoir des paiements, entre autres.

Alors que dans Bitcoin, il existe actuellement un logiciel de nœud standard de facto, Bitcoin Core, il existe plus d'un type de logiciel de nœud Lightning actuellement populaire. Par conséquent, il est nécessaire de disposer d'un ensemble de documents pour dicter comment ces différents types de nœuds Lightning - alias "implémentations" - peuvent communiquer entre eux.

La Documents sur la base de la technologie Lightning (BOLT) définir l'ensemble de spécifications auxquelles toutes les implémentations de nœuds Lightning doivent se conformer afin d'être un participant stable et conforme au Lightning Network. Il existe actuellement 11 documents BOLT qui décrivent tout, de la façon d'établir un canal de paiement et de le financer avec du bitcoin à la façon de demander un paiement Lightning.

Naturellement, le fait qu'il existe différentes implémentations Lightning signifie également qu'il existe différentes offres disponibles pour les utilisateurs, et qu'ils peuvent choisir le logiciel à exécuter en fonction de leurs besoins spécifiques. À un niveau élevé, il existe quatre principales implémentations Lightning, LND, Core Lightning, Eclair et LDK, chacune orientée vers des cas d'utilisation spécifiques.

Core Lightning : construit à partir de BOLT

CLN, anciennement c-lightning, est utilisé en production sur le réseau principal Bitcoin depuis début 2018. Écrit dans le langage de programmation C, qui offre aux développeurs un degré élevé de contrôle sur le comportement de leur code même à un niveau bas, CLN se concentre sur l'efficacité ainsi que sur la fourniture aux développeurs et aux utilisateurs d'une solution modulaire, basé sur un plugin mise en œuvre du protocole de mise à l'échelle de la couche 2 de Bitcoin.

"Nous visons à être une implémentation haute performance, de niveau entreprise et conforme aux spécifications", a déclaré le développeur Lightning de Blockstream, Rusty Russel. Magazine Bitcoin. "Cela signifie traditionnellement que nous sommes davantage destinés aux utilisateurs, aux entreprises et aux développeurs haut de gamme sur lesquels s'appuyer."

CLN ne fonctionne que sous Linux et MacOS, et nécessite une connexion locale ou distante bitcoin version 0.16 ou supérieure qui est entièrement rattrapée par le réseau sur lequel l'utilisateur s'exécute et à partir duquel il relaie les transactions. La taille est partiellement pris en charge.

En tant qu'implémentation légère, CLN permet un haut niveau de personnalisation car il permet à l'utilisateur de se l'approprier et d'ajouter uniquement les fonctionnalités qu'il souhaite ou dont il a besoin. Les développeurs peuvent s'interfacer avec le démon via des méthodes JSON-RPC personnalisées, ce qui leur permet de personnaliser efficacement les fonctionnalités selon leurs besoins grâce à des plugins qui peuvent accéder directement aux détails de bas niveau.

La modularité, l'efficacité et la robustesse du code de CLN s'accompagnent également d'inconvénients. Christian Decker, chercheur chez Blockstream spécialisé dans les solutions de mise à l'échelle pour Bitcoin, a affirmé Valérie Plante. lors de la rencontre London Bitcoin Devs le mois dernier qui, en adhérant à la philosophie UNIX consistant à faire une chose très bien et à ne pas imposer de décisions à l'utilisateur, CLN se présente sous la forme d'un "os nu" et nécessite un certain dévouement de la part de l'utilisateur pour le faire fonctionner .

Notamment, la mise en œuvre de Blockstream se concentre fortement sur le processus de spécification et génère directement une grande partie de son code à partir des spécifications BOLT, selon Russel. Bien que cela garantisse une implémentation entièrement conforme aux spécifications, l'équipe dispose de moins de temps pour commercialiser son travail et identifie cela comme la raison pour laquelle elle voit moins d'engagement communautaire et de partage de nœuds que d'autres implémentations.

"Nous sommes construits à partir des spécifications Lightning BOLT, littéralement!" Russel a dit Magazine Bitcoin. "Cela signifie que nous accordons une grande importance (et, en tant qu'équipe, avons déployé d'énormes efforts) à la coordination de l'architecture de l'ensemble du Lightning Network via les spécifications BOLT."

L'équipe propose généralement une nouvelle spécification à la communauté de développement au sens large avant de l'ajouter au CLN dans le but d'assurer une compatibilité à long terme entre les différentes implémentations tout en demandant plus d'yeux pour examiner, tester et commenter son code avant qu'il ne soit finalement transformé en un nouveau BOLT et devient prêt à être adopté par toutes les implémentations.

"Une partie de la raison pour laquelle nous effectuons le processus de spécification et d'examen des implémentations est qu'il aide à identifier de meilleures façons de faire les choses - trouver des bogues, identifier les problèmes futurs", a déclaré Lisa Neigut, ingénieure du protocole Lightning chez Blockstream. Magazine Bitcoin.

Compte tenu de son efficacité et de son faible encombrement, CLN est probablement la mise en œuvre la mieux adaptée aux appareils à faible spécification.

L'équipe de Blockstream a également développé un ensemble de nouvelles fonctionnalités qui étendent les fonctionnalités actuelles des BOLT, qui sont souvent des ébauches de spécifications ou des propositions de spécifications, y compris des ouvertures de canaux collaboratifs, des annonces de liquidité et BOLT 12. CLN donne à l'utilisateur la possibilité d'essayer ces spécifications à venir.

"Nous éliminons les parties préliminaires de la spécification Lightning dans le cadre d'options expérimentales", a déclaré Russel Magazine Bitcoin. "Mais si vous êtes plus aventureux, ces options expérimentales vous donnent un

un aperçu de ce qui s'en vient sur le Lightning Network ensuite !"

Les ouvertures de canaux collaboratifs, anciennement appelés « canaux de financement doubles », permettent aux participants d'ouvrir en collaboration un nouveau canal en financer conjointement l'opération de financement de la chaîne. Actuellement, les canaux sont ouverts avec une transaction de financement unilatérale par un participant. Les ouvertures de canaux collaboratifs permettent également d'ouvrir des CoinJoins distribués dans un canal Lightning.

"Vous pouvez orchestrer votre propre CoinJoin avec un tas d'autres nœuds Lightning", a déclaré Neigut Magazine Bitcoin. "Vous le faites de manière décentralisée, de sorte que les seules personnes qui savent qui est impliqué dans cela sont les personnes qui font réellement partie de cette transaction, donc il n'y a pas de coordinateur central qui la réalise."

Les annonces de liquidité tirent également parti des ouvertures de canaux collaboratifs. Selon un Blockstream blog récents, "ils sont un moyen léger de fournir la capacité de coordonner le déploiement de liquidités sur le réseau de manière décentralisée et accessible."

La fonctionnalité tente de résoudre un problème courant dans Lightning : la liquidité entrante.

Les annonces de liquidité vous permettent de "voir toutes les personnes qui annoncent qu'elles vous vendront des liquidités entrantes si vous leur ouvrez un canal, ce qui est vraiment excitant", a déclaré Neigut.

BOLT 12 est un autre projet de spécification pour les portefeuilles et nœuds Lightning avec prise en charge expérimentale dans CLN. La fonctionnalité proposée, appelée "offres", améliorerait les factures BOLT 11 en permettant des offres réutilisables, alors qu'une facture BOLT 11 ne peut être utilisée qu'une seule fois. De plus, alors qu'une facture est exclusivement une demande de paiement, vous pouvez également utiliser une offre pour envoyer, et non seulement recevoir, de l'argent.

Les utilisateurs CLN peuvent désormais également automatiser leurs tâches de gestion de nœuds avec CLBOSS, un outil "d'intelligence artificielle" récemment publié qui peut décider vers quels nœuds ouvrir des canaux, ouvrir des canaux lorsque les frais sont bas et qu'il y a des fonds sur la chaîne, ajuster les frais de routage pour être compétitifs avec les autres nœuds, effectuer des échanges de sous-marins via le boltz .exchange API et rééquilibre automatiquement les canaux.

Alors que différentes implémentations devraient être encouragées à rechercher des solutions autonomes pour leurs cas d'utilisation spécifiques tout en respectant les spécifications BOLT 11 actuelles, proposer une proposition de spécification d'accompagnement pour aider d'autres implémentations à déployer la même fonctionnalité ou une fonctionnalité similaire est généralement une bonne pratique, en tant que telle. une décision censée répondre aux intérêts à long terme de la large base d'utilisateurs toujours croissante de Lightning. Cela étant dit, le processus de spécification n'est pas une tâche facile à supporter.

« En tant que processus, c'est ardu et prend beaucoup de temps. Cela nécessite une coordination avec d'autres personnes ayant de nombreuses perspectives différentes », a déclaré Neigut.

En conséquence, différentes entreprises consacrent différentes quantités de temps et d'efforts à ce processus en fonction de leurs priorités individuelles, qui diffèrent naturellement. Alors que, selon Russel, l'équipe CLN a consacré la plupart de ses «efforts sur les spécifications et les détails de mise en œuvre de bas niveau et presque aucun effort sur la sensibilisation des développeurs ou le marketing», Lightning Labs, la société derrière LND, a souvent choisi de se concentrer davantage ressources d'ingénierie sur les nouvelles fonctionnalités et la résolution des problèmes des clients que sur le processus de spécification ardu.

LND : Les lacunes que le CLN peut combler ?

LND est une implémentation Lightning destinée aux développeurs qui vise à faciliter le développement d'applications en plus, mettant ainsi l'accent sur l'interaction des développeurs, en particulier dans une approche standard de communication via les API REST, qui permettent un développement d'applications plus facile, en plus de fournir une documentation claire et une expérience de configuration facile.

"Nous voulons que les développeurs puissent le récupérer facilement, l'intégrer dans leur produit, créer des applications dessus et le distribuer sous forme de portefeuille ou de nœud auto-hébergé", a déclaré le développeur LND Oliver Gugger. a affirmé Valérie Plante. à la rencontre des développeurs Bitcoin de Londres. "Apporter cela à la plèbe."

En conséquence, LND se concentre sur "avoir une excellente interface de développement", a ajouté Gugger, en activant gRPC et REST.

"LND a une excellente communauté, une configuration facile et une excellente documentation pour les développeurs", a déclaré Russel lorsqu'on lui a demandé pourquoi il pensait que LND était l'implémentation Lightning la plus populaire.

LND a connu la plus grande implication de la communauté parmi toutes les implémentations et gère actuellement la majorité de tous les nœuds du réseau. Quelques estimations placez la part de LND dans le total des nœuds Lightning publics entre 70 % et 90 %.

LND possède également ce qui est sans doute la plus grande équipe de développement à temps plein. En conséquence, l'équipe a réussi à créer une pléthore de services à valeur ajoutée autour de LND, tels que ouverture et les services de liquidité Lightning boucle ainsi que Piscine.

Loop utilise des swaps sous-marins pour relier les bitcoins en chaîne et hors chaîne, ce qui facilite le déplacement des bitcoins vers et depuis le Lightning Network. Il effectue un équilibrage automatisé des canaux, des échanges non dépositaires avec respect de la vie privée, un regroupement de transactions opportunistes permettant d'économiser des frais et un suivi de la progression des échanges en cours.

Pool est une place de marché peer-to-peer pour les canaux Lightning. Il connecte les utilisateurs qui ont besoin d'accéder à des liquidités entrantes à ceux qui ont un capital à déployer sur le Lightning Network en permettant à un participant du Lightning Network d'en signaler le besoin et en incitant les autres à ouvrir des canaux avec eux en utilisant leur capital.

Alors que LND se concentre généralement sur les nouvelles fonctionnalités et le support client, l'équipe CLN a trouvé une lacune sur le marché qu'elle espère combler en accordant une plus grande attention au processus de spécification.

Aux spécifications ou pas aux spécifications

"L'équipe Labs a trouvé des trucs formidables", a déclaré Neigut. « C'est juste qu'en tant qu'organisation, ils n'ont pas été formidables en écrivant des spécifications pour les choses qu'ils ajoutent. Un bon exemple de cela est KeySend.

Envoi de clé permet à un nœud Lightning d'envoyer à quelqu'un un paiement Lightning n'ayant que l'ID du nœud destinataire, ce qui signifie que l'outil ne nécessite pas de factures, qui sont les dernières norme de facto sur le mécanisme de paiement de Lightning.

"Ils l'ont lancé, beaucoup de gens ont commencé à l'utiliser, mais ils ne l'ont jamais complètement spécifié", a ajouté Neigut. « Le CLN voulait donc pouvoir le soutenir. L'un des membres de notre équipe a dû revenir en arrière et trouver comment le faire fonctionner simplement en lisant son code et en le rétroconcevant. »

Une spécification a finalement été écrite par l'implémentation Lightning de Spiral, LDK, a rappelé Neigut, après que son équipe ait procédé à l'ingénierie inverse du code de Lightning Labs.

"Et les autres équipes n'avaient vraiment qu'à suivre parce que LND a une si grande base d'installation", a-t-elle déclaré. "Ce n'est pas le processus le plus collaboratif."

"L'équipe de personnes travaillant sur les trucs de Lightning Labs est assez solide", a ajouté Neigut. "Je pense simplement qu'ils profitent en quelque sorte de la domination de leur réseau pour ne pas avoir à faire tout ce travail supplémentaire, car s'ils ne le font pas, quelqu'un d'autre le fera parce que la majorité des nœuds du réseau exécutent leur code."

Neigut a déclaré qu'elle était déjà habituée à ce que LND soit sous les projecteurs et soit l'implémentation "Lightning par défaut" - quelque chose qu'elle avoue apprécier en tant que développeur en raison du moins grand nombre de demandes d'assistance client qu'elle reçoit.

"Mais je pense que nous aurions une dynamique de réseau plus saine s'il n'y avait pas de mise en œuvre majoritaire", a-t-elle ajouté. «Je pense que cela changerait vraiment le jeu en termes de quantité de collaboration que tout le monde doit faire pour que ses affaires soient expédiées sur Lightning. Et ce serait sain.

Une attention particulière aux spécifications est sans doute essentielle au développement open source dans un environnement de réseau ouvert. Sur Lightning, ces spécifications constituent la base du protocole et assurent l'interopérabilité des différentes versions participant au réseau.

Cependant, alors que certains soutiennent que des changements majeurs et de nouveaux ajouts à une implémentation Lightning devraient être accompagnés d'une spécification, d'autres pourraient considérer les spécifications BOLT comme un strict minimum en plus duquel chaque implémentation peut créer ses propres nouvelles fonctionnalités passionnantes - qui n'auraient pas nécessairement besoin de être ramené à la suite de spécifications.

"Ses dur créer une société d'infrastructure open source, il n'est donc pas surprenant que je ne sois pas d'accord avec toutes les priorités [de Lightning Labs] », a déclaré Russel. «Je crois sincèrement qu'ils trouveront un moyen à la fois de créer un flux de revenus durable et d'être un partenaire fiable dans le développement technique du Lightning Network; Je ne pense pas que quiconque veuille voir le réseau divisé en morceaux.

Ignorer complètement le processus de spécification pourrait conduire à l'émergence de sous-écosystèmes très différents, ce qui pourrait nuire au développement et à l'adoption du Lightning Network dans son ensemble s'ils devenaient non interopérables. Mais comme l'a souligné Russel, rien n'indique qu'une mise en œuvre le fasse aujourd'hui. Le maintien d'une interaction cohérente et interopérable entre les nœuds est essentiel si nous voulons garder les détails de mise en œuvre abstraits loin de l'utilisateur et permettre ainsi une bonne expérience utilisateur.

"Si [Lightning Labs] était en tête et qu'il ouvrait également la voie en matière de spécifications, je pense qu'il y aurait un peu moins de friction autour de l'ajout de nouvelles fonctionnalités, car il ne serait pas aussi difficile de suivre ce qu'ils font, », a déclaré Neigut. "Peut-être qu'ils seront plus impliqués dans le processus de spécification à l'avenir. Je pense qu'ils ont certainement reçu des commentaires de nous et du reste de la communauté sur le fait que le processus de spécification est important.

Une partie de la controverse et tensions dans le processus de spécification BOLT proviennent de un courriel partagé sur Twitter fin février, dans lequel le responsable de la liquidité Lightning chez Lightning Labs, Alex Bosworth, a commenté BOLT 12 et le processus de spécification BOLT.

Bosworth a écrit que le processus BOLT est un processus de normalisation arbitraire qui ne nécessite pas le consentement des personnes et représente donc "plus un ensemble de documents d'opinion contrôlés par un processus arbitraire qu'un traité entre des implémentations indépendantes".

Lightning Labs plus tard clarifié que les commentaires de Bosworth ne reflètent que son opinion et pas nécessairement celle de l'entreprise.

Core Lightning : comment le changement de marque de mise en œuvre de Blockstream témoigne de sa vision à long terme pour Bitcoin PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
Bosworth a sans doute fait allusion au rejet de la conformité au processus de spécification chaque fois qu'il entre en conflit avec ce qu'il appelle les «problèmes actuels» dans Lightning, car ces normes pourraient ne pas être utilisées par la majorité du réseau et ne devraient donc pas justifier beaucoup d'efforts de développement, alors que ces problèmes pourraient représenter les points faibles de la majorité des utilisateurs et devraient donc être prioritaires. Source de l'image.

Decker a partagé ses réflexions sur les commentaires de Bosworth et sur le processus de spécification BOLT lors de la rencontre London Bitcoin Devs.

"Je pense que ce sont des déclarations très fortes de la part de quelqu'un qui n'a jamais participé à une seule réunion de spécifications", a-t-il déclaré. "Il y a un peu de controverse dans le processus de spécification, mais c'est par conception. Si une implémentation était capable de dicter à quoi ressemble l'ensemble du réseau, nous nous retrouverions avec une vision très myope de ce que le réseau pourrait être et nous ne serions pas en mesure de servir tous les différents cas d'utilisation que nous servons.

"Et donc oui, parfois le processus de spécification est frustrant, je suis totalement d'accord avec cela", a-t-il ajouté. «Nous avons certainement des points de vue différents sur ce à quoi le réseau devrait ressembler. Mais par ce processus de thèse, d'antithèse et de synthèse, nous arrivons à un système qui est beaucoup plus à même de servir nos utilisateurs que si une seule implémentation devait le faire seule.

"Personnellement, je ne travaille pas sur les spécifications, donc je ne me sens pas qualifié pour donner une réponse", a déclaré Gugger lors de la rencontre, commentant le courrier électronique de Bosworth. "Je voulais juste ajouter que je ne suis pas nécessairement d'accord avec tous les points qu'Alex a mentionnés. Je l'aurais certainement dit d'une manière différente aussi. Je pense que le manque de ressources pour travailler sur la spécification est parfois interprété comme si nous bloquions des choses, ce qui n'est ni l'intention ni notre objectif bien sûr. Nous voulons travailler davantage sur les spécifications, donc j'espère que nous nous améliorerons là-bas. C'est une chose intéressante à observer, comment cette frustration remonte parfois à la surface. Merci [Decker et ACINQ Developer Bastien Teinturier] pour tout le travail que vous faites sur la spécification. Je dois aussi reprendre donc je ferai de mon mieux.

Russel a également commenté le courriel de Bosworth dans un Fil de Twitter où il s'est engagé à passer plus de temps à peaufiner et à commercialiser CLN, car il a déclaré que LND n'avait pas mis en œuvre Lightning en premier et ne l'avait pas mis en œuvre le mieux – bien que sa communauté soit formidable, a-t-il ajouté.

"Il s'avère qu'ils ont décidé de tirer parti de la domination du réseau dans le contrôle du protocole, et le processus de spécification n'est pas" réel "", a-t-il écrit dans le fil. « Lightning Labs a revendiqué la propriété du réseau Lightning de plusieurs manières : j'ai hésité à les dénoncer en public. Mais le réseau Lightning et la communauté méritent mieux.

Russel n'a pas répondu aux questions de Magazine Bitcoin se référant à ce fil. Lightning Labs a refusé de commenter.

"En 2016, nous sommes venus de trois directions différentes et avons décidé de rassembler toutes les choses que nous avons apprises au cours de cette phase d'expérimentation initiale dans une seule spécification afin que nous puissions collaborer et interagir", a déclaré Decker lors de la rencontre. « Cette phase expérimentale doit toujours être suivie d'une proposition introspectable par tout le monde et pouvant être mise en œuvre par tout le monde. Parfois, cette proposition formelle est manquante et cela empêche les autres implémentations de donner leur propre avis sur cette fonctionnalité. Cet examen est très important pour s'assurer que cela fonctionne pour tout le monde et que c'est le meilleur que nous puissions faire.

"Comme le suggère le nom Lightning Network, il profite beaucoup des effets de réseau que nous obtenons en étant compatible, en étant capable d'interopérer et en permettant à toutes les implémentations de jouer sur un pied d'égalité", a-t-il ajouté plus tard.

Les implémentations se complètent, elles ne se font pas concurrence

Outre cette controverse très spécifique concernant le processus de spécification, les implémentations de Lightning fonctionnent principalement séparément, puis ensemble pour apporter les fonctionnalités les meilleures et les plus demandées au réseau, garantissant une meilleure expérience utilisateur globale.

En conséquence, la décision de Blockstream de pousser CLN en tant qu'offre conforme aux spécifications, modulaire et légère constitue une alternative pour ceux qui souhaitent exécuter une implémentation de nœud qui s'efforce d'être complètement interopérable avec le reste du réseau et fournit un ensemble unique d'avantages à ceux qui le font.

Alors que différentes implémentations s'efforcent de devenir leur meilleure version et de répondre à un cas d'utilisation spécifique en explorant leur propre proposition de valeur, l'utilisateur est finalement celui qui en bénéficie à mesure que des options plus grandes et meilleures émergent.

Horodatage:

Plus de Magazine Bitcoin