Quiconque pratique la veille technologique, a probablement déjà entendu parler du réseau de paiement bitcoin et de sa technologie sous-jacente : la blockchain.

Si ce n’est pas votre cas, je vous rassure, cela n’empêche aucunement la lecture et la bonne compréhension de cet article.

D’habitude, je suis assez sceptique quant aux prévisions et aux annonces de grande révolution qui accompagnent chaque nouvelle technologie ; en ce qui concerne la blockchain, elles pourraient même être sous-estimées.

En effet, cette technologie pourrait avoir un impact énorme dans de nombreux domaines et complétement bouleverser les modèles actuels.

Pour autant, le sujet est vaste et complexe et il est difficile de le traiter de manière exhaustive à travers un article. Je vais tenter l’entreprise ambitieuse de présenter clairement et simplement la blockchain et son application dans les smart contracts en vous laissant le soin d’approfondir certaines notions par vous même si besoin (en cliquant sur les liens hypertextes).

Le problème de la double dépense

La blockchain a été pensé à l’origine – par Satoshi Nakamoto (pseudonyme du ou des inventeurs du bitcoin) – pour répondre à la problématique de la « double dépense » – ou double spend – jusqu’alors principal obstacle au déploiement d’une monnaie décentralisée.

Auparavant, dans les réseaux de paiement décentralisés, lorsque deux transactions étaient émises simultanément par un utilisateur, il était impossible de savoir laquelle était émise la première. Cela ne permettait donc pas de valider une transaction sans risque que l’utilisateur, volontairement ou non, dépense deux fois des mêmes jetons.

In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes – Satoshi Nakamoto

Comme l’a écrit Satoshi Nakamoto, ce principe de réseau P2P distribué et horodaté est sécurisé tant que les utilisateurs honnêtes contrôlent la majorité de la puissance de calcul du réseau.

J’imagine que tout cela n’est pas très clair alors reprenons les explications depuis le début.

Un livre de compte public

Pour expliquer en termes simples la technologie blockchain, l’analogie avec le livre de compte est souvent utilisée : la blockchain s’apparente à un livre de compte – un registre ou encore une base de donnée – consultable publiquement dans lequel est enregistré tous les échanges entre utilisateurs d’une application depuis sa création. Ce registre est stocké de manière décentralisée : tous les utilisateurs du système en possèdent une copie, garantissant, de ce fait, la sécurité et l’authenticité de celui-ci.

En d’autres termes, la blockchain est une façon de stocker de manière décentralisée et sécurisée des informations entre plusieurs utilisateurs en totale transparence.

Tous les utilisateurs peuvent lire ou y inscrire – après consensus – des informations sans pour autant pouvoir effacer des données ou corrompre le registre. L’intégrité de chaque élément – chaque bloc – inscrit dans la blockchain est vérifiable par tous les utilisateurs du système. La sécurité, l’intégrité et la confidentialité des données sont assurées via des mécanismes cryptographiques.

Aucun utilisateur ni aucune entité n’a le contrôle sur les données contrairement au modèle centralisé actuel dans lequel un intermédiaire ou un organe de contrôle est le seul maître des données stockées dans sa base.

Le consensus décentralisé

Vous connaissez sans doute le principe du téléphone arabe : ce jeu qui consiste à faire circuler de bouche à oreille une phrase inventée par un joueur à travers une file d’autres joueurs jusqu’à sa récitation à voix haute par le dernier d’entre eux.
Chaque joueur est maître de l’information durant un court moment et est donc susceptible, volontairement ou non, de modifier la phrase avant de la transmettre.
C’est d’ailleurs ce qui arrive le plus souvent : au grès des transmissions, la phrase est altérée jusqu’à une modification complète du sens originel…

J’ai pris l’exemple du téléphone arabe pour sa popularité mais le problème des généraux byzantins est encore plus évocateur de la problématique de traiter une information dont la source est peu fiable, et par extension de contractualiser avec un tiers sans l’assurance d’une relation de confiance. La confiance, ce mot si cher à nôtre François !

Dans le modèle centralisé actuel, un intermédiaire ou un tiers de confiance (votre banque, votre assurance, votre notaire, Facebook, Apple, …) supervise la contractualisation, vérifie, enregistre la transaction et stocke l’information dans sa propre base de donnée.

A l’inverse pour la blockchain, l’information est diffusée publiquement à l’ensemble des utilisateurs du réseau – qu’on appelle les nœuds du réseau.

Ne prenez pas peur pour autant, comme indiqué précédemment, des mécanismes cryptographiques assurent la sécurité et la confidentialité des données et un système d’adresses multiples évite le traçage des utilisateurs.

La blockchain est une technologie P2P (Pair à Pair) ; tous les nœuds du réseau disposent strictement de la même information et les éléments enregistrés dans la blockchain sont vérifiables par n’importe quel nœud du réseau.

Ainsi le rôle de l’intermédiaire de confiance est assuré par les nœuds eux-mêmes. C’est le consensus décentralisé.

Les nœuds de la blockchain

Les nœuds ont comme fonction première le routage des informations sur le réseau. A l’instar des élus en France, les nœuds peuvent cumuler plusieurs autres fonctions comme celles de stockage de la blockchain ou de « minage » des blocs.

La transmission d’une transaction se fait tout d’abord à destination des nœuds voisins. Avant de la propager sur le réseau, ces derniers vérifient la transaction selon plusieurs critères (syntaxe, taille de transaction, validité des données, etc..). Chaque nœud vérifiant indépendamment les transactions se trouve avec un ensemble de transactions qui ne sont pas encore confirmées .

Les « mineurs » (les nœuds avec la fonction de minage) sont responsables de la création de nouveaux blocs contenant ces transactions non-confirmées afin de les ajouter à la chaine de blocs existante.

Pour valider la création d’un nouveau bloc, le nœud « mineur » doit se soumettre à un exercice cryptographique exigeant une puissance de calcul importante.
La dépense en énergie et en puissance de calcul requise pour la résolution de cet exercice permet de dissuader les utilisateurs malveillants d’attaquer ou d’abuser des ressources du réseau : c’est ce qu’on appelle une proof of work. La particularité de la proof of work est qu’elle est complexe et relativement longue à calculer mais très facile et très rapide à vérifier.

Le premier des mineurs qui solutionne la proof of work soumet le bloc aux autres nœuds du réseau pour vérification et intégration dans la blockchain. Les mineurs sont donc en concurrence pour la création des blocs.

Si le bloc est valable, les autres nœuds valident son intégration. Dans le cas contraire, si un des blocs est corrompu, les autres nœuds du réseau refuseront son intégration à la blockchain.

A l’intégration d’un bloc dans la blockchain, les autres mineurs qui tentaient en parallèle la création de ce nouveau bloc, que nous appellerons le bloc N, annulent l’opération et se remettent à l’ouvrage pour la création du bloc N+1 en vue de l’intégrer à la suite de la blockchain mise à jour.

Le nœud, dont la création de bloc est validée (par un ajout à la chaîne), est rétribué, par exemple en bitcoin dans le cas d’un réseau bitcoin.

A l’instar des banques centrales qui de temps à autre font marcher la planche à billets, le processus de minage génère un certain nombre de bitcoin : ce nombre est fixé et évolue en fonction de la quantité de bitcoins en circulation. Les mineurs sont donc rétribués via une commission sur les transactions et via la génération de bitcoin.

Les blocs de la blockchain

La blockchain est souvent représentée comme une pile verticale de blocs (d’où la photo d’illustration de l’article).

Le premier bloc de la pile est le bloc de genèse de l’application : c’est le premier bloc généré.

Chaque bloc de la blockchain possède un identifiant ainsi qu’une référence au contenu du bloc qui le précède. Cet historique et surtout cette interdépendance entre les blocs rendent la blockchain immuable : le changement d’un bloc entrainerait le changement de tous les blocs qui lui succèdent.

Si un bloc a toujours qu’un seul et unique prédécesseur dans la blockchain, il peut avoir temporairement plusieurs blocs candidats à sa succession. Ce qui entraine durant un certain laps de temps, différentes versions de la blockchain. Pour résoudre cela, les nœuds de la blockchain vont sélectionner la version de la blockchain pour laquelle la dépense en calcul résultant de la résolution des proof of work est la plus importante.

La création des nouveaux blocs se fera à la suite de la version choisie comme l’illustre la figure ci-dessous.

La blockchain principale et ses branches

Structure d’un bloc

Un bloc est composé d’un en-tête et d’un certain nombre de transactions.

L’en-tête du bloc contient un hash – résultat d’une fonction de hachage – de l’en-tête du bloc qui le précède : c’est la référence que nous évoquions précédemment et qui assure un lien immuable entre les blocs.
L’en-tête d’un bloc contient également des informations concernant le minage du bloc (horodatage de création du bloc, le niveau de difficulté de la proof of work) ainsi qu’un résumé de l’ensemble des transactions contenues dans le bloc : le Merkle Root.

Ce résumé est le résultat d’une structuration de données appelée « arbre de Merkle » (Merkle Tree) – rien à voir avec Angela.
Il est possible de vérifier simplement, à partir du Merkle Root, la présence d’une transaction dans un bloc.

La figure ci-dessous illustre les différents éléments d’un bloc et complète ces explications.

Contenus des blocs de la blockchain
Contenus des blocs de la blockchain et arbre de Merkle

 

Les smart contracts et l’uberisation d’Uber

Si la première et la plus célèbre des applications de la blockchain est le bitcoin, elle est loin d’être la seule possible tant le potentiel de la blockchain et du consensus décentralisé est énorme.

Depuis quelques temps, des usages alternatifs se développent autour de la technologie blockchain notamment celui des smart contracts.

Un smart contrat – ou contrat autonome et intelligent – est un programme qui assure de manière automatique l’exécution des termes du contrat selon des conditions fixées au préalable sans nécessiter d’intermédiaire ou de tiers de confiance.

Pensé à l’origine par Nick Szabo à la fin des années 90, ce concept n’a pu réellement être exploité qu’avec l’apport de la blockchain, même si en soi, l’exécution automatique d’un contrat n’est pas une chose nouvelle.

Le paiement par carte bancaire au distributeur de carburant des stations-service est un exemple d’exécution automatique d’un contrat : en insérant sa carte et en composant son code, le client contractualise avec le distributeur. Ce dernier relève une empreinte de la carte bancaire du client en guise de caution. Le client consomme le service et est facturé selon les conditions du contrat : quantité et choix du carburant.

Cet exemple basique d’un contrat automatisé, enrichi des possibilités de la blockchain, ouvre des perspectives sans limite dans de nombreux domaines : assurance, droit de propriété, certificats et documents sécurisés, droit du travail, pari en ligne, administration, démocratie, …

Le consensus décentralisé offre un niveau de sécurité et un niveau de confiance qui aura très probablement pour conséquence la désintermédiation des intermédiaires et tiers de confiance tels que nous les connaissons dans notre économie actuelle. Ce sera le cas dans de nombreux domaines dont certains ont déjà été victime d’une première vague de désintermédiation : l’hôtellerie avec Airbnb ou les services de transport avec Uber.

D’ailleurs, on parle souvent d’uberisation lorsqu’on évoque cette première phase de suppression d’intermédiaire. Mais comme l’arroseur arrosé, les contrats autonomes et intelligents pourraient bien uberiser les Uber, Airbnb, etc.

Dans ce sens, des dizaines d’applications se développent : la certification des documents avec Factom, l’application de covoiturage La`Zooz, le service de microblogging Twister, la plateforme de stockage Storj, la lutte anti-contrefaçon avec Blockverify, la propriété intellectuelle avec Bitproof, et la liste est encore longue.

Si vous souhaitez développer des applications sur le principe, des outils et des plateformes de développement sont dès à présent disponibles : parmi lesquels nous pouvons citer Ethereum ou Codius.

Preuve de l’intérêt grandissant de cette technologie : IBM, JP Morgan, Cisco, et d’autres ont développé « Open Ledger », un projet open source d’une blockchain orienté business. En France, la Caisse des Dépôts a lancé, courant décembre 2015, un laboratoire d’innovation sur la technologie blockchain avec 11 partenaires.

Comme je vous l’indiquais en préambule, le sujet est vaste ; j’ai présenté le sujet dans les grandes lignes sans m’attarder sur les aspects transactionnels et cryptographiques. Si vous êtes intéressés pour en savoir davantage, vous trouverez ci-dessous quelques ressources pour creuser le sujet :

Je n’ai pas non plus abordé les nombreuses questions que soulèvent le déploiement de la blockchain et des smart contracts en particulier les questions juridiques, sociales et sociétales.

Vous l’avez compris, ces sujets sont en plein essor et leurs contours ne sont pas encore clairement définis ; ils n’en demeurent pas moins très excitant.

Nous surveillerons de près l’évolution de ces sujets, vous pouvez compter sur nous pour les aborder de nouveau.

Comme d’habitude, si des erreurs se sont glissées dans l’article, n’hésitez pas à nous en faire part.

Merci, et à très bientôt sur Frugal Prototype


Ali Benfattoum

Intrapreneur, Tech Enthusiast, IoT Expert, Smart City Specialist…
Suivez moi sur @alifrugal

All author posts
Related Posts

Privacy Preference Center