
zkSNARK
Ein zkSNARK ist ein kryptografisches Verfahren, mit dem man beweisen kann, dass man etwas weiß oder eine Berechnung korrekt durchgeführt hat — ohne dabei die zugrunde liegenden Daten preiszugeben. Es wird vor allem in Blockchains eingesetzt, um Transaktionen zu verschlüsseln und gleichzeitig ihre Gültigkeit nachweisbar zu machen.
Ein zkSNARK ist ein Verfahren aus der Kryptografie — also der Wissenschaft vom sicheren Verschlüsseln und Beweisen. Es erlaubt, jemandem zu beweisen, dass eine Aussage wahr ist, ohne irgendeinen der Hintergründe zu verraten. Das klingt paradox, ist es aber nicht. Man denkt sich folgendes Beispiel: Du willst beweisen, dass du das Passwort zu einem Konto kennst — ohne das Passwort selbst zu nennen. Genau das leistet ein zkSNARK. Der Name steht für „Zero-Knowledge Succinct Non-Interactive Argument of Knowledge“, auf Deutsch sinngemäß: ein knapper, nicht-interaktiver Wissensbeweis ohne Informationspreisgabe.
Warum Beweise ohne Datenweitergabe so wertvoll sind
In digitalen Systemen muss man ständig beweisen, wer man ist oder was man weiß. Normalerweise bedeutet das: Daten teilen. Die Bank prüft dein Gehalt, indem du deinen Kontoauszug zeigst. Eine Webseite prüft dein Alter, indem du deinen Ausweis hochlädst. Mit einem zkSNARK würde stattdessen nur der Beweis übermittelt — kein Ausweis, kein Kontoauszug, keine Zahl.
Das ist nicht nur ein Datenschutz-Vorteil. Es ist auch ein Sicherheitsvorteil. Daten, die nie übertragen werden, können auch nicht gestohlen werden. Für Systeme, die mit sehr vielen Nutzern arbeiten — etwa Bezahldienste oder Abstimmungsplattformen — ist das ein grundlegender Unterschied.
Wie ein zkSNARK einen Beweis erzeugt
Der Kern des Verfahrens ist folgender: Eine Berechnung — zum Beispiel „Ich habe genug Guthaben für diese Zahlung“ — wird in eine mathematische Formel übersetzt. Der Beweisführer, also derjenige, der etwas beweisen möchte, rechnet diese Formel mit seinen geheimen Daten durch und erzeugt dabei einen winzigen Datensatz: den Beweis. Dieser Beweis ist typischerweise nur wenige hundert Byte groß, egal wie aufwendig die ursprüngliche Berechnung war.
Der Prüfer — also die Gegenseite — bekommt nur diesen Beweis. Er kann in Millisekunden nachprüfen, ob er gültig ist, ohne jemals die Originaldaten gesehen zu haben. Das ist der Kern des Namens: „succinct“ bedeutet knapp, „non-interactive“ bedeutet, dass kein hin-und-her nötig ist — ein einziger Datensatz reicht.
Wichtig: Das Verfahren braucht einen einmaligen Einrichtungsschritt, das sogenannte „Trusted Setup“. Dabei werden mathematische Parameter festgelegt, die für alle späteren Beweise gelten. Dieser Schritt ist heikel: Wer die dabei erzeugten Zufallszahlen kennt, könnte gefälschte Beweise erstellen. Viele Projekte führen das Setup deshalb mit dutzenden Beteiligten durch, damit keine einzelne Person die kritischen Daten allein kennt.
zkSNARKs in Blockchains und digitalen Ausweisen
Am bekanntesten sind zkSNARKs im Zusammenhang mit Kryptowährungen. Die Währung Zcash war 2016 eine der ersten, die das Verfahren nutzte: Transaktionen werden dabei vollständig verschlüsselt auf der Blockchain gespeichert, sind aber trotzdem überprüfbar gültig — dank zkSNARK-Beweisen. Auch Ethereum nutzt das Prinzip: Sogenannte Layer-2-Netzwerke wie zkSync oder Polygon zkEVM bündeln viele Transaktionen, beweisen deren Korrektheit mit einem einzigen zkSNARK und schicken nur diesen einen Beweis an die Hauptkette.
Außerhalb von Kryptowährungen werden zkSNARKs zunehmend für digitale Identitäten diskutiert. Die EU-Initiative für eine digitale Brieftasche — den sogenannten EUDI Wallet — prüft, wie Bürger ihr Alter oder ihre Staatsangehörigkeit nachweisen können, ohne mehr Daten als nötig preiszugeben. zkSNARKs sind dabei ein ernsthafter Kandidat.
In der Tech-Presse taucht der Begriff häufig in Zusammenhang mit „Zero-Knowledge Rollups“ auf, kurz ZK-Rollups. Wer dieses Schlagwort liest, stößt fast immer auf zkSNARKs oder das verwandte Verfahren zkSTARK — das ohne das heikle Trusted Setup auskommt, dafür aber größere Beweise erzeugt.