Zero-knowledge Proofs und das Dilemma zwischen Transparenz und Anonymität

De 5er und s’Weggli (Quelle: https://www.sutterbegg.ch/)

Die volle Transparenz auf Blockchain ist nicht immer gewünscht. Für mehr Datenschutz und Anonymität werden verschiedene Ansätze verfolgt und umgesetzt. Einer davon ist Zero-knowledge proof (ZKP).  Hier eine kleine Geschichte über diese besondere Idee, deren Umsetzung und das Dilemma zwischen Transparenz und Anonymität.

Haben Sie bereits einen Blick auf Blockchain Transaktionen geworfen?  Mit den passenden Scanntools wie https://www.blockchain.com/explorer  oder https://etherscan.io lassen sich sämtliche Blockchain Transaktionen nach Adressen suchen und zurückverfolgen. Obwohl Adressen und keine Namen verwendet werden, sind Transaktionen nicht anonym, sondern nur «pseudo-anonym».

Eine echte Anonymisierung benötigt weitere (technologische) Ansätze.  Einen eleganten Ansatz bietet die moderne Kryptologie mit dem Verfahren, dass Zero-knowledge proof genannt wird. Die Idee wurde im Jahr 1985 in der  Arbeit «The Knowledge Complexity of Interactive Proof-Systems» von Shafi Goldwasser, Silvio Micali and Charles Rackoff beschrieben und wird nun bei einigen Blockchains eingesetzt.

Was ist ein ZKP?

 Mit ZKP ist möglich zu beweisen, dass man eine bestimmte Information besitzt, ohne diese Information preisgeben zu müssen. Die Information selber wird nicht übermittelt, sondern nur der Beweis, dass man die Information besitzt. Das ist der grosse Unterschied zu den symmetrischen oder Public Key Verfahren, bei welchen die Information von einer Seite zur anderer (immer verschlüsselt) übermittelt wird.

Das Grundprinzip lässt sich anhand eines Beispiels, mit den Rollen Paggy und Viktor, zeigen. Wir stellen uns eine kreisförmige Höhle vor, welche im Innern eine geschlossene Tür hat. Paggy kann Viktor wie folgt beweisen, dass sie den Türschlüssel besitzt, ohne den Schlüssel zu zeigen:

  1. Paggy kommt zum Eingang und entscheidet zufällig, ob sie in Richtung A oder in Richtung B geht. Viktor soll dabei nicht sehen, welcher Weg Paggy eingeschlagen hat.
  2. Viktor kommt danach zum Eingang und bestimmt zufällig, von welcher Seite Paggy aus der Höhle rauskommen soll und teilt es ihr mit (in unserem Beispiel hat er B gewählt).
  3. Paggy schafft es in beiden Fällen von der richtigen Seite herauszukommen, wobei sie nur beim oberen Fall (wo sie die Richtung A gewählt hat) ihr Schlüssel benutzen muss.
Zero-knowledge proof - einfach erklärt
Paggy hat die erste Beweisrunde geschafft (Quelle: D. Wüthrich)

Wenn sie «das Spiel» einige Male machen und Paggy es immer gelingt, beim richtigen Ausgang rauszukommen, kann Viktor (mit sehr grosser Wahrscheinlichkeit) sicher sein, dass Paggy den Schlüssel besitzt.

ZKP in der Praxis

Die Implementierungen von ZKPs sind sehr komplex. Eine erfolgreiche und bekannte Umsetzung erfolgte beim Zcash, einem Privacy Coin, das im Jahr 2016, basierend auf Bitcoin, entstanden ist.

Um viele Interaktionen beim Validierungsprozess zu vermeiden, wurde beim Zcash das zkSNARK Verfahren («Zero-knowledge Succinct Non-Interactive Argument of Knowledge»), eine Weiterentwicklung von ZKP, eingesetzt. zkSNARK setzt voraus, dass beim System Setup zwei Systemparameter (Public und Private Key) generiert werden und danach der Privat Key zerstört wird. Das ist für die Integrität des Verschlüsselungssystems zwingend notwendig.

Der Zcash User kann entscheiden, ob er eine transparente (analog Bitcoin) oder eine anonyme Transaktion durchführen will. Dazu bietet Zcash die verschlüsselte Memo-Funktion, mit welcher der Transaktion eine verschlüsselte Nachricht hinzugefügt werden kann.

Obwohl anonym einsetzbar, schneller als Bitcoin (75s/Block vs. 10min/Block) und von Behörden geprüft, konnte sich Zcash nicht richtig durchsetzen. In der Kritik stehen vor allem die ungenügende Skalierbarkeit sowie der hohe Energieverbrauch. Die ECC, eine Developer Gruppe, welche hinter dem Zcash steht, plant deswegen einen Wechsel auf den «Proof-of-Stake» Konsens-Mechanismus. Daneben wird an der Cross-Chain-Interoperabilität des Netzwerks (insbesondere mit Ethereum 2.0) gearbeitet, welche anderen Währungen die Anonymität mittels «wrapping» bieten soll.

Das Grosse Dilemma – Transparenz oder Anonymität?

ZNP-Verfahren haben sich in der Praxis bewiesen und entwickeln sich weiter (ZkSync, Starknet, etc.). Der Bedarf nach Lösungen, welche unsere Daten schützen, ist gross und spielt bei Ausbreitung und Akzeptanz der Blockchain Anwendungen eine wichtige Rolle. Auf der anderen Seite stehen anonyme Kryptowährungen wegen Themen wie Geldwäscherei ständig unter Beschuss und werden von den Regulierungsbehörden ganz kritisch beobachtet.

Gesucht werden somit Ansätze, welche ermöglichen, illegale Geschäfte von Kriminellen aufzudecken, während die Daten und Informationen von ehrlichen Anwender anonym bleiben können. Die Weiterentwicklungen von ZNP- Verfahren könnten dabei eine wichtige Rolle spielen.

Beitrag teilen

Dijana Wüthrich

Dijana Wüthrich ist Senior Project Manager bei der BANK-now AG und bloggt aus dem Unterricht des CAS Blockchain.

Alle Beiträge ansehen von Dijana Wüthrich →

Schreibe einen Kommentar