Expliquer la Blockchain simplement avec des cartes Pokemon - Version corrigée par Jeannine

in #dmedia4 years ago (edited)

ATTRAPEZ-LES TOUS ! POKEMON !

Avant de commencer, je tiens à remercier Jeannine, une dame Ô combien cultivée, pleine d'énergie, de l'âge de ma grand-mère, au très grand coeur, qui m'a ouvert sa porte, servit le thé et aidé à rendre cet article accessible à tout le monde. Je me souviendrais toujours de ce moment dans son salon, où je lui expliquais la Blockchain.
Merci Jeannine.


ATTRAPEZ-LES TOUS ! POKEMON !

Imaginons que nous soyons des enfants, assis dans la cours de l’école. Ah... Le bon vieux temps...
Nous avons chacun nos cartes Pokemon à négocier et nous avons décidé de nous échanger deux cartes de la même valeur. Il n’y a rien de particulier dans ce procédé, nous sommes d’accord sur le fait que cette transaction est juste : je te donne ma carte et tu me donnes la tienne. Facile.

A 10 ans, nous nous estimons responsables et n’avons pas besoin de demander au professeur de superviser cet échange et de certifier que les cartes sont correctement négociées. Il est désormais évident que chacun possède sa carte, chacun de nous peut le voir. Nous nous accordons sur le fait que la transaction s’est terminée comme elle se devait.
Très efficace. Tout le monde a ce qu’il voulait et aucune larme n’a coulé. Mais imaginons maintenant la situation suivante : nous nous échangeons la version digitale de ces cartes Pokemon.

Disons que j’ai la carte à plus haute valeur dans le jeu, il n’y a qu’un seul exemplaire en circulation, et que je veuille la transférer à mon ami.

Comment mon ami peut-il être sûr que je n’ai pas fait de copie sur mon ordinateur avant de la lui envoyer ? Que se passe-t-il si je fais 1 000 copies et que je les vends toutes comme s’il n’y en avait qu’une seule ?

Il n’y a aucun moyen pour lui d’être sûr que je n’ai pas fait ça. Ce serait une conséquence négative pour lui, tout comme pour l’ensemble de la communauté Pokemon, qu’une carte rare censée être unique perde de la valeur à cause d’une surabondance.
Finalement, ce problème est connu sous le nom de « double dépense » : problème informatique non-résolu avant la création du protocole Bitcoin.

En effet, quand vous échangez deux actifs numériques, comment vous assurez-vous que personne n’a envoyé le même actif numérique simultanément ? Comment puis-je convaincre un interlocuteur que je n’ai pas dupliqué cette fameuse carte Pokemon que je veux envoyer ?

Nous pouvons utiliser un registre distribué c'est-à-dire un historique de transactions – pour enregistrer notre deal. Nintendo pourrait avoir le contrôle de ce registre et voir l’ensemble des échanges de cartes Pokemon pour garantir le fait que personne ne duplique aucune carte. Le problème de cette configuration est qu’une tierce-partie est venue mettre le nez dans nos affaires, et ça c'est embêtant... Désormais ce n’est plus juste toi et moi dans la cours d’école car nous avons eu besoin de placer notre confiance dans une tierce-partie. Mais à l'arrivée le problème est le même, comment peut-on être certain qu’un employé de Nintendo n’a pas dupliqué la carte secrètement pour la donner à son petit frère ?

CONCLUSION : Nous ne pouvons donc pas être sûrs à 100% que personne ne modifie l’historique en son avantage.

Mais...il y a une question intéressante à soulever : Que se passe-t-il dans le cas où, au-lieu de sauvegarder cet historique via un Server Nintendo, nous donnons une version de l’historique à chaque joueur Pokemon souhaitant échanger ces cartes ?

Il y a des milliers et des milliers de fans de Pokemon tout autour du monde, donc si tout le monde gère une copie de ce fameux registre, tout le monde pourrait être averti que j'ai envoyé ma carte rare. Ainsi les détenteurs du registre ont la possibilité de prouver qu’une seule carte comme celle que j'ai envoyée existe. Donc si je duplique ma carte en secret et que je souhaite la garder sur mon compte, ma copie de registre ne sera pas compatible avec celle de quelqu’un d’autre et sera rejetée.

OK... OK... Tu as capté l'idée ?

Peut-être as-tu eu besoin de relire plusieurs fois le paragraphe précédent ? Nombreux sont ceux qui auront quitté l'article avant d'arriver ici. Si tu as tenu bon jusqu'ici, félicitations, c'est là que tu vas faire la différence.



Une p'tite question : comment l’entièreté du réseau peut-elle vraiment vérifier que notre échange de cartes Pokemon est correct ?

Les choses vont se compliquer à partir de... MAINTENANT. Prenons un exemple :
Admettons qu’il y est 1 000 ordinateurs participants à ce réseau d’échange de cartes Pokemon, appelons-les ‘nœuds’.
Tous ces nœuds ont une copie du registre distribué, et chaque nœud fait tourner le logiciel qui leur permettent de communiquer tous ensemble. Leur objectif est de valider indépendamment chaque échange de cartes Pokemon.
Ces nœuds doivent se mettre d’accord sur ce qu’ils veulent faire ressortir sur le registre et donc, sur le réseau. Si je fais une affaire, la transaction est placée dans un bloc temporaire non-confirmé en attendant la validation. Un échantillon de nœuds va entrer en compétition pour valider toutes ces transactions non-confirmées pendant une période donnée (disons, 10 minutes, c'est le cas pour Bitcoin).
Ces nœuds sont aussi appelés les mineurs. Ils ont pour mission principale de valider ces groupes de transactions (blocs) parce qu’ils peuvent gagner un gros tas de cartes Pokemon qui récompensera de leurs efforts. Cet historique de tous les échanges de cartes Pokemon est stocké sous la forme d’une chaîne de blocs (blockchain technology), constituant ainsi un registre distribué et partagé.

Ensuite, les mineurs sont en compétition à qui sera le premier à valider un nouveau bloc. Ils dépensent un montant élevé de puissance de calcul pour tenter de résoudre un puzzle cryptographique. La force du réseau est de demander un travail très dur pour décourager et empêcher les participants de tricher. Vous n’allez pas vous attaquez au registre si le coût est trop important :

Si le gain généré par une participation honnête ainsi est supérieur aux gains générés par l'attaque du réseau, alors il vaut mieux utiliser ses ressources pour participer à la sécurité de ce réseau et se voir rétribuer.



Une fois qu’un mineur a trouvé la solution de ce puzzle, il valide un bloc, c'est-à-dire qu'il signe ce bloc électroniquement pour prouver que ce bloc a été vérifié et annonce cette nouvelle au réseau de nœuds. Ce mineur distribue le bloc vérifié à l'ensemble du réseau afin de mettre à jour leur version du registre avec les nouvelles transactions et collecter le coût des cartes Pokemon.

Cependant, aucun nœud n’a besoin de faire confiance à un autre, donc à chaque fois qu’un nouveau bloc se profile, tous les nœuds vérifient chaque transaction afin de vérifier que cet historique ne comporte pas de double-dépense. C’est ainsi que le réseau atteint le consensus.

Mais imaginons maintenant la situation suivante : je t’ai envoyé une de mes cartes Pokemon afin de recevoir en échange un bien réel, quelque chose de palpable, disons un déjeuner, cela tombe à pic, j’ai très faim. Que se passe-t-il si je fais l’échange avec toi, que je prends ton déjeuner et que j'essaye pendant ma digestion (les fameuses 10 minutes) de renvoyer la carte que je viens de t’envoyer à quelqu’un d’autre ?
Disons que l’échange A était celui te concernant et que l’échange B est le second : problème de double-dépense.

Le réseau ne sait pas quel est le bon échange donc comment va-t-il trancher ? Les deux vont aller dans un bloc de transactions non-confirmées et généralement dans l’ordre chronologique.
Parce que la chaîne de blocs vérifie chronologiquement, plus une transaction est éloignée dans la chaîne, plus elle est sûre. Si l’échange B est validé en premier, c’est la vraie transaction aux yeux des différents détenteurs de registres et l’échange A représente la double-dépense.

Donc l’idée c'est d’attendre 10 minutes avant d’accepter de me payer à déjeuner. Si une fois la vérification faîte, la transaction apparaît sur le réseau comme étant acceptée, tu me prends ma carte Pokemon et moi je savoure un délicieux repas. Tout est magnifique dans le meilleur des mondes.

Peut-être que ce n’est pas le cas ? Que se passerait-il si j'étais très gourmand et que je ne voulais pas jouer selon ces règles ? Il m'est impossible de revenir en arrière puisque la transaction est stockée dans un bloc d'informations et probablement enterrée derrière un tas de blocs. Je ne peux plus supprimer ou modifier un bloc dès qu'un bloc est ajouté derrière lui.

Souvenez-vous qu’une signature digitale est attribuée à chaque bloc. Elle est générée via les informations de ce bloc donc changer les informations (supprimer ma transaction par exemple) va automatiquement modifier la signature.
Et, pour rendre les choses encore plus hostiles pour moi, chaque signature de chaque bloc est déterminée par la signature la précédant. Donc en modifiant une signature, toutes les précédentes se retrouvent également modifiées.

Pour rendre les choses encore plus compliquées, imaginons que je modifie la signature digitale uniquement sur ma copie de registre. Toutes les autres copies sont gentiment en train de se mettre d’accord sur ce qu’il s’est produit. Je dois le faire sur plus de 50% du réseau pour ainsi détenir la majorité et former un consensus.

De plus, générer des signatures électroniques et faire de nouveaux calculs requiert une incroyable puissance, difficile à atteindre.

Et oui, juste comme ça, nous avons créé un réseau ouvert, décentralisé, irréversible et infalsifiable pour échanger nos actifs numériques.
C’est une version assez simpliste de comment bitcoin et la technologie de chaîne de blocs fonctionne, mais il est très facile de voir que la technologie utilisée par Bitcoin la rend unique et fascinante.

Félicitations, vous connaissez désormais mieux la Blockchain que 95% des gens via le monde des Pokemons.

Mon dernier article : Russie: Le crypto-rouble
SUIVRE Sirob sur STEEM : https://steemit.com/@sirob

Traduction et adaptation de l'article : Blockchain explained via Pokemon cards