Fermer

mai 18, 2018

Comment le réseau Lightning aide Blockchains Scale –


Cette introduction au Lightning Network a été initialement publiée sur le site de Bruno's Bitfalls et est reproduite ici avec sa permission

Bitcoin est actuellement impossible à utiliser en raison de transactions lentes et coûteuses blockchain . La plupart des gens l'utilisent comme réserve de valeur (l'erreur numérique sur l'or numérique ) ou pour échanger sur les échanges. Un concept connu sous le nom de Lightning Network a été présenté comme une solution à ce problème d'évolutivité

The Basics of Lightning Network

Le Lightning Network a été décrit pour la première fois dans un livre blanc . ] par Joseph Poon et Thaddeus Dryja. Le concept, cependant, a été introduit par Satoshi Nakamoto dans un courriel de à Mike Hearn en 2013 .

The Lightning Network fonctionne par chaînes de paiement qui sont en fait des portefeuilles multi-sig ( signature multiple). Un portefeuille multi-sig est juste une adresse Bitcoin qui nécessite une signature ou des clés privées de plusieurs propriétaires avant que l'argent ne soit dépensé dans cette adresse. Vous pouvez les voir comme des coffres de banque qui nécessitent le tour de deux clés différentes en même temps pour s'ouvrir.

 Un coffre avec deux clés

Un portefeuille multi-sig peut, par exemple , être l'adresse commune Bitcoin d'un couple marié, dans lequel ils doivent tous deux signer une transaction afin de dépenser leur Bitcoin commun.

Le but des canaux de paiement est l'exécution régulière de paiements plus petits et d'éviter des frais de transaction élevés. Des exemples de relations idéales pour les canaux LN sont employé-employeur, consommateur-producteur, fournisseur de services publics, café-buveur-café, etc. L'idée est de laisser un client ouvrir un canal de paiement avec son café en payant régulièrement avoir à attendre la confirmation (10 à 60 minutes actuellement)

Comment fonctionne le réseau Lightning

 Alice et Bob

Expliquons-nous avec un exemple étape par étape. Notre scénario imaginaire est le suivant:

Bob veut payer Alice pour écrire des articles pour lui. L'offre est de 10 BTC pour un total de 100 postes, soit 0,1 BTC par poste.

Dans un système Bitcoin traditionnel, cela prendrait une heure en moyenne avec des frais de 5 à 500 dollars par transaction, en fonction du retard du réseau. est. Parce que Alice et Bob sont maximistes bitcoin ils ont choisi d'ouvrir un canal LN plutôt que d'aller avec un altcoin moins cher et plus facile à utiliser . 19659015] Bob envoie une transaction initiale d'ouverture de canal  » width= »1024″ height= »396″ class= »aligncenter size-large wp-image-165874″/>

Bob crée une transaction Bitcoin régulière sur la chaîne principale qui définit ce qui suit:

Ce dernier est en fait une sous-transaction dans la transaction principale avec une fonction "timelock", qui s'assure que, malgré les deux parties l'ayant confirmé, l'argent n'est pas mobile pendant une semaine.

Ainsi, Bob envoie à Alice deux transactions – une dans laquelle il suggère l'ouverture un canal de paiement avec un dépôt de 10 BTC sur un multi-sig qui est ouvert avec cette transaction, et une dans laquelle il dit que le 10 BTC reviendra à lui s'il n'y a pas eu d'activité dans le canal pendant une semaine

Étape 2: Accepter l'ouverture d'une chaîne

 Alice accepte et signe [19659005] Alice reçoit deux transactions dans lesquelles elle peut voir que Bob offre 10 BTC sur l'adresse multi-sig avec les deux comme les parties participantes. Elle peut aussi voir qu'il a ajouté la condition de lui rendre l'argent après une semaine d'inactivité. Elle accepte cela et signe les transactions, après quoi elle diffuse les transactions et les envoie à la blockchain principale, finalisant la création de la chaîne.

 Transactions en attente

Il est important de définir deux concepts ici: signature d'une transaction et confirmation ou diffusion d'une transaction. Une transaction signée est simplement prête à être envoyée à la blockchain et constitue un accord entre les parties. Ce n'est pas visible sur la blockchain. Une diffusion ou une transaction confirmée est envoyée à la chaîne de blocs et ferme le canal de paiement, réglant les soldes.

La signature de la première transaction ouvre le canal et provoque le dépôt de 10 BTC de Bob dans l'adresse multi-sig. Signer l'autre, en dépit de permettre à Bob de récupérer les 10 BTC, ne peut devenir actif qu'après une semaine

 Le canal est ouvert, les transactions sont dans la blockchain

Alice et Bob ont maintenant une semaine faire le premier pas.

3. Envoyer la première transaction

Alice a écrit un article et Bob l'aime. Il paie 0.1 BTC en faisant ce qui suit:

 Bob envoie la première transaction

Alice n'a pas à signer ces nouvelles transactions. En ne répondant pas à eux, elle déclenchera le délai d'attente d'une semaine qui rapportera l'argent à Bob et annulera leur arrangement. Pour garder le deal ouvert, elle doit le garder "sur la table" en le signant et en ne le diffusant pas.

Ce "départ sur la table" est la partie que les nœuds du réseau Lightning prennent en charge. Le logiciel accepte et signe les transactions, mais uniquement sur la couche LN, et non sur la blockchain Bitcoin principale. Après une signature d'Alice, le nouvel état de la chaîne est l'état valide .

 Alice signe

La transaction est, à un moment donné, immuable et les conditions qui y sont décrites doivent être satisfaites avant qu'un changement ne survienne: soit une semaine doit expirer, soit la transaction doit être diffusée par Alice ou Bob pour finaliser la dernière distribution: 0.1 – 9.9 BTC.

4. Envoyer la deuxième transaction

Alice envoie un nouvel article trois jours plus tard et c'est à Bob d'envoyer un nouveau 0.1 BTC. Voyant qu'il n'est pas possible de modifier une transaction existante et que Bob est incapable d'envoyer un autre 0.1 dans la même transaction, il en génère un nouveau qui dit: "De l'adresse multi-sig avec 10 BTC j'envoie 0.2 BTC à Alice et 9.8 pour moi "et un autre" Si Alice ne signe pas et ne diffuse pas cet état dans une semaine, j'obtiens tous les 10 BTC. "

 La nouvelle transaction écrase l'ancien

Alice maintenant a l'opportunité de signer et de diffuser la nouvelle transaction, prenant ainsi 0.2 BTC et finissant la relation de travail, ou continuer avec, envoyer plus d'articles, et obtenir plus de ces transactions incrémentales. Elle peut également rester hors ligne ou inactive pendant une semaine et tout perdre

 Alice signe la deuxième transaction

5. Docking Pay

Dans le deuxième article, Alice a accusé une entreprise concurrente de plagiat, mais n'a pas fait assez de vérification des faits. Cela a nui à la réputation de l'entreprise et Bob décide d'amarrer 0,05 de son salaire.

Bob génère une nouvelle transaction qui dit "De l'adresse multi-sig avec 10 BTC j'envoie 0.15 BTC à Alice et 9.85 BTC à moi" une transaction disant "Si Alice ne signe pas et ne la diffuse pas dans une semaine, j'obtiens tous les 10 BTC"

 Paiement amarré

Alice a maintenant les options suivantes:

  • tolérer le salaire couper et signer la transaction, continuer avec le travail
  • diffusé la dernière transaction signée, celle pour 0.2 BTC et obtenir plus d'argent que Bob offre actuellement, mais cela finirait leur relation
  • pas répondre et tout perdre.

5a. Alice Cheats

Supposons que, à cause de l'incident du second article, la relation a été définitivement endommagée et Alice veut sortir, mais elle a déjà signé la transaction BTC 0,15. Peut-elle décider de signer le 0.2 BTC au lieu de cela encore sur la table?

 Alice vise à envoyer une transaction plus ancienne

Le LN est mis en place de telle façon que signé (mais pas envoyé ) les transactions sont classées par âge. Essayer d'envoyer une ancienne transaction signée est une infraction punissable dans le réseau qui envoie tout l'argent du multi-sig à la partie non-fautive.

Ce système de sécurité s'assure que seule la dernière transaction signée peut être diffusée, mais a d'autres implications: les utilisateurs doivent être constamment en ligne pour que leurs nœuds puissent communiquer entre eux. Pour empêcher les utilisateurs d'être en ligne à tout moment, le concept de Watchtowers a été introduit, que nous expliquerons dans un autre article.

5b. Bob Cheats

Supposons que Bob est le tricheur. Alice a envoyé le troisième article, mais Bob décide de la punir davantage en ne payant pas du tout. Alice ne sait pas si elle sera à nouveau payée et veut mettre fin à la relation. Elle peut simplement diffuser la dernière transaction signée et la BTC 0,15 lui sera envoyée. Elle perdra seulement autant d'argent qu'elle a dépensé pour écrire un (troisième) article.

 La ​​dernière transaction est encore OK pour envoyer à la blockchain

Mais que se passe-t-il si cela offense davantage Bob? il décide d'envoyer une autre transaction dans laquelle il dit "de l'adresse multi-sig, j'envoie 0 à Alice et 10 à moi, et si elle ne signe pas et ne diffuse pas dans une semaine, tout est à moi de toute façon". [19659005] C'est ici qu'intervient le concept de transactions signées et diffusées mentionné plus haut. Pour qu'une transaction LN soit valide, elle doit être signée par les deux parties. Si elle n'est pas signée, la dernière transaction signée est valide pour la diffusion.

 Alice rejette la tentative de vol de Bob

Cela rend Alice à l'abri de la fraude ultime.

5c. All Good

L'alternative qui convient le mieux à toutes les personnes impliquées est que Alice fasse parfaitement son travail et que Bob envoie des transactions supplémentaires. Disons que Alice a eu une autre erreur ou deux et a fini par gagner 9,9 BTC, c'est ce que dit la dernière transaction de Bob: 9,9 BTC à Alice, 0,1 BTC pour lui. Les deux sont heureux avec cet accord et Alice signe et diffuse cette transaction.

 Alice signe et diffuse la dernière transaction

Ce qui suit a lieu:

  • Alice signe et diffuse la transaction et il est écrit à la blockchain.
  • La transaction coûte un frais de transaction, amarré du total étant payé. Vu que c'est seulement un tx maintenant, et pas 100 d'entre eux, c'est seulement le coût d'un seul tx.
  • Dans dix minutes à une heure, la transaction sera finalisée sur la blockchain Bitcoin et l'argent sera transféré,

 La transaction finale est dans la blockchain

Il est important de noter que, bien que ce processus semble incroyablement complexe, ils cherchent à masquer cette complexité et à la cacher aux utilisateurs. Les canaux de paiement sont censés être invisibles dans le logiciel de l'utilisateur final.

Réseau et routage

Dans l'exemple ci-dessus, Alice et Bob ont une relation clairement définie avec un objectif final en tête. En théorie, les canaux de paiement resteront ouverts indéfiniment à cause du routage . L'idée est de connecter plusieurs nœuds et d'acheminer les paiements de l'un à l'autre, ce qui permet d'envoyer des paiements à des nœuds avec lesquels vous n'êtes pas connectés via des nœuds. Par exemple, si Alice travaille avec Roko, un graphiste, et Bob travaille avec lui, supposons qu'Alice aura besoin d'un travail de conception graphique de 0.1 BTC. . Elle peut envoyer ceci à Roko par Bob tant que Bob a au moins 0.1 BTC dans le canal ouvert vers Roko, et Alice a 0.1 BTC dans son équilibre vers Bob. Bob utilise un nœud médiateur Lightning Network dans ce cas

 Envoi de Bob par Roko

Le problème est que si quelqu'un a déjà payé Roko par Bob et Bob n'a plus de solde de 0.1 BTC vers Roko, personne d'autre ne peut payer Roko par Bob; ils ont besoin de trouver un autre itinéraire. Cette vidéo explique bien .

Ceci est un argument pour garder les canaux ouverts indéfiniment et définitivement verrouiller les fonds dans le LN, car on suppose que la popularité de LN sera si grande que n'importe qui pourra payer n'importe qui. Mais tout cela a son propre ensemble de problèmes que nous aborderons dans un autre article

Conclusion

Essentiellement, le LN est une solution pratique à certains problèmes qui actuellement n'existent pas le réseau Bitcoin. Est-ce que cela en fait un moyen efficace de mettre à l'échelle Bitcoin? Nous ne le pensons pas, car certains problèmes semblent impossibles à résoudre. Nous pensons cependant que le concept est intéressant et attendons avec impatience de voir où les développeurs peuvent le prendre.




Source link