zk-S N ARKs , Zk-S T ARKs und BulletProofs sind drei wichtige Zero-Knowledge-Beweise, um Datenschutz für die Blockchain-Technologie bereitzustellen.
Wenn wir sie vergleichen können,
(1) Bulletproofs und Zk-S T ARKs erfordern keine vertrauenswürdige Einrichtung.
Im Gegensatz zu zk-S N ARKs , die eine vertrauenswürdige Einrichtung erfordern, die eine unangenehme Situation für sie schafft.
(2) Zcash , das zk-S N ARKs verwendet, kann die Betragsadresse zusammen mit Absender und Empfänger verbergen .
Mir ist noch nicht klar, ob es möglich ist, Absender und Empfänger durch Bulletproofs und Zk-S T ARKs zu verbergen .
(3) Anscheinend ist Zk-S T ARKs schneller als zk -S N ARKs ist schneller als Bulletproofs .
(4) Bulletproofs ist kürzer als zk-S N ARKs und Zk-S T ARKs .
Was sind im Allgemeinen die Hauptunterschiede (Vor- und Nachteile) zwischen diesen 3 wichtigsten Zero-Knowledge-Proof-Techniken?
Hinweis: Die Referenzen werden für die obigen Vergleiche verwendet:
https://crypto.stanford.edu/bulletproofs/
https://blockonomi.com/bullet-proofs/
https://nulltx.com/mit-review-acclaims-zk-snarks-but-zk-starks-may-steal-the-show/
Anmerkung 1: Der folgende Artikel vergleicht SNARKs mit STARKs: https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d
Anmerkung 2: Ich habe zk-SNARKs vs. Zk-STARKs vs. BulletProofs in der folgenden Abbildung verglichen. Jeder Kommentar zu diesem Vergleich ist willkommen:
Einige Ihrer Punkte sind gültig (zB SNARKs und STARKS sind beide schneller als Bulletproofs), aber es gibt auch einige Fehler:
Was sind die Hauptunterschiede (Vor- und Nachteile)?
Laut dem großartigen ZKP-Repo :
Laut Elena Nadilinskis Folien von Devcon4:
Laut der Keynote von Zooko Wilcox (Zcash) von Devcon4:
Laut Eli-Ben Sassons (STARKware) Keynote auf der Technion Summer School (beachten Sie, dass dieses letzte Bild einen Subset-Sum-Löser misst, der wahrscheinlich komplexer ist als die Berechnungen im obigen Vergleich):
Starks sind rundum fast besser als Snarks: Sie erfordern schwächere Krypto-Annahmen, benötigen kein vertrauenswürdiges Setup und sind postquantenresistent. Aber sie haben einen großen Nachteil, denn der Beweis ist riesig.
Für bestimmte Anwendungen, wie die, bei der ich arbeiten muss, ist das einfach nicht machbar. Wir mussten zwischen einem Snark-Proof in der Größenordnung von Hunderten von Bytes und einem STARK-Proof in der Größenordnung von Hunderten von Kilobytes wählen. Dieser einzelne Faktor war ein Killer für uns.
Die Verifizierungszeit ist bei Starks auch deutlich länger als bei Snarks. Bei ersterem wächst es in der Zeit O(poly log n), während es bei Snarks linear in der Eingabegröße ist , die gerade in komplexen Schaltungen nur eine kleine Konstante ist. Denken Sie daran, dass n hier die Anzahl der Tore ist.
Nehmen Sie zum Beispiel eine Schaltung, die beweist, dass Sie das Pre-Image eines bestimmten Hash-Werts kennen. Die Eingabe hat die Größe dieser Eingabe, die 32 Byte beträgt, wenn Sie SHA256 verwenden. Für diese Funktion wird die Anzahl der Gates jedoch in die Zehntausende gehen, und Sie können sehen, wie die Überprüfungszeit für den SNARK im Vergleich dazu vernachlässigbar ist.
Die Zahlen in den obigen Tabellen sind sehr irreführend. Sie sagen Ihnen nicht, welche Art von Schaltung Sie haben und wie groß n ist. Je nachdem, wie komplex Ihre Schaltung ist, können sie stark variieren. Ich bevorzuge die asymptotische Notation, und dafür gibt es in diesem Artikel eine gute Tabelle (Seite 3).
AFAIK Bulletproofs sind kürzer, aber ihre Verifizierung dauert viel länger als Starks, wodurch sie nicht für Blockchain-TX-Verschleierung skalierbar sind.
Fragesteller
Alex Pint
4
, und 27 ist1
.