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 !!

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.

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’utilesauf montrer que l’on est prêt à gaspiller plus d’énergie que les autres pour assurer que le bitcoin fonctionne correctement.

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.

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 !?

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….

Le bitcoin est-il vraiment une monnaie décentralisée

Un des gros avantages qui est amené par les défenseurs du bitcoin est le fait qu’il soit décentralisé… mais est-ce vraiment le cas ?

Le mythe fondateur de la décentralisation

  • L’Internet est décentralisé..  (la légende dit que c’est pour résister aux attaques nucléaires..)
  • Le web est décentralisé..
  • Les cryptomonnaies sont décentralisées….

La topologie actuelle de l’Internet

Mais au final…. la moité du monde surf grâce aux réseaux de Liberty global / UPC cablcom, AOL, free, les opérateurs de télécom historiques…
bref…. une poignée de gros opérateurs.. et c’est pire depuis que l’internet est de plus en plus mobile… c’est la mains mise de quelques opérateurs mobile sur tout l’Internet.

Quand la philosophie commerciale arrive dans un réseau maillé où chaque noeud a des liaisons redondante avec les autres noeuds, il faut rentabiliser.

Donc on coupe. On tranche on supprime ce qui est redondant pour ne garder que le minimum. Ça coûte moins cher.

Et ainsi la topologie de l’Internet à la base conçue pour être une réseau maillé devient de plus en plus un réseau en étoile. Un réseau centralisé où tous les utilisateurs sont branchés sur le même centre.

Fully_topology.pngStar_topology.png


Le web c’est: google, facebook, youtube, wikipedia…

A la base le web c’est un truc de physiciens qui s’échangent des articles de physique.

Puis le monde entier c’est approprié l’idée. Durant les années 1990, les sites perso ont fleurit partout. Tous les geek un peu versé en html ont pondu leur propre site perso.

Dans les années 2000, le blog est arrivé. Une application web qui permet de gérer des publications sans avoir les connaissances techniques des geeks. Le web s’est démocratisé au grand public.

Pour se démocratiser encore plus, des plateformes ont émergées pour nos aider. Plus besoin de savoir faire quoi que ce soit de technique, les grandes plateformes de blog (genre skyblog pour les francophones et wordpress.com ) prennent tout en charge en fournissant un espace chez eux.

La masse d’info grandissante a besoin d’être triée. Google décide d’organiser les données du monde entier. Il propose un moteur de recherche et des nombreux outils pour organiser sa vie numérique. (gmail, google maps, youtube, images, calendrier, docs)

Dans le même temps le projet wikipedia structure sous une même forme, dans une même encyclopédie, sur un même nom de domaine, toutes les connaissances officielles de l’humanité.

Fin de la décennie 2000…  Les réseaux sociaux entrent en jeu. Ils ont tendance à tout fusionner, à centraliser tous les blogs ouvert, les forums, les pages perso, l’organisation et le partage de photos et de vidéos, les messageries instantanées, voir le e-mail…..

Facebook règne en maitre sur le monde des discussions sur Internet.

Quand on parle du web au début, c’est une toile d’araignée où tout le monde crée des pages reliées aux auxtres.

Quand on parle du web maintenant, c’est google qui répond à nos questions, c’est facebook qui organise notre vie sociale et nous permet de communiquer avec notre tribu, c’est youtube qui nous divertis et nous instruit en musique et vidéos, c’est wikipedia qui nous instruit dans le détail quand la forme devient plus scolaire…. Voilà 90% du web….

Bitcoin est une monnaie centralisée !

Une monnaie, c’est fondamentalement centralisé…. c’est ainsi que celui qui détient la création de la monnaie détient le monde. C’est pour cette raison que traditionnelement c’est uniquement le roi qui a le droit de battre monnaie, c’est pour asseoir son pouvoir. Actuellement se sont les banques centrales indépendantes des Etats qui créent une partie de la monnaie (billet et pièce surtout), et la banques commerciales qui créent la monnaie scriptuale qui est majoritairement utilisée. (mais qui n’est pas forcément un moyen de paiment légal !)

Le principe du bitcoin, comme pour d’autres cryptomonnaies, est de s’affranchir de la centralisation. Il n’y a pas de banque centrale.

La monnaie est créée par un algorithme partagé entre tous, et les transactions sont vérifiées dans une base de données décentralisées partagée et vérifiée entre tous les acteurs du réseaux grâce à un protocole commun et des signatures électroniques.

Cette base de données de toutes les transactions faites depuis les débuts du bitcoin s’appelle la Blockchain.

Un véritable noeud du réseau bitcoin va vérifier le réseau et doit donc disposer de l’intégral de la blockchain en local sur son ordinateur.

Est-ce que tu as déjà testé de télécharger la blockchain ?

Attention, c’est énorme, c’est à ce jour en août 2015, près de 40Go de données... et la télécharger c’est rien… il faut l’interpréter….

J’ai installé bitcoin en 2011… c’était facile.. 20Mo à télécharger. Puis je n’ai pas utilisé bitcoin. Trois en plus tard en 2011, je me suis remis à bitcoin … j’ai du télécharger 18Go de blockchain… et mon ordi a mouliné 10h par jour pendant 10 semaines pour avoir un vrai client bitcoin décentralisé….

Ensuite il a mouliné régulièrement tous les jours pour suivre… et j’ai finalement abandonné…. Bitcoin me bouffe trop de ressources pour l’utilité que ça a…..

Pour éviter de mouliner et devoir télécharger d’énormes tas de donnée, la majorité des gens utilise de plus en plus des clients légers. Ils ne font plus le boulot de vérification de la blcokchain… ils utilisent des plateformes centralisées qui leur fourni tout de manière simple.

Du coup le réseau bitcoin se centralise… Il ne reste plus que quelques gros acteurs qui font le gros des transactions et qui vérifient la base de données centralisée.

Il devient toujours plus difficile pour un nouveau de venir dans le réseau. Comme pour l’Internet et le web, la facilité et la rentabilité en ressources tend à transformer une système décentraliser en un système centralisé.

Le concept de base est irréprochable, mais il devient corruptible dès que le nombre d’acteur diminue. La plateforme Mt Gox n’est pas morte à cause de la sécurité du protocole… mais à cause des failles dans son propre système….

Analogie avec la sécurité de vote électronique

Concernant le vote électronique, la sécurité est souvent discutée. Je suis certain qu’elle est très bonne (pour autant que selon les principes de base de la cryptographie, la sécurité du système repose sur le secret des clés et pas le secret des algorithmes).

Mais on néglige souvent qu’une urne électronique est souvent une urne centralisée.

Quand on vote à la main dans d’innombrables communes, on décentralise le système et ainsi on évite la corruption. Si l’on centralise tous les votes sur une urne électronique, le système à beau être techniquement fiable pour le corrompre, il suffit de corrompre la personne qui annonce les résultats. (souvent une commission de plusieurs personnes)

Un équilibre

En soit, la centralisation n’est pas mauvaise, tout comme la décentralisation maximale n’est pas la solution miracle. Il faut toujours savoir juger de ses besoins et de ses ressources pour évaluer le juste millieu entre centralisation et décentralisation. Entre l’efficacité et la résilience.