La chaîne de bloc

Nous avons déjà beaucoup abordé la notion de chaîne de bloc (ou blockchain en anglais). Ce concept est au cœur du Bitcoin. Rentrons un peu plus dans les détails.

bitcoin-block-chain

La blockchain est une archive qui contient toutes les transactions réalisées depuis le début du Bitcoin. Elle permet donc de suivre chaque Bitcoin depuis sa création, de transaction en transaction et d’adresse en adresse, jusqu’à sa destination actuelle. Grâce à ce registre, il est possible de savoir combien de Bitcoins sont déposés sur telle ou telle adresse et de vérifier qu’aucun Bitcoin n’est apparu sans raison.

La chaîne de bloc permet la traçabilité complète des transactions en Bitcoins et empêche la contrefaçon, ce qui rend inutile l’existence d’une banque centrale.

Le premier bloc, aussi appelé le bloc de la genèse (The genesis block, en anglais), a été miné le 3 janvier 2009 par Satoshi Nakamoto, l’inventeur du Bitcoin. Depuis, les mineurs rassemblent chaque transaction dans un bloc. Dès que le bloc est trouvé, il s’ajoute à la suite du bloc précèdent dans l’archive. Chaque bloc contient plusieurs transactions, mais doit contenir également l’identifiant du bloc qui le précède. Ainsi chaque bloc est lié au précédent et au suivant ce qui explique le terme de chaîne de bloc. De plus, ce système oblige les blocs à s’enchaîner de manière chronologique, car on ne peut pas ajouter un nouveau bloc à la chaîne si l’on ne connaît pas l’identifiant du précédent.

Le Bitcoin est un réseau distribué. C’est-à-dire que les mineurs sont tous connectés entre eux sur Internet et que chacun possède sa propre copie de la chaîne de bloc. Ainsi, la chaîne de bloc est installée partout et nulle part en particulier. Cette caractéristique P2P du Bitcoin permet également de se passer d’une entité régulatrice. Si vous utilisez le logiciel Bitcoin-QT, vous avez vous aussi une copie de la blockchain
sur votre ordinateur.

Le logiciel Bitcoin utilisé par les mineurs et par les utilisateurs reçoit et envoie des informations en temps réel sur Internet afin de synchroniser les différentes copies de la blockchain. Car même sur Internet les échanges ne sont pas immédiats. Plusieurs mineurs peuvent en effet trouver des blocs en même temps, en utilisant des transactions différentes. À chaque instant, le problème se pose donc de déterminer quelle version de la chaîne de bloc est la meilleure.

Dès qu’un mineur trouve un bloc, il diffuse ses caractéristiques aux autres noeuds du réseau pour que chacun l’ajoute à la copie de l’archive qu’il possède. Mais en réalité, comme des informations contradictoires sont envoyées, le fichier qui est sauvegardé sur l’ordinateur de chaque utilisateur ou mineur contient plusieurs versions de la chaîne de bloc.

Il faut se représenter chaque version comme une branche d’un même arbre. Chaque branche grandit à mesure que des blocs sont ajoutés au bloc précédent dans la même branche. Pour décider quelle branche est à prendre réellement en compte, le logiciel Bitcoin regarde la branche la plus longue. Cette branche devient en quelque sorte le tronc, c’est-à-dire la chaîne de bloc officielle. On dit alors que les branches qui n’ont pas été retenues sont constituées de blocs orphelins. Les transactions contenues dans ces blocs devront être ajoutées à de nouveaux blocs contenant
des transactions plus récentes pour être confirmées par le réseau.

Chaque client Bitcoin arbitre en permanence entre les différentes branches. Il n’y a donc pas une branche officielle à un instant donné. Mais avec le temps la majorité des nœuds du réseau se mettent d’accord. Le fait de toujours choisir la version la plus longue de la chaîne de bloc est ce qui sécurise le Bitcoin. Un mineur mal intentionné qui essaierait d’ajouter des blocs contenant des transactions frauduleuses devrait miner plus rapidement que tous les autres mineurs pour que sa branche soit choisie comme étant officielle. Il lui faudrait donc rassembler plus de 51% ou plus de toute la puissance du réseau.

Pour être plus précis, sachez qu’en réalité la longueur d’une branche n’est pas vraiment mesurée en nombre de blocs. Le réseau regarde en fait la difficulté de chaque branche, c’est-à-dire la somme des ressources dépensées pour créer chaque branche. Cela revient en général au même sauf que cette façon de faire sécurise d’autant plus le réseau, car c’est bien la preuve de travail la plus importante qui prime. Ce qui renchérit d’autant toute tentative de piratage de la blockchain.

Et que deviennent les récompenses distribuées aux mineurs qui ont trouvé des blocs dans des branches qui n’ont pas été choisies ? Elles disparaissent tout bonnement, car dans la version officielle de la blockchain, ces blocs n’existent pas. Dans ce monde parallèle qui devient le monde officiel, ces récompenses n’ont donc jamais été distribuées. Pour les mineurs, trouver un bloc ne suffit donc pas pour être rémunéré : il faut aussi qu’il soit retenu dans la blockchain officielle.

En mémoire de Spot