Au coeur de la technologie Bitcoin : la blockchain
Nous avons volontairement évité tout charabia technologique dans le chapitre précédent, pour rester sur les principes et les idées derrière Bitcoin, et ce qui est strictement nécessaire pour comprendre comment utiliser Bitcoin en pratique, mais cette notion de blockchain est tellement présente dans toute la communication autour de Bitcoin qu’il est intéressant de développer un peu.
Comme nous l’avons vu, le protocole Bitcoin repose sur des noeuds formant un réseau, qui vérifient en permanence qu’un bitcoin n’appartient à un moment donné qu’à une personne (ou une entité), pour éviter sa double dépense. Pour ce faire, les noeuds conservent l’ensemble de toutes les transactions qui ont eu lieu depuis la création du bitcoin, et l’ordre dans lequel elles se sont produites. On pourrait dire que ce réseau de noeuds forme en fait une gigantesque horloge planétaire, à laquelle on se réfère quand on veut vérifier qu’un bitcoin appartient bien à celui qui le prétend. L’ensemble des transactions est stocké sur chacun de ces noeuds, qui se synchronisent en permanence entre eux pour en avoir la même copie : c’est ce qui garantit la sécurité du réseau : on ne peut pas modifier une transaction du passé sans la modifier sur tous les noeuds en même temps, et il faudrait stopper tous les noeuds en même temps pour empêcher d’effectuer une nouvelle transaction.
Petit problème : comment synchroniser instantanément des dizaines de milliers d’ordinateurs répartis sur toute la surface de la planète ? Ne serait-ce que pour des limites physiques, l’information ne pouvant circuler plus vite que la lumière, ce n’est pas possible. C’est pour cela que le temps de cette horloge planétaire est divisé en périodes de 10 minutes, et que les transactions sont ordonnées et stockées dans ces « blocs » de 10 minutes. Chaque nouveau bloc est « accroché » à l’ensemble des blocs précédents de manière infalsifiable, et c’est ainsi que chaque noeud stocke l’ensemble des transactions qui ont jamais eu lieu : dans une « chaîne de blocs » (ou blockchain en anglais). Notons que ce mot a été adopté peu après l’invention de bitcoin, son créateur pensant plutôt nommer son réseau « timechain ».
Le mécanisme de création et de synchronisation des blocs est à la fois simple dans sa conception et reposant sur des mécanismes mathématiques et techniques complexes, et nous développerons dans d’autres articles car c’est vraiment fascinant, mais cette explication est suffisante pour comprendre ce qui fait la fiabilité, l’indépendance et la sécurité de ce système monétaire : c’est la décentralisation de noeuds anonymes et sans intervention humaine qui classent inlassablement les transactions dans une chronologie unique infalsifiable stockée sur un média répliqué des dizaines de milliers de fois.
Et maintenant que vous comprenez ce mécanisme, vous pouvez appréhender un certain nombre de conséquences.
D’abord, une transaction Bitcoin n’est pas instantanée. Il faut qu’elle soit intégrée dans un bloc, donc cela peut prendre 10 mns. Pour corser l’affaire, afin de demeurer un mécanisme décentralisé, il ne faut pas que la blockchain soit trop grosse, afin que faire fonctionner un noeud ne demande pas une machine démesurée et reste à la portée de n’importe qui. La taille d’un bloc est donc limitée à 1 Mo, et si le bloc en cours est plein, votre transaction attendra qu’il y ait de la place, soit parfois plusieurs blocs. Pour information, en 2023 la taille de la blockchain est de l’ordre de 500 Go, ce qui reste très abordable avec le prix et la taille des disques durs. Vous pouvez faire tourner un noeud sur un vieux PC ou une machine à moins de 500 euros. Cela reste très compétitif avec le système bancaire dans lequel une transaction prend plusieurs jours, voire des semaines (nous reviendrons là-dessus plus tard, les banques gomment ce temps en prenant le risque à votre place, et en l’inscrivant très vite dans vos comptes, mais la mécanique d’échange est en fait beaucoup plus longue), mais pour payer votre café, c’est trop long.
Deuxièmement, Bitcoin n’est pas particulièrement bien adapté aux très petits montants. Non pas que ce ne soit pas possible, mais pour un facteur que nous n’avons pas encore abordé qui est celui des frais. Comme vous payez des frais à votre banque pour la gestion de vos comptes ou pour certaines transactions, l’inscription de votre transaction dans un bloc coûte un peu, pour rémunérer des acteurs particulier du réseau dont vous avez peut-être entendu parler : les mineurs. Nous décrirons leur activité plus loin, mais ce sont eux qui construisent les blocs avec les transactions que leur fournissent les noeuds, les finalisent et les attachent à la blockchain en dépensant de l’énergie pour fournir la glue qui attache les blocs à la blockchain de manière infalsifiable. Ce service est rémunéré par des frais ajoutés à la transaction, qui peuvent aller de quelques centimes à quelques euros. Ces frais ne sont pas basés sur la valeur de la transaction, mais sur la rapidité avec laquelle votre transaction sera insérée dans un bloc. Si vous envoyez l’équivalent de 1000 €, vous pouvez vouloir payer 1€ pour que la transaction soit effective dans les 10 prochaines minutes. Mais pour un café à 2€, ce n’est pas très réaliste. Et si vous laissez le standard de frais de quelques fractions de centimes, vous serez peut être pris dans 4 ou 5 blocs, ce que le barman n’appréciera pas.
Troisièmement, ce mécanisme n’a d’intérêt que dans une structure décentralisée qui a besoin de se synchroniser. En gros : Bitcoin. Tout le buzz autour de la blockchain n’a aucun sens lorsqu’on a affaire à une entreprise qui propose des services de manière centralisée. Autant utiliser une base de donnée traditionnelle pour enregistrer des évènements dont on doit noter la chronologie. Quand vous entendez parler de blockchain privée, c’est à dire gérée par une ( ou quelques) entité, c’est probablement du marketing. C’est d’ailleurs ce que font la majorité des « cryptos », qui sont émises par une fondation ou une entreprise, à qui vous êtes obligés de faire confiance (d’où notre recommandation de méfiance).
Enfin, vous comprenez mieux ce qui se passe lorsque vous faites des transactions en Bitcoin : votre transaction est transmise par votre portefeuille à un noeud, qui gère avec ses alter ego son inscription dans un bloc. Si vous avez votre propre noeud, vous avez une copie de la blockchain, vous pouvez vérifier vous même la validité de la transaction, et votre noeud transmettra votre transaction au réseau au même titre que celles qu’il aura reçues par ailleurs, sans que quiconque puisse savoir qu’elle vient de vous. Une petite sécurité supplémentaire, car vous ne transmettez aucune information à quiconque.
Un complément important au réseau Bitcoin : les couches de niveau 2
Bitcoin est donc un système relativement lent. Ce n’est pas très grave si vous achetez une voiture ou une maison, ou faites un achat en ligne, ou si vous envoyez de l’argent à famille ou amis, cela peut attendre quelques minutes. Mais pour les achats de tous les jours, à la caisse de supermarché, au restaurant ou au cinéma, vous ne voudrez pas attendre 10 mns ou plus selon l’utilisation du réseau à ce moment-là. Il faudrait un système complémentaire, comme la carte bancaire, qui permet des transactions instantanées et garantissent son paiement au marchand.
Ces systèmes ont été inventés pour Bitcoin, ce sont les couches de niveau 2 (layer 2 en anglais), par opposition à la chaîne principale (layer 1), et sans entrer dans les détails, nous expliquons ici les principes des deux principales, qui sont assez différents. Elles permettent toutes les deux de faire des transactions instantanées de toute valeur, et avec des frais très faibles (quelques fractions de centimes, voire nuls pour de faibles transactions). Mais bien sûr au prix de certains compromis par rapport à l’absolue indépendance, sécurité et simplicité de bitcoin, que nous détaillons.
Pour être exhaustif et dans notre optique de donner une vision objective, il en existe une troisième RSK, tout aussi honorable et intéressante, mais moins orientée paiements, ce qui nous intéresse ici, car elle présente des possibilités très puissantes en termes de contrats intelligents (smart contracts), avec la sécurité de la blockchain Bitcoin.
Le réseau lightning
Eclair en anglais, cela dit bien ce que cela veut dire.
Le principe est le suivant : des acteurs du réseau bitcoin vont se faire confiance deux à deux, et tenir une comptabilité entre eux des échanges en bitcoin qu’ils vont se consentir. Un peu comme une ardoise dans votre bar favori, ou une cagnotte entre amis qui vont souvent au restaurant ensemble. Ils notent chaque fois que l’un engage une dépense, et ils peuvent à tout moment décider de remettre les compteurs à zéro et équilibrer les comptes. L’avantage est bien entendu la rapidité (on note une dépense sur une liste), mais il faut se faire confiance, car l’un des acteurs peut ne jamais régler sa dette. Comme nous sommes dans l’univers des maths, de la cryptographie et du logiciel, cette confiance est limitée par de nombreux garde fous, mais c’est tout de même un compromis par rapport à l’absolue sécurité de Bitcoin.
Voici comment cela fonctionne :
- Les deux acteurs créent entre eux ce qu’on appelle un canal, dans lequel ils mettent en commun un certain montant en bitcoin. Ils tiennent entre eux un compte des mouvements de bitcoins qui interviennent entre eux, sans que ces mouvements ne soient enregistrés dans un bloc. A tout moment, ils peuvent décider de « fermer » ce canal, et cela donne cette fois lieu à une transaction réelle, enregistrée dans un bloc, dans laquelle chacun recevra la part du montant du canal qui lui revient en tenant compte de tous les mouvements qu’ils ont noté. Simple non? Chaque mouvement intermédiaire est appelé une transaction « off-chain », les transactions de création et de clôture du canal sont appelées « on-chain ».
- Usage simple n°1 : vous ouvrez un canal d’un montant de 100 € en bitcoin avec votre bar préféré, a chaque café que vous prenez vous faites un paiement lightning, quand vous avez consommé les 100€ vous fermez le canal. Le commerçant reçoit les 100€ en bitcoin et vous pouvez en ouvrir un autre pour la période suivante. Accessoirement, par rapport à une ardoise classique, si vous décidez de ne plus revenir, le commerçant ferme le canal et reçoit sa part, vous recevez ce que vous n’avez pas dépensé et tout le monde est content.
- Usage simple n°2 : vous ouvrez un canal avec un ami avec qui vous échangez souvent de l’argent, chacun met une somme équivalente, comme dans une cagnotte, et en vous faisant des paiements lightning chaque fois vous êtes toujours à jour de vos comptes.
- Vous pouvez avoir autant de canaux que vous voulez avec autant d’interlocuteurs avec qui vous traitez souvent.
- Maintenant, imaginez que vous souhaitiez payer via le réseau lightning quelqu’un avec qui vous n’avez pas de canal ouvert, et pour lequel ouvrir un canal aurait peu de sens. Le réseau va calculer une succession de canaux qui vous relient, et le paiement va utiliser ces canaux pour parvenir à sa destination. Chaque acteur prélèvera des frais minimes (ou pas) pour rémunérer le service qu’il vous rend. Au final vous aurez payé instantanément et à peu de frais quelqu’un avec qui vous n’avez aucune connection directe.
C’est ainsi que fonctionne le réseau lightning, et cela marche très bien pour les montants de la vie quotidienne. A partir d’un certain montant, il devient difficile de trouver un enchaînement de canaux avec un montant suffisant pour faire le paiement de bout en bout, et le paiement risque de ne pas aboutir. Mais là, utiliser le réseau Bitcoin redevient d’actualité.
Payer en lightning est aussi simple qu’avec Bitcoin, un téléphone suffit. La majorité des wallets sont à la fois Bitcoin et Lightning, et si vous ne voulez pas vous embêter avec la gestion de canaux certains se chargent de vous ouvrir un canal sur le réseau qui vous permettra de payer et recevoir.
Il y a un revers à la médaille, c’est que pour être autonome sur lightning, c’est un peu plus compliqué que pour Bitcoin. Ou plutôt cela prend plus de temps, car il faut gérer ces fameux canaux, les ouvrir, les fermer, s’assurer qu’ils sont équilibrés pour que vous ayez toujours le moyen de trouver une route pour faire aboutir vos paiements. Autant remplacer sa banque avec Bitcoin ne requiert rien d’autre qu’un wallet pour être autonome (même si avoir son propre noeud est une sécurité supplémentaire, mais celui ci fonctionne tout seul sans intervention aucune), autant remplacer Visa ou Mastercard demande un peu d’investissement.
C’est pour cela que des intermédiaires voient le jour, pour gérer la complexité à la place de l’utilisateur qui ne veut pas devenir informaticien pour payer ses courses. On les appelle des lightning service providers(LSP), et c’est l’une des activités de fi4free. Notre infrastructure fait partie du réseau lightning, et nous gérons un portefeuille de canaux pour fournir à nos clients la liquidité et les routes pour qu’ils puissent payer en lightning.
Le réseau Liquid
Le réseau liquid est un modèle différent dit de chaîne collatérale (sidechain), c’est à dire une blockchain parallèle gérée par une fédération d’entreprises de l’écosystème Bitcoin (près de 70 sociétés), avec des ponts vers la blockchain principale. Sur cette blockchain sont gérées des L-BTC (pour liquid), qui sont obtenus par échange de Bitcoins depuis la blockchain principale. Ce sont les entreprises de la fédération qui stockent les Bitcoins initiaux, et vous les restituent lorsque vous le souhaitez.
C’est un un fossé beaucoup plus important avec les principes de Bitcoin en ce qui concerne la confiance, mais fédération implique que ce sont des entités distinctes qui gèrent ce stockage, et que plusieurs d’entre elles (ou plutôt un de leurs serveurs spécialisés) doivent donner leur accord pour effectuer une transaction pour rendre ces bitcoins à leur propriétaires (aujourd’hui 11 d’entre elles pour être précis, c’est à dire qu’il faudrait que plus des 2/3 des autorités de signatures soient malhonnêtes ou compromises). C’est d’ailleurs ce manque de décentralisation qui est le souci, le logiciel du protocole liquid étant le même que celui de la blockchain.
Mais en contrepartie de cette moindre sécurité, Liquid offre des avantages qui valent d’être considérées. Pour rester sur les mêmes fonctionnalités qu’offre Bitcoin, les transactions sont quasi instantanées, pour tous les montants, les frais sont ridiculement bas, et les transactions sont confidentielles (c’est à dire que contrairement à Bitcoin, une transaction sur liquid ne permet de voir ni les parties concernées, ni son montant.
Par ailleurs, la blockchain liquid permet de gérer d’autres actifs financiers, comme des titres (actions, obligations, cela ne concerne pas notre propos à fi4free) ou, ce qui nous intéresse ici, des monnaies numeriques stables (stablecoins) comme le Dollar ou l’Euro. C’est particulièrement intéressant, notamment pour des raisons fiscales, car lorsque pour une raison ou une autre on souhaite temporairement ne pas rester exposé à la volatilité de Bitcoin, échanger le Bitcoin en un autre actif numérique n’est pas assimilé à une vente comme si on le convertissait en Euro. Et donc ne génère pas de plus value. Il y a d’autres moyens de le faire, mais en utilisant des blockchains beaucoup moins sécurisées, et avec des frais beaucoup plus élevés qu’en restant sur la même blockchain, chacune prélevant sa dîme.
Bref, nous ne revenons pas sur la validité du principe de laisser le moins possible de place à des intermédiaires , mais nous aimons beaucoup Liquid, et s’il n’est pas question de laisser votre patrimoine en Liquid Bitcoin, en avoir un peu pour gérer vos paiements n’est pas une mauvaise idée selon nous. Et il se complète très bien avec lightning.
Retour à la table des matières