La blockchain : pour quoi faire ? (1)

L’étude du fonctionnement de la technologie blockchain permet de comprendre qu’elle constitue en définitive un écosystème de technologies déjà existantes, travaillant de concert (le pair-à-pair, le chiffrement, le chaînage, l’auto-exécution,…). Au cours de cette étude, il est apparu que l’intérêt de la blockchain réside essentiellement dans sa capacité à créer la confiance dans une information donnée, sans pour autant qu’il soit nécessaire de faire confiance. En tant que registre infalsifiable et chronologique, la blockchain peut potentiellement s’appliquer dans un nombre illimité de secteur.
Cela ne revient toutefois pas à affirmer qu’elle est la solution la plus adéquate dans toutes les situations. S’agissant d’une technologie encore jeune, ayant connu au moins autant d’échecs que de succès du fait de ses limites inhérentes, il n’est pas réaliste d’y voir un axe de développement indispensable dans toute industrie. Le recours à des bases de données traditionnelles reste, dans la majorité des cas, le choix technique le plus pertinent.
Tout aussi excessive serait l’attitude consistant à vouer aux gémonies la blockchain, en se prévalant aveuglement des nombreux exemples dans lesquels ses applications ont été mises en échec. Alors quels sont donc les secteurs d’activité qui peuvent légitimement s’enthousiasmer des possibilités de la blockchain ? Cet article a vocation à en faire modestement le panorama.

A titre liminaire, rappelons-nou toutefois les avantages et les inconvénients de cette technologie, à laquelle The Economist consacrait sa une en novembre 2015.

La blockchain : forces et faiblesses

Il faut avant tout garder à l’esprit qu’une blockchain n’a vocation qu’à permettre le partage d’une base de données de manière directe et sûre entre des entités qui ne se font pas confiance, sans recourir à une administration centrale. En cela, elle peut être déclinée autrement que dans un contexte public, mais les applications privées judicieuses de la blockchain restent moins nombreuses que d’aucuns le laissent croire. Quel est sont intérêt fondamental ?

Le recours à une blockchain est indiqué pour la mise en place d’une base de données, dès lors qu’il est nécessaire que celle-ci soit modifiable par plusieurs entités dont les intérêts divergent. Dès lors que toutes les entités poursuivent le même objectif, la blockchain n’a aucun intérêt comparée aux technologies de gestion de base de données classiques, au demeurant mieux maîtrisées. Il est également indispensable d’avoir besoin de se défaire d’une autorité centrale, que ce soit pour assurer une plus grande transparence, ou diminuer la vulnérabilité de la base de données.

Autrement dit, tout l’intérêt d’une blockchain est de fournir un recueil distribué, vérifiable par tous, qui ne requiert pas de faire confiance aux participants. Utiliser la blockchain dans un contexte où il est possible de faire confiance aux participants est donc peu efficient comparé à d’autres outils existants (le recours à une autorité de certification par exemple). La réintroduction, d’une façon ou d’une autre, d’un tiers de confiance, est en principe une dérive qui va à l’encontre de la nature même de cette technologie.

En résumé, il convient, pour s’assurer de la pertinence de mettre en œuvre une blockchain, de réunir les besoins suivants :

  • Une base de donnée
  • Un partage d’accès en écriture
  • Un certain degré de méfiance entre les titulaires du droit d’accès
  • Une désintermédiation
  • Une interdépendance entre les transactions qui modifient la base de données
  • L’imposition de règles de fonctionnement
  • Un historique final vérifiable des opérations

Dans ce cadre, la blockchain privée n’est pas, contrairement à ce que d’aucuns peuvent affirmer, fondamentalement contradictoire avec la nature d’une blockchain. En effet, le recours à une blockchain privée se justifie dès lors que, tout en cherchant à établir un registre distribué entre des acteurs d’intérêts divergents sans recourir à une autorité centrale, il existe un besoin de contrôler les accès en écriture, masquer les transactions et garder le contrôle sur les fonctionnalités de la blockchain. On pense tout particulièrement aux secteurs réglementés (secteur bancaire et financier1,…).

Les applications actuelles de la blockchain

Si aujourd’hui l’usage de cette technologie est évoqué dans un grand nombre de domaines, c’est grâce aux expérimentations et à l’évolution de la première blockchain, cele du Bitcoin. Il n’est donc pas inintéressant de revenir brièvement sur ce qui a permis cette transition, d’un exemple unique d’application vers d’autres usages des plus divers.

Au delà du Bitcoin

Il n’a pas fallu longtemps pour comprendre que le caractère infalsifiable et hautement sécurisé de la blockchain avait un intérêt pour d’autres applications que les cryptomonnaies. Par exemple, si l’on inscrit l’empreinte d’un fichier dans une blockchain, on devient en mesure de prouver l’existence de ce fichier au moment de son intégration dans la blockchain. Pour autant, alors que la seule blockchain existante était celle du Bitcoin, et donc conçue exclusivement dans ce but, comment pouvait-on développer ces usages alternatifs tout en profitant de la vigueur de la vigueur du Bitcoin (et donc de ses qualités de sécurité) ?

La principale méthode utilisée consistait (et consiste encore) à inscrire la donnée voulue (le hash SHA256 d’un fichier ou une URL raccourcie) à la suite de l’opérande OP_RETURN du langage Script, dans le locking script de la transaction. Un locking script est un des deux élements du transaction output avec le nombre de Bitcoins souhaité en output. En principe, il a pour fonction de soumettre la validation de la transaction à une condition. Il existe à cette fin plusieurs types de locking script, outre OP_RETURN, notamment MultiSig qui ne valide la transaction qu’une fois un certain nombre de signatures recueillies. Pour sa part, OP_RETURN n’a qu’une seule utilité : stocker dans la transaction une valeur dont la taille ne peut à ce jour excéder 40 bytes. C’est par ce biais que les premiers usages dérivés de la blockchain de sont développés.

Le problème avec cette méthode est qu’elle repose sur un détournement de la blockchain Bitcoin, ce que beaucoup considèrent comme un encombrement indésirable puisque sans rapport avec le Bitcoin. Autoriser un tel stockage de données augmente inutilement la taille de la blockchain, et donc complique la tâche des utilisateurs qui font fonctionner un nœud complet. Pour cette raison, de nouvelles blockchains ont été créées, conçues spécifiquement pour le stockage de données plutôt que pour le transfert de valeurs, et susceptibles d’être utilisées plus facilement pour d’autres usages que les cryptomonnaies.

Néanmoins, la blockchain excelle pour garder la trace des transferts de valeurs. Dès lors, l’une de ses principales applications reste la mise en place de cryptomonnaies.

Les cryptomonnaies

La cryptomonnaie d’origine, mise en fonctionnement avec la toute première blockchain par Nakamoto, est donc le Bitcoin. Pourquoi choisir la cryptomonnaie comme premier exemple pour le monde ? Si les cryptomonnaies sont à ce jour les principales applications de la technologie blockchain, c’est parce que celle-ci est en mesure d’apporter les deux éléments essentiels à toute monnaie : la confiance et la rareté. En outre, elle y parvient en se débarrassant de toute autorité centrale, ce qui dans un climat de défiance à l’égard des institutions, politiques et monétaires, a permis de susciter un réel engouement chez le public.

Du Bitcoin à la cryptoéconomie2

Cet engouement d’abord porté sur le Bitcoin s’est ensuite développé à l’égard des cryptomonnaies en général. En effet, d’autres cryptomonnaies ou instruments financiers ont été développés sur la base du Bitcoin, suivant des modèles différents.
Les premières implémentations de nouvelles cryptomonnaies ont utilisé la même blockchain que le Bitcoin. On parle de meta coins et de meta chains. Leur fonctionnement repose, pour l’essentiel, sur l’ajout de métadonnées dans les transactions (par exemple en OP_RETURN) afin d’identifier certaines fractions de Bitcoins comme spécifiques (on parle de colorcoins) ou de construire des protocoles additionnels pour étendre les fonctionnalités de la blockchain Bitcoin (par exemple mastercoin/omni ou counterparty).
Par la suite, d’autres cryptomonnaies sont nées qui reposaient sur leur propre blockchain, mais dont le code était dérivé et adapté de celui de la blockchain Bitcoin. On peut citer Tenebrix, Litecoin, Dogecoin, Freicoin, etc. D’autres cryptomonnaies reposent quant à elles sur des blockchains repensées intégralement, sans rien emprunter à celle du Bitcoin. On peut alors citer Primecoin, Curecoin, Peercoin, Myriad, Blackcoin, Vericoin, etc.

Beaucoup des cryptomonnaies qui ont été créées à la suite du Bitcoin ne sont toutefois que des copies sans intérêt conçues pour enrichir leur créateur. Cependant, certaines ont vocation à tester des modèles de fonctionnement complètement différents et ont des caractéristiques qui les distinguent largement du Bitcoin. Il peut s’agir de simples ajustements de paramètres déjà prévus par la blockchain Bitcoin (blocktime, nombre de coins,…) ou de modifications plus fondamentales de la mécanique monétaire.

L’étude de ces différences dans la mécanique monétaire permet également de se rendre compte des différentes configurations possibles d’une blockchain, et donc de commencer à entrevoir les ajustements possibles pour permettre d’autres usages.

Les principales différences entre cryptomonnaies

On en distinguera quatre. La première, et la plus importante en ce qu’elle concerne tout usage de la blockchain, est le choix du mode de consensus.

Les modes de consensus

Avant l’invention de la blockchain, on ne savait pas comment, dans une architecture de calcul distribué, faire en sorte que l’existence d’un certain enchaînement d’opérations soit admise par tous les participants d’un réseau donné, participants qui peuvent rejoindre ce réseau sans aucune vérification et autorisation préalable. Parvenir à un tel consensus supposait nécessairement de filtrer l’accès au réseau par un système de permissions. Un consensus sans permission, et donc sans confiance envers les participants, n’était pas possible. Il fallait nécessairement un protocole de consensus pour permettre à un système de processus asynchrones de parvenir à un accord.
La blockchain telle que conçue par Nakamoto résout ce problème avec le mécanisme de la preuve de travail et en fournissant aux participants une incitation économique à agir conformément aux règles, de manière honnête. En quoi cela consiste t-il ?

La méthode de la preuve de travail consiste à dédier de la puissance de calcul pour trouver le nombre (appelé nonce) qui, ajouté à l’en-tête du bloc et transformé par une fonction de hachage, donne une valeur qui est inférieur à une valeur cible. Trouver ce nombre fait appel à un processus qui, sans être complexe, est totalement aléatoire, raison pour laquelle les mineurs utilisent des équipements spécialisés (les ASICs) capables de faire des milliards de tentatives en parallèle.
Cette méthode présente plusieurs inconvénients. Principalement, elle exige énormément de puissance de calcul (des centaines de pétaflops à ce jour), et donc d’électricité qui, d’un certain point de vue, est « gaspillée ». En outre, cette méthode est sensible à une attaque dite « des 51% », dans laquelle une entité qui disposerait de 51% de la puissance de calcul totale sur le réseau Bitcoin serait en mesure de tricher (en revenant sur ses transactions par exemple). En principe, une telle attaque est très improbable pour un acteur rationnel puisque rassembler une telle puissance exigerait un investissement tellement important dans des équipements de minage spécialisés (ASICs) que le bénéfice apporté par la fraude serait au mieux infime. L’attaque reste techniquement possible, et pourrait être mise en œuvre par une entité recherchant, plutôt que le profit, la destruction du Bitcoin.

Une solution apportée à ce problème a consisté, dans un premier temps, à tenter de rendre cette puissance de calcul utile en remplaçant l’algorithme de preuve de travail par un problème auquel est confrontée la recherche scientifique. Primecoin et Curecoin constituent des exemples d’application de ce modèle nommé « preuve de recherche ». Dès lors, d’autres méthodes de consensus ont vu le jour. Celle de la preuve d’enjeu est la première à avoir vu le jour. A ce jour, elle doit être combinée avec la preuve de travail pour être réellement capable de mener au consensus. La preuve d’enjeu ne fait pas appel à la résolution de puzzles mathématiques, et donc n’utilise aucune puissance de calcul. A la place, elle demande à celui qui souhaite miner un bloc d’apporter la preuve de sa volonté de contribuer honnêtement au bon fonctionnement de la blockchain. Pour s’en assurer, il doit émettre une transaction correspondant à une certaine fraction de cryptomonnaie qu’il possède, et se l’envoyer à lui-même.
La preuve de travail intervient dans le processus, mais sa difficulté est inversement proportionnelle à l’ancienneté de la fraction de cryptomonnaie utilisée. Plus la somme est ancienne (et donc bien établie dans le réseau), plus la preuve de travail est facile à établir.
Dans ce modèle, le minage consiste simplement à posséder une certaine somme de cryptomonnaie, et à laisser son ordinateur connecté au réseau. A chaque fois qu’un bloc doit être créé (par exemple toutes les minutes, si le blocktime est d’une minute), un mineur est sélectionné au hasard pour réaliser l’opération. La probabilité d’être sélectionné correspond au nombre d’unités de cryptomonnaie possédée par le mineur divisée par le nombre d’unités en circulation. Le mineur choisi collecte les transactions, assemble le bloc, le propage dans le réseau et collecte les frais.

Un autre moyen de parvenir au consensus est encore la « preuve de destruction ». Dans ce modèle, les mineurs doivent sacrifier une certaine fraction d’une cryptomonnaie déjà existante, et donc reposant sur un modèle de consensus de type preuve de travail ou preuve d’enjeu.

On constate donc qu’à l’heure actuelle, la preuve de travail est l’unique moyen de parvenir réellement au consensus. Il est possible de procéder à une hybridation, mais cette méthode doit nécessairement intervenir pour le bon fonctionnement d’une blockchain publique. L’exploration d’autres modes de consensus présente toutefois un intérêt pour les blockchains privées ou « consortium », qui peuvent se permettre, en réintroduisant une dose de confiance préalable, de se détacher de la preuve de travail.

Ce tableau résume les avantages et inconvénients de chaque méthode :

consensus

Le blocktime

Le blocktime est un paramètre extrêmement important pour une cryptomonnaie. Il correspond au temps nécessaire pour que le bloc dans lequel une transaction a été intégrée parvienne à être validé et intégré dans la chaîne, ce qui, en théorie, marque l’irréversibilité de la transaction. Dans la blockchain Bitcoin, le blocktime est fixé à 10 minutes. Dès lors, même si la puissance de calcul combinée augmente sans cesse, la blockchain ajuste automatiquement la difficulté de la preuve de travail afin qu’en moyenne, un nouveau bloc ne soit miné que toutes les 10 minutes.
L’ajustement de la difficulté sur lequel repose l’effectivité du blocktime se fait à un intervalle qui constitue également un paramètre de la blockchain. Pour la blockchain Bitcoin, la difficulté est ajustée tous les 2016 blocs. Cette valeur a pu être jugée trop élevée pour assurer un blocktime effectif de 10 minutes, si bien que certaines cryptomonnaie la réduisent, parfois jusqu’à prévoir l’ajustement à chaque fois qu’un bloc est miné.

Le blocktime est toutefois une valeur théorique, l’idéal à atteindre pour la blockchain qui doit constamment ajuster la difficulté de la preuve de travail pour s’en rapprocher. En conséquence, statistiquement, il faut souvent attendre plus ou moins longtemps que cela pour que la transaction soit confirmée. Pour le Bitcoin, par exemple, une confirmation en 10 minutes n’arrive que 63.2% du temps, et prend plus longtemps 36.8% du temps3. En outre, la confirmation réelle de la transaction nécessite d’attendre l’ajout de plusieurs blocs. Plus le nombre de blocs ajoutés augmente, plus il devient difficile de défaire la chaîne pour annuler une transaction, et globalement, plus le risque d’une attaque (de type double-dépense notamment) est improbable. En règle générale, on considère qu’un délai d’une heure, sans égard au blocktime, est suffisant pour s’assurer de l’irréversibilité de la transaction4. Pour la blockchain Bitcoin, il faudra donc attendre 6 blocs. Pour une blockchain avec un blocktime d’une minute, il faudra attendre la génération de 60 blocs.

Ce tableau résume les avantages et inconvénients d’une fixation du blocktime sous la barre des 10 minutes :

blocktime

L’anonymat

La question de l’anonymat des transactions est très sensible pour les cryptomonnaies, justement parce qu’elles sont nées dans un contexte de défiance à l’égard des autorités centrales. Quelles sont les qualités réelles des cryptomonnaies à cet égard ?

En principe, l’identité de l’émetteur comme celle du destinataire d’une transaction est masquée, puisque les transactions ne sont émises que d’une adresse vers une autre. Toutefois, il est possible de remonter à l’identité de l’émetteur en suivant le parcours de la transaction depuis son point d’origine jusqu’au nœud qui l’a propagé au reste du réseau. Toutes les attaques sont alors envisageables pour relier l’adresse à une personne déterminée. En ce sens, l’utilisation d’une blockchain n’est, en elle-même, pas du tout une garantie d’anonymat.

Plusieurs solutions peuvent toutefois être mises en œuvre pour conserver l’anonymat en effectuant des transactions.

  • Il est d’abord possible de diffuser la transaction par un réseau anonymisé tel que Tor.
  • Il est envisageable d’inclure sa transaction au sein d’une plus large transaction rassemblant plusieurs utilisateurs, de telle sorte qu’il devient impossible de déterminer à qui correspond individuellement chaque opération. CoinJoin fournit ce type de service, qui a l’avantage de ne pas nécessiter un changement des règles de la blockchain.
  • On peut également se servir de certaines fonctionnalités du Bitcoin pour compliquer la détection. Par exemple, en utilisant Multisig pour fondre son adresse parmi une multitude d’autres.

Pour autant, les garanties offertes ne sont pas suffisantes sur la blockchain Bitcoin. La recherche de l’anonymat a donc pu justifier la création de nouvelles cryptomonnaies (blackcoin, zerocoin,…), qui reposent sur des algorithmes et des protocoles conçus à cet effet (cryptonight est le plus connu).

L’inflation

La valeur d’une cryptomonnaie et la fluidité avec laquelle elle est échangée dépend directement de sa rareté, et de son caractère inflationniste ou déflationniste. Pour beaucoup, Bitcoin est l’équivalent de l’or. D’autres cryptomonnaies sont, dans ce cadre, comparées à l’argent ou au bronze, leur circulation étant conçue comme plus avantageuse que leur accumulation. Pour cette raison, les cryptomonnaies varient quant à la quantité d’unités possibles, et au nombre d’unités minée chaque année. En toute logique, leur valeur et leur inflation fluctue.

 

Pour conclure cet article, et avant le prochain consacré aux autres applications que les cryptomonnaies, voici un tableau récapitulatif présentant les cryptomonnaies en usage, et leurs caractéristiques.

tableau-crypto

tableau-crypto-2

tableau-crypto-3

 

  1. Car les banques ne se font pas confiance, raison pour laquelle le réseau SWIFT ne fonctionne qu’en push.
  2. Le terme est emprunté à Vitalik Buterin.
  3. https://blog.ethereum.org/2014/07/11/toward-a-12-second-block-time/
  4. En sachant que dans tous les cas, il n’est possible de revenir que sur ses propres transactions.

Comments are closed, but trackbacks and pingbacks are open.