Cardano Foundation zeigt, wie sich ein Zero Knowledge Proof auf Cardano verifizieren lässt

Der erste Teil einer fünfteiligen Entwicklerreihe zeigt, wie man einen Groth16 Proof mit 192 Byte erstellt und ihn in Aiken mithilfe kryptografischer Operationen verifiziert, die in Plutus V3 bereits verfügbar sind.

By SongMarketCap

Updated:

Cardano News - Cardano Foundation zeigt, wie sich ein Zero Knowledge Proof auf Cardano verifizieren lässt

Ein Cardano Smart Contract kann prüfen, ob jemand acht Zahlen kennt, die eine Gleichung erfüllen, ohne die Zahlen selbst zu erhalten. Die Cardano Foundation nutzt dieses Beispiel, um ihre neue Reihe zu Zero Knowledge Beweisen vorzustellen. Das erste Tutorial verfolgt den Prozess von der Formulierung der Gleichung als Menge von Constraints bis zur Erzeugung des Proofs off chain und seiner Verifizierung in einem Aiken Test.

Acht private Zahlen, ein öffentliches Ergebnis

Das Beispiel fasst acht Zahlen zu vier Paaren zusammen. Die beweisende Partei multipliziert die beiden Zahlen in jedem Paar und addiert die vier Produkte. Die Summe muss 100 ergeben. Dieses Ergebnis ist öffentlich, während die acht Zahlen privat bleiben.

Das Tutorial drückt die Berechnung als fünf mathematische Constraints aus. Vier prüfen die einzelnen Produkte, und das fünfte prüft, dass sie sich zum öffentlichen Ergebnis summieren. Ein gültiger Proof belegt, dass die beweisende Partei eine Zahlenmenge kennt, die diese Constraints erfüllt, ohne offenzulegen, welche Menge verwendet wurde.

Wie Aiken einen Groth16 Proof mit 192 Byte prüft

Das Tutorial erzeugt den Proof off chain. Der Groth16 Proof besteht aus drei Punkten auf einer elliptischen Kurve, die im komprimierten BLS12-381 Format des Beispiels 192 Byte belegen. Der Verifier prüft den Proof gegen die öffentlichen Eingaben und einen Verifikationsschlüssel, der an den Circuit gebunden ist.

Der Leitfaden endet mit einem Aiken Test, der dieselben BLS12-381 Operationen nutzt, die auch Plutus V3 Skripten auf dem Cardano Mainnet zur Verfügung stehen. Um das Beispiel reproduzierbar zu machen, verwendet das Tutorial feste, öffentlich bekannte Werte für den normalerweise geheimen Teil des Setups. In einem produktiven Groth16 Setup könnte jeder, der diese geheimen Setup Werte behält, Proofs fälschen.

Warum On Chain Verifizierung für Cardano wichtig ist

Cardano Entwickler können mit den vorhandenen Plutus V3 Operationen einen Groth16 Verifier in einen Aiken Smart Contract einbauen. Eine Anwendung kann den Proof off chain erzeugen und ihn dann an den Contract übergeben, damit der Validator entscheiden kann, ob eine Transaktion eine Bedingung erfüllt. Der Proof und alle erforderlichen öffentlichen Eingaben stehen dem Validator zur Verfügung, während die zugrunde liegenden privaten Daten off chain bleiben können.

Für eine Credential Anwendung bestimmt diese Aufteilung, was ein Nutzer offenlegen muss. Ein Contract könnte prüfen, ob ein Inhaber eines Credentials eine Altersvorgabe erfüllt, ohne sein Geburtsdatum zu erhalten, sofern Circuit und Credential Design die zu beweisende Aussage erzwingen.

[NEWSBREAK]

Was die nächsten vier Teile behandeln werden

Der zweite Teil wird zeigen, wie sich die Proof Erstellung beschleunigen lässt und wie produktive Setup Zeremonien funktionieren. Außerdem wird er Groth16 mit anderen Proof Systemen vergleichen und untersuchen, wie Zero Knowledge Virtual Machines nachweisen können, dass ein Programm korrekt ausgeführt wurde, ohne dass Entwickler einen Circuit von Hand entwerfen müssen.

Der dritte Teil wird zeigen, wie sich Nachweise des Schlüsselbesitzes an Cardano Adressen binden lassen. Der vierte widmet sich selektiver Offenlegung. In einem geplanten Beispiel weist ein Credential Inhaber nach, dass er mindestens 21 ist, ohne sein Geburtsdatum oder seine Blockchain Adresse offenzulegen.

Der letzte Teil wird quantenresistente Proof Systeme untersuchen, mit Fokus auf gitterbasierten Ansätzen, die die in Groth16 verwendeten Annahmen zu elliptischen Kurven ersetzen könnten.