Cardano Foundation montre comment vérifier une preuve à connaissance nulle sur Cardano
Le premier volet d'une série pour développeurs en cinq parties montre comment construire une preuve Groth16 de 192 octets et la vérifier dans Aiken en utilisant des opérations cryptographiques déjà disponibles dans Plutus V3.
By SongMarketCap
Updated:
Un contrat intelligent Cardano peut vérifier si quelqu'un connaît huit nombres qui satisfont une équation sans recevoir ces nombres. Cardano Foundation utilise cet exemple pour présenter sa nouvelle série sur les preuves à connaissance nulle. Le premier didacticiel suit le processus depuis la rédaction de l'équation comme un ensemble de contraintes jusqu'à la génération de la preuve hors chaîne et sa vérification dans un test Aiken.
Huit nombres privés, un résultat public
L'exemple regroupe huit nombres en quatre paires. Le prouveur multiplie les deux nombres de chaque paire puis additionne les quatre produits. La somme doit être égale à 100. Ce résultat est public, tandis que les huit nombres restent privés.
Le didacticiel exprime le calcul sous forme de cinq contraintes mathématiques. Quatre vérifient les produits pris individuellement, et la cinquième vérifie qu'ils s'additionnent pour obtenir le résultat public. Une preuve valide établit que le prouveur connaît un ensemble de nombres qui satisfait ces contraintes sans révéler quel ensemble il a utilisé.
Comment Aiken vérifie une preuve Groth16 de 192 octets
Le didacticiel génère la preuve hors chaîne. La preuve Groth16 se compose de trois points sur courbe elliptique qui occupent 192 octets dans le format compressé BLS12-381 utilisé dans l'exemple. Le vérificateur confronte la preuve aux entrées publiques et à une clé de vérification liée au circuit.
La démonstration se termine par un test Aiken qui utilise les mêmes opérations BLS12-381 disponibles pour les scripts Plutus V3 sur le réseau principal Cardano. Pour rendre l'exemple reproductible, le didacticiel utilise des valeurs fixes et publiquement connues pour la partie normalement secrète de la configuration. Dans une configuration Groth16 de production, toute personne qui conserverait ces valeurs secrètes de configuration pourrait forger des preuves.
Pourquoi la vérification sur chaîne est importante pour Cardano
Les développeurs Cardano peuvent intégrer un vérificateur Groth16 dans un contrat intelligent Aiken en utilisant les opérations Plutus V3 existantes. Une application peut générer la preuve hors chaîne puis la transmettre au contrat afin que le validateur décide si une transaction satisfait une condition. La preuve et les éventuelles entrées publiques requises sont à la disposition du validateur, tandis que les données privées correspondantes peuvent rester hors chaîne.
Pour une application d'identifiants, cette répartition détermine ce qu'un utilisateur doit divulguer. Un contrat pourrait vérifier si le détenteur d'un identifiant satisfait une exigence d'âge sans recevoir sa date de naissance, à condition que le circuit et la conception de l'identifiant imposent l'assertion prouvée.
[NEWSBREAK]
Ce que les quatre prochains volets couvriront
Le deuxième volet montrera comment accélérer la génération des preuves et comment fonctionnent les cérémonies de configuration en production. Il comparera aussi Groth16 à d'autres systèmes de preuve et explorera comment des machines virtuelles à connaissance nulle peuvent prouver qu'un programme a été exécuté correctement sans exiger des développeurs qu'ils conçoivent un circuit à la main.
Le troisième volet montrera comment des preuves de possession de clé peuvent être liées à des adresses Cardano. Le quatrième se penchera sur la divulgation sélective. Dans un exemple prévu, un détenteur d'identifiant prouve qu'il a au moins 21 ans sans révéler sa date de naissance ni son adresse sur la blockchain.
Le dernier volet examinera des systèmes de preuve résistants aux ordinateurs quantiques, en se concentrant sur des approches fondées sur des réseaux qui pourraient remplacer les hypothèses de courbes elliptiques utilisées dans Groth16.