Intégrité extrême dans un monde décentralisé

Initialement publié en anglais par StarkWare le 1er mars, 2022

Un jeu de team building. Tout comme l'intégrité est importante dans les activités quotidiennes comme celle-ci, elle est vitale pour l'avenir de la technologie décentralisée.

Une vision de la blockchain qui impressionnerait le créateur de Narnia, par Eli Ben-Sasson

  • Selon CS Lewis, l'intégrité consiste à "faire ce qui est juste, même si personne ne regarde".
  • Une cryptographie de pointe permettra à la blockchain de gérer les données de chacun conformément à cet idéal.

Je suis occupé à résoudre un problème qui n'a pas besoin d'être résolu. C'est ce que les gens disent souvent, en réalisant que je quittais l'université pour travailler dans la blockchain.

Un universitaire sensé devrait certainement savoir qu'il ne faut pas se laisser emporter par cet engouement ! Je dirai d'emblée que j'ai été attiré hors de l'université par la conviction que la blockchain va se développer de manière significative, et par la conviction que je peux lui permettre de fonctionner avec une intégrité informatique à grande échelle, armé d'une simple recherche mathématique. Qui plus est, il ne s'agit pas d'une prédiction abstraite : Je suis cofondateur de StarkWare, où mes collègues et moi avons mis au point une série de technologies blockchain avancées à partir de ces mathématiques.

La raison de ce changement de carrière est que je veux que la blockchain apporte quelque chose qui fasse toute la différence dans la condition humaine. Je veux qu'elle remplace les institutions centralisées qui servent d'intermédiaires à toutes nos transactions financières par un nouveau système plus transparent, plus équitable et plus démocratique, tout en fonctionnant avec le même niveau d'intégrité que celui promis par les grandes sociétés financières (voire un niveau d'intégrité accru).

Le grand C. S. Lewis, qui a longuement écrit sur l'intégrité et d'autres valeurs nobles pour les adultes et par le biais de ses personnages pour enfants dans les Chroniques de Narnia a saisi le pouvoir du mot intégrité. Il l'a défini comme "faire ce qui est juste, même lorsque personne ne regarde". C'est précisément ce que j'espère de toute personne qui manipule mes fonds ou tout calcul lié à ceux-ci : Que tout soit conforme aux normes de ce que j'appelle l'intégrité informatique.

Les informaticiens visent cet objectif bien avant la blockchain, même s'ils utilisent un langage différent. Dans un article fondateur de 1991, quatre informaticiens théoriciens László Babai, Lance Fortnow, Leonid Levin et Mario Szegedy, prévoient une situation dans laquelle "un seul PC fiable peut surveiller le fonctionnement d'un troupeau de superordinateurs travaillant avec des logiciels peut-être extrêmement puissants mais peu fiables et du matériel non testé". Pour reformuler le défi avec la formulation de Lewis, je veux m'assurer que lorsqu'il s'agit de la myriade de calculs qui facilitent nos transactions financières, la "bonne chose" est toujours faite.

Mais certaines personnalités très sérieuses ont avancé un argument, qu'il est important de prendre en considération, selon lequel la blockchain est un changement pour le plaisir de changer. Qu'elle n'apporte pas de grands avantages, que le système actuel est très bien, et que "si ce n'est pas cassé, il ne faut pas le réparer". Cet argument est le système actuel qu'il favorise et méritent d'être examinés ici.

1. Des parties dignes de confiance jouent des jeux répétés

Au cours du siècle dernier, nous nous sommes habitués à ce que des institutions de confiance comme les banques gèrent et autorisent nos interactions financières. Aujourd'hui, il existe un large éventail de ces institutions, notamment Visa, SWIFT et de nombreuses bourses.

L'avantage est que ces institutions prennent en charge le travail difficile et le casse-tête de tous les calculs et de la tenue des registres. L'inconvénient majeur est que nous sommes tous censés leur accorder une confiance totale, sans aucune surveillance de notre part. Pourquoi devrions-nous nous contenter de cela à une époque où la technologie annonce une solution bien plus transparente, à savoir la blockchain ?

L'économiste Paul Krugman, lauréat du prix Nobel, donne une réponse intéressante. Il affirme qu'il existe déjà une "technologie" qui permet au grand public d'être sûr que les institutions de confiance agissent avec intégrité.

Il utilise le mot "technologie" de manière créative, pour parler de réputation. "Une façon de voir les choses est que la réputation est une technologie", a-t-il déclaré. "Nous résolvons de nombreux problèmes dans l'économie en transformant ce qui pourrait être des jeux à un coup dans lesquels les gens prennent littéralement l'argent et s'enfuient, et en les transformant en jeux répétés dans lesquels les gens sont incités à bien se comporter dans cette période afin que vous leur fassiez confiance pour la période suivante, et ainsi de suite dans le futur."

Selon lui, les banques et autres institutions de confiance nous servent bien. Les partisans d'un passage aux crypto-monnaies disent : "Jetons la technologie sociale des jeux répétés et de la réputation, et essayons de construire un système qui va fonctionner purement sur la base d'un algorithme qui nous assure que nous avons ce dont nous avons besoin."

C'est un argument important, mais à mon avis, il ne résiste pas à un examen approfondi. La blockchain est trop prometteuse pour être rejetée. Et il n'est tout simplement pas vrai que la situation actuelle nous sert bien. Si les banques sont l'exemple même de l'institution de confiance (et certains peuvent contester cette affirmation), rappelons qu'au moins 1,7 milliard d'adultes dans le monde ne sont toujours pas bancarisés, c'est-à-dire qu'ils n'ont pas accès à une banque ou à une institution financière. Ils découvrent peu à peu les crypto-monnaies. En Afrique, 1,4 million de personnes détiennent des crypto-monnaies, et ce chiffre est en constante augmentation. En outre, jusqu'à il y a quelques décennies, presque toutes les transactions financières entre les personnes et les petites entreprises se faisaient sans l'intermédiation des banques. La transition moderne vers la monnaie électronique a canalisé presque toutes les transactions à travers un petit groupe d'institutions trop grandes pour faire faillite, ce qui leur a permis d'engranger des profits énormes et immérités. Donc, à mon sens, le système actuel d'institutions de confiance laisse place à une amélioration significative via la blockchain.

2. Adopter la blockchain telle quelle

La blockchain ouvre un tout nouveau monde de transactions financières. Il s'agit d'un système qui repose sur l'idée de "grands livres distribués", plutôt que sur des institutions de confiance. Ces grands livres atteignent l'intégrité informatique en vertu du fait qu'ils sont largement partagés et examinés. En d'autres termes, les transactions ne sont pas vérifiées par un banquier ou une autre partie "de confiance", mais plutôt par la force du nombre.

C'est un progrès remarquable. Alors pourquoi ne puis-je pas m'en satisfaire et adopter la blockchain telle qu'elle est, sans vouloir changer son fonctionnement ?

La réponse est qu'un obstacle de taille se dresse sur le chemin de la blockchain : elle doit passer être scalable. Les blockchains ne peuvent généralement traiter que 10 à 15 transactions par seconde, ce qui signifie qu'elles sont tout simplement trop petites pour devenir omniprésentes.

La plupart des gens ne sont pas conscients de la crise de scalabilité de la blockchain, mais elle concerne tout le monde. Après tout, pourquoi n'assistons-nous pas au développement d'applications cryptographiques pour un usage quotidien et ne disposons-nous pas de technologies permettant aux gens normaux de tirer pleinement parti de la puissance de la blockchain ? Lorsque la blockchain croule sous le poids de la demande actuelle, ce qui la rend lente et fait grimper en flèche les frais de transaction, la situation n'est pas propice à l'innovation dont nous bénéficierons tous. Lorsque la scalabilité créera un espace de respiration sur la blockchain, nous assisterons à un boom des applications cryptographiques.
Examinons les rouages du système pour comprendre ce qui empêche la scalabilité des blockchains.

Les blockchains établissent en fait l'intégrité de la même manière que vous le faites avec votre serveur dans un restaurant. Il ou elle présente un chèque avec la nourriture que vous avez commandée, jouant ainsi le rôle de "contrôleur". Vous vérifiez le calcul, ce qui fait de vous le "vérifieur", et vous vérifiez l'intégrité du calcul en rejouant naïvement le même calcul effectué par le prouveur. Désormais, vous établissez l'intégrité par "relecture naïve".

Les blockchains fonctionnent de manière similaire. Chaque transaction soumise à la blockchain est traitée comme un contrôle de restaurant et chaque nœud de la blockchain doit inspecter ces transactions en rejouant naïvement leur calcul. L'avantage de cette méthode est qu'elle ne nécessite pas de "parties de confiance" : Si quelqu'un triche, chaque nœud le voit.
L'inconvénient est que beaucoup de nœuds effectuent beaucoup de calculs. De plus, ce modèle à forte intensité de calcul limite également la scalabilité de la blockchain, avec son faible plafond de transactions par seconde. Ce problème pourrait être résolu si l'on décidait que toutes les machines de la blockchain devaient être des superordinateurs dotés de nombreux cœurs et d'un énorme espace disque. Mais cela rendrait rapidement les blockchains similaires à l'ancien système qu'elles cherchent à perturber, remplaçant les banques par un petit ensemble de superordinateurs et les entreprises qui les gèrent. Pour éviter cela, un principe clé salué par les blockchains véritablement décentralisées est la responsabilité inclusive, qui dit que vous ou moi devons pouvoir utiliser nos maigres ordinateurs portables pour vérifier l'intégrité de l'ensemble de la blockchain.

Ainsi, la grande force de la blockchain, le fait que l'archivage soit totalement fiable grâce à la nature inclusive de la vérification de son intégrité, se fait au détriment du débit. Dans le même ordre d'idées, une démocratie où chaque décision est prise par référendum réalise un processus très inclusif, mais qui est coûteux en termes de temps, d'énergie et de débit.

C'est pourquoi il y a un mécontentement dans la communauté blockchain, et un intérêt énorme pour les solutions de scalabilité. Dans le discours animé qui est en cours sur la meilleure façon de procéder, mon équipe et moi-même sommes connus pour être de grands partisans de la mise à l'échelle, mais de grands opposants à tout compromis sur la sécurité, la vitesse ou d'autres avantages actuellement associés à la blockchain. La philosophie de StarkWare consiste à évoluer tout en conservant une intégrité informatique totale.

La question de savoir comment, exactement, mettre à l'échelle la blockchain, semblera être une technicité non pertinente pour beaucoup aujourd'hui. Mais, comme d'autres grands choix d'infrastructure dans la société, comme la façon dont nous organisons une démocratie ou la structure des systèmes fiscaux et sociaux, elle est susceptible d'avoir un impact significatif sur nous tous.

3. Vous compliquez trop les choses - Faites confiance à une puce.

N'y a-t-il pas une solution qui nous saute aux yeux ? Les blockchains nous libèrent de la nécessité de faire confiance à des entités gérées par des humains, comme les banques. Dans cet esprit, si nous voulons les mettre à l'échelle, nous pouvons peut-être le faire sans intervention humaine et faire confiance au matériel.

Les puces appelées "environnements d'exécution de confiance" (TEE) offrent une telle solution. Si vous voulez écrire de nombreuses transactions sur la blockchain, il suffit d'envoyer toutes leurs entrées à un TEE, qui crache une clé signée qui est écrite sur la chaîne et implique que le TEE les a toutes traitées correctement. Ainsi, les nœuds de la chaîne n'ont pas besoin de vérifier de longs calculs, mais plutôt de courtes clés signées, qui attestent de l'intégrité de nombreuses transactions. Moins de données sont ajoutées à la chaîne, moins de calculs sont nécessaires pour vérifier l'intégrité, et grâce à cela, la blockchain peut être mise à l'échelle sans avoir besoin de remplacer les ordinateurs portables qui la vérifient par des superordinateurs.

Cette solution semble parfaite, mais elle ne l'est pas. Supposons ce qui n'est pas toujours vrai que les puces soient conçues et fabriquées selon les normes les plus strictes et que la sécurité soit aussi élevée que nous pouvons l'espérer. Pourtant, chaque puce repose sur une clé secrète qui se trouve physiquement à l'intérieur. L'extraction de cette clé est extrêmement difficile et coûteuse, mais si les gains sont énormes, il y aura toujours des gens pour essayer. Pour insister, une fois qu'une puce TEE est envoyée dans la nature, elle n'est plus sous le contrôle du fabricant et peut tomber entre des mains malveillantes, tout comme la clé secrète sur laquelle repose sa sécurité. Cela signifie que même si une attaque n'est pas viable aujourd'hui, elle peut le devenir dans un an ou deux, et le système sera alors compromis.

En 2010, c'est un ancien spécialiste de la sécurité de l'armée américaine, Christopher Tarnovsky, qui a identifié une faiblesse dans la puce SLE66 CL PE "inviolable" d'Infineon. Il a utilisé un microscope électronique, de l'acide et d'autres outils. Bien qu'il ne s'agisse pas d'articles ménagers, ils sont certainement à la portée de quiconque souhaite compromettre un système financier.

À mesure que la technologie progresse, il en va de même pour les utilisations malveillantes, et l'on peut supposer qu'il sera de plus en plus facile et bon marché de casser ces puces. Plus la valeur des transactions qui dépendent de leur utilisation sera élevée et plus le coût de leur destruction sera faible, plus les incitations augmenteront.

4. Les mathématiques de la confiance

La situation idéale pour la blockchain est que ses nœuds soient en mesure de se porter garants de tout ce qui est ajouté à la chaîne mais en exerçant un effort de calcul minimal. Si cette combinaison est atteinte, cela signifie qu'ils auront la capacité d'ajouter plus d'éléments à la chaîne, et que la blockchain peut être massivement mise à l'échelle.

La branche de recherche sur laquelle je me concentre offre un moyen de générer une "preuve" par les seules mathématiques pour attester de l'intégrité de nombreuses transactions. Au lieu d'envoyer ces transactions pour qu'elles soient vérifiées par tous les nœuds du réseau, un seul vérifieur les traitera et soumettra une preuve succincte de l'intégrité de son calcul à la blockchain.

Parler de preuves semble abstrait, alors soyons plus précis. Il s'agit de protocoles conçus pour convaincre toute personne qui les observe que les affirmations en question sont correctes, un peu comme le protocole public et transparent mis en œuvre dans un tribunal est conçu pour nous convaincre que justice a été rendue. Le système de preuve que j'ai co-inventé, STARK, demande au prouveur de soumettre une preuve qui est un journal annoté du calcul effectué, pour attester de l'intégrité de plusieurs milliers de transactions.

Pour que le vérificateur puisse vérifier la validité du calcul, il n'est pas nécessaire de répéter le calcul effectué par le prouveur, ni de lire le journal soumis. Au contraire, le vérificateur effectue un échantillonnage aléatoire des entrées de ce journal quelques kilo-octets et les modèles de nombres dans ces échantillons fournissent toutes les informations nécessaires pour vérifier l'intégrité du calcul. Si le calcul est valide, et seulement s'il est valide, le vérificateur jugera la preuve légitime et acceptera les transactions sur la blockchain.

Il n'y a pas de matériel qui peut être piraté, mais seulement des mathématiques publiées, examinées par des pairs et soumises à une vérification publique, ainsi que leur mise en œuvre dans un code logiciel accessible au public. Seul ce logiciel vérifie la preuve, et l'intégrité informatique tient même si les preuves sont produites par des parties mal intentionnées utilisant du matériel défectueux.

J'ai longtemps rêvé d'utiliser la "vérité" des mathématiques qui sous-tend ces merveilleux systèmes de preuve pour permettre aux gens d'avoir davantage confiance dans les systèmes qui régissent la vie moderne, y compris, mais sans s'y limiter, les systèmes financiers. Les systèmes de preuve STARK rendent la vérité aussi inaltérable que les lois de la nature. De la même manière que la gravité pousse les objets vers le sol, les preuves STARK obligent les "impuretés" informatiques à se révéler au grand jour.

Les prédécesseurs théoriques des systèmes STARK ont été étudiés avec vigueur depuis les années 1980, mais les constructions initiales étaient trop inefficaces pour être utilisées dans la pratique. Une décennie entière de ma carrière de chercheur a été consacrée à surmonter cet obstacle, d'abord théoriquement, puis dans la pratique. Et je ne savais pas exactement comment j'allais appliquer mes recherches dans le "monde réel". Ce n'était pas une recherche conçue pour les blockchains, mais en 2013, j'ai assisté à une conférence sur le bitcoin à San Jose et j'ai commencé à comprendre qu'elle était parfaitement adaptée à leurs défis. Aujourd'hui, la scalabilité des blockchains basée sur les mathématiques progresse rapidement grâce aux efforts de nombreuses équipes excellentes (Zcash, Aztec, The Matter, Hermez et Miden en sont des exemples notables), et j'ai l'expérience exaltante de travailler avec une équipe brillante chez StarkWare qui non seulement donne vie à notre recherche, mais l'élargit et innove, de manière ingénieuse, que je n'aurais jamais pu imaginer.

L'une de ces innovations récentes est StarkNet, un réseau ouvert qui permet d'augmenter la capacité de tous les développeurs de logiciels qui construisent sur Ethereum. Tout le monde peut l'utiliser aujourd'hui pour déployer n'importe quel "smart contract", terme utilisé pour les programmes informatiques qui fonctionnent sur les blockchains. Et tout utilisateur peut envoyer des transactions à ces contrats intelligents. StarkNet n'est qu'une des nombreuses solutions utilisant des preuves mathématiques et cryptographiques pour valider l'intégrité des blockchains, formant une classe de solutions de scalabilité appelée Validity Proofs.

5. L'approche des Optimistics

Il existe une autre approche intéressante pour mettre à l'échelle les blockchains, basée sur les preuves de fraude plutôt que sur les preuves de validité. Comme l'approche STARK, l'approche Fraud Proof libère les nœuds de la blockchain de l'obligation d'effectuer un "naive replay" pour chaque transaction, en créant des lots de transactions dont on suppose de manière optimiste qu'elles sont correctes. Toutes les données brutes nécessaires à la vérification des transactions sont téléchargées, ou "rolled up", sur la blockchain, ce qui conduit à ce que nous appelons des "Optimistics Rollups".

Dans les systèmes basés sur les preuves de fraude, les nœuds Optimistic Rollup surveillent les transactions traitées et peuvent lancer un défi s'il semble y avoir un problème avec une mise à jour proposée à la blockchain.

Si cela se produit et que le défi est correct, les calculs inexacts sont invalidés et l'horloge est remontée jusqu'au dernier moment où tous ces nœuds conviennent que tous les calculs sont valides (la partie fautive paie une amende et la partie détectante reçoit une récompense).

L'optimisme mène à l'efficacité. Les transactions étant supposées valides, peu d'effort de calcul est dépensé pour chacune d'entre elles, ce qui signifie que les preuves de fraude sont apparemment bien adaptées à un environnement où la scalabilité est limitée.

Mais l'optimisme peut avoir des conséquences désastreuses, s'il conduit à un grand livre immuable portant une fausse déclaration, que ce soit à la suite d'une erreur ou d'une malveillance.

Si une déclaration erronée est véritablement négligée ou manquée parce qu'un attaquant parvient à réduire au silence les utilisateurs qui tentent de signaler une fraude (en organisant ce que l'on appelle des attaques par déni de service), elle peut finir par être inscrite sur la blockchain sans aucun recours. Cela signifie qu'une fausse déclaration connue (par exemple, "Eli Ben-Sasson est maintenant le propriétaire de toutes les crypto-monnaies du monde"), peut être acceptée comme vraie. Les Rollups optimistes attribuent un délai - le Dispute Time Delay (DTD) - pour contester un état avant qu'il ne soit considéré comme finalisé sur la blockchain, et plus le DTD est long, plus le système devrait être sûr.

Bien sûr, on peut recommander un DTD très long, mais chaque heure du DTD est une heure pendant laquelle la finalité d'une transaction - son enregistrement en tant qu'enregistrement immuable sur la blockchain - est retardée. Actuellement, les systèmes Optimistic Rollup en cours de test ont suggéré d'utiliser un DTD d'une semaine. Les utilisateurs doivent attendre ce délai, par exemple, pour retirer des actifs tels que des fonds ou des NFT. Des liquidités alternatives peuvent leur être proposées par des "fournisseurs de liquidités", mais c'est comme emprunter à un prêteur sur salaire - les coûts sont élevés.

Je fais confiance à l'approche STARK Validity Proof décrite ci-dessus plutôt qu'aux Fraud Proofs, car elle permet de mettre à l'échelle la blockchain sans la DTD, et de vérifier chaque transaction au lieu de s'appuyer sur des hypothèses optimistes. Cette approche est également conforme au principe fondamental des blockchains, qui dit : "Vérifier, ne pas faire confiance."

Il est clair que la blockchain va façonner notre avenir, mais il est également clair que pour que son potentiel mondial soit pleinement réalisé, la blockchain doit être mise à l'échelle. Trouver comment le faire avec une intégrité informatique et sans compromettre les principes fondamentaux des blockchains est l'un des grands défis contemporains.

Alors que notre équipe reçoit quotidiennement des messages de personnes du monde entier qui expérimentent StarkNet, exécutant des contrats qui fonctionnent avec une intégrité absolue en utilisant les STARK, je pense à l'endroit où ce projet va nous mener.

Il y a une quinzaine d'années, nous avions une idée du potentiel des applications pour smartphones, mais nous étions incapables d'imaginer la multiplicité des utilisations, l'éventail des avantages qu'elles apporteraient et les changements sociaux et économiques qu'elles déclencheraient. C'est là où nous en sommes aujourd'hui avec la blockchain, et la scalabilité est le chaînon manquant qui signifie que le potentiel de la blockchain peut être atteint et expérimenté par tous.

Cela signifiera presque certainement un accès au financement pour les personnes non bancarisées et davantage d'opportunités pour elles, mais cela pourrait également donner un nouveau souffle à l'art et au design via les NFT, et donner à la tenue des dossiers médicaux la mise à jour dont elle a désespérément besoin avant la prochaine pandémie. Déployée pour les systèmes électoraux, elle peut les rendre plus faciles à utiliser pour diriger le gouvernement d'une manière plus fine que le vote en masse une fois tous les quatre ans, et dans la bataille pour la sauvegarde de nos données et dossiers personnels, elle peut être transformatrice.

Mais je suis presque sûr que, dans une ou deux décennies, je réfléchirai aux grandes avancées que la blockchain aura permis de réaliser après sa scalabilité, et que ce sera quelque chose qui sera sorti du champ gauche quelque chose que je ne peux même pas encore concevoir. C'est pourquoi travailler dans le domaine de l'innovation est passionnant dans l’humilité, car nous attendons de voir ce que d'autres réaliseront avec les technologies que nous avons contribué à mettre en place.

Traduction faite par @Valentin Negro

Subscribe to Starknet France
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.