Was sind zkSNARKS? Wie arbeiten Sie?

Nach meiner kurzen Auseinandersetzung mit dem Konzept scheint zkSNARKs eine Form der Zero-Knowledge-Kryptographie zu sein.

Was können zkSNARKs für Ethereum auf den Tisch bringen?

Ich habe mir solche Projekte angesehen , verstehe aber immer noch nicht, wie sie auf die Plattform anwendbar sind.

Antworten (2)

Ich werde nicht auf kryptotechnische Details eingehen, weil ich nicht so viel darüber weiß und es Seiten und Seiten braucht, um richtig erklärt zu werden. Aber versuchen wir es!!!

ZKSnarks, auch bekannt als: Zero Knowledge Succinct Non-interactive Arguments of Knowledge , sind schnelle rechnergestützte Zero-Knowledge-Beweise, mit denen Sie Dinge demonstrieren können, ohne Informationen anzugeben und sogar ohne dass eine Interaktion zwischen dem Beweiser und dem Verifizierer erforderlich ist.


Sehen wir uns ein Beispiel an.

  1. Angenommen, Bob möchte Alex zeigen, dass er die Lösung für ein Problem kennt.
  2. Bob erhält von einer TEE (Trust Execution Environment) einen Wert S und ein CRS.
  3. Wenn Bob die Lösung des von Alex geforderten Problems kennt, kann er die Teilbarkeit zwischen mehreren Polynomfunktionen demonstrieren.
  4. Wenn er die richtige Lösung hat, ist die Ausgabe, die die Paarungssubtraktionsoperation durch den Verifizierer realisiert hat, 1, andernfalls 0.

Es ist so.. soo schwer zusammenzufassen, aber es wird so aussehen:

  • Welches mathematische Problem auch immer in einer Schaltung zusammengefasst werden kann (z. B. kompilierter C-Code).
  • Die Schaltung wird in einem quadratischen Arithmetikprogramm (QAP) transformiert, indem ihre Polynomfunktionen extrahiert werden.
  • Was gleichzeitig als Berechnungsmodell angesehen werden kann.

Mit all dem sind wir in der Lage, Snarks zu bauen, mit denen wir einen Beweis verifizieren können, ohne Kenntnisse über die Lösung zu erwerben und ohne Interaktion zwischen dem Beweiser und dem Verifizierer.

Hier ist eine visuelle Darstellung der beteiligten Mathematik:

Geben Sie hier die Bildbeschreibung ein


Warum ist das alles interessant für Ethereum?

Weil die Nodes in der Lage sein werden, die Korrektheit eines Blocks (z. B. keine doppelten Ausgaben) zu überprüfen , ohne Informationen darüber zu kennen . Es ist wie der Traum eines Kryptografen, eine Aussage auszuwerten, ohne irgendwelche Informationen darüber zu kennen.

Das bedeutet, dass alle Adressen, Guthaben und viele weitere Informationen vollständig verschlüsselt werden , aber ein Knoten kann immer noch auswerten (superschnell, da Snarks prägnante Beweise sind) , ohne Informationen zu kennen.

Das Problem mit Snarks und Ethereum ist, dass Snarks auf Zcash funktionieren, weil es nur Transaktionen gibt . Und es ist einfacher, diese Snarks auf einer Blockchain zu implementieren, die nur Transaktionen unterstützt . Aber im Fall von Ethereum ist es mit SmartContracts viel schwieriger, ZKSnarks zu implementieren (ich weiß nicht genau warum, aber ich vermute, es gibt Probleme mit dem EVM).

Hoffe, es hilft, und sorry, wenn es verwirrend ist, aber es ist schwer zu erklären.

Ich bin so ein Fan von deinen Antworten. Mach weiter so :)
Hahahaha, weil du gute Fragen stellst!! Du verdienst gute Antworten :P

zkSNARKs bietet die Möglichkeit privater oder vertraulicher Transaktionen .

Während die Mathematik und die Kryptografie dahinter ziemlich komplex sind, finden Sie in diesem von Consensys verfassten Artikel einen Überblick darüber im Kontext von Ethereum .

Nur ziemlich komplex? Haben Sie die gesamte Mathematik und Kryptographie dahinter überprüft? Weil letzte Woche ein Mathematiker an unsere Universität kam, um einigen Studenten einen tiefen Einblick in sie zu geben, und ich sah, dass Mathematik extrem schwierig ist. Pairings, Elliptic Curving, Hidings, QAP usw. Ich fand es so schwer, sie perfekt zu verstehen, was ist Ihre Meinung?
Es ist so komplex und fortgeschritten, dass ich nicht bereit bin, zu versuchen, es genau zu verstehen ... es sei denn, es ist absolut notwendig. Schwierigkeit ist ein relativer Begriff. Wenn wir etwas verstanden haben, scheint es immer einfach zu sein. Ich bin mir sicher, dass es Leute gibt, die die Mathematik hinter zkSNARKs für einfach halten. Aber für diese Leute scheint das MVC-Muster wahrscheinlich schwer zu verstehen, bis sie sich die Mühe machen, alle Konzepte dahinter zu erforschen.
Völlig entsprechend, danke, dass Sie Ihre Meinung geteilt haben! :)