De la monnaie virtuelle au monde des blockchains #2

Des mouvements libertariens des années 70 jusqu’au lancement du Bitcoin en 2008 nous avons remonté le temps pour mieux comprendre les origines de la blockchain > (article #1).

Il y a encore peu de temps rares étaient ceux qui osaient faire le parallèle entre l’Internet (TCP-IP) et la blockchain.

Il s’agit dans les deux cas de protocoles informatiques permettant la création d’une infrastructure décentralisée.

  • Internet transfère des paquets de données d’un point A à un point B,
  • blockchain permet à la « confiance » de s’établir entre un utilisateur A et un utilisateur B.

Cette analogie a été utilisée par Marc Andreessen en 2014, en comparant Bitcoin / Blockchain au TCP / IP tel que nous le connaissions dans les années 1990. Il identifie comme principal point commun entre les 2 protocoles le fait d’être une technologie neutre d’utilisation que les initiés ont identifiée comme extrêmement perturbatrice sans pour autant avoir atteint la masse critique.

Il voit cependant au moins deux différences fondamentales : 

  • Internet est à l’information et à la copie de contenu, ce que la  blockchain est aux transactions,
  • Internet n’était pas autant couvert par les médias que blockchain est de nos jours 

Défiance vis à vis des institutions, besoin de transparence et de sécurité, progrès technologique et médiatisation les conditions sont aujourd’hui réunies pour voir émerger de nombreux projets autour de la blockchain. Je vous propose aujourd’hui de nous intéresser a mieux comprendre comment tout cela fonctionne.

Qu’est ce que la Blockchain ?

 de véritables atouts mais aussi de gros défis à relever

Entrons ensemble dans les coulisses et découvrons un univers fait de technologie et de règles….

Avant d’aborder la Blockchain sous les angles technique et technologique rappelons qu’il s’agit d’une pure création humaine. Et même si elle fait la part belle aux machines, à la programmatique et à la puissance de calcul elle n’en reste pas moins une éclatante démonstration de la capacité inégalée de l’espèce humaine à coopérer à grande échelle avec des étrangers même les plus éloignés depuis la nuit des temps. Cet éloge de la capacité de collaboration et de création est merveilleusement relatée  dans l’ouvrage « Sapiens » du professeur Yuval Harari. S’unir pour créer des des concepts, des villes, des royaumes, des religions, des monnaies, tel est le propre de l’homme, enfin de l’homo sapiens. La Blockchain en est une des plus récentes et éclatantes démonstration.

Blockchain : de quoi parle t-on ?

On peut considérer la blockchain comme une technologie de stockage et de transmission d’informations. Ses principales caractéristiques sont la transparence, la sécurité, et un fonctionnement sans organe central de contrôle. Par extension, une blockchain constitue une base de données distribuée qui gère une liste d’enregistrements protégés contre la falsification ou la modification par les nœuds de stockage. On peut comparer la blockchain à une chronologie décentralisée et sécurisée de toutes les transactions effectuées depuis le démarrage du système.

On peut tenter de la définir par 5 mots-clés :

Grand livre: BDD  qui enregistre des faits, des informations ou des transactions.

Sécurité: Les données sont authentiques, inaltérables grâce à des procédés cryptographiques.

Transparence: les données sont partagées et accessibles à tous.

Résilience: Une copie des données est distribuée sur l’ensemble des nœuds du réseau.

Désintermédiation: Le fonctionnement est autonome, en P2P, sans organe central de contrôle

[fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]

Blockchain registre

Blockchain registre

Pierre Paperon (Observatoire-blockchains.com) nous propose une autre définition de la blockchain  : la possibilité de sécuriser des transactions ou des événements par le chiffrement des données et la mise en place d’un tiers de confiance non plus concentré comme pouvait l’être l’Etat ou une banque mais distribué entre de multiples machines ou utilisateurs.

 

L’ADN de la Blockchain

La sécurisation de l’échanges de données et des transactions opérées est un enjeu majeur dans l’établissement de la confiance. La cryptographie est donc essentielle et peut même être considérée comme l’ADN de la blockchain. Comme nous l’avons vu précédemment le monde de la blockchain a fait sien le protocole HASH256 lancé en 2002 par la NSA.

Il s’agit d’une fonction mathématique qui prend en entrée, une valeur arbitraire, et génère une valeur fixe en sortie appelée hash. Et la moindre modification dans un libellé modifie complètement le hash.

Il est aisé de générer un hash mais il est quasiment impossible de retrouver la valeur en entrée.

Exemple de Hashage de 2 libellés proches :
« J’adore le blog MBADMB »  > F37E9DF184AAD7DFBDC96D8848EFB88508837387C5C627DD555D3770A3112BA7
« J’adore le blog MBADMB 🙂 » >D3296EF5780A7022B60090832834345453C1596AD33EAC8B72A4567B38216B56
Vous voulez tester la fonction Hash > Password generator

Chaque bloc de données ou de transactions est cryptographié par ce protocole. Dans la mesure où toutes les informations stockés dans la blockchain sont cryptographiées de la sorte, la moindre tentative de modification d’une donnée provoque une modification du hash et rend très difficile de contrefaire le contenu de la blockchain.

Lors du téléchargement d’un fichier par un utilisateur de la blockchain il est obligatoire de passer le fichier par la fonction hashage. Cela permet dans le cas de gros fichiers de pouvoir immédiatement vérifier si le fichier réceptionné par le destinataire est bien le même que celui qui a été envoyé.

Par ailleurs lors de la création d’un « bloc » on soumet l’ensemble des données qu’il contient à la fonction de « Hashage » pour lui créer son identifiant. Cette création d’identifiant passe également par une autre étape cryptographique que l’on appelle le « minage » que nous allons aborder un peu plus en avant dans cet article.

Le fonctionnement de la blockchain repose donc essentiellement sur la cryptographie pour rendre le système quasi inviolable, le risque zéro n’existant pas. Mais la puissance de calcul nécessaire pour pirater aujourd’hui la blockchain dans sa version Bitcoin est si considérable qu’elle repose sur un concept très connu et très efficace en géopolitique : la force de dissuasion.

Enfin la conséquence de toute altération du registre de la blockchain, intentionnelle ou non, est le rejet immédiat par le réseau. Ainsi, les utilisateurs savent qu’une fois leur transaction inscrite sur le registre, personne ne pourra l’effacer ou la modifier. On peut donc faire confiance au réseau, sans devoir faire confiance à chacun des membres de ce réseau

Un consensus de confiance autour de la blockchain est donc en cours de massification, c’est un pas important vers une adoption plus large.

Après l’ADN, intéressons nous maintenant au squelette de la blockchain.

 

Structure de la Blockchain

Le terme blockchain vient de accolement des termes blocs et chaîne en anglais pour désigner une chaîne de blocs.

 

Chaque bloc de la chaine est constitué des éléments suivants :

[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]

Blockchain registre

Blockchain registre

 

  • des données (transactions, fichiers, programme,…..)
  • un identifiant propre généré par le hash via une somme de contrôle (checksum)
  • l’identifiant du bloc qui le précède dans la chaîne
  • la preuve de travail ou preuve de participation qui a permis la création du bloc

 

 

Au sein de la blockchain  les transactions sont ainsi regroupées dans des blocs (300 transactions/bloc).  Les blocs sont ajoutés un par un, à intervalle régulier et liés au bloc précédent. Le chaînage se fait en incorporant dans le bloc en cours le hash du bloc précédent. La modification d’un seul bloc détruirait l’intégrité de toute la chaîne tel que nous l’avons vu en décrivant la fonction Hash. Le bloc peut être assimilé à une pile de documents rangés dans une boite. Lorsque la boite est pleine on la ferme et on la lie avec la suivante via son hash et ainsi de suite.

 

[/fusion_builder_column][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]

Blockchain Noeud & Blocs

Blockchain Noeuds & Blocs

Décentralisation : une nouvelle forme d’autorité par la Blockchain ?

Une des caractéristiques essentielles de la blockchain est son organisation décentralisée sans organe de contrôle central. Tout repose donc sur les noeuds qui compose le réseau de la blockchain. Des noeuds qui détiennent tous une copie du registre et qui peuvent aussi bien se parer du rôle d’acteur dans une transaction comme de celui de valideur d’une transaction opérée dans la blockchain.

Prouver l’intégrité, la fiabilité et la robustesse d’un système sans tiers de confiance et établir la confiance revient pour la blockchain à répondre à 3 questions :

  • Qui est le maitre ? > Qui détient la vérité sur les transactions passées ?
  • Problème de la double dépense > Comment prouver qu’une transaction est valide ?
  • Problème des généraux byzantins > Etablissement d’un consensus dans un environnement décentralisé

La blockchain dans sa version Bitcoin répond à ces 3 questions avec une seule et unique réponse, la cryptographie.

Nous avons vu que toutes les transactions passées sont irrémédiablement enregistrées et que la moindre altération est immédiatement rejetée par le réseau en raison du chaînage et du hashage. La vérité est donc détenue par le réseau lui même car tous les nœuds détiennent une copie à jour du registre.

Concernant la double dépense, pour toute transaction, l’utilisation de chaque Bitcoin est cryptographiée, enregistrée et surtout validée par le réseau . Le registre tient à jour qui à utilisé un Bitcoin avec qui. Le Bitcoin se comporte tel du cash électronique. Toute tentative d’utilisation à plusieurs reprise d’un Bitcoin est impossible.

Enfin, reste le problème des généraux byzantins, appellation plus connue des informaticiens que du reste de la planète. Ce nom désigne la résolution d’un problème mathématique qui consiste à s’assurer qu’un ensemble de composants informatiques fonctionnant de concert, sait gérer des défaillances (ou malveillances) et arrive à produire un consensus. Plus facile à dire qu’a faire. Et pourtant la blockchain répond avec brio à ce défi avec la notion de preuve de travail que nous allons développer à travers le « minage ».

En résumé la blockchain remplace l’autorité par la …….cryptographie.

La blockchain nous a révélé son squelette, elle vient de gonfler ses muscles, poursuivons notre aventure crypto-anatomique.

 

Minage : envers du décor de la blockchain et création du consensus

Le coeur du système très élaboré de la blockchain repose sur le minage, terme hérité de nos glorieux anciens qui descendaient dans les entrailles de notre bonne vieille terre pour y remonter le charbon, matière première au combien importante à l’horizon de la révolution industrielle. Les mineurs étaient autant utiles qu’invisibles aux yeux de la plus grande majorité de leurs contemporains.  Au XXIème siècle, le mineur de la blockchain exerce une autre activité, mais reste tout aussi utile et invisible pour la quasi intégralité des utilisateurs à l’instar de son illustre prédécesseur.

En langage blockchain « miner » signifie utiliser du matériel informatique pour exécuter des algorithmes issus de la cryptographie afin de confirmer les transactions et de garantir la sécurité du réseau. On parle aussi de résoudre des puzzles ou énigmes cryptographiques. C’est donc un rôle essentiel.

La difficulté des énigmes cryptographiques livrées aux mineurs varie en permanence en fonction de la puissance de calcul disponible sur le réseau. Une énigme se compose d’un hash commençant par un certain nombre de zéros. Les ordinateurs des mineurs utilisent l’identifiant du bloc, y ajoutent un incrément, puis exécutent de nombreuses fois l’algorithme HASH256 en augmentant l’incrément à chaque fois. Ils font cela jusqu’à ce qu’ils trouvent un résultat qui commence par le bon nombre de zéros.

Le mineur qui le premier trouve le bon résultat envoie sa découverte aux autres nœuds du réseau. Ceux-ci constatent que le bloc est bien valide et l’ajoute à leur chaîne de bloc. Le mineur est alors rémunéré par le réseau qui émet une certaine somme prévue d’avance.

En soumettant son résultat : identifiant du bloc + incrément + hash le mineur apporte la « preuve de travail« .

Blockchain minage

Pour inciter les mineurs a mettre leur puissance de calcul a disposition du réseau il est prévu de les rémunérer pour leurs services, les mineurs reçoivent des Bitcoins spécialement créés à cet effet par le réseau. C’est d’ailleurs la seule création monétaire existant dans le système Bitcoin.

 

Afin être rémunéré, un mineur doit exécuter un algorithme de cryptographie à de nombreuses reprises, en général plusieurs milliards de fois par seconde pendant plusieurs minutes. De ce fait, la puissance informatique dédiée au réseau Bitcoin augmente en permanence. Elle culmine aujourd’hui à presque 2 millions de GigaHash par seconde (ou GH/s) ce qui signifie que chaque seconde, la blockchain exécute l’algorithme HASH256 environ 2 millions de milliards de fois. Cela représente 300.000 fois la puissance de l’ordinateur le plus puissant du monde (Tianhe2).

Cette course à la puissance de calcul voit les mineurs s’organiser, en se regroupant à plusieurs, voire même en constituant de véritable pool de serveurs. Miner seul dans son coin reste possible mais la probabilité aujourd’hui de résoudre un puzzle cryptographique devient faible.

La puissance du réseau est un gage de sécurité. En effet, pour prendre de vitesse les autres mineurs et pouvoir inscrire des transactions frauduleuses dans la chaîne de bloc, il faudrait qu’un pirate puisse rassembler plus de la moitié de la puissance totale du réseau. C’est la fameuse règle du 51 %. Ce qui est aujourd’hui impossible en pratique. L’investissement nécessaire pour disposer de cette puissance serait actuellement de deux milliards de dollars.

Vous en savez maintenant plus sur ce qui fait battre le coeur de la blockchain, pour finir notre voyage intéressons nous a ce qui coule dans les veines de la blockchain, les transactions.

 

Déroulement d’une transaction au sein de la blockchain

Toutes années d’expérimentation, de recherches et de progrès dans un unique et en seul but, établir un système transactionnel décentralisé. Mais atteindre ce but sans avoir aussi eu une démarche « user centric » qui met la technologie au service de l’utilisateur et non le contraire eut probablement occasionné un échec assuré.

La force de la blockchain est aussi de rendre, autant que faire se peut, le système le plus accessible possible au plus grand nombre. Les volumes Bitcoin en croissance constante et les nombreux projets en cours autour de la blockchain en sont la preuve éclatante.

Il est d’ailleurs intéressant de constater l’évolution de l’intérêt autour du sujet blockchain sur Google. La requête blockchain tend à devenir aussi fréquente que la requête Bitcoin. Nul doute que l’année 2017 verra une accélération de cette tendance.

 

 

Plus que de longs discours je vous propose ce visuel qui résume assez bien le processus d’une transaction en mode blockchain en 7 étapes,

Blockchain Transaction

Blockchain Transaction

Tout ce qui a été décrit précédemment s’inspire très largement du modèle blockchain monétaire le plus connu à savoir le Bitcoin.

Cependant le caractère décentralisé de la blockchain, couplé avec sa sécurité et sa transparence, promet des applications bien plus larges que le domaine monétaire.

Bien évidemment, ces promesses ne sont pas exemptes de défis et de limites, qu’elles soient économiques, juridiques, de gouvernance, ou encore écologiques.

Le défi le plus crucial a traiter pour le modèle blockchain dans sa version Bitcoin tient autour de l’énergie nécessaire à l’étape de minage. La puissance de calcul nécessaire aujourd’hui est devenue colossale. A titre d’exemple si la masse monétaire mondiale était sous forme de Bitcoin il faudrait 2 fois la puissance électrique du parc nucléaire français pour permettre aux mineurs d’accomplir leur tâche d’authentification.

Le champs des possibles est donc immense pour la blockchain : banques, assurance, immobilier, santé, énergie,transports, vote en ligne… On peut imaginer que les blockchains pourraient remplacer la plupart des « tiers de confiance » centralisés (métiers de banques, notaires, cadastre,…) par des systèmes informatiques distribués.

Malgré l’engouement, le sujet Blockchain reste très difficile à encadrer et génère autant de malentendus qu’il déclenche la peur et l’enthousiasme, le meilleur moyen d’y voir clair c’est de s’y intéresser.

A ce titre je vous propose un lien vers mon 1er article sur la blockchain qui revient sur les origines > #MustRead

J’aurais le plaisir de vous retrouver le 21 Janvier 2017 pour mon 3ème article consacré à la blockchain.

Nous aborderons les nouveaux modèles de blockchain qui dessinent l’avenir d’un nouveau monde.

En attendant une petite sucrerie à la sauce blockchain, see you 😉 :

 

[/fusion_builder_column]