Isabelle/STARK: A Formalization of zk-STARK in Isabelle/HOL
Cet article présente une formalisation dans Isabelle/HOL d'un protocole de preuve transparent de type STARK, comprenant un modèle de prouveur et de vérificateur exécutable, une monade d'état probabiliste avec un calcul de la plus faible précondition, ainsi que des théorèmes formellement vérifiés pour la complétude honnête et la correction sans échec avec des bornes de probabilité explicites.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous essayez de prouver que vous connaissez le mot de passe secret d'un coffre-fort massif et verrouillé, mais que vous voulez le faire sans révéler le mot de passe à personne, et sans qu'ils n'aient à attendre des heures pendant que vous le tapez. C'est le monde de la cryptographie, la science de la communication sécurisée. Dans ce coin spécifique, nous nous intéressons à un type de preuve numérique appelé STARK. Considérez un STARK comme un « reçu magique ». Si vous exécutez un programme informatique complexe, un STARK est une petite note infalsifiable qui dit : « J'ai exécuté ce programme correctement, et voici le résultat », sans révéler les détails désordonnés du fonctionnement de votre programme.
Pour comprendre comment ces reçus fonctionnent, vous devez connaître trois choses simples. Premièrement, les ordinateurs transforment souvent les problèmes en puzzles mathématiques impliquant des polynômes (ces courbes que vous avez peut-être l'habitude de voir en algèbre). Deuxièmement, pour prouver que les mathématiques sont exactes, on ne vérifie pas chaque nombre ; on prend quelques échantillons aléatoires, comme goûter une cuillerée de soupe pour voir si toute la marmite est salée. Troisièmement, pour s'assurer que personne ne modifie la soupe après que vous l'avez goûtée, on utilise un arbre de Merkle, qui est comme une empreinte digitale numérique pour un énorme tas de données. Si même un seul grain de riz dans le tas change, l'empreinte digitale change complètement.
La grande question dans ce domaine est : « Pouvons-nous être absolument certains que ces reçus magiques sont impossibles à falsifier ? » Pendant longtemps, des gens ont écrit les règles des STARK, mais écrire des règles est différent de prouver qu'elles fonctionnent. C'est là qu'intervient la vérification formelle. C'est comme prendre une preuve mathématique et la soumettre à un avocat-robot extrêmement strict qui vérifie chaque étape logique pour s'assurer qu'il n'y a pas de failles, pas de « peut-être » et pas de tours cachés. C'est exactement ce que fait l'article « Isabelle/STARK: A Formalization of zk-STARK in Isabelle/HOL ».
L'auteur, Diego Marmsoler, a pris un protocole STARK complexe et l'a traduit dans un langage qu'un ordinateur peut comprendre et vérifier avec une certitude de 100 %. Il n'a pas seulement écrit une histoire sur la façon dont cela devrait fonctionner ; il a construit un modèle fonctionnel à l'intérieur d'un outil appelé Isabelle/HOL. Cet outil agit comme un professeur de mathématiques rigoureux qui refuse d'accepter une réponse à moins que chaque étape ne soit justifiée.
Voici ce qu'il a trouvé. Premièrement, il a construit une version jouable du système. Il a créé un « Prover » numérique (celui qui crée le reçu) et un « Verifier » (celui qui vérifie) qui peuvent réellement s'exécuter sur un ordinateur. Il a prouvé que si le Prover est honnête et suit les règles, le Verifier acceptera toujours la preuve. Il y a zéro chance que le Prover honnête échoue. C'est comme prouver que si vous suivez la recette parfaitement, le gâteau montera toujours.
Deuxièmement, et c'est le plus important, il s'est attaqué à la partie effrayante : Et si quelqu'un essayait d'agir de manière malhonnête ? Il a créé un scénario où un « Adversaire » sournois tente de tromper le Verifier pour lui faire accepter un faux reçu. L'article prouve que la probabilité que cet Adversaire réussisse n'est pas nulle, mais qu'elle est extrêmement, mathématiquement minuscule. Il n'a pas seulement dit que c'est « peu probable » ; il a écrit une formule spécifique qui calcule exactement à quel point cette probabilité est faible. Cette formule additionne toutes les différentes manières dont un Adversaire pourrait agir de manière malhonnête — comme deviner les bons nombres aléatoires, trouver une faille dans l'empreinte digitale numérique ou falsifier une équation mathématique — et montre que la probabilité totale de succès est bornée par un nombre très petit.
L'article écarte également explicitement certaines méthodes de preuve « faciles ». Vous pourriez penser : « Ne peut-on pas simplement regarder tout le tas de données pour voir s'il est faux ? » L'auteur dit non. Dans le monde réel, le Verifier ne regarde que quelques endroits aléatoires (le « test de dégustation »). L'article prouve que vous ne pouvez pas supposer que le Verifier voit l'image complète. Au lieu de cela, la preuve doit fonctionner même lorsque le Verifier n'en voit qu'un aperçu partiel et minuscule. Ils ont également rejeté l'idée de simplement supposer que les mathématiques fonctionnent ; ils ont décomposé la preuve en couches minuscules et gérables, vérifiant la logique de l'« empreinte digitale » séparément de la logique de l'« échantillonnage aléatoire », puis montrant comment elles s'assemblent.
L'une des parties les plus cool de ce travail est qu'ils ne l'ont pas seulement prouvé pour un monde théorique et infini. Ils ont construit un petit exemple fonctionnel utilisant un monde mathématique très restreint (un corps avec seulement 5 nombres, comme une horloge qui ne va que jusqu'à 5). Ils ont fait tourner le Prover et le Verifier honnêtes sur cette petite horloge et ont observé leur succès. Cela montre que le code n'est pas seulement une théorie ; il fonctionne réellement.
Alors, quel est le fond de l'histoire ? L'article ne prétend pas avoir inventé un nouveau type de STARK ou avoir rendu le système plus rapide. Il prétend plutôt avoir verrouillé la porte sur les mathématiques. Il fournit une garantie vérifiée par machine que le protocole STARK est cohérent. Si vous suivez les règles, vous obtenez un reçu. Si vous essayez de briser les règles, les mathématiques disent que vous avez presque aucune chance de vous en sortir, et l'ordinateur a vérifié chaque étape de cette logique pour s'en assurer. Cela transforme une promesse cryptographique complexe en un fait vérifié, nous offrant un niveau de confiance qui provient d'un avocat-robot vérifiant les devoirs, plutôt que d'un humain disant simplement : « Je pense que ça a l'air correct ».
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.