La blockchain, le registre comptable de Bitcoin

Chapitre I Article f

Il est temp de mettre les mains dans le cambouis et de découvrir le fonctionnement technique de Bitcoin, à commencer par... la blockchain ! Souvent présentée comme une innovation révolutionnaire, la blockchain est en fait un subtil assemblage de plusieurs des briques technologiques que nous avons évoqué précédemment. En pratique, elle est surtout la fondation sur laquelle reposent de nombreuses cryptomonnaies. Dans cet article, nous nous intéresserons en particulier à celle de Bitcoin, après avoir exploré les aspects généraux incontournables de cette invention informatique.

Temps de lecture estimé : 12 minutes

Blockchain : définition et caractéristiques

Commençons par un petit rappel qui reprend quelques-uns des éléments que nous avons vu dans l'article précédent.

Une blockchain, ou chaîne de blocs, est un registre comptable numérique et horodaté. Il est mis à jour de façon collaborative par un réseau de nœuds informatiques. Comme son nom l’indique, ce registre est composé de blocs, reliés entre eux par des procédés cryptographiques.

Une blockchain est un registre décentralisé, car aucun des nœuds du réseau ne peut en avoir le contrôle exclusif. Chaque nœud en possède un exemplaire : on dit donc que ce registre est distribué au sein du réseau. Grâce à cette distribution, le registre est autonome : il ne dépend pas de l'intervention d'un tiers de confiance ou d'autorité.

Un protocole définit l'ensemble des règles permettant aux acteurs du réseau de le faire fonctionner : on parle de mécanisme de consensus. Ce mécanisme permet aux nœuds de s'accorder sur la même version du registre, et donc la même comptabilité des transactions. Il est indissociable de la blockchain, qui dépend de lui pour garantir l'équilibre des pouvoirs et l'absence de tiers de confiance. Nous reviendrons sur ce point dans un prochain article !

En résumé une blockchain est donc une base de données maintenue selon les règles d’un protocole informatique. Accompagnée de son mécanisme de consensus, elle offre un système original et inédit de distribution du pouvoir.

Aujourd’hui, il en existe des centaines : les plus connus sont bien sûr Bitcoin, Ethereum, Solana, Cardano, etc. Chacune a ses spécificités, ses avantages et ses inconvénients.

Les propriétés d’une blockchain

Une blockchain permet à un réseau de pairs de s'accorder sur une comptabilité de référence. Cela nécessite de respecter des propriétés essentielles.

Sécurité

Il doit être impossible pour un ou plusieurs acteurs du réseau de prendre le contrôle ou de corrompre la blockchain. Elle doit être infalsifiable (impossibilité de modifier des transactions a posteriori). Elle doit être accessible en permanence pour effectuer des transactions de manière fiable. De même, personne ne doit pouvoir créer de fausses unités comptables, ou d'effectuer des doubles dépenses (double spending).

Il s’agit de la possibilité de dépenser deux fois les mêmes fonds (jetons, pièces). Son impossibilité est un enjeu majeur pour un protocole de monnaie numérique, un fichier informatique étant par essence, très facile à copier/coller ou à falsifier.

Décentralisation

Cette propriété est étroitement liée à la sécurité d'une blockchain. Ce registre doit être distribué au sein d'un réseau le plus large possible, afin d'empêcher la formation de cartels de nœuds. Si la maintenance du registre est centralisée entre trop de mains, alors cela ouvre la voie aux monopoles et toutes sortes d'attaques. Il y a plusieurs types de décentralisation :

  • (Dé)centralisation architecturale : combien de nœuds constituent le réseau ? Combien de nœuds corrompus ou en panne le système peut-il tolérer ?
  • (Dé)centralisation politique : combien d’individus ou d’organisations ont l’ultime contrôle des ordinateurs qui composent le système ?
  • (Dé)centralisation logique : quelle est l'homogénéité des structures de données du système ? Le réseau peut-il survivre à une partition en gardant sa cohérence ?
  • (Dé)centralisation géographique : dans quels pays et dans quelles parties du globe se trouvent les noeud ?
  • (Dé)centralisation financière : Comment sont répartis les fonds et/ou les ressources nécessaires au fonctionnement du système ?

La décentralisation est une propriété essentielle mais mal comprise, sujette à de nombreuses discussions. Nous reviendrons sur celle de Bitcoin dans les paragraphes qui suivent.

Résistance à la censure

Cette propriété découle des deux précédentes. Aucune entité interne ou externe au réseau ne doit pouvoir empêcher la blockchain de fonctionner ou censurer certaines transactions. Par exemple, Bitcoin est un réseau de paiement créé pour se passer des banques traditionnelles, aux architectures centralisées. Il perdrait tout son intérêt si les banques centrales ou les gouvernements pouvaient contrôler ses transactions.

Scalabilité

Il s'agit de la capacité de mise à l'échelle du réseau blockchain. Peut-il résister à l'arrivée de nouveaux utilisateurs en masse sans que son débit de transactions ne soit affecté ? Le réseau peut-il maintenir une vitesse et une accessibilité constante en malgré une forte montée en charge ?

Le trilemme des blockchains

Tout protocole blockchain est conçu autour d'un compromis sur trois propriétés désirées : la sécurité, la scalabilité et la décentralisation.

Trilemme des blockchains

Le trilemme des blockchains est issu du fait que ces trois aspects sont en conflit les uns avec les autres. Il est très difficile d’optimiser les trois à la fois, car améliorer l’un tend à affaiblir les autres. Plusieurs solutions existent pour résoudre ce problème, comme le sharding, les sidechains ou les blockchains de seconde couche.

La blockchain de Bitcoin

Maintenant que nous vous avons présenté les éléments clés des blockchains en général, penchons-nous sur celle de Bitcoin en particulier.

La blockchain de Bitcoin est le registre comptable horodaté de toutes les transactions ayant été effectuées sur le réseau depuis sa création. Dans le whitepaper original de Bitcoin, Satoshi Nakamoto ne parle pas de blockchain, mais plutôt de timestamp server - serveur d'horodatage. Le terme blockchain, que l'on doit à Hal Finney est apparu un peu plus tard, sans doute pour son côté plus visuel, plus parlant : une chaîne de blocs contenant des transactions. L'horodatage est essentiel pour comprendre comment Bitcoin permet de se passer d'un organe central de contrôle afin de sécuriser son réseau.

Objectifs et propriétés

Comme nous l'avons vu dans cet article, lorsque Satoshi Nakamoto créa Bitcoin en 2008, son objectif était à la fois simple et très ambitieux. Il souhaitait construire un système de « cash » numérique, fonctionnant de pair à pair, tel l’argent liquide.

La blockchain de Bitcoin a pour fonction de maintenir la comptabilité des transactions effectuées sur le réseau, tout en étant impossible à falsifier, et en empêchant les doubles dépenses (le fait de dépenser deux fois les fonds présents à une même adresse).

La seule solution existante jusqu’alors pour éviter les doubles dépenses au sein d’un réseau de paiement numérique était de centraliser la tenue du registre comptable. Il fallait passer par un tiers de confiance (une banque par exemple), veillant à identifier et à vérifier les unités monétaires en circulation.

La blockchain de Bitcoin permet de se passer d’organe central de contrôle pour valider les transactions. Pour cela, ce grand livre de comptes numérique est répliqué sur tous les noeuds du réseau Bitcoin. Il se présente sous forme de blocs, qui s’enchaînent les uns aux autres, selon un procédé cryptographique.

C'est le concept de preuve de travail qui rend impossible la double dépense. Cet algorithme permet de prouver qu’une certaine quantité de travail (calcul informatique) a été effectuée avant de valider une transaction. Afin de dupliquer ou corrompre cette transaction, il faudrait pouvoir produire au moins la même quantité de travail. Et cela serait moins rentable que de sécuriser le réseau !

C'est en partie ici que réside le génie de Satoshi Nakamoto. En plus des mathématiques pures, il a introduit dans l'équation une variable supplémentaire : la cupidité humaine. Les incitations économiques rendent plus attractif le fait de sécuriser le réseau que de l'attaquer.

L'algorithme permet aussi de résoudre le problème des généraux byzantins, en s'assurant que le réseau Bitcoin maintien un consensus autour de sa comptabilité de référence, même en présence de 50% d’acteurs malicieux (contre 33 % pour les protocoles classiques).

Pour ceux qui veulent aller plus loin, nous vous expliquons en détail le fonctionnement de la preuve de travail dans l'article qui suit.

Décentralisation

Revenons sur les différents axes de décentralisation que nous avons évoqués plus haut dans le cas de Bitcoin.

  • Décentralisation architecturale : de nombreux nœuds composent le réseau qui est ainsi architecturalement décentralisé. Cela lui permet de résister aux attaques et aux pannes. Un haut niveau de décentralisation architecturale garanti que le système continuera de fonctionner même en cas de défaillances multiples.
  • Décentralisation politique : La décentralisation politique de Bitcoin est sujette à débat. Les mineurs ont-ils trop de pouvoir ? Certains développeurs ont-ils le monopole des mises à jour du code source ?
  • Décentralisation logique : Bitcoin est logiquement centralisé. Les règles de son protocole et son logiciel sont les mêmes pour tous les nœuds. Si le réseau est coupé en deux, les deux parties peuvent continuer à fonctionner de manière indépendante.
  • Décentralisation géographique : Bitcoin est assez décentralisée géographiquement, mais pourrait encore faire mieux. L'emplacement des nœuds et des mineurs évoluent avec le temps et les législations. On retrouve une grande partie d'entre eux dans les pays développés, stables et proposant de l'électricité à bas coûts.
  • Décentralisation financière : si l'on ne tient pas compte des bitcoins des adresses identifiées comme appartenant à Satoshi Nakamoto, Bitcoin est assez décentralisé financièrement parlant. De nombreuses adresses contenant un nombre important de BTC sont des adresses regroupant les fonds de plusieurs utilisateurs (par exemple les adresses des plateformes d'échanges).

Le fonctionnement de la blockchain Bitcoin

Le minage sur Bitcoin

Le minage est le processus de création monétaire et d'écriture des transactions sur la blockchain, mais aussi le mécanisme d’incitations économiques qui sécurise le réseau.

Sans entrer dans les détails techniques que nous réservons aux articles qui suivent, voyons ici comment il fonctionne.

Le rôle des mineurs

Le but des mineurs est de valider et d'enregistrer les transactions qui ont lieu sur le réseaux.

En échange du travail qu'ils fournissent pour ce faire, ils touchent des récompenses, payées en bitcoin.

La récompense des mineurs

Les transactions sont enregistrées dans des blocs, qui sont reliés les uns aux autres de manière linéaire, formant ainsi la blockchain.

À chaque fois qu'un mineur réussit à ajouter un bloc à la chaîne, il reçoit une récompense. On parle de « coinbase transaction » : le nombre de bitcoin reçu apparaît directement sur l'adresse du mineur.

Le montant de la récompense associée à l'ajout d'un bloc est divisé par deux tous les quatre ans environ, créant ainsi un modèle d'émission monétaire déflationniste imitant l'extraction d'un métal précieux, tel l'or.

La structure des blocs

Un bloc sur le réseau Bitcoin est semblable à un tableau qui comporte des données organisées d’une façon bien précise.

Certaines sont déterminées par les utilisateurs du réseau (montant des transactions, adresses des destinataires, modalités d’envoi), et d’autres le sont par le protocole lui-même (le numéro du bloc, version du logiciel Bitcoin employé, etc.).

La taille maximale d’un bloc sur le réseau Bitcoin fut initialement définie à 1 Mo, et à augmenter progressivement pour passer à 4 Mo avec la mise à jour Segwit.

Cela permet d'y inclure plusieurs milliers de transactions « standards » (En cas de multiples adresses d’entrée et/ou de sortie, ou de NFT, la taille d’une transaction augmente).

La construction des blocs

Les mineurs sélectionnent les transactions qu'ils souhaitent inclure dans le bloc courant. Généralement ils choisissent en premiers celles qui incluent les plus de frais, leur permettant ainsi de gagner un maximum.

Ils doivent ensuite raccorder (chaîner) ce bloc aux précédents. Pour cela, ils doivent arriver à faire revêtir une certaine forme au hash de son en-tête (block header) qui a cette structure :

Il s'agit pour le mineur de trouver un « nonce » (nombre aléatoire) qui permet de fournir un « hash » compatible avec la « cible ».

En d’autres termes, ceci consiste à résoudre un problème mathématique complexe, dont la difficulté (=la cible) est variable et est ajustée en fonction de la puissance totale de calcul du réseau, de manière qu’un bloc soit validé toutes les 10 minutes environ.

Vous trouverez plus de détails sur le fonctionnement d'une transaction Bitcoin et ses étapes ici.

Les limites de la blockchain Bitcoin

Comme toutes les blockchains, Bitcoin est conçue autour d'un compromis entre la sécurité, la scalabilité et la décentralisation.

Maximiser ces trois piliers est un challenge technique très complexe. Bitcoin est le champion en termes de sécurité, et très satisfaisant en termes de décentralisation. Cependant, il souffre d'un manque de scalabilité inhérent à son architecture.

En plus de la relative lenteur du système (un bloc toutes les 10 minutes), il faut ajouter aux faiblesses essentielles du réseau la quantité considérable d'énergie qui doit être déployée par les mineurs pour valider les blocs.

Le langage de Bitcoin, le Script, est aussi très limité. Si cela constitue un réel avantage au niveau de la sécurité, cela limite fortement les applications financières complexes qui pourraient être développées sur le réseau.

Les chercheurs en systèmes distribués ont redoublé d'efforts pour trouver des méthodes alternatives. Ils ont notamment développé des solutions de secondes couches, dont le Lightning Network, pour améliorer ces paramètres.

Comme nous l'avons expliqué plus haut, ces défauts sont liés à des qualités. Voyons maintenant comment Bitcoin utilise le mécanisme de consensus par preuve de travail pour en tirer sa plus grande force : la sécurité.