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.

9 commentaires sur “Introduction à la technologie Blockchain”

  • Bonjour, Merci pour votre article, je suis très intéressé par cette technologie mais j'ai encore beaucoup de mal à l 'appréhender. Je me pose plusieurs questions qui sont peut-être idiotes ou hors sujet mais je vais me lancer. 1) Je crois savoir qu'avec le bitcoin nous nous baladons forcément avec notre porte-monnaie(un fichier), si nous le perdons, nous perdons nos bitcoins, est-ce lié à la technologie blockchain ou uniquement à l'anonymisation liée au bitcoin? Que ce passe t'il pour les registres d'achats de propriétés ? Si nous perdons notre fichier nous identifiants, nous perdons la justification de cet achat? Ou est-ce clairement dit dans les lignes du registre "Jean Dupond achète le terrain X" Mais dans ce cas, comment prouver que nous somme le bon Jean Dupond ? 2) Pour le bitcoin les mineurs mettent à jour le registre en faisant tourner leurs machines de l'enfer en échange de bitcoin, mais pourquoi feraient-ils ça pour d'autre thématiques si ils n'ont rien en échange? 3) Si tous ces gens ont le registre complet de toutes les transactions, comment ferons-nous dans 100 ans avec des millions de milliards de lignes de transactions?
  • Réponse à la question 1 : avec le bitcoin, le mieux est d'être en possession de la clé privée de son portefeuille, qu'il faut conserver comme on le fait habituellement avec les mots de passe. Il n'y a pas besoin de conserver un "fichier". C'est en utilisant le bitcoin qu'on comprends comment cela fonctionne. J'explique cela ici : http://didier.celse.free.fr/bitcoin/index.htm
  • Merci, c'est une très bonne synthèse. Vous insistez notamment sur la jeunesse de l'écosystème, qui est habituellement passée sous silence au profit d'une croyance béate dans une nouvelle révolution (cf la conférence de Don Tapscott à l'USI cette année). J'irai pour ma part plus loin, en déconseillant formellement d'utiliser Ethereum pour l'année à venir en raison de ses gros défauts (cf http://marmelab.com/blog/2016/06/24/blockchain-expliquee-aux-developers-web-la-verite.html).
  • Bonjour, Merci pour l'article. Pour répondre à Matthias : (2) Oui, les mineurs sont récompensés : 12,5 BTC toutes les 10 minutes sur Bitcoin et 5 ETH toutes les 14 secondes sur Ethereum. C'est un principe fondamental commun entre ces deux blockchains publiques. Les mineurs ont intérêt personnel et financier à maintenir le réseau quelques soient les données stockées. C'est tout ce qu'on a trouvé, mais il existe d'autres algo de consensus et certainement d'autres façons d'inciter les mineurs à miner... (3) Il me semble qu'il y a plusieurs techniques utilisées actuellement. La plus commune consiste à compresser une partie de la blockchain ("HD" wallet). La blockchain Bitcoin fait plus de 60 Go (7 ans) et celle d'Ethereum plus de 8 Go (1 an). Pour celles et ceux qui souhaitent comprendre ce qu'est une DAO, j'explique ici : https://medium.com/@julienbrg/quest-ce-qu-une-dao-d2b61f90c3b1#.6bvhq5d8h
  • Bonjour Julien, Concernant votre réponse au point (3), il existe effectivement des « Light Wallet » dans Bitcoin. Les développeurs Ethereum penchent également dessus : Light Client Protocol. Ces portefeuilles permettent de ne pas avoir à conserver toute la blockchain et s’appuient sur les « full nodes », les nœuds qui eux conservent toute la blockchain. Néammoins une « HD Wallet » n’a aucun rapport, c’est une méthode de génération de clés sous-jacentes aux comptes Bitcoin et Ethereum : HD Wallet Loup
  • Merci beaucoup pour la précision, Loup. Visiblement, ce client léger vient d'entrer en phase de test : https://www.reddit.com/r/ethereum/comments/4qiwj9/ethereum_light_client_public_test_period/
  • Je me suis essayé à une explication de bitcoin accessible genre à ma grand mère. Plutôt que d'appeler Blockchain, je traduis cela par "cloud bitcoin". Car à mon avis le coeur de la technologie de bitcoin n'interesse que les professionnels. Selon moi la seul chose à conclure sur blockchain : le réseau se vérifie lui même => conséquence : c'est fiable. https://www.canardcoincoin.com/bitcoin-pour-les-nuls-guide-crypto-monnaie/ si ma façon d'expliquer plait alors j'élargirai à Ethereum
  • Je pense qu'il est quand même important d'expliquer sur quoi repose le Bitcoin et le fonctionnement de la technologie blockchain, les non initiés à la crypto-monnaie sont souvent frileux à l'idée d'investir dans quelque chose de "virtuel". Comprendre que le réseau est infalsifiable est souvent un argument qui fait mouche chez les plus dubitatif.
  • Bonjour tout le monde, la Blockchain, question : si je paie quelqu'un et qu'après je me rend compte que j'ai fait une erreur (j'en fait souvent) c'est pas la bonne personne ... comment je fais pour faire opposition ? ... :-)
    1. Laisser un commentaire

      Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


      Ce formulaire est protégé par Google Recaptcha