La subjectivité peut-elle casser des briques ?
Le hashtag #BUIDL est apparu récemment sur Twitter en réaction à HODL, ce meme apparu fin 2013 incitant à conserver ses bitcoins dans le but avoué ou non de se payer un jour une Lamborghini. Ethereum n’est pas conçu pour les HODLers, pour les rentiers. Ethereum est destiné à faire des choses. Et incidemment à changer le monde – ou pas, qui sait ? On peut au moins essayer. Mais qu’est-ce qu’Ethereum a de si différent, au fond ?
Dans les meetups Ethereum, on parle souvent de Bitcoin au départ. C’est la première cryptomonnaie à avoir été viable, c’est celle dont le fonctionnement est le mieux étudié et éprouvé et il est l’aune à laquelle on mesure ce que l’on appelle les altcoins, les cryptomonnaies apparues après lui. Ethereum, comme Bitcoin, est selon la définition de Vitalik Buterin un réseau de consensus crypto-économique : un réseau pair à pair sans serveur central où tous les participants sans exception sont d’accord sur les décisions prises, où la cryptographie garantit le passé en empêchant la réécriture de l’histoire et où les incitations économiques garantissent la pérennité de l’activité. Tous les deux reposent sur un algorithme de consensus appelé preuve de travail (Proof of Work) consistant à trouver la solution à un problème mathématique qui permet de valider les blocs ajoutés à la chaîne ; tous les deux embarquent un langage de script à la Forth reposant sur des manipulations de pile. Il y a aussi des différences, bien plus importantes qu’entre Bitcoin et la plupart des autres altcoins, et ce sont ces différences que nous allons maintenant détailler.
Vertu de l’inflation
Commençons par l’aspect le plus évident des cryptomonnaies, pour certains le plus trivial. Les incitations économiques font que les jetons que l’on s’échange sur ces réseaux ont acquis un statut de monnaie. Les contradicteurs ne s’appuient sur aucune définition précise, mais il en existe pourtant bien une. Elle a été énoncée il y a 2300 ans par Aristote dans son Éthique à Nicomaque et n’a jamais été fondamentalement remise en question. Une monnaie est :
- Une unité de compte : cela a l’air évident, mais, par opposition, le riz avec lequel étaient payés les samouraïs n’était pas une unité de compte (difficile de compter les grains) ;
- Une réserve de valeur : un euro conserve à peu près sa valeur d’une année sur l’autre à quelques pourcents près.
- Un moyen d’échange enfin, faut-il préciser cette propriété ? Encore faut-il que l’on veuille bien se séparer de l’actif en question.
Reprenons les deux dernières propriétés, réserve de valeur et moyen d’échange. Il faut faire un choix de politique monétaire et on ne peut pas avoir le beurre et l’argent du beurre. Ce n’est pas évident. Cette notion a du mal à être acceptée et le milieu des cryptomonnaies a 50 ans de retard par rapport aux états, aux banques centrales et à l’état de l’art en économie. Vous l’avez remarqué, on parle de bon argent et de mauvais argent, le mauvais étant celui qui perd de sa valeur. De plus, les pics d’inflation ont laissé des traces dans la mémoire collective et l’école de Vienne, probablement traumatisée par la crise allemande des années 30, a décidé qu’il fallait résoudre ce qu’elle considérait comme un problème essentiel.
Une monnaie inflationniste est donc mal vue et, quand on en croise une qui, à l’inverse, se trouve faire réserve de valeur, on la thésaurise, on la HODL. Je vais prendre un exemple personnel pour illustrer ce sujet. À la mort de mon père, on a retrouvé un sac de pièces de 5 FF en argent. Il y en avait pour quelques milliers d’euros. Ces pièces avaient été perçues comme réserve de valeur au détriment de leur propriété de moyen d’échange puisque l’argent métal valait de plus en plus cher dans les années soixante, et c’est bien pourquoi elles ont finalement été remplacées par du cupro-nickel comme les pièces de 1 FF.
Si l’on veut qu’une monnaie serve de moyen d’échange, elle ne peut pas être déflationniste, sinon les utilisateurs vont la thésauriser et favoriser un autre actif à cet effet. La couche Lightning Network est une solution bienvenue à l’engorgement de la blockchain de Bitcoin mais ne transformera pas celui-ci en moyen d’échange privilégié. En revanche, l’émission continue prévue dans le White Paper (le Livre Blanc) d’Ethereum pourrait donner une inflation de l’ordre de 2% par an et assurerait donc que les ether seront utilisés sans hésitation pour les contrats, en plus du remplacement de ceux qui ont été brûlés ou perdus.
L’aspect « monétaire » d’Ethereum est donc radicalement différent et déplaît forcément aux adeptes de l’école autrichienne, très présents dans l’écosystème Bitcoin. Mais ce n’est pas la seule différente significative, loin de là. Sur le plan des fonctionnalités, Ethereum adopte également une approche tout autre.
Saut, arrêt, état
Bitcoin limite volontairement les fonctionnalités permises par son langage de script en interdisant les sauts, donc les boucles, essentiellement pour des raisons de sécurité. La machine virtuelle d’Ethereum dépasse ces limites en implémentant des instructions de saut, rendant ainsi son langage de script Turing-complet.
Mais se pose alors ce que l’on appelle le problème de l’arrêt : la fin d’un programme écrit par un tel langage n’est pas déterministe, il peut entrer dans une boucle infinie et on ne peut pas prévoir quand il s’arrêtera. C’est loin d’être idéal dans le contexte d’une blockchain où tous les nœuds doivent exécuter le code. La solution est – là encore – économique. Le gaz paye les traitements, ceci en ether. Un programme, hélas appelé smart contract, contrat autonome, s’interrompt automatiquement si le gaz alloué par l’utilisateur est dépensé. Si tout se passe bien, le gaz restant est rendu à l’utilisateur. Si le contrat tombe en erreur, le gaz est brûlé pour éviter une attaque de la chaîne par appel à des contrats conçus pour planter.
Dans Ethereum, le but n’est pas tant de transférer de la valeur que de permettre des traitements décentralisés ; ces traitements doivent cependant produire une valeur ajoutée en raison de leur coût. Mais toute valeur est subjective… Nous y reviendrons.
Une chose surprend quand on découvre le fonctionnement interne de cette blockchain : il n’y a pas d’UTXO, de résultats de transactions comme dans Bitcoin et les chaînes directement dérivées. On pourrait imaginer une cryptomonnaie dérivée de Bitcoin avec juste une instruction JUMP en plus. Honnêtement, cela n’apporterait pas grand-chose hormis des trous de sécurité. À la place de cette structure simple, on en a plusieurs, dont le compte et l’état. Cela change sa nature par rapport aux chaînes à UTXO et il faut noter que la particularité d’Ethereum la plus importante n’est pas d’être Turing-complet, c’est de gérer spécifiquement un état que le code des applications décentralisées peut lire et modifier à volonté. Des traitements complexes en plusieurs phases deviennent ainsi possibles.
Priorité à l’infrastructure et à l’écosystème
En fait, Ethereum est une plateforme. Un peu comme TCP/IP : par-dessus, se mettent en place des services d’infrastructure qui facilitent la mise en œuvre d’applications complexes.
C’est dans cet esprit qu’est apparu l’ENS qui correspond au DNS de l’internet : à une adresse numérique correspond une adresse humainement lisible en .eth. Les pendants pour Bitcoin, autrefois Namecoin puis le BNS de Blockstack, ne connaissent en comparaison aucune traction parce que l’aspect plateforme de Bitcoin est moins évident ; les adresses numériques suffisent à la tâche. L’ENS permet donc d’identifier des ressources par leurs noms, ce qui permet d’abstraire l’adressage, et c’est aussi indispensable pour interagir avec les humains.
Et des projets de systèmes de fichiers décentralisés se retrouvent mis en concurrence. Si IPFS est actuellement le plus fréquemment associé à Ethereum, le potentiel de Swarm, moins médiatisé, est pourtant très important car celui-ci est intégré à l’API Web3 : pas besoin de logiciel spécifique en plus de Geth ou de Parity. C’est aussi le premier à avoir inclus dès le départ cette notion d’incitation économique qui est essentielle pour la survie du réseau.
Autre protocole intégré à Ethereum, Whisper pour la communication inter-applications, que l’on peut approximativement comparer aux transferts de messages dans les communications inter-processus POSIX. Cet élément d’infrastructure n’est pratiquement jamais visible des utilisateurs, mais il fournit un système d’échange d’informations entre contrats autonomes leur permettant de collaborer et de créer une synergie.
On peut aussi lister, à défaut de pouvoir les détailler, les services de plus haut niveau actuellement disponibles comme Oraclize.it et Infura.io, les extensions de navigateur comme Metamask, les wallets comme MyCrypto.com et MyEtherWallet.com, les frameworks comme OpenZeppelin…
Les projets de couche de niveau 2 permettant de passer à l’échelle en traitant de multiples transactions hors chaîne avant d’y ancrer le résultat pullulent. On ne fera que citer Raiden, Plasma, les state channels, Truebit et les systèmes d’interconnexion de réseaux hétérogènes comme Cosmos et Polkadot.
En comparaison, et quoi qu’en disent les maximalistes, Bitcoin est bien moins riche en la matière et c’est normal : le besoin s’en fait moins sentir, la vocation du réseau est autre.
Vocation exploratoire
Beaucoup de choses ont été dites sur Ethereum et les dangers de ses contrats, c’est-à-dire du code exécuté sur la blockchain, et cette section entend répondre aux critiques souvent virulentes condamnant l’irresponsabilité de ses développeurs.
Tout d’abord, ces risques sont réels. Satoshi Nakamoto a refusé cette voie pour des raisons de sécurité. Comme dans tout ce domaine, il y a une dualité laboratoire / production et le risque que représente la manipulation d’un token possédant d’ores et déjà une certaine valeur est certain ; pour preuve, les millions partis en fumée à cause d’un contrat multisig pas assez revu et corrigé.
Il n’empêche qu’il faut se jeter à l’eau à un moment si on trouve des avantages à faire tourner du code en mode décentralisé ; ce moment ne change rien aux risques rencontrés. Pour utiles qu’elles soient, les études et les simulations ne remplacent pas l’expérience in vivo. L’emplacement par rapport à la chaîne principale non plus : un contrat ne sera pas plus sûr parce qu’il sera exécuté en couche de niveau 2 comme le veut le projet Rootstock car le résultat, qu’il soit juste ou qu’il soit faux, qu’il soit légitime ou non, sera finalement ancré dans la blockchain elle-même. Et avec une surface d’attaque multipliée par deux, puisqu’il y a deux environnements.
Une autre critique fait penser au proverbe : quand on n’a qu’un marteau, tout est un clou. On peut lire et entendre que Bitcoin suffit à tous les cas d’usage réels et que, si on ne peut pas faire avec Bitcoin telle et telle opération, c’est qu’elle est inutile voire néfaste. On peut mettre en parallèle à ce discours la légende du calife Omar ordonnant de brûler la bibliothèque d’Alexandrie en 640 puisque, si les livres contenaient ce qu’il y avait dans le Coran, ils étaient inutiles et, si ce qu’ils contenaient ne se trouvait pas dans le Coran, ils étaient impies. C’est bien une légende écrite six siècles après les faits, mais, dans le domaine de la blockchain, la réalité rejoint la fiction.
Enfin, une remarque personnelle. J’ai des heures de vol et les technologies que je trouvais intéressantes, celles dans lesquelles je voyais un avenir, ont souvent été défavorablement comparées à d’autres, considérées comme plus sûres. Je veux parler d’Unix par rapport au VMS de Digital Equipment (censément un vrai système professionnel, pas une lubie d’universitaires), d’IP par rapport à X.25 (censément un réseau sûr, pas comme ce truc de hackers), de Linux par rapport à Unix System V (censément un système solide, pas comme ce jouet)… La liste est longue. Parfois justifiée sur l’instant : le Morris worm, par exemple, le premier virus qui a mis par terre des milliers de machines de l’ARPANET en 1988, tournait sous Unix et en exploitait des failles. Et pourtant Unix est aujourd’hui le modèle de système d’exploitation le plus répandu. Et pourtant un téléphone Android tourne au-dessus d’un noyau Linux et communique avec le reste du monde par IP. Tout cela pour dire que si on avait interdit les technologies dangereuses dès le départ, il est possible qu’on ne se poserait pas actuellement de questions sur les cryptomonnaies, mais plutôt sur les techniques de taille de silex.
Casper et sharding, la rupture
Casper, le nouvel algorithme de consensus fondé sur le Proof of Stake est prévu pour cette année, du moins en tant que partie d’un système hybride avec le PoW où le PoS supplémentera la sécurité avant de progressivement le remplacer en tant qu’algorithme de consensus. Ensuite viendra le sharding, la fragmentation de la blockchain permettant de multiplier le nombre de transactions simultanées. C’est alors que le consensus de Nakamoto sera assuré par un mécanisme radicalement différent de celui que l’on connaît, dérivé de Bitcoin. Au lieu d’un algorithme de preuve de travail, c’est une preuve d’enjeu qui sera utilisée. Au lieu d’une blockchain unique, ce sont des centaines de chaînes coordonnées par une chaîne centrale qui recevront les transactions et les résultats des traitements.
Aucun argument contradictoire sérieux montrant a priori que le réseau était mis en danger par la preuve d’enjeu n’a encore été apporté, que ce soit de la part de Peter Todd, de Tuur Demeester ou de Paul Sztorc. En revanche, l’excellent article de Bitmex expose bien les interrogations encore en suspens. Ne nous voilons pas la face. Lors d’un tel saut vers l’inconnu, il faut s’attendre à des incidents, certains sûrement graves, étant donné qu’il s’agit d’une technologie non éprouvée. La vocation exploratoire d’Ethereum implique de prendre la mesure des aléas car, on l’a vu plus haut, ni les papiers universitaires, ni les précautions prises, ni la théorie des jeux, ni les preuves formelles ne remplacent la plongée en milieu hostile. L’expérience montre cependant que, la communauté des cryptomonnaies étant ce qu’elle est, nombreux seront ceux qui n’en tiendront aucun compte et fonceront tête baissée vers cette nouvelle frontière. Préparez le popcorn.
Soulignons par ailleurs l’une des particularités de Casper : la faible subjectivité. Ce concept se traduit par le fait qu’un nœud nouvellement arrivé ou revenant sur le réseau après plusieurs mois d’absence pourra déterminer quelle est la bonne branche de la chaîne, non seulement en interrogeant comme d’habitude ses « voisins » du réseau P2P, mais aussi en copiant dans le client le hash, l’empreinte d’un bloc en tant que point de contrôle à partir duquel la mise à jour pourra se poursuivre en toute sécurité. Cette empreinte pourra être fournie par un ami ou par un explorateur de chaîne, c’est-à-dire par un moyen extérieur au réseau. Encore une intervention humaine, encore une notion schismatique : comment ne pas penser à l’Objectivisme si présent dans le patrimoine génétique de Bitcoin quand un tweet de Vitalik Buterin parle des « sales subjectivistes » d’Ethereum lors du tweet storm sur l’histoire de Casper ?
Ethereum est impur
Un peu de philosophie. Ethereum est impur. Les sacs à viande que nous sommes sont impurs car imparfaits et Ethereum est destiné à interagir avec eux. Pas comme Bitcoin : je le rappelle, Bitcoin ne gère pas d’état « riche ». Une fonctionnalité comme nTimeLock (permettant d’attendre un certain bloc pour effectuer une transaction) ne change rien à l’affaire car il n’y a pas de processus comme celui d’une DAO où on doit attendre avant de passer à l’étape suivante. Ce qui est important ici n’est pas le délai (qui est aussi une notion Bitcoin), c’est l’étape. Bitcoin peut se permettre d’être pur car ses interactions avec les utilisateurs sont unitaires, atomiques : j’envoie un certain montant à X adresses, éventuellement sous Y conditions, et c’est fini. Ethereum embarque dans sa chaîne une connaissance qui sera prise en compte sur le long terme.
Or les humains codent des programmes avec des erreurs, des bugs. C’est ce que l’on appelle la loi de l’entomologie cybernétique : there’s always one more bug. Ces programmes sont trop souvent mal spécifiés. Parfois même, le concepteur ne sait pas ce qu’il veut ou se laisse piéger par ses biais et part sur une fausse piste. Les tests ne sont jamais totalement exhaustifs. Et malgré ce que l’on considère comme la meilleure assurance qualité du monde, chaque nouvelle version des logiciels de la NASA finit par révéler en moyenne un bug, un seul, mais un bug tout de même.
Il faut donc se poser la question : et si quelque chose se passe mal dans un contrat, si le résultat de l’exécution s’avère néfaste par des erreurs de conception ou d’implémentation, que peut-on faire ? On doit alors trouver un palliatif pour en atténuer les conséquences, malgré le précepte de Lawrence Lessig code is law si souvent invoqué, malgré l’intention initiale d’écrire des programmes non censurables, car impossibles à arrêter.
Si cette imperfection, cette impureté n’est pas souhaitable dans l’absolu, elle est inévitable pour qu’Ethereum trouve sa place dans la société, qui est imparfaite, et ceux qui pensent autrement, que la société devrait être parfaite, voire qu’elle pourrait être rendue parfaite par des smart contracts, sont des ayatollahs.
La théorie selon laquelle les lois imposées par du code valent mieux que les lois humaines et doivent rester immuables s’écroule puisque le code est conçu et écrit par des humains, pour des humains. Elle perd tout son sens. C’est pourquoi, ayant été opposé au départ à un hard fork correctif suite au hack de TheDAO, je m’y suis rallié. Et c’est pourquoi on doit aussi réviser la notion de consensus, l’étendre.
Extension du domaine du consensus
Le projet Ethereum évolue par hard forks. Au contraire d’un soft fork comme Segregated Witness, un hard fork implique que l’ancien code ne peut plus traiter correctement les nouvelles données, les nouveaux blocs, à partir du moment où le nouveau code les produit. Ce mode de fonctionnement paraît incompréhensible, voire hérétique pour une partie de la communauté des cryptomonnaies. C’est négliger un facteur essentiel de la stabilité d’un tel réseau : le consensus social qui supplémente le consensus technique imposé par le protocole. Si les mineurs, les utilisateurs et les plateformes d’échange sont d’accord sur la mise en œuvre d’un hard fork, tout se passe à merveille.
Ce concept de consensus social rend compte de bien des phénomènes qu’il est de mise actuellement d’expliquer, le cas échéant de vouloir résoudre, par ce que l’on appelle la gouvernance. On peut comprendre qu’une gouvernance soit nécessaire pour les réseaux en DPoS comme Dash ou EOS (on ne jugera pas ici de l’intérêt – s’il y en a un – du DPoS) à cause du mécanisme de vote nécessaire à leur fonctionnement, mais, moins on parle de gouvernance dans le contexte d’un réseau vraiment décentralisé, moins on se perd en considérations oiseuses.
Tous les hard forks ne se produisent pas sans douleur. En juin 2016, un individu malveillant a réussi à détourner pour 50 millions de dollars en ether du fonds d’investissement basé sur des contrats autonomes appelé TheDAO grâce à un empilement de bugs et de subtilités mal comprises de l’environnement et du langage de programmation. Un hard fork correctif a donc été proposé par Vitalik Buterin pour pallier cette malversation et il a été globalement accepté. Comme il s’agissait de réécrire l’historique de la blockchain, violant ainsi un principe fondateur jusque là accepté par tous, une controverse terrible a éclaté dont on perçoit encore les traces aujourd’hui dans les nombreux trolls qui ressurgissent dès que quelques millions s’évaporent, le thème central en étant : « c’est pas grave, Vitalik va faire un hard fork et hop, plus de problème ». Trolls will troll.
Sauf que ce n’est pas bien entendu pas si simple. Je le répète, il existe de fait un consensus social derrière le consensus des machines, celui des mineurs, des utilisateurs et des plateformes d’échange. Ici, le principe fondateur d’immuabilité étant violé, le consensus social était rompu, induisant une possibilité de rupture du consensus au niveau protocole et l’éclatement en deux chaînes. Ethereum Classic en a résulté avec pour objectif de reprendre la vision originelle d’un code immuable, impossible à arrêter. On l’a vu plus haut, c’est un rêve, un idéal, qui s’il était possible impliquerait de plus que l’on préfère être gouverné par des machines plutôt que par des humains.
Incidemment, il ne s’est pas produit autre chose lors du fork de Bitcoin Cash, qui prétend lui aussi retrouver l’esprit originel du projet tel que défini par le titre du White Paper de Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System. Les développeurs du groupe appelé Bitcoin Core et leur entourage ont si mal communiqué qu’ils ont retourné contre eux une partie des utilisateurs à force d’explications méprisantes et incomplètes, ce que Jihan Wu de Bitmain et Roger Ver de bitcoin.com ont pu exploiter.
Autre erreur fondamentale commise par ces deux projets alternatifs : avoir négligé l’importance des développeurs. D’ailleurs aucun des deux n’avait d’équipe de développeurs à la hauteur de celles des projets directement concurrents ; ce n’était pas du tout leur préoccupation. Or ce sont les développeurs qui, bien que hors du réseau, donnent les orientations, ce sont eux les décideurs quant au protocole, c’est autour d’eux que se constitue le consensus social.
Cas d’usages
Toutes ces différences économiques, techniques et philosophiques ont naturellement des conséquences sur les cas d’usages. D’ailleurs, à quoi sert Ethereum ? Il y a très longtemps maintenant, en… 2016, on imaginait énormément de choses, dans tous les domaines, on allait blockchainiser l’überisation de je ne sais quoi, et puis le soufflé est retombé. On ne voit pas beaucoup de killer apps, ce qui s’est produit avec Visicalc pour l’Apple II ou Mosaic pour le web, d’où un grand nombre de critiques sur le thème « demain on rase gratis ».
On connaît bien sûr les ICO, un moyen de diffuser les tokens servant à un projet, qui s’est transformé en système de financement participatif avec évidemment de nombreuses dérives. 99% des projets seraient donc soit inutiles soit des arnaques ? Oui. Un peu comme le web au début : souvenez-vous de Pets.com et de toutes ces startups qui vendaient du vent. C’est dans les règles du jeu et il ne faut pas jeter le bébé avec l’eau du bain.
Et puis on a vu surgir les Cryptokitties, un jeu avec des chats virtuels. C’est peut-être idiot, mais l’adoption a été massive, un vrai succès. Cela montre bien que toute valeur est subjective. Il est vrai que le réseau a été engorgé et que les transactions ne passaient pas. Surprise : une blockchain, actuellement, ça ne scale pas ; en bon français, ça ne passe pas à l’échelle.
Un certain nombre d’applications diverses sont également apparues : financières comme les DEX (plateformes d’échange distribuées), Melonport, VariabL, et dans d’autres domaines Augur, Decentraland, iEx.ec et Golem ainsi que Kleros qui ont encore tout à prouver. Si elles n’ont pas encore de problème d’échelle, leur succès éventuel en créera.
Un mot également sur les blockchains privées, où les cas d’usage réels s’avèrent aujourd’hui bien plus limités que ce que l’on envisageait en pleine hype mais où l’activité reste soutenue. Ethereum s’y taille la part du lion. Même si l’on n’y prête qu’un intérêt distrait, il est indéniable que l’afflux d’argent des entreprises vers les développements en Solidity ainsi que l’expérience acquise par des centaines de développeurs professionnels dans le domaine des contrats autonomes renforcent l’écosystème global.
Il faut maintenant parler de SpankChain. Au-delà de l’aspect sulfureux du projet, le cas d’usage est parfait : la désintermédiation permet de court-circuiter les cyber-maquereaux en fournissant une solution décentralisée économiquement avantageuse par rapport aux solutions centralisées actuelles. Les webcameuses, car c’est de cela qu’il s’agit, se font directement payer par un contrat sur la blockchain, la commission prise par les auteurs du contrat étant minimale. De plus, les organismes de paiement habituels comme VISA ou PayPal ne peuvent plus bloquer arbitrairement les paiements pendant des mois comme cela s’est déjà produit dans ce domaine. Historiquement, quand l’industrie du X s’est intéressée à une nouvelle technologie, elle a donné par son implication un coup d’accélérateur terrible. En l’occurrence, l’expérience permettra de valider entre autres les conditions de passage à l’échelle par la couche de niveau 2 appelée Plasma.
Sex & Drugs & … ?
Récapitulons. La première application médiatisée des cryptomonnaies a été le commerce de drogues et d’armes sur ce que l’on appelle le Darknet, où Bitcoin a servi de monnaie d’échange jusqu’à ce que la connaissance des propriétés de traçabilité de son registre immuable rende son usage moins attrayant. Puis Ethereum est arrivé : oui bien sûr, il a donné naissance aux ICO et aux Cryptokitties, mais l’industrie du sexe, généralement légale, mais mal vue, est la vraie deuxième étape de l’adoption. Un motif se dessine, le passage de l’illégalité pure et simple vers un domaine légal, mais méprisé, une zone grise où des intermédiaires sans scrupule profitent de la situation et où les paiements peuvent être arbitrairement censurés. Ce que l’on peut percevoir comme une tendance pourrait-il se poursuivre, vers des secteurs de moins en moins controversés ?
Un exemple : le secteur de l’économie mutualiste et de répartition, partout où l’on collecte des fonds pour les redistribuer selon des règles de gestion complexes, en toute transparence, paraît une cible idéale pour les DApps, ces applications décentralisées fondées sur la blockchain Ethereum. Pourquoi n’en voit-on pas encore, alors ? Il faut déjà pouvoir passer à l’échelle, et puis cela implique une telle rupture avec les pratiques existantes que nous ne sommes pas encore prêts. Mais ce n’est pas le plus important.
On parle ici de personnes dont il faut gérer l’identité ainsi que les droits et devoirs associés, de manière propre, sans laisser fuiter d’info dont des tiers malveillants pourraient tirer parti. Ces personnes veulent être en mesure de présenter certaines facettes de leur identité selon les circonstances et rien d’autre. C’est extraordinairement difficile à mettre en œuvre surtout de manière décentralisée, ultra-sensible, peu défriché, et les outils nécessaires ne sont pas encore prêts pour la production. Et nous n’avons pas encore abordé le problème des réglementations concernant le droit à l’oubli, le RGPD, etc. alors que la validité des contrats autonomes dans nos sociétés dépendra de leur faculté à respecter la loi ; or, dans une blockchain, rien n’est oublié.
Les défis de l’identité numérique
L’identité civile, officielle, nationale, n’est donc pas gérable directement dans la blockchain. On peut imaginer d’utiliser un oracle, au sens cryptographique de boîte noire extérieure, par exemple le serveur d’un tiers de confiance avec tous les risques inhérents d’indisponibilité et de compromission possible qui en découlent.
Il existe heureusement une autre option. On peut concevoir le cadre d’une identité purement numérique, décorrélée de la réalité officielle. Ce cadre s’appelle la Self-Sovereign Identity ou identité auto-souveraine et, si elle n’existe encore qu’à l’état de concept, son implémentation sera guidée par les travaux de spécification de Rebooting the Web-of-Trust.
Au lieu de de l’identité « nationale », il s’agit de gérer des informations indépendantes sur la blockchain Ethereum ou sur des supports liés, exclusivement utilisées dans l’environnement des cryptomonnaies, pour créer des ponts entre les deux formes d’identité permettant l’intégration des contrats autonomes dans la société civile.
Comment créer ces ponts ? En utilisant des ZKP, zero-knowledge proofs ou preuves à divulgation nulle de connaissance qui permettent de prouver une assertion sans exposer les données associées. Comme pour Zcash, que l’on peut voir comme un banc d’essais pour Ethereum, elles ont d’abord été intégrées afin d’assurer la confidentialité des transactions sous forme de zk-SNARK, appelées il y a peu par Vitalik Buterin « the single most under-hyped thing in cryptography right now ». Des DApps peuvent s’en servir à d’autres fins, pour demander par exemple : « le détenteur de telle adresse Ethereum est-il majeur ? », ou « ressortissant de l’Union européenne ? », ou « membre de telle organisation ? », les preuves ou éléments de preuves se trouvant au sein de la chaîne elle-même ou, de préférence, dans un wallet conservé par l’utilisateur.
Remarquons que de par la nature des informations officielles, civiles, à valider, un tiers de confiance reconnu est indispensable ; incidemment, le problème du trusted setup des zk-SNARK, l’initialisation par des personnes de confiance, s’efface de ce fait. Ce tiers de confiance peut être un état (dans un avenir lointain), mais aussi des prestataires privés comme il en existe déjà pour les autorités de certification employées dans les PKI. Autre possibilité, une simple attestation (« Alice a 27 ans ») est signée cryptographiquement par une banque ou une autre institution digne de confiance. Une application fournit un élément (une proving key) permettant à Alice de constituer la preuve de son côté, débloquant ainsi l’accès après vérification par l’application sans dévoiler la donnée sous-jacente, l’âge d’Alice. D’autres scénarios sont sûrement possibles pour atteindre le même but, le contrôle de l’identité numérique et des données associées par son seul détenteur, lequel est alors en mesure de ne présenter que les informations strictement nécessaires à tel ou tel service.
Bien sûr, il y aurait des détournements, des vols de clef et donc d’identité, des failles dans les contrats autonomes, mais rien ne permet d’affirmer que la situation serait pire qu’actuellement quand des serveurs de sociétés commerciales se font massivement hacker pour obtenir des informations confidentielles. D’ailleurs, des palliatifs sont déjà étudiés, par exemple par le projet uPort pour recouvrer une identité perdue.
Et bien sûr, ce système serait imparfait, loin de l’idéal cypherpunk des smart contracts remplaçant les organisations traditionnelles pour éviter tout risque de dérive (collusion, corruption)… si tant est que ce soit possible. Il faut cependant être réaliste. Si un système d’identité décentralisé, fût-il imparfait, n’est pas mis en place, cela revient à laisser la gestion de notre identité numérique à Facebook et à Google.
Tout cela semble bien ambitieux, loin de l’objectif initial des cryptomonnaies. Pourtant la vision des activistes de ces milieux, de ces projets, a toujours été politique. La création d’une monnaie électronique indépendante des états n’est pas un accident mais provient en droite ligne du Cypherpunk Manifesto de Eric Hughes en 1993. Les travaux sur la Self-Sovereign Identity ont la même origine. Ceux-ci, combinés aux projets d’infrastructure et de passage à l’échelle, sont indispensables pour qu’Ethereum puisse agir le plus généralement possible en tant que force de décentralisation, de contre-pouvoir, en portant des applications de plus en plus complexes : #BUIDL.
Merci à Simon Polrot pour sa relecture et ses commentaires, ainsi qu’à Thibaut Schaeffer notamment pour ses explications longues et détaillées sur les ZKP et la gestion de l’état.
Bravo pour cet article éclairant qui propose une vision d’Ethereum sous différents prismes: économique, philosophique…