Blockchain

La blockchain, une structure de données difficile à altérer

Schéma de la blockchain, une structure de données difficile à altérer
Schéma de la blockchain, une structure de données difficile à altérer

Nous avons vu précédemment que la blockchain était une suite de blocs.

Nous savons également les assertions suivantes :

  • Un block possède un hash qui est formé à partir de plusieurs données dont le hash du block précédent (n-1)
  • Le hash du block doit commencer par suffisamment de 0 pour être valide
  • Une modification de la donnée d'entrée qui est passée dans une fonction de hachage entraine un nouveau hash
  • Miner un block (pour obtenir un bon hash) coûte du temps et de l'énergie (électricité)

Ainsi, vous devriez comprendre pourquoi plus on avance dans le temps, plus la blockchain est longue (= possède de blocs) et donc plus elle est difficile à altérer.

Si un modifie une transaction d'un bloc ancien n, il faudra le re-miner pour que son hash soit correct mais également les suivants n+1, n+2, ..., n+i !

Plus le block qu'on souhaite modifier est ancien, plus il va falloir miner de blocks !

Essayez la démo !

  1. Essayez de modifier le premier block de la démo : supprimez une ligne.
  2. Vous devriez maintenant vous apercevoir que l'intégralité des blocs après le n°0 ne sont plus valides !
  3. Même si vous minez directement le dernier block, on voit que la blockchain n'est toujours par valide car les blocks d'avant ne sont pas bons.
  4. Vous pouvez vous amuser à cliquer sur "miner" sur chacun des blocs les uns à la suite des autres ! Ça prend du temps !

La démo interactive est une reproduction de celle créée par Anders Brownworth https://andersbrownworth.com/blockchain/.

C'est à lui que tout le crédit revient pour la conception pédagogique de ce modèle, c'est grâce à son travail et ses vidéos que j'ai eu l'inspiration de faire la même chose pour Avenue du Coin car j'ai trouvé que c'était la meilleure manière d'expliquer le fonctionnement de la blockchain.

J'ai donc reproduit les modèles suivant : le block, la blockchain et les signatures. Je les ai très légèrement modifié à ma façon.

En revanche, la démo de la création d'une adresse P2PKH, P2SH, la démo du hash et la démo de la fonction carré ont été imaginés et designés par moi-même.