S'inscrire
S'inscrire
Le 31 octobre 2008, une personne se faisant appeler par le pseudonyme de Satoshi Nakamoto publie un document scientifique intitulé Bitcoin : A Peer-to-Peer Electronic Cash System. Dans ce White Paper, il décrit les grands principes du futur protocole Bitcoin.
Cela va faire bientôt 15 ans que le White Paper a été publié, et malgré les nombreux développements opérés sur le protocole depuis, ce papier n’a pas pris une ride. Il nous permet encore aujourd’hui de comprendre les premiers objectifs de Bitcoin et les mécanismes ingénieux qui permettent son bon fonctionnement. S’il y a bien un ouvrage que vous devriez lire pour comprendre Bitcoin, c’est celui-ci.
Puisque c’est un papier scientifique, sa lecture peut paraître austère. Dans cet article, nous allons expliquer simplement ce que Satoshi Nakamoto décrit dans le White Paper de Bitcoin.
Pour pouvoir suivre cet article, vous pouvez, vous aussi, télécharger le White Paper de Bitcoin dans sa version du 24 mars 2009 en anglais, ou bien la traduction d’Arnaud-François Fausse en français.
Le White Paper de Bitcoin commence par mettre en lumière les limites des systèmes de transactions électroniques déjà existants en 2008. Dès la deuxième phrase, Satoshi dénonce les faiblesses du modèle de confiance de ces paiements qui reposent sur des tierces parties.
Selon lui, les systèmes de paiements électroniques ont des coûts et des incertitudes inhérents, notamment concernant la résolution des conflits et la fraude. Ils ne permettent pas de petites transactions et ne sont pas adaptés pour certains commerçants, car ils n'offrent pas la possibilité de paiements irréversibles.
Pour résoudre ce problème, Satoshi suggère l’utilisation d’un système de paiement électronique établi sur des preuves cryptographiques, plutôt que sur la confiance. Il souhaite que deux parties puissent faire une transaction sans l’intervention d’une quelconque autorité centrale. Ce système, c’est Bitcoin.
Lorsque l’on analyse cette introduction, on comprend que l’objectif premier de Bitcoin a été de proposer un système de paiement électronique qui ne nécessite pas de confiance. Finalement, comme le décrit le titre du White Paper, Satoshi voulait créer un système d’argent liquide électronique pair-à-pair.
À la fin de l’introduction, Satoshi explique que le protocole Bitcoin est avant tout une proposition pour résoudre le problème de la double dépense en utilisant un serveur d’horodatage distribué, mais je vous en parle plus en détail dans les prochaines parties.
Dans cette deuxième partie, Satoshi Nakamoto décrit ce que représente une pièce sur Bitcoin. Il nous explique que ces pièces sont représentées par une chaîne de signatures électroniques. Finalement, il décrit ce que l’on appellera plus tard des « UTXO », c’est-à-dire des sorties de transactions non dépensées.
La personne qui reçoit des bitcoins peut alors vérifier les différentes signatures électroniques antérieures, afin de remonter jusqu’à la création de la pièce. De cette manière, il peut vérifier que les bitcoins qu’il reçoit sont bien légitimes.
Un système de cryptographie asymétrique est utilisé pour générer des paires de clés et des signatures. Il faut comprendre dans cette partie que les clés publiques sont utilisées pour recevoir des bitcoins, et que les clés privées sont utilisées pour signer et dépenser des bitcoins.
➤ En savoir plus sur les signatures numériques sur Bitcoin.
Dans le paragraphe suivant ce schéma, Satoshi nous décrit une problématique des systèmes de monnaie électronique pair-à-pair : la double dépense. Dans un système centralisé, comme avec les banques, il existe une entité centrale chargée de s’assurer qu’une même unité de monnaie n’est pas dépensée deux fois. Par exemple, si Alice possède 10 € sur son compte bancaire et les envoie à Bob, alors Alice ne peut pas renvoyer ces mêmes 10 € à Charles. La banque empêche ainsi la double dépense.
Mais dans un système décentralisé comme Bitcoin, on ne veut pas que les paiements reposent sur une entité centrale comme une banque. Rappelez-vous de l’introduction de Satoshi : il faut éliminer le besoin de confiance dans le système.
Il nous explique alors qu’il faut un moyen pour le bénéficiaire d’une transaction de s’assurer que le précédent propriétaire de la pièce n’a pas déjà dépensé cette même pièce par le passé. En d’autres termes, le bénéficiaire doit pouvoir s’assurer de la non-existence d’une transaction antérieure. Et selon Satoshi, le seul moyen pour confirmer l’absence d’une transaction est d’être au courant de toutes les transactions.
Il faut donc que chaque participant ait accès à l’intégralité des transactions passées, afin de pouvoir avoir la preuve qu’à la réception d’une transaction, c’est bien la première qui dépense les bitcoins engagés. Pour ce faire, le protocole Bitcoin repose sur un serveur d’horodatage distribué. C’est ce que vous connaissez sûrement sous le nom de « Blockchain ». Les transactions sont regroupées dans des blocs, et chaque bloc est publié l’un après l’autre. On peut alors apposer un temps sur une transaction publiée, et confirmer qu’elle a existé à l’instant de l’horodatage.
Chaque bloc inclut l’empreinte du bloc précédent afin de former une chaîne, de telle sorte que chaque nouveau bloc renforce le précédent. C’est pour cela que l’on parle aujourd’hui de « chaîne de blocs ».
Ce serveur doit être distribué à tous les utilisateurs afin que chacun puisse confirmer la non-existence d’une transaction par le passé, sans recourir à un tiers de confiance. De cette manière, on évite la double dépense sur le système Bitcoin.
Cette partie est une des plus intéressantes du White Paper, puisque la Proof-of-Work représente le cœur de Bitcoin. Satoshi nous présente ce concept comme un mécanisme similaire au protocole Hashcash d’Adam Back.
Pour qu’un bloc soit considéré comme valide au sein de la blockchain, il faut que le hachage de son entête soit inférieur à une cible donnée. Une valeur qui peut être librement ajustée (le nonce) est incrémentée dans chaque bloc. Les participants peuvent ainsi essayer plusieurs valeurs aléatoires, jusqu’à que le hachage de leur bloc soit inférieur à la cible. Ce processus, c’est ce que l’on connaît aujourd’hui sous le nom de « minage ».
Satoshi nous fait remarquer que, puisque les blocs sont enchaînés les uns avec les autres, la modification d’un bloc dans le passé nécessite forcément de refaire toute la preuve de travail des blocs postérieurs. C’est pour cela qu’une transaction Bitcoin devient de plus en plus immuable au fil des nouveaux blocs minés.
La cible est ajustée à intervalles réguliers afin de pouvoir adapter la difficulté de minage à l’évolution de la puissance de calcul déployée sur le réseau.
Techniquement, la preuve de travail résout ainsi le problème de la définition du processus de décision majoritaire dans un système pair-à-pair. En effet, dans la partie précédente, nous avons vu que tous les utilisateurs doivent maintenir leur propre serveur d’horodatage, recensant toutes les transactions exécutées. Il nous faut donc un moyen pour que les participants se mettent d’accord sur une version unique de cette blockchain. Pour ce faire, les nœuds honnêtes du réseau considèrent la chaîne de blocs disposant de la plus grande quantité de travail accumulée comme étant celle légitime.
Jusqu’en 2010, Satoshi pensait que la chaîne la plus longue était la chaîne qui disposait du plus de travail accumulé. C’est pour cela qu’il parle de « la chaîne la plus longue » dans son White Paper. Pourtant, c’est bien la chaîne qui dispose du plus de travail accumulé qui est considérée comme valide depuis 2010 par les nœuds Bitcoin. Cette chaîne n’est donc pas forcément la plus longue, contrairement à ce que pensait Satoshi en 2008.
En effet, il faut trouver un moyen pour que les participants puissent voter pour la version de la chaîne qu’ils estiment légitime. Puisque nous ne voulons pas faire reposer Bitcoin sur une autorité centrale, il est évidemment impossible de vérifier l’identité de chaque participant afin d’éviter une triche au niveau du système de vote. Il nous faut donc trouver un moyen de vote établi sur une donnée objective, afin de ne pas faire reposer le réseau sur des interventions humaines.
Satoshi nous explique que Bitcoin aurait pu décréter qu’une adresse IP équivalait à un vote. Mais le problème de ce mécanisme est qu’il est très facile de multiplier les adresses IP afin de tricher et d’influencer le résultat du vote. C’est ce que l’on appelle une attaque Sybil en informatique.
Au contraire, en utilisant la Proof-of-Work et en décrétant que les nœuds se synchronisent sur la chaîne avec la plus grande quantité de travail accumulée, Satoshi a résolu ce problème du processus de décision majoritaire. Ainsi, un vote sur Bitcoin équivaut à une unité de puissance de calcul. Le processus de décision majoritaire est établi sur une donnée objective qui impose un coût à l’utilisateur en termes de consommation d’électricité et de temps de processeur.
La preuve-de-travail est par essence un-CPU-un-vote.
En somme, la preuve de travail permet d’imposer un coût marginal non négligeable à la multiplication des votes. C’est donc une mesure pour limiter les attaques Sybil sur le processus de décision majoritaire du protocole Bitcoin.
➤ En savoir plus sur le fonctionnement de la preuve de travail sur Bitcoin.
Avec ces premières parties, Satoshi Nakamoto nous offre déjà une première vision d’ensemble des mécanismes du protocole Bitcoin. On y découvre que le cadre de fonctionnement s’établit sur des signatures numériques qui permettent le transfert de pièces. Cela permet le contrôle de la propriété, mais ça n’empêche pas le risque de la double dépense. On utilise alors un serveur d’horodatage distribué (la blockchain) pour avoir une trace des paiements passés, ce qui permet de confirmer l’absence d’une transaction. Pour que les utilisateurs puissent se mettre d’accord sur une version unique de cette chaîne de blocs, Bitcoin utilise un mécanisme de consensus établi sur la preuve de travail.
Toutefois, il nous reste encore plusieurs parties à analyser ensemble. Il faudra patienter jusqu'à la parution de notre prochain article, la semaine prochaine, pour en explorer davantage. Nous y découvrirons :
Enfin, je vous expliquerai simplement la fameuse partie 11 du White Paper, qui peut paraître austère à première vue, mais qui est d’une importance capitale pour comprendre Bitcoin.