Introduction à la technologie Blockchain

La Blockchain est partout en ce moment. Mais tout le monde n’a pas encore bien compris de quoi on parlait, la phase d’évangélisation n’est pas encore finie. Voici une explication assez courte qui peut vous aider à comprendre de quoi il s’agit et aussi vous aider à l’expliquer aux autres.

Bitcoin, à l’origine de la Blockchain

Pour comprendre ce qu’est la Blockchain et comment elle fonctionne, il est nécessaire de revenir à la source, celle du Bitcoin.
Pour les utilisateurs, Bitcoin est un réseau pair à pair (P2P) permettant de transférer de l’argent aussi facilement que d’envoyer un e-mail, sans avoir recours à une entité centrale, telle une banque.
Bitcoin est un grand livre de comptes – ou registre – partagé sur lequel on inscrit des transactions. “Partagé”, car chacun possède une copie du registre. La conséquence est que toute altération de ce registre, intentionnelle ou non, est immédiatement rejetée par le réseau. Ainsi, les utilisateurs de Bitcoin savent qu’une fois leur transaction inscrite sur le registre, personne ne pourra l’effacer ou la modifier. Ils font ainsi confiance au réseau, sans devoir faire confiance à chacun des membres de ce réseau. Cette notion de confiance est cruciale, nous y reviendrons.

Handwritten accounting on the open pages of some old ledgers

Handwritten accounting on the open pages of some old ledgers

Disséquons maintenant l’inscription d’une transaction dans ce registre partagé et prenons un exemple simple de transaction : “Alice transfère 3 bitcoins à Bob”.

Pour effectuer cette transaction, Alice ne passe donc pas par sa banque mais s’adresse directement à l’ensemble du réseau pour indiquer à tous qu’elle souhaite inscrire cette nouvelle transaction dans le registre. Le registre étant partagé, n’importe qui peut demander l’écriture d’une transaction. Mais le protocole Bitcoin exige une sorte de signature électronique sur chacune des transactions. Cette signature a le même rôle qu’une signature manuscrite : prouver qu’une transaction a été créée par le véritable propriétaire du compte, ainsi seule Alice peut dépenser ses bitcoins. Les signatures sont différentes pour chaque transaction, il est donc inutile de copier une signature existante.
Mais s’il n’existe pas d’autorité centrale, qui va valider les transactions et les écrire dans le registre partagé ? Étonnamment, tous ceux qui veulent !

L’objectif premier de Bitcoin est de fournir un système décentralisé, qu’aucun gouvernement ou société ne peut contrôler. Quand Alice envoie sa transaction, celle-ci est transférée à tous les noeuds du réseau P2P qui maintiennent le registre, les fameux « mineurs ». Chaque mineur conserve une copie personnelle du registre et le met à jour chaque fois qu’il reçoit une nouvelle transaction avec une signature valide.

Le réseau étant mondial, les délais de circulation de l’information – et parfois la fraude – peuvent conduire à des différences d’écriture dans les différents registres. Comment décider quelle version du registre utiliser ? Comme dans d’autres systèmes démocratiques, il y a un vote, mais il est un peu différent d’un système de vote typique. Les mineurs « votent » en essayant de résoudre un puzzle spécial basé sur leur version du registre : pour ce faire ils rassemblent les dernières transactions dans un  « bloc » (d’où le nom de Blockchain,« chaîne de blocs ») puis trouvent une valeur qui va donner à ce bloc une certaine propriété. Cela revient à résoudre un puzzle cryptographique et le premier mineur à résoudre ce puzzle annonce sa solution. Ensuite tout le monde met à jour sa copie du registre en y ajoutant le bloc de transactions. Ce processus de vote se répète, environ toutes les dix minutes, les mineurs se mettant constamment d’accord sur l’état du registre. Lorsque qu’un mineur résout un puzzle et soumet son bloc, il est rémunéré au passage via la création de nouveaux bitcoins. Ceci pour inciter les mineurs à mettre à jour le registre et faire fonctionner Bitcoin.

Grâce à ces mécanismes, Bitcoin permet à tous de créer des transactions monétaires, de transférer des bitcoins, sans devoir passer par une entité centrale, comme une banque.

Bitcoin pour transférer et certifier

Chaque bitcoin est divisible en 100 millions d’unités appelées satoshi (1 bitcoin = 100 000 000 satoshis). Il est possible d’identifier individuellement chaque satoshi et d’y associer un petit nombre d’informations*. Les utilisateurs peuvent donc utiliser chaque unité pour représenter une part dans une société, un droit de vote, un certificat de propriété ou toute autre chose.
Dès lors, il devient naturel de penser à utiliser la Blockchain pour dématérialiser les certifications, la propriété et les transferts.
Dans les industries culturelles, on pense à l’enregistrement d’oeuvres comme justificatif de propriété intellectuelle, via leur empreinte numérique, dans la Blockchain Bitcoin. Par exemple, un musicien prend l’empreinte numérique du morceau qu’il vient de composer, l’inscrit dans la Blockchain Bitcoin et pourra ensuite prouver dans le futur qu’il est bien le compositeur.

Rubber stamp in hand marked with certification

Rubber stamp in hand marked with certification

Dans l’administration publique, dont une partie importante du rôle est de certifier, les applications sont innombrables. Exemple concret, l’Ecole Supérieure d’Ingénieurs Léonard de Vinci va certifier la délivrance de ses diplômes via la Blockchain Bitcoin.
De la même manière, le Honduras se sert de la technologie Blockchain pour y enregistrer les titres de propriétés afin de lutter contre la corruption et la fraude, le Ghana a récemment lancé une initiative similaire.
Citons également everledger.io qui s’attaque à la problématique de la traçabilité des diamants grâce à cette technologie.

Au-delà du Bitcoin, les Smart-contracts et Ethereum

Bitcoin permet d’écrire des petits programmes, nommés “smart-Contract” permettant de contrôler de façon intelligente la réalisation des transactions. Sur Bitcoin, ces programmes restent limités et il faut faire preuve de créativité pour les appliquer dans des situations réelles. Plusieurs initiatives ont pour but d’étendre ces possibilités, dont la plus en vue en ce moment : Ethereum.

Dans le cadre d’Ethereum, il ne s’agit plus seulement d’enregistrer de simples transactions comme pour Bitcoin mais d’exécuter des programmes informatiques. Ainsi, tous ces acteurs vont effectuer de concert les mêmes programmes, les mêmes instructions, stocker les mêmes données, le tout de façon synchronisée. Ethereum peut donc être comparé à un seul ordinateur, unique et global.

smart_contract
Cet ordinateur global a d’énormes défauts (en tout cas à l’heure actuelle). Il est inévitablement lent, pour permettre à tous ses participants de se synchroniser, et son utilisation est chère comparée à celle d’un ordinateur ordinaire puisque chaque opération est effectuée en parallèle partout dans le monde, consommant du matériel et de l’énergie.
Mais ces défauts sont éclipsés par ce qu’il apporte : la confiance. Lorsqu’un utilisateur effectue une opération, cette opération est effectuée sur l’ensemble des ordinateurs participant au réseau Ethereum et les résultats sont stockés partout. Cette opération est prédictible et irréfutable. Prédictible, car le programme est lui-même dans la Blockchain et, à l’instar d’une transaction Bitcoin, inaltérable ; l’exécution du programme est donc fidèle à ce qu’a demandé l’utilisateur. Irréfutable, car toute personne peut prouver que l’action a bien été effectuée.

Ainsi, les utilisations les plus pertinentes d’Ethereum sont à chercher là où les données et les programmes sont relativement simples, mais où la confiance est prépondérante. Un exemple parlant est le droit de propriété de votre maison. La donnée elle-même est relativement simple, mais vous devez avoir confiance dans le fait que personne ne peut venir la supprimer ou la modifier à son avantage. Vous voulez être sûr de pouvoir la retrouver et prouver son authenticité, des années après, afin de certifier que votre maison est bien à vous. Les implémentations que nous avons déjà citées, au Honduras et au Ghana, sont implémentées en utilisant des dérivés de Bitcoin. Ethereum permettrait de les implémenter encore plus facilement. En effet, il ne s’agit plus de détourner l’usage de Bitcoin (dédié aux transactions financières), mais d’implémenter un bout de code sur une plateforme prévue pour supporter tout type de programme.
Toujours dans le secteur immobilier, les notaires pourraient constituer les dossiers de façon beaucoup plus efficiente en rassemblant automatiquement les pièces justificatives, que les experts auraient stockées et certifiées directement dans la Blockchain.

Tout contexte ayant besoin de confiance peut bénéficier de la technologie Blockchain. Et certains travaillent d’ores et déjà sur des applications tirant avantage de la technologie : par exemple ujomusic.com, plateforme permettant de vendre sa musique directement, sans plus d’intermédiaire que le programme lui-même. Publicvotes.org, système de vote automatisé, transparent et vérifiable. Slock.it, un système permettant à des serrures intelligentes d’être opérées directement via la Blockchain, ce qui permettrait à terme d’avoir des équivalents d’Airbnb ou de Drivy en permettant d’ouvrir les portes des appartements ou voiture partagées suivant les règles (réservation, paiements…) codées dans la Blockchain.

Cependant, derrière toute cette effervescence autour des blockchains, il faut aussi voir la jeunesse de l’écosystème. De nombreux challenges se profilent à l’horizon, tels que l’adoption par les utilisateurs ou les problèmes de législation.
Une chose est sûre : nous avons une nouvelle façon de créer de la confiance (même si un programme, gérant l’équivalent de près de 150 millions de dollars, a été attaqué le 17 juin 2016).
Jusqu’à présent, on mettait cette confiance dans des acteurs centraux comme les banques, les assurances, les gouvernements ou les grands acteurs du Web. Aujourd’hui, nous avons la possibilité de fabriquer, via la Blockchain, des applications dans lesquelles nous pouvons avoir directement confiance via la technologie et non via des organismes centraux, avec des fonctionnements par essence vérifiables, non-altérables et auditables. Enfin, si la promesse peut sembler belle, la réalité n’est pas encore tout à fait au rendez-vous. En effet, le premier smart-contrat de « grande envergure », TheDAO qui gérait plus de 160 millions de dollars, a été victime le 17 juin 2016 d’une attaque exploitant une faiblesse de son code.

Pour aller plus loin

Pour une présentation assez générale du sujet, la vidéo de notre petit déjeuner de mars 2016, « La Blockchain : Enjeux technologiques, économiques et sociétaux du 21ème siècle »

Une présentation plus technique, qui explique comment la blockchain Bitcoin fonctionne puis rentre en détails sur le fonctionnement de la Blockchain Ethereum en montrant le code que les développeurs peuvent utiliser pour l’utiliser, DevoxxFR 2016 La Blockchain en détails

* Plus précisément, ces mécanismes sont liés aux transactions, pas aux satoshi eux-mêmes, mais pour simplifier la compréhension restons sur l’identification des satoshis.