Conçue par la startup parisienne Acinq, l’une des trois équipes impliquées dès l’origine dans l’écriture des spécifications du Lightning Network, Eclair Mobile est une application Android permettant d’effectuer des transactions Bitcoin « on-chain » [1] et sur le réseau Lightning. Il s’agit donc à la fois d’un wallet SVP et d’un véritable noeud Lightning [2] ne reposant pas sur un tiers de confiance. Ce tutoriel pour les débutants vous expliquera comment installer l’application, comment ouvrir des canaux de paiement et comment envoyer/recevoir des transactions.
AVERTISSEMENT : Il n’est pas recommandé de détenir des sommes importantes sur un appareil en ligne. Utilisez votre téléphone mobile comme un porte-monnaie, pas comme un coffre-fort. Pour conserver des bitcoins préférez un stockage hors ligne ou un hardware wallet. Par ailleurs n’oubliez pas que le Lightning Network est un protocole très récent, toujours expérimental et que des incidents susceptibles de provoquer la perte de vos fonds sont toujours possibles.
Installation
Vous trouverez la dernière version de l’application sur le dépôt GitHub d’Acinq (.APK) ou tout simplement sur Google Play.
Après l’installation vous pouvez :
– soit restaurer un précédent wallet à partir de douze mots de récupération,
– soit créer un nouveau portefeuille.
Dans cet exemple nous créons un nouveau portefeuille : « Create new wallet ».
Les douze mots de récupération vous permettront de restaurer le portefeuille en cas de problème. Recopiez bien ces douze mots et conservez-les à l’abri des regards indiscrets. Attention ils ne vous permettront pas de récupérer l’historique de l’état des canaux, pour cela Acinq propose une autre solution que nous détaillerons plus bas.
Remplissez ensuite les trois mots de la procédure de vérification.
Vous pouvez enregistrer une passphrase ou laisser ce champ vide. La passphrase est une mesure de protection supplémentaire facultative prévue par BIP39, et qui permet, à partir des douze mots de récupération, de générer une autre seed. Ainsi, si quelqu’un a accès aux 12 mots, il aura également besoin de la passphrase pour accéder aux fonds.
Enregistrez ensuite un code PIN à six chiffres qui vous sera demandé à chaque fois que vous ouvrez l’application.
Vous pouvez associer votre wallet à un compte Google Drive afin de sauvegarder automatiquement les données de vos canaux. Cela vous permettra de les restaurer en cas de perte de l’appareil (à condition évidemment de disposer des douze mots de récupération).
L’application va à présent se synchroniser avec le réseau.
Effectuer un paiement « on-chain »
Avant de pouvoir ouvrir un canal Lighning il faut disposer de fonds sur l’application.
Cliquez sur « Receive » et restez sur « On chain » afin d’accéder à l’adresse à laquelle vous devez envoyer une transaction Bitcoin pour alimenter votre portefeuille. Cette adresse change à chaque nouvelle transaction.
La transaction est en attente de confirmation. Un canal de paiement peut cependant être ouvert même si la transaction que l’ouverture du canal va dépenser n’est pas encore confirmée.
Ouvrir un canal Lightning
Allez sur « Channels » pour ouvrir un canal de paiement lightning. Cliquez sur le + en bas à droite.
Choisissez le noeud lightning avec lequel vous souhaitez ouvrir un canal. Vous pouvez sélectionner n’importe quel noeud public (par exemple celui de bitcoin.fr) en copiant et en collant son URI (« Paste a node URI ») ou en scannant son QR Code (« Scan a node URI »). Vous pouvez également choisir le noeud d’Acinq (« Acinq node »). Evidemment vous pouvez ouvrir plusieurs canaux avec plusieurs nœuds.
Dans cet exemple nous avons choisi d’allouer tous les fonds disponibles à l’ouverture du canal (« Use all avaible funds »). Nous n’avons pas choisi de financer un canal de retour car nous avons l’intention d’effectuer des paiements avant d’en recevoir. C’est un point important : vous ne pouvez pas recevoir sur un canal plus que ce qui se trouve du côté de votre contrepartie. Nous y reviendrons plus bas. L’utilisateur peut configurer les frais des transactions on-chain, y compris ouverture de canal. Par défaut l’application vise une confirmation rapide, c’est à dire dans les deux prochains blocs (~20min). Pour diminuer au maximum le coût nous avons choisi une transaction lente (« Slow »).
L’ouverture d’un canal est une transaction Bitcoin « on-chain ». Il faut donc attendre la validation de cette transaction pour que le canal soit fonctionnel.
Effectuer une transaction Lightning
Contrairement à une transaction « on chain » pour laquelle il suffit de connaitre l’adresse publique du destinataire sans que ce dernier n’ait aucune action à faire, on ne peut payer via le réseau Lightning que si le destinataire émet une demande de paiement (un « invoice » = une facture) pour chaque transaction. Cette demande peut ou non être associée à un montant.
Retournez dans « Payments ». Le destinataire a émis une demande de paiement (dans le cas des commerces en ligne ayant adopté le LN, les « invoices » sont créés automatiquement lors du paiement). Vous pouvez copier et coller cet « invoice » (« Paste a payment request »), ou le scanner (« Scan a payment request »). Notons que dans « Payments » vous pouvez évidemment également réaliser des transactions ordinaires sur la blockchain Bitcoin.
Si la demande de paiement est associée à un montant, ce dernier s’affichera automatiquement, sinon entrez ce montant. Il ne vous reste plus qu’à valider.
« Finding route… » : L’application cherche un itinéraire.
« Pending… » : La transaction est en cours.
La transaction est réalisée. Dans cet exemple l’ensemble de l’opération a pris autour de trois secondes (la durée peut varier sensiblement). Le total ici est de 130,268 satoshis (environ un demi-centime d’euro) : 128 sats de paiement et 2,268 sats de frais de transaction (sur le lightning network on peut en effet descendre en-dessous du satoshi). Les frais sont variables, ils dépendent du montant et du chemin trouvé. L’application recherche automatiquement la route la moins chère. Evidemment, contrairement aux transactions « on-chain », les frais des transactions LN n’ont pas de raison d’augmenter si le réseau est très sollicité. Plus il y a de noeuds et de canaux, plus il y a de routes.
Recevoir un paiement Lightning
Pour recevoir des paiements il faudra tout d’abord configurer les paramètres (« Settings ») de l’application. Pour y accéder, cliquez sur les trois points en haut à droite.
Dans les paramètres on peut notamment changer la devise dans laquelle on peux afficher le solde (« Fiat currency »), utile pour voir le solde en euros. On peut également changer l’unité « crypto » : bitcoin (par défaut), satoshi (0,00000001 BTC), bits (0,000001 BTC) ou milli-bitcoin (0,001 BTC). On peut enfin activer ou désactiver la « Lightning fee Protection » qui limite les frais à un maximum 3% de la transaction (sauf pour les micro-transactions ou des frais jusqu’à 21 satoshis sont tolérés). En pratique, pour une transaction de quelques euros, les frais moyens constatés tournent plutôt autour de 0,01%.
Ce qui nous intéresse ici pour recevoir des transactions doit être activé tout en bas : « Enable receive over Lightning ».
Refermez les paramètres et retournez sur « Receive » et l’onglet « Lightning ». Sous le QR code est affiché le montant maximum que vous pouvez recevoir de votre contrepartie. Si vous n’avez pas financé un canal de retour (voir ) et si ce montant n’est pas suffisant, c’est que vous n’avez pas encore dépensé suffisamment de satoshis. Pour y remédiez vous pouvez soit en procéder à des achats, soit en envoyer des transactions à un autre wallet Lightning (par exemple un application reposant sur un tiers de confiance comme Blue Wallet), soit remettre vos bitcoins sur la blockchain avec un service tiers comme Zigzag (pour un coût de 2,5%). Pour quelques satoshis vous pouvez également taguer le mur des toilettes sur satoshis.place. Ultime option : faire un don à bitcoin.fr avec tippin.me 🙂
Vous pouvez utiliser l’adresse de l’invoice ou le QR code tels quels, si vous ne voulez pas préciser de montant, ou alors cliquer sur « Edit request » :
– « Description » : Nommez la transaction (indiquez ce que vous voulez, par exemple le nom de l’émetteur).
– « Amount » : indiquez le montant demandé et cliquez sur « OK ».
En cas de paiement en face à face l’émetteur peut scanner le QR code que le destinataire aura généré à cette fin. Sinon il vous suffit de toucher ce QR code pour copier « l’invoice » que vous enverrez au payeur.
A la réception du paiement vous recevrez une notification sur votre mobile.
En retournant sur « Channels » et en cliquant sur l’un des canaux actifs vous pouvez voir quel montant vous pouvez envoyer ou recevoir. C’est aussi dans cette fenêtre que vous pouvez fermer un canal (« Close Channel ») ce qui provoquera une nouvelle transaction on-chain qui répartira le solde sur les deux noeuds conformément au dernier état. Evidemment l’idée, quand on ouvre un canal, n’est certainement pas de le refermer immédiatement mais de l’utiliser le plus longtemps possible. On peut même ne jamais vouloir le fermer (tant que la contrepartie est d’accord) sachant qu’un canal dont vous avez dépensé les fonds pourra toujours servir à en recevoir et ne présente plus de risque de perte.
Merci à Dominique Padiou, développeur d’Eclair mobile, pour la relecture.
[1] Une transaction est dite « on chain » quand elle est gravée dans le marbre de la blockchain Bitcoin. Une transaction Lightning n’est inscrite que sur votre noeud et sur celui de votre contrepartie.
[2] Il existe cependant deux types de noeuds : réservés aux utilisateurs avancés, Eclair (à ne pas confondre avec Eclair Mobile), LND et c-lightning vous permettront d’être au cœur du réseau pour faire circuler les transactions et être rémunéré pour cela. Les applications mobiles, qui ne sont connectées que par intermittence, ne peuvent pas jouer ce rôle. Ce sont des noeuds de bout de ligne.