Victor Afanassieff
Jun 27, 2018 · 6 min read

Lightning Network : BELEM lance sa boutique éphémère Bitcoin

Le Lightning Network est un nouveau protocole Bitcoin pour des transferts ultra-rapides. Pour en savoir plus sur les grands principes de fonctionnement du Lightning Network, n’hésitez pas à parcourir notre précedent article sur le sujet.

Le réseau Lightning est en développement, plusieurs équipes travaillent en effet sur des implémentations indépendantes afin de préserver l’aspect décentralisé du Bitcoin. Afin de tester le réseau LN en situation réelle, nous avons ouvert une boutique éphémère qui accepte les paiements en Bitcoin via le réseau Lightning. Nous vous proposons ici de décortiquer de façon concrète le fonctionnement d’une transaction sur le réseau LN.

Notre Lightning Shop

Une question qui peut se poser quand on ouvre un Lightning Shop : très bien, mais qu’est-ce qu’on vend ? Il se trouve qu’à Station F, nous sommes voisins de la start-up Cabaïa, et nous est venu assez naturellement l’idée d’une collaboration : produire des chaussettes Bitcoin et donner la possibilité de les acheter en un éclair !

Notre Lightning Shop éphémère est disponible ici :

https://lightning-shop.belem.io/

Avertissement : Bien que le Lightning Network soit disponible sur le Mainnet, le logiciel est toujours en bêta, il existe donc encore un risque de perte de fonds lors d’un transfert.

Implémentation technique

Nous hébergeons sur notre serveur :

  • un full node bitcoin, qui est un nœud bitcoin avec la blockchain complète du bitcoin,
  • un nœud Lightning qui utilise LND, l’implémentation en Go de Lightning Labs, (https://lightning.engineering/),
  • un serveur Node JS,
  • une base de données PostgreSQL.

Les différentes informations sur la capture d’écran ci-dessus sont :

  • URI : Adresse permettant de se connecter au noeud lightning et d’ouvrir un canal avec celui-ci.
  • Node alias : Nom du nœud sur le réseau.
  • Pubkey : Clé publique du nœud permettant d’identifier celui-ci de manière unique.
  • Number of channels : Nombre de canaux ouvert avec différents nœuds Lightning.
  • Number of peers : Nombre de noeuds connectés mais sans canal de paiement.
  • Latest block height : Nombre du dernier bloc de la blockchain du Bitcoin connu par le noeud Lightning.
  • Latest block hash : Hash du dernier bloc connu de la blockchain du Bitcoin.

Le nœud Lightning et le serveur de notre site e-commerce communiquent entre eux afin de générer l’invoice correspondante à chaque commande.

L’invoice est une chaîne de caractère permettant de payer une somme X à un nœud Y dans un intervalle de temps donné (pour le moment une heure par défaut).

Une invoice se présente sous cette forme :

lnbc500u1pdnp6rmpp5zquk0mntzfry0ms7fnhfa40m4tzp4yc70mmu20dju8atxq48pkgsdp4gfz5c32dypxxjem5dphxjmn8ypfksmmsyqkjqnmjv3jhygp3xvenwcqzysrmeu8ke8cqsfhuukvsv8exvk7r6lwvr5x9amsgmajhn36js9lq4xk853nh7t0p8f4f7y2xzme99whan0656jermx9lnj6zdmztckt0qqk5z407

Qui est la forme encodée de ce message :

Les différents champs correspondent à une donnée du paiement :

  • “destination” correspond à l’adresse du nœud Lightning de la personne qui reçoit le paiement
  • “num_satoshis” correspond au prix en Satoshi (1 Satoshi correspondant à un cent millionième de bitcoin)
  • “timestamp” correspond à la date d’émission de l’invoice
  • “expiry” correspond à l’intervalle de temps pendant lequel une somme X peut être payée à un nœud Y : 3600s soit une heure

Cette simple chaîne de caractères permet à l’acheteur de régler son article et au commerçant de savoir de qui le paiement provient, et quand il l’a reçu. Cette chaîne de caractères peut également être partagée sous la forme d’un QR Code, que l’on peut scanner avec son téléphone en utilisant un wallet compatible.

A la différence d’une transaction Bitcoin, pour laquelle on doit renseigner le destinataire, le montant, et les frais de transactions volontaires, une invoice Lightning permet de faire un paiement ultra rapide sans que l’utilisateur final n’ait besoin de comprendre la mécanique de ces transactions.

Le lightning offre par ailleurs un niveau d’anonymat élevé. En effet, même dans le cas où il n’y a pas de connection directe entre le commerçant et le client, ce qui les oblige à passer par d’autres noeuds intermédiaires, les transactions ne sont pas visibles en clair. Dans tous les cas, seuls le client et le commerçant seront au courant de la transaction.

Intégrer les paiements en Lightning a été très rapide. Le système d’invoice est simple d’utilisation et les futures évolutions du Lightning Network vont permettre de s’affranchir de certaines contraintes, en permettant par exemple l’émission d’invoices de façon illimitée dans le temps.

Pour ce qui est de l’expérience utilisateur, le Lightning s’utilise aussi facilement qu’un paiement par carte de crédit, sauf qu’ici le client traite en direct avec le commerçant. Toutefois, la mise en place préalable au paiement d’invoice demeure complexe et réservée un public averti :

  • Pour recevoir des bitcoins via le Lightning Network, il est nécessaire d’avoir son propre nœud Lightning (qui comprend aussi un nœud Bitcoin), et d’être toujours en ligne pour vérifier que personne ne triche et surveiller la blockchain du Bitcoin.
  • Il n’est pas possible de rajouter des fonds dans un canal déjà établi entre deux noeuds si celui venait à se vider complètement
  • Le Lighthing Network se base sur le Bitcoin et l’utilisateur est entièrement responsable de la sécurisation des fonds. Si vous perdez les données de votre nœud Lightning, vous perdez l’état de vos canaux et donc des fonds.

Ces problèmes sont déjà dans la ligne de mire des développeurs. Ainsi des watchtower peuvent êtres mises en place pour déléguer la surveillance de la blockchain ou la possibilité d’utiliser un noeud bitcoin sans pour autant avoir toute la blockchain du bitcoin et d’autres sont encore en exploration comme Eltoo, les Channel Factories, l’Atomic Multipath Payment … (plus).

Échanger des bitcoin de manière illimitée avec une contrepartie, pour seulement deux transactions sur la blockchain du bitcoin est un énorme gain. Cependant, le défi majeur auquel le Lightning Network va devoir faire face est la topologie de son réseau. Il faut pour pouvoir atteindre les autres membres du réseau, ce qui implique une forte interconnexion et que les canaux aient les fonds nécessaires pour faire transiter les bitcoins. A l’instar d’Internet, une forte croissance du Lightning Network peut menacer son caractère décentralisé.

Testez vous-même le Lightning Network

La meilleure façon d’apprendre, c’est en testant !

Nous vous invitons donc à commander sur notre Lightning Shop une superbe paire de chaussettes collector (série limitée à 100 exemplaires). Pour cela, plusieurs options possibles:

Le plus simple est d’utiliser le le wallet Eclair développé par la startup française ACINQ.

Vous pouvez copier / coller l’invoice dans l’app ou scanner le QRCode.

  • Si vous avez déjà un nœud, connectez-vous directement à notre nœud avec son URI et ouvrez un canal :

0213f67b69faf7e4e8e45c030fa9b8caaa4ae475b0742d04ad51f93548c4c5b7f4@13.58.157.56:9735

Vous pouvez ensuite copier / coller l’invoice dans votre invite de commande de votre noeud :

$ lncli payinvoice <votre invoice>

Pour toute question, n’hésitez pas à nous contacter directement : contact@belem.io

BELEM BLOCKCHAIN

Suivez nos explorations des nombreux enjeux de la technologie Blockchain.

Victor Afanassieff

Written by

Lead Developer @ www.belem.io

BELEM BLOCKCHAIN

Suivez nos explorations des nombreux enjeux de la technologie Blockchain.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade