Qui décide des transactions a intégrer dans la blockchain du bitcoin ?

... et pas seulement dans le bitcoin, mais dans toutes les blockchains.
J'ai fais mon enquête... et je vois que finalement la blockchain ne résout de loin pas tout et repose de manière forte la question éternelle... Qui décide ?

Contexte: le bitcoin et la blockchain en bref, c'est quoi ?

Je vois que le bitcoin et ses envolées spéculatives fait beaucoup parler de lui.

Puis de nombreuses autre Blockchain sont apparues. Et certains auteurs parlent déjà de la future révolution des blockchain qui vont coloniser le monde et remplacer tout type de base de données que l'on utilise partout. Voir même de remplacer le web et l'internet.

Pour rappel, une blockchain, c'est pas très compliqué. Ce n'est finalement qu'un tableau d'affichage public géant sur lequel ont peut y déposer des post-it. Mais plus jamais les supprimer.

dazibao

Quand on crée une monnaie comme le bitcoin, ce tableau d'affichage sert à y mettre toutes les transactions qui sont faites. Ainsi il est possible de vérifier que personne ne triche et ne dépense plusieurs fois ces bitcoins.

Mais un tableau d'affichage, ça sert à plein de choses. C'est là que certains imaginent appliquer le principe partout. Comme par exemple pour les actes notariés, les testaments, etc.... Tout ce qui a besoin d'une base de donnée qu'il est impossible de falsifier.

Finalement on retombe très vite dans le problème éternel: qui décide !

Qui décide de quoi afficher sur le panneau ? qui vérifie que personne ne triche ?

C'est toute la question de l'autorité qui remise en question ici.

Dans le bitcoin, c'est la loi du plus fort qui décide

Pour bien comprendre ceci, j'ai eu envie de me plonger à fond dans les détails pour vraiment comprendre comment fonctionnent les blockchains.

Je cherchais à comprendre des aspects très technique sur le fonctionnement de la preuve par le travail des blockchain.... et j'ai trouvé.

J'avais déjà joué avec le bitcoin en 2011... quand la blockchain faisait 20Mo... (elle fait maintenant 120Go) c'était facile... mais j'ai pas laisser tourner mon soft assez longtemps.... avec ce que l'on me promettait à l'époque en bitcoin je serai millionnaire si j'avais continué !!! 

Au delà de bitcoin j'observe aussi le développement de Ethereum qui me semble avoir là le potentiel de la fameuse révolution blockchain dont on nous parle tant...

Ethereum est vraiment une plateforme de developpement. D'ailleurs la version électronique de la monnaie locale le Léman est basée sur ethereum.

Et surtout ethereum a annoncé que la blockchain allait passer de la preuve par le travail à la preuve par l'enjeu.. mais ils cherchent encore l'enjeu !!

Edit le 20 mai 2019... Ethereum n'est toujours pas en mode proof of stake... mais ça bouge. Récemment une version proof of stake de Ethereum a été mise en mode test.... 

Pour en savoir plus, je laisse la parole à Antoine et ses bons tuyaux à propos de l'Ethereum. Il a fait un très bon guide complet à propos de l'Ethereum.

Donc, question ressources, c'est plutôt bon signe. Car la révolution blockchain, à mon avis, ne peut pas se faire avec un tel gaspillage de ressources comme on le voit avec le principe de la preuve par le travail qui demande le gaspillage d'une énergie colossale !

A mon avis, Holochain est aussi un très très bon candidat à vraiment réaliser cette révolution blockchain. Holochain fonctionne totalement différemment. Enfin on en fini avec la version jeton-valeur de la monnaie et on passe au crédit mutuel. Avec ça on peut virer toute forme de contrôle via la preuve of...  n'importe quoi.

On a plus besoin de sécuriser des jetons. C'est surtout l'identité des gens qui doit être connue. La fondation Mozilla s'intéresse beaucoup à Holochain, ceci pour son volet hébergement dans un cloud décentralisé dans chaque ordinateur utilisant holochain. C'est un peu à l'image du réseau bittorent. Un très grand potentiel. Et les personnes qui mettent à disposition de l'hébergement sont récompensée. Ainsi on va récompenser les gens qui économise de l'énergie... et pas ceux qui en grillent un max pour rien !! ... comme c'est le cas avec le bitcoin...

Voici à quoi ressemble une ferme de bitcoin en Islande... pays intéressant car il y fait froid (donc moins besoin de refroidir les ordinateurs) et l'électricité n'est pas chère à cause de sa production en géothermie...

Comment fonctionne la Preuve par le travail (proof of work) ?

Le principe de base, c'est que la chaine de block est unique. (donc centralisée contrairement à beaucoup de gens qui disent qu'une blockchain est décentralisée. Voir à ce propos mon article sur la centralisation du bitcoin)

La blockchain est centralisée, mais répartie. Chaque noeud a une copie. (il y a actuellement ~ 8000 noeuds https://bitnodes.21.co/  ça grimpe un peu.. ça avait chuté drastiquement jusqu'à ~5000)

Comment faire pour décider de qui a le droit d'ajouter des blocs à la blockchain ? En cas de conflit de version de branche qui décide quelle est la vraie chaine, la juste ?

On suppose que les gentils vont mettre plus de ressources à disposition pour protéger la blockchain. C'est le principe de la preuve par le travail.

Ainsi on fait travailler les gens qui utilisent le système. Et ceux qui travaillent plus que les autres ont le droit de choisir les blocs qu'ils ajoutent à la blockchain.

Concrètement, le travail qui est fait c'est de résoudre des hash sha-256

Le hash est une fonction à sens unique qui est très utilisée en informatique. On utilise, md5, sha1 ou sha256...  mais pour comprendre un simple sinus suffit.

Le sinus de 30° = 1/2 ...  mais 1/2 .. c'est le sinus de quel angle ? ..... ça peut être 30°.. mais ça peut aussi être 150° !! et on peut envisager avoir un angle qui fait plusieurs tours du cercle...  donc impossible de savoir quel était la valeur entrée dans la fonction quand on connait seulement le résultat.

C'est ce principe qui est utilisé pour les systèmes de mot de passe. Le système qui vérifie le mot de passe ne connait pas le mot de passe. Il ne connait que le résultat du mot de passe passé à travers une telle fonction.

Ainsi, si la base de données d'un serveur qui vérifie des mots de passe est piratée, ça ne donne toujours pas accès au mot de passe.

Cependant, il y a des gens qui ont fait des dictionnaires de tous les mots et leur correspondance avec le résultat de fonction comme md5...  histoire de faire des attaques dictionnaire !

C'est pour ça que de nos jours, il faut faire des phrases de passe très longues et plus des mots de passe.

Donc pour revenir aux blockchains. Plus particulièrement au bitcoin qui utilise la fonction de hash sha 256. Le but c'est de trouver un hash qui a un résultat qui commence par un certain nombre de 0

Ex: 0000423efa46afc7...

Comme on ne connait pas comment arriver à un résultat voulu. Il faut faire des essais. Il faut arriver à un hash qui correspond à la condition donnée en utilisant les données du bloc et en faisant varier quelques caractères aléatoirement jusqu'à y arriver.

La difficulté s'adapte à la puissance de calcul... (le nombre de 0 qui débutent le hash)

Donc quand il y a une course à la puissance des gens qui gèrent le réseau et reçoivent des bitcoins en échange, et bien on arrive vite aux limites physiques de ce qu'il est possible de faire. Ainsi ce ne sont plus des ordinateurs standards qui sont utilisés pour gérer le bitcoin, comme je le faisait en 2011... mais ce sont des circuits intégrés (ASIC) spécialisés dans le hashage !

Il faut de nos jours en moyenne 200 milliards d'essais pour tomber sur un hash qui correspond au critère qui lui permet d'être accepté.

Ça prend du temps ! et ça consomme beaucoup d'électricité... pour .... rien faire d'utile... sauf montrer que l'on est prêt à gaspiller plus d'énergie que les autres pour assurer que le bitcoin fonctionne correctement.

Voici à quoi ressemble une ferme de minage de bitcoin en chine...  moi ça me fait peur !

Si un méchant forge un bloc qui lui permet de dépenser plusieurs fois le même bitcoin, il doit être très très rapide. Comme les blocs sont chainés, il doit recalculer tous les blocs depuis sa transaction et les imposer tous de manière plus rapide que le reste du réseau de noeuds. Ainsi il doit mettre exponentiellement plus de ressource que les autres qui suivent l'algorithme gentil.

Comme on est aux limites de ce qu'il est possible de faire en calcul. Avoir exponentiellement plus de ressource est impossible. Tout la fiabilité de la preuve du travail repose là dessus.

Mais si il est impossible par ce moyen de tricher.... ça ne veut pas dire qu'il n'y a pas d'autres moyens...

Que se passe-t-il si un méchant contrôle la majorité de la puissance de calcul des noeuds ?

C'est ce que l'on appelle  l'attaque des 51%.

Si la majorité des gens qui ont la puissance de calcul sont gentils ça marche. Mais si un jour un méchant détient au moins 51% des ressources en calcul des noeuds. Alors là... il peut potentiellement faire ce qu'il veut.

C'est pour cette raison que la mutualisation des ressources de différents noeuds dans des fermes de serveur est souvent observée de près. Il y a la crainte que si beaucoup de gens s'associent, ils risquent d'avoir 51% de la puissance de calcul !

C'est ce que l'on observe avec le cas Ghash.io qui a eu tellement de succès en 2014 que cette ferme de noeuds concentrait 42% de la puissance de calcul du réseau bitcoin. Ils ont donc du faire profile bas et on promis de ne jamais dépasser 40%.

Comment se passer de la preuve par le travail ?

Donc quand je vois le gaspillage de ressources qui est fait. Je me dis que le système de preuve par le travail n'est pas viable à long terme. (proof of work) Ethereum va passer à la preuve par l'enjeu. (proof of stake) Mais quel enjeu choisir ? qui a le droit de décider de valider les blocs ?

Il y a des idées de devoir investir un peu de monnaie. D'avoir une certaine ancienneté, de détenir un certain montant dans le monnaie de la blockchain ce qui prouve que l'on veut que le système fonctionne.

Bref, on retombe dans le classique problème de savoir qui dirige. La preuve par le travail, c'est la loi du plus fort. Et celui qui a le plus de monnaie, c'est le vote censitaire de l'époque.

On peut la remplacer par la noblesse. Donc par des autorités désignées par ce qu'elle est sont désignés autorité avant les autres. C'est le cas avec les certificats SSL, avec les Etats... et c'est justement ce que veulent éviter les blockchains.

Dans le cas du FairCoin, qui veut faire la promotion de la coopération, en juillet 2017 le système vient de passer à la ProofOfCooperation...  les noeuds qui décident sont ceux qui coopèrent le plus ! ... mais ça ressemble beaucoup à une aristocratie entre pairs qui se certifient entre eux selon des règles consensuelles...  donc pas simple. Mais ça existe.

Comme il existe le tirage au sort en politique, il y a aussi l'idée de tirer au sort les acteurs qui ont le droit d'ajouter des blocs dans la blockchain, comme dans le système de CICADA.

Il y a plein de pistes. Donc comment faire ?

Ce n'est pas si simple.

La solution est probablement un mélange de tout ça et à adapter à la blockchain en particulier à son utilisation comme monnaie uniquement ou comme plateforme de développement d'application.

Personnellement c'est surtout ce frein qui me fait douter de l'avenir de la révolution Blockchain.

Après, il y a des aberrations comme Macron qui dit qu'il est pour les blockchains, qu'il légifère pour.... et qui veut favoriser la création de blockchain privées.

je ne comprends pas très bien à quoi ça sert ?

Heu... par définition une blockchain est et doit être publique ! .... sinon ça ne marche pas.

On retombe toujours dans qui décide ! ... donc Macron aimerait une blockchain où il peut décider qui y met quoi !?

Petite explication en vidéo si tu n'as pas compris cette importante subtilité....

Pourquoi tout centraliser dans une blockchain ?

La centralisation des transactions dans une seule blockchain me pose aussi des questions. Je ne suis pas trop pour tout centraliser. Est-ce que c'est vraiment utile ?

La base du web est décentralisée, l'idée c'est que chaque personne qui veut publier quelque chose le peut. Sans demander l'avis à personne. Avec une blockchain. Il y a une autorité qui décide de qui va pouvoir publier quoi.

On voit que le qui décide n'est pas clair. Il y a la preuve par le travail et la preuve d'enjeu.

Avec les blockchain privées. C'est juste une base de données privées. Tout à fait classique. Ou alors j'ai mal compris ce que c'est !? le mot désignait autre chose ?
Il me semble que justement ce qui a fait le succès du bitcoin et par là de la blockchain, c'est qu'il n'y a pas d'autorité centrale. Le bitcoin est une monnaie sans banque centrale.

A quoi ça sert d'avoir une base de données dont le contrôle peut se répartir si on veut centraliser le pouvoir ?

Je vois bien arriver les puissants de ce monde qui décident de remplacer le web où toute personnes peut publier quelques chose par une blockchain qui demande une validation. Il seront certainement là pour y mettre un mécanisme qui détermine qu'ils ont leur mot à dire sur le contenu.

On retombe dans les travers, d'avoir un système du même genre qu'un facebook qui sert de principale interface de publication à beaucoup de gens.

Le web, le email, et l'Internet de base sont conçus pour être décentralisés. (et qui se centralisent un peu trop à mon goûts)

Donc on verra de quoi l'avenir sera fait. Si la révolution blockchain aura vraiment lieu ou pas...

Personnellement, je trouve très intéressant les blockchains, mais pas encore franchement abouti, et absolument pas nécessaire dans tous les domaines.

Je pense qu'il y a beaucoup d'autres solutions pour gérer des bases de données. Et aussi beaucoup de solutions tout à fait novatrices pour savoir qui décide dans une organisation....

Remonter