Retour aux actualités
Article suivant Article précédent

Revue TELECOM 183 - Les fondamentaux de la "blockchain"

Articles Revue TELECOM

-

10/01/2017

 
Le rédacteur en chef
vous propose de découvrir un article coup de coeur de son dossier. 


Les fondamentaux

de la "blockchain"



par Cyril Grunspan

On présente une introduction aux blockchains et aux monnaies numériques en insistant sur le travail fondateur d’Haber et Stornetta concernant les fonctionnements d’institutions de dépôts de brevet dans un univers complètement digital.

Vous avez dit blockchain ?
On entend généralement par « blockchain » une solution possible à un problème de confiance dans un réseau informatique. Il s’avère en effet que dans un réseau sans hypothèse particulière, c’est-à-dire décentralisé, où personne à priori ne fait confiance à personne, une « blockchain » permet à tout le monde de pouvoir prouver sa bonne foi. En considérant que celleci puisse être mise par écrit, datée et consignée, il se dégage ainsi l’existence d’un registre qui rassemble l’ensemble de ces preuves. Une page donnée représente un certain nombre de « certifications » ayant toutes en commun de partager plus ou moins la même date de création. De manière technique et pour des raisons que l’on va voir, au lieu de parler de pages d’un livre, on parle de chaine de blocs ou de « blockchain ».

Le problème des généraux byzantins
Le premier à s’être penché sur la question avec le regard d’un informaticien est Leslie Lamport (Prix Turing 2013) dans les années 80. Il lui a donné le nom de « problème des généraux byzantins ». Il s’agissait alors d’étudier la gestion d’éventuels défauts dans un réseau informatique. Les informaticiens aiment bien donner des noms originaux à leurs problèmes. On rencontre ainsi le problème dit du « dîner des philosophes » sur l’allocation de ressources en informatique théorique. Le problème soulevé par Leslie Lamport est concrètement le suivant : des généraux byzantins dispersés autour d’une ville font le siège de celle-ci et doivent établir un plan de bataille. Mais parmi les généraux, il y a des traitres dont la parole n’est pas fiable et les communications peuvent de plus être interceptées et modifiées par l’ennemi. En général, Leslie Lamport a montré qu’il n’y a pas de solution à ce problème, sauf cas particuliers.

Une blockchain est donc une singularité. C’est une solution au problème des généraux byzantins.

Elle ne peut exister qu’en rajoutant des hypothèses fortes à l’énoncé du problème de Lamport. La première hypothèse forte est l’impossibilité de modifier les messages transmis. On estime qu’il est impossible pour un ennemi d’altérer le contenu d’un message même s’il est intercepté. La seconde hypothèse est une hypothèse plus technique que nous verrons plus tard. Mais d’abord, expliquons pourquoi il est légitime de faire la première hypothèse.

Clé privée, clé publique
L’article de Leslie Lamport a été publié en 1982. Au même moment, la cryptographie asymétrique se rendait populaire dans le monde académique et industriel après l’avoir été dans le monde militaire. Il s’agit d’un tournant dans l’histoire du chiffrement et au-delà, de l’humanité. Pour la première fois, deux personnes, Alice et Bob sont en mesure de communiquer de manière sécurisée sans partager de secret préalable comme c’était le cas auparavant avec la cryptographie symétrique dont l’exemple le plus simple est le chiffrement de César ; il consiste à décaler les lettres d’un message donné par un nombre déterminé de chiffres : par exemple, en décalant toutes les lettres de l’alphabet par 18 de manière circulaire (ceci constituant un secret partagé par l’expéditeur du message et son destinataire), la première lettre de l’alphabet A devient S (qui est la dixneuvième) et « BONJOUR » devient « TGFBGMJ ».

Dans le cadre de la cryptographie asymétrique, au lieu de partager un secret commun avec son correspondant comme dans le chiffrement de César, ce qui nécessitait en particulier d’avoir un secret commun pour chaque interlocuteur, on n’a besoin que d’une clé privée (que l’on garde secrète) telle un mot de passe, et d’une clé publique que l’on peut communiquer à tout le monde (y compris aux ennemis) telle une adresse électronique.

Le principe de la cryptographie asymétrique a été découvert par Whitfield Diffie et Martin Hellman en 1976 qui ont reçu le prix Turing en 2015 (équivalent du prix Nobel). Ce principe est devenu ensuite opérationnel grâce aux travaux de Ronald Rivest, Adi Shamir et Leonard Adleman en 1978 que l’on connaît surtout à travers l’acronyme RSA.

La cryptographie est tellement présente aujourd’hui qu’on ne s’en rend même plus compte. Elle est utilisée partout, à travers les cartes de crédit, les courriers électroniques et bientôt l’Internet des objets.
Donnons deux exemples d’utilisation de cryptographie asymétrique.

Grâce à la clé publique de Bob, Alice peut chiffrer un message que seul Bob à l’aide de sa clé privée est en mesure de déchiffrer.
Autre exemple : Alice, avec sa clé privée peut signer un message donné qui peut être authentifié comme venant d’elle par tout le monde grâce à sa clé publique.

Avec l’invention de la cryptographie asymétrique, il devient impossible d’altérer un message sans toucher à sa signature. En particulier, on ne peut pas faire croire qu’Alice a écrit un message si elle ne l’a pas réellement fait, à moins bien sûr de prendre connaissance de sa clé secrète ou de casser des algorithmes de cryptographie que l’on considère comme sûrs en première approximation.

Dans un réseau comme un réseau pair à pair où les messages sont signés et où il existe plusieurs voies de transmission, la cryptographie asymétrique rend donc techniquement impossible le fait de bloquer ou d’altérer le contenu d’un message. Ceci constitue une hypothèse très forte par rapport à l’énoncé du problème de Lamport.

Fonction de hachage
Un concept fondamental en cryptographie (asymétrique ou non) est celui de fonction de hachage.  
Il est utilisé notamment pour signer en pratique des messages. Une fonction de hachage est une fonction dite à sens unique possédant certaines propriétés techniques dont l’absence de collisions.

Elle prend en entrée un message de taille quelconque et retourne très facilement une suite de chiffres et de lettres de longueur toujours fixée (par exemple 256 pour la fonction de hachage « SHA  256 » inventée par la NSA). L’image d’un message par une fonction de hachage peut être vue comme une empreinte numérique. Une empreinte ressemble à une suite de chiffres et de lettres répartis de manière aléatoire et il est impossible de deviner le message si l’on n’a connaissance que de son empreinte. Il est par ailleurs impossible de trouver deux messages différents possédant la même empreinte.

Les fonctions de hachage sont utilisées en particulier pour prouver l’intégrité d’un message.
Par exemple, si Alice envoie par courrier électronique à Bob un fichier volumineux ainsi qu’un « hash » de ce fichier (une empreinte numérique), Bob en calculant le hash du fichier reçu et en le comparant à l’empreinte initial saura si le téléchargement s’est bien passé et s’il est en possession du fichier qu’Alice a réellement souhaité lui transmettre.

Généralités sur le Bitcoin

Satoshi Nakamoto
Nous allons progressivement présenter le fonctionnement de la blockchain la plus sûre qui soit à l’heure actuelle, à savoir la blockchain du Bitcoin. Elle existe depuis plus de sept ans et a prouvé sa robustesse. Elle représente un modèle de blockchain. Et de fait, toutes les autres blockchains existantes l’ont copié - voire parfois reproduite à l’identique ou en changeant seulement quelques paramètres mineurs. Cela ne veut bien sûr pas dire que c’est un modèle indépassable mais il convient de l’étudier et de comprendre son fonctionnement.

Le Bitcoin est un réseau pair à pair permettant l’échange d’une monnaie entièrement digitale appelée Bitcoin. L’annonce de sa création a été faite à travers un forum de cryptographie sur Internet par un pseudonyme intitulé « Satoshi Nakamoto » qui se présente lui-même comme un japonais de 40 ans - mais beaucoup en doutent. Il a pendant un temps répondu précisément et activement sur différents forums pour expliquer le fonctionnement du Bitcoin et, avec d’autres, il a contribué à améliorer la première version de son code. Puis en décembre 2010, il arrête de donner signe de vie prétextant « être passé à autre chose » peu de temps après avoir désigné le développeur Gavin Andresen comme son successeur.

Une suite de signatures électroniques
Il y avait eu avant le Bitcoin, plusieurs tentatives de création de monnaies numériques. Elles auraient pu fonctionner mais le fait est qu’elles ont toutes échouées pour des raisons différentes les unes des autres. Par exemple, Cybercash a été l’une des rares victimes du bug de l’an 2000. La première tentative remonte aux travaux de Chaum en 1983. David Chaum est un grand cryptologue américain, fondateur en 1982 de l’International Association for Cryptologic Research qui représente la plus haute institution en cryptologie dans le monde du point de vue de la recherche académique.

Il est aussi le créateur de Digicash en 1990, la première monnaie électronique. Il était clair d’emblée que leproblème ne pourrait être résolu que par des techniques de cryptographie.

En effet, une pièce de monnaie entièrement digitale ne peut se résumer à un fichier anonyme comme une pièce d’un euro ou un billet de banque. Si tel était le cas, un simple copier-coller aurait des effets dévastateurs et créerait instantanément de la fausse monnaie. Il faut donc qu’une pièce de monnaie digitale porte la signature de son propriétaire et, vu qu’une pièce de monnaie passede main en main, elle doit donc représenter une suite de signatures électroniques dont la dernière indique le nom de son propriétaire. De la sorte, il n’est pas possible de voler de l’argent. On ne peut envoyer de l’argent que si on l’a précédemment reçu. Payer revient à transférer un message reçu aussi simplement qu’il est possible de transférer un courrier électronique.

La double dépense
Supposons un instant que l’euro soit une monnaie numérique et que Bob reçoive précisément 1 euro de la part d’Alice. Qui lui prouve qu’Alice n’a pas dans le même temps transféré son euro à d’autres personnes de la même manière que l’on peut transférer à différentes personnes le même message ? Si rien ne s’y oppose, en admettant que tous les destinataires d’Alice soient des vendeurs, avec un seul et même euro au départ (préalablement reçu), elle est en mesure de réaliser plusieurs dépenses. Elle peut par exemple passer un achat de téléphone portable auprès de Bob puis quelques instants après acheter un billet de spectacle auprès d’Oscar.
Dans un monde numérique, la seule escroquerie possible est la double dépense.  
Comment éviter qu’un tel scénario soit possible ? La manière la plus simple est de s’assurer qu’il existe sur le réseau où circule la monnaie digitale une autorité de confiance qui passerait son temps à examiner les transactions. Cette autorité déciderait ou non de les certifier en apposant un sceau numérique sur chacune d’elles. Concrètement, cette autorité tiendrait un registre et y inscrirait les transactions légales. Par exemple, dans l’exemple cité plus haut, cette autorité ne retiendrait que l’achat du téléphone portable et rejetterait l’achat du billet de spectacle venu après.

Les institutions de dépôt de brevet
Cette position d’autorité de confiance est sensiblement la même que celle d’une institution telle l’INPI en France (Institut National de la Propriété Industrielle sous la tutelle du ministère de l’industrie et basée à Courbevoie) qui enregistre des dépôts de brevet et décide donc de l’antériorité d’un document de même nature par rapport à un autre.

Dans les années 90, Stuart Haber et W. Scott Stornetta dans les laboratoires Bell se sont interrogés sur le rôle que pourrait ou devrait tenir une telle institution dans un monde totalement digital. Leur réflexion est à la base de la technologie « blockchain ». Parmi les huit références citées par Nakamoto dans sa petite bibliographie, trois renvoient à des articles d’Haber et Stornetta. C’est dire leur importance. Ce sont eux les réels inventeurs de la « blockchain ». Les idées de créer une chaine de blocs et d’y regrouper sur chacun d’eux des documents numériques en un arbre binaire leur sont dues. Nakamoto a ensuite adapté leurs travaux au problème du Bitcoin.

Généralités sur le Bitcoin 3
A priori, la plus simple façon de procéder pour ce service de brevet est de signer un message contenant la date courante et l’empreinte du document numérique (le hash) à destination de son inventeur. Ce message signé peut tenir lieu de certificat. Plus tard, si l’inventeur veut prouver son antériorité sur une découverte, il lui suffira de produire le document numérique qu’il a enregistré auprès de la société telle l’INPI ainsi que son certificat. Tout le monde pourra constater qu’effectivement la date annoncée par l’inventeur se trouve bien dans le certificat de brevet. Le seul problème est qu’il faut avoir une confiance aveugle en l’institut de dépôt de brevet. Une société corrompue pourrait faire croire à l’antériorité de n’importe quel document. Antidater un document est très simple à faire avec cette méthode. Il suffit de signer un message avec une fausse date.

La solution d’Haber et Stornetta
Comment éviter que cela soit possible ?
La solution est « philosophique » comme expliqué au début d’un des articles d’Haber et Stornetta. De la même façon qu’un historien peut prouver qu’un certain document a été écrit après une certaine date T en constatant qu’il se fait l’écho d’événements dont on sait avec certitude qu’ils se sont dérou- lés après T, de même si l’on veut prouver qu’un document a été écrit avant une certaine date, il faut que d’une manière ou d’une autre ce document soit luimême source d’événements ayant eu des répercussions après sa création.

Concrètement, voici la solution imaginée par Haber et Stornetta pour éviter  tout risque de fraude au sein d’un institut de certification de dépôts. Imaginons qu’Alice vienne d’enregistrer un document D (par exemple un logiciel représenté par son « hash » H) à la date T et qu’en retour, elle a reçu un certificat de dépôt C auprès de la société d’Oscar.

Vient ensuite Bob à l’instant T’ qui cherche aussi à déposer un document D’ (ou son hash H’, ce qui revient au même) auprès de la même institution de dépôt de brevets. Au lieu de donner comme certificat de brevet C’ la signature d’un message contenant H’ et T’, Oscar va signer un message contenant H’, T’ et C. De cette façon, la création du certificat de dépôt C a créé un événement qui a des répercussions auprès de toutes les certifications qui ont lieu après elle (en l’occurrence ici C’). De sorte qu’il est impossible pour Bob de prouver l’antériorité de son invention avant celle d’Alice, même si l’institution de dépôt de brevets est corrompue. On imagine ainsi le travail à la chaine d’un tel institut de certification de dépôts.
 
Cn Cn+1=Hash (Cn, Tn+1,Hn+1)

On a noté Hn+1 l’empreinte du document brut Dn+1 alors que Cn+1 est le certificat de dépôt recherché. On obtient ainsi une liste de certifications reliées entre elles, c’est-à-dire une chaine de certifications. Imaginons maintenant que l’institut de dépôt de brevets ait beaucoup de succès avec beaucoup de demandes pour certifier un document à une certaine date T. Dans ce cas, pour des raisons d’efficacité, Haber et Stornetta proposent de rassembler tous ces documents à certifier dans un arbre binaire selon un modèle proposé parle cryptographe Ralph Merkle (pionnier de la cryptographie asymétrique). Dans ce cas, on obtient une suite de blocs de certifications, qui constitue une première « blockchain ». Tout se passe comme si l’institution de certification des dépôts détenait un registre où chaque page contient un ensemble de certifications regroupées en arbre. Ce registre est infalsifiable vu que les événements s’enchainent les uns aux autres.

Les Bitcoins

Blockchain avec autorité de confiance 
Revenons au problème de création d’un réseau monétaire. Dans le cas où il existe une autorité de confiance, en appliquant les techniques d’Haber et Stornetta, on peut facilement entrevoir le rôle que doit tenir une telle autorité. Elle consiste à rassembler régulièrement des paquets de transactions et à les signer dans des blocs contenant chacun, en plus de la date de création, l’empreinte du bloc précédent. C’est un exemple de blockchain avec autorité de confiance. Le problème est simple à résoudre. Il n’y a pas besoin d’astuce particulière. Un vendeur (appelons-le Bob) qui a la possibilité d’interroger le livre des comptes tenu par cette haute autorité, au moins pour une transaction d’Alice en sa faveur, sera sûr de la bonne fois de sa cliente s’il voit figurer cette transaction dans ce registre. Une seule vérification suffit à Bob pour être certain que son compte vient d’être crédité du montant de l’achat d’Alice.


 

La preuve de travail

Étant donné qu’il s’agit d’un réseau monétaire, on peut inciter les gens à écrire sur le registre en rémunérant toute personne qui rajoute une nouvelle page au registre. Il faut en même temps que cette opération ne soit pas « simple » et que ce ne soit pas l’ordinateur le plus rapide qui gagne toujours les nouveaux Bitcoins. Voici ce que propose Nakamoto. Au lieu de n’autoriser qu’une seule personne de confiance à signer un message contenant

Cn+1:= Hash(Cn, Tn+1,An+1)

• Cn est l’empreinte numérique du précédent bloc
• Tn+1 est la date courante
• An+1 est la racine de l’arbre de Merkle contenant un nouveau bloc de transactions légales enregistrées en Tn+1,

on autorise tout le monde à signer un message contenant

Cn+1:= Hash(Cn, Tn+1,An+1, γn +1, δn+1)

• Cn et Tn+1 ont la même signification que précédemment
• An+1 représente la racine de l’arbre de Merkle contenant un ensemble de transactions légales

dont une transaction spéciale représentant une création monétaire en faveur de celui qui signe Cn+1 (actuellement 25 Bitcoins)
• δn+1 représente un nombre entier connu en Tn+1
• γn+1 représente un nombre entier inconnu en Tn+1

Le but est de trouver γn+1 tel que Hash(Cn, Tn+1, An+1, γn+1, δn+1) commence par δn+1 zéros.

Le premier qui trouve γn +1 annonce à tout le réseau qu’un nouveau bloc a été découvert. Tout le monde peut vérifier instantanément qu’il a raison (Hash(Cn,Tn+1, An+1, γn+1, δn+1) commence bien par δn+1 zéros).

La nouvelle se propage alors : un nouveau bloc a été découvert. Il a pour en-tête Cn, Tn+1, An+1, γn+1, δn+1 et dans le corps du « texte », figure l’arbre de Merkle des transactions. Le registre officiel comporte maintenant une page de plus. L’exercice qui consiste à trouver γn+1 s’appelle une preuve de travail.

 


Blockchain sans autorité de confiance
Le problème est beaucoup plus compliqué s’il n’existe pas d’autorité de confiance sur le réseau. On suppose néanmoins que le réseau est un bon réseau pair à pair et qu’en particulier, toute information émanant d’un noeud particulier finit par parvenir rapidement à tous les autres noeuds.

D’abord, un constat : puisqu’il n’existe personne de prédisposé à vérifier et signer les transactions, il faut être en mesure de le faire soi-même. Par suite, toutes les transactions doivent être publiques. Ensuite, l’idée est depermettre à tous de tenir un registre comme le ferait une autorité de confiance. Puisqu’il y a à priori autant de blockchains que d’utilisateurs, il faut un moyen pour départager toutes les blockchains éventuelles. La règle naturelle est qu’on choisit toujours la blockchain qui contient le plus grand nombre de blocs (officiellement, pour Bitcoin, c’est la chaîne de blocs la plus « solide » en terme de puissance de calcul développée pour l’établir mais enpratique, c’est la chaine de blocs la plus longue). Tout étant public, celle-ci est disponible partout à tout moment et tout le monde est libre de participer à l’entretien de ce registre, c’est-à-dire d’y rajouter de nouveaux blocs. Tout se passe donc comme si plusieurs « écrivains » étaient en train d’écrire un livre vivant, chacun étant invité à écrire une page de plus. De sorte que la blockchain passe de main en main sans réellement appartenir à personne sinon au réseau lui-même. Cela dit, il faut faire attention que la blockchain ne tombe pas dans de mauvaises mains.

Blockchain et double dépense
La seule escroquerie possible étant une escroquerie à la double dépense, il faut éviter qu’un escroc puisse profiter de la possibilité d’écrire sur le registre des comptes pour réaliser une double dépense.

Reprenons le cas d’escroquerie évoqué plus haut dans le contexte d’un réseau avec un registre vivant R. A un instant T, Alice a reçu 1 Bitcoin. Rappelons-le, cela signifie qu’elle a reçu un message M qui consiste en une suite de signatures électroniques et représente 1 Bitcoin. Riche de ce Bitcoin, Alice signe (avec sa clé privée) un achat de téléphone portable auprès de Bob. Ceci a pour effet de transférer le message M à Bob qui se retrouve maintenant en possession d’un message M’ dont la dernière signature est celle d’Alice. A l’instant T’>T, Bob prévenu de l’achat interroge le registre R(T’) et y découvre la transaction d’Alice. Par suite, il l’autorise à retirer un téléphone portable.

Cependant, entre T et T’, Alice avec de mauvaises intentions, décide d’un achat de billets de théâtre pour elle et sa famille et signe une transaction en faveur d’Oscar à partir du même message M qui a servi à payer le téléphone portable. Pour simplifier, on estime que les deux achats ont la même valeur (1 Bitcoin). Concrètement, Alice transfère M à Oscar qui se retrouve maintenant en possession d’un message M” dont la valeur est potentiellement de 1 Bitcoin. Pour qu’Oscar donne à Alice l’autorisation de retirer des billets de spectacle, il faut que M” soit présent dans le registre R(T’’) au moment T’’>T’ où Oscar le consulte.

Dans un monde normal avec autorité de confiance, ceci est impossible car l’argent a déjà été transféré en faveur de Bob : la transaction est illégale. Pour qu’Alice puisse réussir son escroquerie à la double dépense, il faut donc qu’elle puisse déchirer les dernières pages du registre officiel R(T’’) disponible en T’’ et les remplacer par d’autres ne contenant pas le message M’ en faveur de Bob. Il lui faut donc reprendre le registre R(T) tel qu’il était à l’instant T, garder dans son coin les transactions qui ne concernent pas Alice et présentes dans R(T’’) et produire à partir de cela un nouveau registre de sorte qu’Oscar puisse y voir l’achat de billets de spectacle en sa faveur. Ceci n’est possible que si Oscar consulte le (nouveau) registre d’Alice et non R(T’’). Or le registre officiel étant toujours celui qui contient le plus grand nombre de pages, cela signifie qu’Alice aura été capable de produire un registre plus long que R(T’).

Son travail d’escroc consistant à déchirer les dernières pages et à les remplacer par d’autres, ceci signifie en particulier qu’Alice aura été capable d’écrire très rapidement des nouvelles pages sur le registre, plus rapidement que les autres personnes du réseau.

Pour rendre l’escroquerie à la double dépense impossible, il faut donc :
1. rendre compliqué la possibilité de rajouter des pages au registre i.e, rendre compliqué la possibilité d’ajouter de nouveaux blocs à la blockchain
2. inciter les personnes honnêtes à prendre part à la maintenance du réseau pour ne pas qu’il n’y ait que des escrocs qui passeraient leur temps à tenter des escroqueries à la double dépense.

Un mécanisme de récompense aléatoire
Il se trouve que calculer un hash est immédiat. Par contre calculer une image réciproque par une fonction de hachage est extrêmement difficile : on n’a pas d’autre façon de trouver n+1 qu’en testant toutes les solutions possibles. Notons également que chaque participant au réseau qui cherche à rajouter un nouveau bloc cherche à résoudre un problème qui lui est propre. Il ne s’agit pas d’un puzzle à résoudre, le même pour tous, et le premier qui le résout gagne 12, 5 Bitcoins. En effet il ne s’agit pas exactement des mêmes blocs de transactions que chacun cherche à ajouter à la blockchain et de plus dans chacun des blocs il y a une transaction spéciale qui n’est avantageuse qu’à celui qui « découvre » le nouveau bloc. Dela sorte, même si tous les ordinateurs cherchent n+1, ce n’est pas systématiquement l’ordinateur le plus rapide qui trouve la solution. Par contre il est vrai que plus l’ordinateur est puissant, plus il augmente ses chances de trouver rapidement la solution. De sorte que chaque participant a une probabilité de trouver le nouveau bloc proportionnelle à la puissance de calcul de sa machine. Le réseau des Bitcoins est programmé pour ajuster la difficulté δn+1 de sorte qu’en moyenne il faut toujours attendre dix minutes avant de découvrir un nouveau bloc. Si le réseau constate que les blocs se rajoutent trop rapidement aux anciens, la difficulté augmente. Réciproquement, si les nouveaux blocs mettent en moyenne plus de dix minutes avant d’être découverts, la difficulté δn+1 diminue.

La ruine du joueur
De la sorte, si Alice essaye de réaliser une escroquerie à la double dépense après son achat de téléphone portable, elle va devoir :

1. déchirer des pages à la blockchain officielle R(T ’’)
2. écrire très rapidement des nouvelles pages
3. produire une blockchain plus grande que R(T’’).

Faisons maintenant l’hypothèse que la somme des puissances de calcul de toutes les personnes honnêtes présentes sur le réseau et cherchant à rajouter des nouveaux blocs est supérieure à la puissance de calcul de n’importe quel escroc et même supérieure à la somme des puissances de calcul de l’ensemble des escrocs. C’est notre seconde hypothèse que nous avions mise de côté au début de l’exposé. Dans ce cas, l’escroc Alice se retrouvera dans la même position qu’un joueur de casino qui joue avec un handicap de départ contre la banque à pile ou face avec une pièce (nettement) truquée en faveur de la banque : au départ, la banque est riche d’un certain nombre de pièces d’avance (autant que le nombre de pages entre R(T ) et R(T’’)). A chaque tour, une pièce d’un euro est lancée avec une grande probabilité pour que face apparaisse. Si c’est face, la banque remporte la pièce. Si c’est pile, c’est le joueur.
On peut montrer qu’avec un peu d’avance au départ, la probabilité pour que le joueur rattrape son retard sur la banque est quasi-nulle. Mieux, la probabilité tend exponentiellement vers zéro en fonction du nombre du handicap de départ. Concrètement, si Bob attend six vérifications dans la blockchain, il est sûr au final que la transaction d’Alice en sa faveur ne pourra être effacée de la blockchain.

L’attaque Sybil
Le fait de devoir payer de sa puissance de calcul pour prendre part à la maintenance du réseau n’a pas seulement pour avantage de rendre les tentatives d’escroquerie à la double dépense impossibles ou du moins, aussi compliquées que de battre la banque au casino (avec un handicap au départ et une pièce fortement truquée en faveur de la banque).

Dans un réseau pair à pair, une attaque possible par « déni de service » consiste à multiplier les identités frauduleuses. Par exemple, en 2014, le réseau Tor a été attaqué de la sorte par des inconnus (mais on suspecte qu’il s’agit de la NSA). Une telle attaque porte le nom d’attaque de Sybil du nom d’un best-seller aux États-Unis écrit en 1973 par Flora Rheta Schreiber.
Le livre raconte l’histoire d’une jeune femme, Sybil Dorsett, atteinte d’une maladie de la personnalité puisqu’elle se sent possédée par plusieurs identités différentes. Il s’agit d’une maladie aujourd’hui reconnue qui porte le nom de trouble dissociatif de la personnalité.
Le livre, jamais traduit en français a fortement marqué les esprits si l’on peut dire puisque peu de temps après sa parution, on a assisté à une épidémie de tels troubles de la personnalité...

Dans le réseau Bitcoin, cette attaque est impossible. Un attaquant peut certes multiplier les identités frauduleuses mais l’impact sera limité du fait du péage obligatoire pour écrire sur la blockchain sous forme de preuve de travail (cf. encadré).

Conclusion

D’autres blockchains 
Le Bitcoin est une solution au problème des généraux byzantins de Leslie Lamort dans le cas particulier où les transmissions ne peuvent être interceptées ou modifiées. Elle permet ainsi la création d’une monnaie digitale entièrement décentralisée, le Bitcoin. Plusieurs autres blockchains ont été proposées depuis la création du Bitcoin en janvier 2009 (Ethereum par exemple) mais à ce jour, toutes se ressemblent au sens où :

• le mécanisme de blockchain est celui expliqué par Haber et Stornetta ;
• les utilisateurs sont incités à rajouter de nouveaux blocs à la blockchain car le premier qui y parvient bloc gagne de l’argent ;
• chaque personne qui souhaite écrire sur la blockchain doit d’abord passer par un péage ;
• ce péage peut prendre la forme d’un puzzle à résoudre (dans ce cas, les puzzles sont tous différents d’une machine à l’autre et ce n’est pas toujours l’ordinateur le plus puissant qui gagne) 
• le mécanisme de récompense s’apparente à une loterie, il est aléatoire.

La blockchain comme notaire 
Signalons également qu’il est possible de rajouter d’autres messages que des transactions financières à l’intérieur des blocs de la blockchain. Le mode OP_ RETURN apparu avec la version 0.9 du Bitcoin en 2014 a grandement simplifié la méthode pour le faire...

Et après ? 
Le Bitcoin n’a pas été conçu initialement pour conquérir la planète mais seulement pour permettre à une communauté restreinte d’utilisateurs de s’échanger de la valeur en utilisant des pseudonymes. De fait, la nature même d’une blockchain (taille limitée des blocs, intervalle de temps fixe entre deux découvertes de blocs) pose des problèmes d’échelle qui rend son utilisation compliquée en l’état à grande échelle. De plus, les frais de transaction aux mineurs découragent d’éventuelles micro- transactions. Des solutions ingénieuses à ces problèmes dit de « scalabilité » ont été proposées récemment (« side-chain » et « lightning network » par exemple) et sont en cours de développement aujourd’hui.


L'auteur  
Ancien élève de l'École Normale Supérieure, docteur de l'École Polytechnique, Cyril Grunspan est l'auteur d'une petite biographie de Marcel Proust parue chez Portaparole. Il a travaillé pour une banque d'investissement et dirige aujourd'hui le département d'Ingénierie financière de l'École Supérieure d'Ingénieurs Léonard de Vinci. Avec Ricardo Perez-Marco (CNRS, Paris VII), il organise des séminaires universitaires sur les technologies "blockchain".
 
 
 
 

1265 vues Visites

J'aime

Commentaires0

Veuillez vous connecter pour lire ou ajouter un commentaire

Articles suggérés

Articles Revue TELECOM

Quels rôles jouent les technologies numériques dans l’évolution de la médecine du travail ? Groupe Santé#196

photo de profil d'un membre

Rédaction Revue TELECOM

01 avril

Articles Revue TELECOM

Le numérique au service de la décarbonisation #196

photo de profil d'un membre

Rédaction Revue TELECOM

01 avril

Articles Revue TELECOM

DC Brain nommé au prix de la croissance #196

photo de profil d'un membre

Rédaction Revue TELECOM

01 avril