Alors j’aimerais bien que l’on se concentre un peu pour parler clairement, car là on part dans tous les sens.
Je vais tenter de donner quelques définitions de ce que j’ai compris donc de la manière la plus neutre possible, que l’ont se mettent d’accord sur ce dont on parle. L’objectif n’est pas non plus d’être exhaustif hein
Je ferais ma critique par la suite
La blockchain ou « chaine de blocs »
C’est le concept de base, c’est la définition d’une technologie qui stocke et communique des informations sans organe de contrôle. Une sorte de registre ou tous les utilisateurs peuvent écrire à la suite des autres, ce registre étant recopié en permanence chez tous les autres.
Pour contourner l’absence d’organe de contrôle (qui vérifie si une personne n’est pas en train de tricher ou de se tromper, de mal recopier les informations, ou d’écrire en même temps qu’un autre), les informations sont vérifiées de manière régulière, en groupe (on vérifie un bloc d’écriture, puis un autre … La chaine de blocs).
La sécurité du système est validée par cryptographie.
Les premières recherches sur le sujet datent de la fin des années 1990, le bitcoin est lancé en 2008.
Le premier « truc » qui ressemble d’ailleurs à une blockchain, c’est les deux chercheurs à l’origine de la blockchain l’a été par les chercheurs qui ont initialement bossé autour du concept. Mais dans les années 90 (toi-même, tu sais), internet n’était pas le meilleur endroit pour publier cela …
et bien hop :
Voilà une attestation cryptographique d’un registre de certification :
Publié toutes les semaines dans le New York Times. Impossible ensuite de modifier le registre sans que cela rendent invalide l’attestation … Attestation envoyée aux quatre coins du monde
les types de blockchains ?
Il existe de nombreuses blockchains, on peut déjà définir deux « type ». Le premier type, c’est les blockchains de transactions. Le registre dont je parle. Le Bitcoin correspond à cette définition.
Le deuxième type, on ajoute la fonctionnalité de « contrat ». En gros des programmes existent qui permettent de réaliser des transactions. Dans sa version la plus simple, on peut décrire le fonctionnement des « smart contracts » (c’est leur nom) comme celui d’un distributeur automatique :
Si tu me donnes 1 ETH, tu auras droit à 100 Cookies
Les typologies de blockchains
J’irais vite, car nous ne parlons que d’une seule typologie aujourd’hui, mais la blockchain n’est pas obligatoirement publique. On peut avoir des blockchains semi-publiques (en gros, les utilisateurs sont connus et validés, les transactions de la blockchain en question restent publiques) voir totalement privée.
Les procédures de validation
Dans ma définition plus haut, j’ai parlé de vérification.
Pourquoi faire une vérification ?
Imaginons que je sois un petit fourbe (oui je sais …), je lance mon logiciel, j’écris ma ligne sur le registre qui dit :
Je suis A, j’ai 1 sur mon compte et je donne 1 à B
Puis, depuis un autre ordinateur qui n’a pas encore reçu ma transaction, j’écris ma ligne sur le registre qui dit :
Je suis A, j’ai 1 sur mon compte et je donne 1 à C
Notez que ce genre de chose peut arriver de manière intentionnelle (tentative de piratage) ou non (bug dans la matrice, erreur du dev de mon logiciel qui écrit sur le registre, etc.)
Le challenge est complexe. Comment valider une liste de transaction sans un « tiers de confiance » qui valide pour l’ensemble des utilisateurs (et qui dira dans mon cas, A donne 1 à B, mais pas a C) ?
Et bien on fait vérifier chaque « bloc » de transaction … Et naturellement, plusieurs méthodes de validation existent.
Cette vérification est réalisée par des « mineurs » dont c’est le boulot.
De ce que j’en garde, deux méthodes sont principalement utilisées (mais certaines blockchains utilisent un mix des deux, ou autre chose … Bref) :
La preuve de travail
La preuve de travail, c’est un la création d’un bloc de transaction. On prend un groupe de transaction non validé, on les vérifie, on crée un bloc avec toutes ses transactions … Et on demande au mineur de faire des calculs (cela dépend de la blockchain). En gros, on demande aux mineurs de résoudre un problème qui demande de faire des calculs très complexes. Une blockchain peut imposer que plusieurs utilisateurs valident le bloc (que plusieurs génère les mêmes vérifications et donc le même bloc). Le mineur qui valide un bloc en premier a une rémunération (d’autres règles peuvent être utilisées, mais en général c’est cela). Les mineurs qui tentaient de valider le même bloc n’ont rien.
La preuve de participation
La preuve de participation demande aux mineurs de prouver la possession d’une certaine quantité de l’élément que l’on échange sur la blockchain pour pouvoir valider un bloc. Puis les mineurs reçoivent les blocs validés pour réaliser le même calcul complexe qu’avec la preuve de travail.
La différence est donc que les mineurs ne sont pas en compétition, ils minent uniquement « leur » blocs de transaction.
Et le bitcoin alors ?
Le bitcoin est une blockchain publique de type 1 (transactionnelle) avec une vérification réalisée via la méthode « preuve de travail » qui permet de faire de l’échange de valeur. On parle de Cryptomonnaie.
(pour prendre un autre exemple, je dirais que Ethereum est une blockchain publique de type 2 (transactionnelle) avec une vérification réalisée via la méthode « preuve de travail » … La prochaine version d’Ethereum passera peut-être à la méthode « preuve de participation ».).
Je pense ne pas prendre de risque en disant que c’est la cryptomonnaie la plus utilisée du monde (et sans doute celle qui a la « valeur » en euros/dollars la plus importante). De par le code, le nombre de bitcoins est limité à 21 millions.
Il existe des « forks » du bitcoin. Des blockchains qui se sont un jour séparés (car par d’accord avec la validation de la blockchain par exemple).