Une preuve à connaissance nulle signifie généralement que quelqu’un a construit un circuit très spécifique pour une chose très spécifique. Prouver qu’un solde est supérieur à un nombre. Prouver qu’un vote a été compté correctement. Une tâche étroite, un circuit sur mesure construit juste pour cette tâche, et si vous voulez prouver autre chose, vous repartez de zéro.
Le système de dispute de Newton ne fonctionne pas comme ça, et il m’a fallu une minute pour comprendre pourquoi. Au lieu de construire un nouveau circuit pour chaque politique qu’une personne écrit, ils ont pris tout le moteur de politique Rego, l’interpréteur réel qui exécute les règles de conformité, et ont compilé l’ensemble dans une zkVM (zk virtual machine) à usage général. Ainsi, toute politique écrite en Rego, des vérifications de sanctions, des limites de vitesse, certaines règles d’éligibilité multi-étapes, etc., devient automatiquement vérifiable. Pas besoin de créer un circuit à nouveau pour chaque politique. C’est le moteur lui-même qui a été rendu vérifiable, pas chaque règle individuelle.
Cela fonctionne uniquement parce qu'il existe quelque chose de très particulier, presque ennuyeux, dans Rego. C'est déterministe. La même politique, les mêmes entrées, le même résultat, à chaque fois, sans effets de bord et sans aucune forme de hasard qui se glisserait quelque part. Cette détermination est vraiment la raison entière pour laquelle cette approche tient debout. Si le langage de la politique autorisait un quelconque état externe ou une quelconque forme d'aléatoire, vous ne pourriez pas la compiler en circuit et espérer qu'une preuve ait un sens cohérent.
Alors voilà ce que cela vous garantit concrètement. Lorsqu'une personne conteste une attestation, la signature de l'opérateur sur un résultat d'évaluation de politique, elle ne demande à personne de se contenter de croire sa version de ce qui aurait dû se passer. Elle fait elle-même tourner la même politique dans la zkvm et obtient une preuve mathématique réelle, pas un avis, pas une interprétation différente : une preuve que le résultat d'origine était incorrect. Le smart contract vérifie cette preuve, vérifie la fenêtre de contestation et décide. Pas de vote. Pas de comité. Personne n'évalue qui est plus crédible. Juste le calcul du contrat qui contrôle la preuve, et la pénalisation (slashing) des opérateurs qui se sont trompés si la preuve tient.
Cela ramène à toute l'idée de Newton qui renvoie une attestation signée de réussite ou d'échec avant qu'une transaction ne soit validée. Le fait que cette attestation soit incorrecte n'est pas seulement un rapport de bug en attente d'être débattu plus tard. C'est quelque chose qu'on peut démontrer mathématiquement comme faux par n'importe qui prend la peine de vérifier, ce qui constitue une garantie très différente de celle qu'offrent la plupart des systèmes.
Là où je bloque, c'est pour imaginer cela à une complexité réelle. L'exemple du livre blanc est une vérification de sanctions assez simple : quelques règles, des entrées propres, et bien sûr cela se prouve proprement via une zkvm sans trop de difficultés. En revanche, une logique de conformité réelle devient vite plus compliquée. Plusieurs sources de données se recoupent, des conditions imbriquées, des politiques qui s'appuient sur plusieurs flux différents à la fois et les combinent d'une manière qui n'est pas aussi propre qu'une règle unique et directe. Je ne sais pas encore si le temps de génération des preuves tient encore une fois que les politiques cessent de ressembler à des exemples de trois lignes et commencent à ressembler aux logiques réelles de sanctions et d'éligibilité que les institutions voudraient exécuter.
Magic Labs est l'équipe derrière tout ça, la même qui a construit l'infrastructure du portefeuille fonctionnant sous des éléments comme Polymarket, donc côté exécution, ils savent clairement ce qu'ils font à grande échelle. Mais si cette même confiance se maintient une fois que les politiques deviennent vraiment compliquées—les temps de preuve, la taille des circuits, tout ça—c'est une question à laquelle je n'ai encore vu aucune réponse nulle part.
Curieux de savoir si quelqu'un l'a réellement testé avec quelque chose de plus proche de la complexité du monde réel, plutôt qu'avec l'exemple propre du manuel.
