Qu’est-ce que la Blockchain ?

Accueil » Apprendre » Blockchain » Qu’est-ce que la Blockchain ?

Depuis 2017, la blockchain est souvent mise en avant comme la solution miracle à tous les maux du monde. Il y a un an et demi, la hype était au plus fort et les projets blockchain naissaient par milliers, portés par le phénomène des ICOs. Cependant, nombreux sont ceux qui parlent de blockchain sans vraiment comprendre de quoi il retourne. Nous tentons dans cet article d’expliquer le plus simplement possible la blockchain, ses principes basiques et ses fonctionnements pour arriver à la définition la plus communément admise : une “base de donnée immuable”.

Qu’est-ce qu’une blockchain ?

Une blockchain est un livre de comptes numérique – un registre – qui utilise des méthodes cryptographiques afin de structurer des données en blocs. Chaque opération au sein d’une blockchain est appelée transaction et est déclenchée par des utilisateurs, qu’il s’agisse d’une transaction simple, conditionnelle, ou de l’appel d’une fonction dans un smart-contract.
Une empreinte numérique unique de chaque bloc est générée via un hash qui représente l’intégralité de l’information que celui-ci contient. Cette empreinte est copiée dans le bloc qui le suit. Chaque bloc est donc relié cryptographiquement au suivant, d’où le nom “chaîne de blocs”.

Ainsi, si une donnée quelle qu’elle soit est modifiée, l’empreinte numérique de ce bloc change, ce qui impacte l’intégralité des empreintes numériques des blocs suivants. On se rend donc compte instantanément qu’une information a été modifiée.

Les blockchains sont donc des registres tamper-evident. Cela veut dire que si une information est modifiée, tout le monde s’en rend compte. Cela n’assure cependant pas que l’information ne puisse être modifiée.

Pour atteindre le niveau de tamper-proof, c’est à dire un registre immuable ou l’information ne peut être modifiée, il faut alors introduire des mécanismes plus complexes en terme de mécanisme de consensus.

Blockchains tamper-evident et blockchains tamper-proof

Par définition, une blockchain fait partie de la famille des registres distribués et existe en plusieurs copies. Le registre est distribué entre différents acteurs qui peuvent éventuellement prendre part à la validation des transactions en ajoutant les blocs à la blockchain à laquelle ils participent.

Dans une blockchain privée ou de consortium, tous les validateurs sont connus et choisis. On parle de Proof-of-Authority (preuve d’autorité). Il s’agit d’un mécanisme simple où les différent acteurs accordent un degré de confiance élevé aux autres acteurs du réseau.

Alors que cela peut faire sens selon les cas d’usage, cette architecture a pour conséquence directe qu’une coalition entre les validateurs leur donne un pouvoir important qui peut leur permettre de modifier l’état de la blockchain ainsi que les données qu’elle contient sans que personne ne puisse les en empêcher. Cela peut être le résultat d’une pression par le haut d’un gouvernement ou régulateur par exemple. Les modifications seront cependant visibles aux yeux de tous les acteurs qui ont une copie de la blockchain.

Afin de rendre une blockchain immuable (tamper-proof), il faut absolument introduire un mécanisme qui assure que l’on ne connaisse pas l’identité de l’intégralité des validateurs et que le coût d’une modification de la donnée dans un bloc soit le plus élevé possible. C’est le rôle des mécanismes de consensus Proof-of-Work ou Proof-of-Stake que l’on retrouve dans les blockchains publiques.

Concept of blockchain in modern business

Nous n’entrerons pas dans le détail de la Proof-of-Stake dans cet article. Pour plus de détails, consultez l’article sur Tezos, rédigé également par les équipes de Coinhouse.

Pourquoi une preuve de travail suffisante apporte-t-elle l’immuabilité à une blockchain ?

Le Proof-of-Work (preuve de travail) permet de définir une quantité de travail à effectuer en allouant des ressources énergétiques sous la forme d’électricité. Cette quantité de travail est relative à chaque bloc et est définie par la difficulté de minage. Un validateur – appelé mineur – ayant fourni la preuve de travail d’un bloc donné peut diffuser le bloc sur le reste du réseau qui vérifiera rapidement la validité du bloc. Il sera récompensé pour son travail via la création monétaire du bloc et la somme des frais de transactions. Si le bloc est invalide, alors le travail fourni est perdu, il aura perdu de l’argent en utilisant des ressources énergétiques pour rien.

Analysons les possibilités qui s’offrent à un attaquant afin de tirer avantage du Proof-of-Work. On parle d’attaques à 51%.

Modification des transactions passées

Pour modifier une transaction enregistrée dans un bloc passé, il est nécessaire de recalculer l’empreinte du bloc qui la contient, ainsi que toutes les empreintes des blocs générés depuis. La difficulté, les ressources informatiques, et in fine la consommation électrique nécessaire pour modifier la blockchain augmente donc proportionnellement à l’ancienneté de la transaction à modifier.

Ainsi, si un attaquant souhaite modifier une transaction qui a été incluse 60 blocs dans le passé, soit environ 10h, il devra recalculer les empreintes de 60 blocs, sachant que la preuve de travail nécessaire à l’intégralité du réseau de minage pour créer une empreinte est de 10 minutes, en moyenne.

Pendant ce temps, le reste du réseau continue de créer de nouveaux blocs. L’attaquant devra donc rattraper puis dépasser le réseau de minage existant en termes de puissance de calcul, il lui faudra donc disposer d’au moins 51% de la puissance totale de calcul, d’où le nom ‘’attaque 51%’’. Il devra maintenir ce niveau de puissance de calcul jusqu’à mener son attaque à bien.

On estime que l’attaque décrite ci-dessus pour remonter à dix petites heures dans le passé coûterait entre six et dix millions de dollars sur le réseau Bitcoin si l’on disposait déjà de l’infrastructure informatique nécessaire. Cela n’a jamais été réalisé en dix ans d’existence du Bitcoin car les bénéfices que l’on peut en tirer sont trop faibles face aux coûts de l’attaque.

C’est donc bien le Proof-of-Work qui garantit l’immuabilité de la blockchain Bitcoin.

Modification des transactions actuelles

Il est plus facile de repartir du dernier bloc créé. L’attaquant devra alors modifier uniquement les transactions futures et non passées, mais ces attaques restent extrêmement coûteuses sur la Blockchain Bitcoin et exigent des ressources informatiques colossales pour obtenir plus de 51% de la puissance de calcul.

Alors que l’on a pu observer ce type d’attaque sur des blockchains mineures comme Ethereum Classic, un acteur détenant plus de 51% de la puissance de calcul sur Bitcoin n’aurait aucun intérêt à lancer ce type de d’attaque car la récompense qu’il pourrait en tirer en dupant des places de marché serait inférieure au coût d’exécution de l’attaque et néfaste pour la valeur de Bitcoin, actif qui rémunère son activité.

Toutes les blockchains publiques en PoW se valent-elles en terme d’immuabilité ?

Bien entendu la réponse est non.

Le niveau de sécurité d’une blockchain publique en Proof-of-Work dépend directement de la difficulté à trouver la preuve de travail nécessaire. Les deux blockchains les plus sécurisées et immuables sont Bitcoin et Ethereum, qui réunissent la majorité de la puissance de minage.

Pourquoi une structure en blocs ?

Mis à part l’utilité d’une chaîne de bloc comme registre tamper-evident, la structure en bloc prend son sens pour un système distribué. L’intégralité des copies de la Blockchain, qu’on appelle des noeuds, doivent être synchronisés afin de travailler sur la même version.

Il faut déterminer un temps d’intervalle entre les blocs suffisamment long pour assurer la diffusion des nouveaux blocs minés. On estime qu’il faut 12 secondes pour que les blocs soient propagés à 95% des noeuds du réseau Bitcoin. Lorsque l’on vous parle de blocktime à quelques secondes sur des blockchains soit-disant publiques, posez vous les bonnes questions.

Les Sidechains, la blockchain privée sans les inconvénients?

De plus en plus de projets se tournent vers l’utilisation de Sidechains. Liquid Bitcoin et POA Network par exemple. Ce type d’architecture est intéressante car elle permet de créer des ponts entre les blockchains privées en Proof-of-Authority (avec un blocktime très faible car partagé entre un nombre faible et contrôlé d’acteurs) et les blockchain publiques.

Cela permet notamment de séquestrer des fonds sur la blockchain publique afin d’en créer une représentation sur la sidechain. On peut ainsi partager des valeurs sûres et connues par le marché comme BTC sur des réseaux moins sécurisés mais éventuellement plus rapides, avec l’assurance de récupérer ses fonds sur la blockchain publique si une attaque de la sidechain avait lieu.

Via l’ajout d’empreintes numériques des blocs de la sidechain dans la blockchain publique, il est possible de faciliter la vérification de l’exactitude des empreintes pour toujours.

En résumé, une blockchain n’est rien d’autre qu’une manière d’ordonner des données sur un réseau distribué. La blockchain en tant que telle n’apporte pas toutes les réponses pour créer un système aussi robuste que Bitcoin. Il faut alors la lier à d’autres mécanismes comme le Proof-of-Work et certaines méthodes cryptographiques pour tirer le maximum de ses possibilités en définissant un niveau encore jamais atteint en terme de sécurité de la donnée numérique. Ce type d’architecture ouvre alors des possibilités extrêmement prometteuses quant à la gestion de données et le partage de valeur sur internet.

Acheter Bitcoin et autres cryptomonnaies