Öffnung

Im Blockchain-Kontext ist zk-SNARK eine fortschrittliche Sicherheitstechnologie, die den Datenschutz verbessert und die Transparenz bei kryptografischen Transaktionen gewährleistet.

Zk-SNARK ermöglicht den Nachweis eines Wissens, ohne dieses Wissen preiszugeben, wodurch die Informationen des Benutzers absolut geschützt bleiben.

Zcash, eine führende Kryptowährung, nutzt die zk-SNARK-Technologie, um Transaktionen vollständig zu anonymisieren und so eine hohe Sicherheit zu gewährleisten und die persönlichen Daten der Benutzer nicht preiszugeben. Dies erhöht die Sicherheit und Zuverlässigkeit für Benutzer bei Online-Transaktionen.

In Teil 1 der Forschungsreihe „Exploring ZK-SNARKs“ werde ich ausführlich und für Sie leicht verständlich auf die wichtigen Details zu zk-SNARKs sowie auf die zugrunde liegenden Algorithmen und die Verschlüsselung hinter dieser Technologie eingehen.

Konzept und Wirkmechanismus von zk-SNARK

Grundlagen von zk-SNARK

Zk-SNARK steht für „Zero-Knowledge Succinct Non-Interactive Argument of Knowledge“, grob übersetzt als „prägnanter und nicht interaktiver Beweis für die Offenlegung von Nichtwissen“ (ich habe es so übersetzt, um es leichter verständlich zu machen). Hierbei handelt es sich um eine Beweiskonstruktion, die es einer Partei (dem Prüfer) ermöglicht, nachzuweisen, dass sie über bestimmte Informationen, beispielsweise einen geheimen Schlüssel, verfügt, ohne diese Informationen preisgeben zu müssen und ohne dass eine Korrespondenz mit einer anderen Partei (Verifizierer) erforderlich ist.

Derzeit ist zk-SNARK das am häufigsten verwendete Proofsystem.

Wir werden das Akronym „zk-SNARK“ in kleinere Komponenten zerlegen, um ihre Bedeutung möglichst klar zu untersuchen.

  • „Zero-Knowledge“: Dies bedeutet, dass die eingegebenen Informationen verborgen bleiben und dem Prüfer nicht offengelegt werden. Mit anderen Worten: Der Prüfer kann nichts über dieses Wissen wissen, sondern nur über seine Gültigkeit.

  • „Prägnant“ (kurz): Dies bedeutet, dass die generierten Beweise klein sind, etwa ein paar hundert Bytes, und schnell überprüft werden. Dies ist der erste Vorteil, den SNARK mit sich bringt.

  • „Nicht interaktiv“: Dies ist der zweite Vorteil von SNARK: Für beide Seiten (Prüfer und Prüfer) besteht der Beweis aus einer einzigen Nachricht vom Prüfer an den Prüfer, ohne dass eine Hin- und Her-Kommunikation erforderlich ist.

  • „Wissensargument“: Ist ein technischer Begriff, der bedeutet, dass, wenn der Prüfer einen Beweis akzeptiert, der Prüfer tatsächlich ein Geheimnis im Zusammenhang mit der Behauptung kennen muss, die überprüft werden soll (anstatt den Prüfer nur davon zu überzeugen, dass die Aussage wahr ist).

Wirkmechanismus

Mathematisch gesehen besteht zk-SNARK aus drei Algorithmen:

  • Schlüsselgenerierung (KG): Dies ist ein Schlüsselgenerierungsalgorithmus, der ein Schlüsselpaar generiert, einen für den Beweis (pk) und einen für die Verifizierung (vk). Der Schlüsselgenerierungsalgorithmus verwendet als Eingabe den Sicherheitsparameter λ und ein C-Programm und gibt dann die Schlüssel aus. Dieser Schritt wird auch als Trusted Setup-Schritt bezeichnet. Auf die Details gehen wir im folgenden Abschnitt ein.(pk, vk) = KG(λ, C)

  • Proving(P): Dieser Beweisalgorithmus beweist, indem er als Eingabe einen Beweisschlüssel pk, eine Aussage x und einen Zeugen w verwendet. Die Ausgabe ist ein Beweis prf.prf = P(pk, x, w)

  • Verifizierung (V): Der Verifizierungsalgorithmus verwendet als Eingabe den Verifizierungsschlüssel vk, die Aussage x und den Beweis prf. Die Ausgabe ist „Akzeptieren“ oder „Ablehnen“.

Verifizierungsergebnis = V(vk, x, prf)

Vorteile von ZK-SNARKs

  • ZK-SNARKs bieten viele wichtige Vorteile, insbesondere durch die Verbesserung der Anonymität, Sicherheit, Skalierbarkeit und Transaktionseffizienz in einer Vielzahl von Anwendungen. Hier sind zwei Hauptvorteile für Softwareanwendungen:

    1. Datenschutz: Das Attribut „Zero-Knowledge“ ermöglicht es, sensible Daten im Zusammenhang mit Berechnungen zu verbergen und gleichzeitig die Richtigkeit der Aussage nachzuweisen. Mit anderen Worten: zk-snark führt Transaktionen durch, ohne persönliche Informationen preiszugeben, wodurch Transaktionsinformationen anonym und sicher bleiben. Dies ist bei Kryptowährungen wie Zcash nützlich, bei denen Benutzer Geld senden können, ohne den Betrag, die Herkunft oder das Ziel der Transaktionen preiszugeben.

    2. Skalierbarkeit: Dank der geringen Beweisgröße und der kurzen Überprüfungszeit kann der Prüfer schnell erkennen, dass die Berechnung korrekt durchgeführt wurde, ohne die Berechnung erneut ausführen zu müssen. Dadurch werden Zeit und Ressourcen für die Überprüfung komplexer Berechnungen reduziert, was die Systemleistung und -zuverlässigkeit erhöht. Gleichzeitig trägt es dazu bei, die Kosten zu senken und die Skalierbarkeit zu verbessern.

Vertrauenswürdige Aufbauzeremonie

Der Vertrauensbildungsprozess ist ein wichtiger Schritt, der nur einmal durchgeführt wird, um einen notwendigen Datensatz zu generieren, der später bei jeder Bereitstellung kryptografischer Protokolle verwendet werden kann.

In ZK-SNARK ist dieser Vertrauenseinrichtungsschritt erforderlich, um Beweis- und Verifizierungsschlüssel zu generieren. Diese Schlüssel werden dann öffentlich zugänglich gemacht, sodass die Teilnehmer sie zur Erstellung und Überprüfung von Beweisen verwenden können.

Für jedes neue C-Programm muss eine neue vertrauenswürdige Einrichtung durchgeführt werden, da dies von den Details dieses C-Programms abhängt. Während des Setups verwendet der KG-Schlüsselgenerierungsprozess ein geheimes Lambda und ein C-Programm als Eingabe, um einen öffentlichen Schlüssel (pk) und einen Verifizierungsschlüssel (vk) zu generieren.

(pk, vk) = KG(λ, C)

Daher ist der zuverlässige Einrichtungsprozess kein Standard und sollte für jedes neue Programm separat durchgeführt werden.

Giftmüll (Giftmüll)

Für eine zuverlässige Einrichtung ist ein geheimer Parameter namens „Lamda“ erforderlich. Dieser oft als „Toxic Waste“ bezeichnete Parameter macht es manchmal schwierig, zk-SNARK auf praktische Anwendungen anzuwenden.

Dies liegt daran, dass jeder, der über diesen Parameter verfügt, die Möglichkeit hat, gefälschte Beweise zu erstellen. Insbesondere kann der Lambda-Inhaber für jedes C-Programm mit öffentlichen Eingaben x einen gefälschten Beweis namens „fakeProof“ generieren

V(vk,x,falscherBeweis)=wahr

als wahr beurteilt, ohne den geheimen Zeugen zu kennen w. Das ist katastrophal!

Der effizienteste Weg, öffentliche Parameter für zk-SNARK zu generieren, besteht darin, dass jemand ein öffentliches und privates Schlüsselpaar generiert, ähnlich dem ECDSA-Schlüsselpaar, und dann den privaten Schlüssel zerstört. Die Frage ist jedoch: Wie können wir sicher sein, dass diese Seite diese „giftigen Abfälle“ tatsächlich beseitigt hat?

Um dieses Problem zu lösen, wird daher Multi-Party Computation (Multi-Party Computation, MPC) angewendet.

MPC ist ein kryptografisches Protokoll, das es mehreren Parteien ermöglicht, an verteilten Berechnungen teilzunehmen, ohne dass eine Partei Zugriff auf die vertraulichen Daten der anderen Partei hat.

Bei jedem Vertrauensaufbauprozess nehmen mehrere Parteien gemeinsam am Prozess teil, um die erforderlichen kryptografischen Komponenten wie den öffentlichen Schlüssel (pk) und den Verifizierungsschlüssel (vk) zu generieren. Jede Partei trägt einen Teil ihrer vertraulichen Daten in diesen Prozess ein.

Das ultimative Ziel jeder Partei nach diesem Prozess ist die vollständige Beseitigung von Giftmüll. In diesem Fall wird von der Zuverlässigkeitsannahme ausgegangen, dass das Endergebnis garantiert sicher ist, solange einer der n Teilnehmer ehrlich ist.

Während einer Vertrauenseinrichtung bringt jede der n Parteien ihr geheimes Lambda mit, um gemeinsam die Beweis- und Verifizierungsschlüssel zu generieren.

Damit dieser Aufbau scheitern kann, müssten alle n Parteien schlechte Absichten haben und ihre Geheimnisse miteinander teilen. Solange jedoch eine der Parteien beschließt, ihr Geheimnis nicht preiszugeben, wird der Vertrauensbildungsprozess dennoch erfolgreich sein und die Vorlage falscher Beweise unmöglich machen.

Die Mathematik und Codierung hinter zk-snark

Mathematische Grundlagen

Gruppentheorie

ZK-SNARK nutzt die Gruppentheorie bei der Durchführung von Berechnungen für elliptische Kurven und andere Gruppen, insbesondere bei der Verwendung von bilinearen Paarungen und verwandten Algorithmen.

Einfach ausgedrückt ist eine Gruppe eine Menge von Elementen {a, b, c, …} kombiniert mit einer binären Operation, die wir hier mit „•“ bezeichnen.

Eine Menge und eine Operation werden als Gruppe bezeichnet, wenn sie die folgenden Eigenschaften erfüllen:

  • Abschluss: Für alle a und b in Gruppe G muss die Operation a·b auch in G sein.

  • Assoziativität: Für alle a, b und c in G muss die Operation (a • b) • c gleich a • (b • c) sein.

  • Identitätselement: Es muss ein Element e in G geben, sodass für jedes Element a in G die Operationen e • a und a • e gleich a sind. Dieses Element ist einzigartig.

  • Inverses Element: Für jedes Element a in G muss es ein Element b in G geben, das oft als a^-1 bezeichnet wird, sodass die Operationen a • b und b • a gleich der Einheit e sind.

Untergruppen

Wenn eine Teilmenge von Elementen in einer Gruppe alle Eigenschaften der Gruppe erfüllt, wird diese Menge als Untergruppe der ursprünglichen Gruppe bezeichnet.

Felder

Ein Feld ist eine spezielle algebraische Struktur, in der eine Menge von Elementen zwei Grundoperationen ausführt: Addition und Multiplikation. Jedes Feld muss einer Reihe grundlegender Axiome entsprechen, die seine allgemeinen Eigenschaften definieren und garantieren.

Nachfolgend sind die Axiome aufgeführt, die ein Körper erfüllen muss, wobei a, b und c beliebige Elemente des Körpers F sind:

  1. Assoziativität von Addition und Multiplikation : a + (b + c)= (a + b) + c unda · (b · c) = (a · b) · c

  2. Kommutative Eigenschaften der Addition und Multiplikation: a + b = b + a und a · b = b · a

  3. Additions- und Multiplikationsgleichung : Es gibt zwei verschiedene Elemente 0 und 1 in F, so dass a + 0 = a und a · 1 = a

  4. Additive Umkehrung : Für jedes a in F gibt es ein Element in F mit der Bezeichnung −a, das als additive Umkehrung von a bezeichnet wird, sodass a + (−a) = 0

  5. Umkehrung der Multiplikation : Für jedes a≠ 0 in F gibt es ein Element in F mit der Bezeichnung a^ -1, das als multiplikative Umkehrung von a bezeichnet wird, sodass a · a^ -1 = 1

  6. Verteilung der Multiplikation bezüglich der Addition : a· (b + c) = (a · b) + (a · c)

Beispiele für Felder sind die Menge der reellen Zahlen mit Addition und Multiplikation sowie ganze Zahlen modulo einer Primzahl, bei denen sowohl Addition als auch Multiplikation definiert sind.

Endliche Körper

In ZK-SNARK werden alle Operationen in endlichen Feldern ausgeführt, wobei Werte und Operationen modulo einer Primzahl oder basierend auf einem Primpolynom definiert werden.

Ein endlicher Körper ist ein Körper mit einer endlichen Anzahl von Elementen, zum Beispiel die Menge der ganzen Zahlen modulo p, wobei p eine Primzahl ist.

Die Anzahl der Elemente in einem Feld, auch Ordnung des Feldes genannt, kann für ein endliches Feld sein:

  • Einige Primzahlen (Primärkörper)

  • Oder eine Potenz einer Primzahl (erweiterter Körper)

In einem einfachen Primkörper kann ein Element durch eine ganze Zahl von 0 bis p-1 dargestellt werden, wobei Zp = {0, 1, …, p-1}.

Die Erweiterung von Zp, die als multiplikative Gruppe Zp* bezeichnet wird, besteht aus Elementen, die mit p teilerfremd sind, d. h. Zp* = {1, …, p-1}.

Generatoren endlicher Körper

In jedem endlichen Körper gibt es ein Element namens Generator, das mithilfe seiner Potenzierung alle Elemente in der Gruppe erzeugen kann.

Betrachten Sie beispielsweise die Gruppe Z5* im Primfeld Z5 = {0, 1, 2, 3, 4}, dann Z5* = {1, 2, 3, 4}. In der Gruppe Z5* ist die Multiplikation eine binäre Operation und Multiplikationen werden Modulo 5 durchgeführt; Beispielsweise ergibt die Multiplikation von 3 × 4 nicht 12, sondern 2, da 12 mod 5 = 2.

Gruppe Z5* ist zyklisch und hat die Generatoren 2 und 3, weil:

  • Mit Generator 2 haben wir:

2^0 = 1,

2^1 = 2,

2^2 = 4,

2^3 = 3,

2^4 = 1 (Zyklus wiederholen)

  • Und mit Generator 3 haben wir:

3^0 = 1,

3^1 = 3,

3^2 = 4,

3^3 = 2,

3^4 = 1 (Zyklus wiederholen)

Diese Eigenschaften machen Z5* zu einer leistungsstarken Gruppe für kryptografische Vorgänge und werden häufig in kryptografischen Algorithmen wie ZK-SNARKs verwendet.

Gruppenhomomorphismen

Homomorphismen sind Abbildungen zwischen zwei ähnlichen algebraischen Strukturen, etwa Gruppen oder Feldern, und sie bewahren die Operationen innerhalb dieser Struktur.

Insbesondere ist ein Homomorphismus eine Abbildung f von Gruppe A auf Gruppe B, wenn die beiden Gruppen dieselbe binäre Operation wie Multiplikation oder Addition haben. Diese Zuordnung bewahrt den Vorgang, was bedeutet:

Wenn ⋅ eine binäre Operation in der Struktur der Gruppen A und B ist, dann erfüllt die Zuordnung f für jedes Element a und b in Gruppe A die Bedingung:

f ( x ⋅ y )= f ( x )⋅ f ( y )

Dadurch wird sichergestellt, dass das Ergebnis der Operation, die auf die Elemente in Gruppe A angewendet wird, nach der Zuordnung zu Gruppe B über f der Operation entspricht, die direkt auf Gruppe B ausgeführt wird.

Homomorphismen sind für den Umgang mit den Eigenschaften bilinearer Paarungen von grundlegender Bedeutung und machen den Prozess der Generierung und Überprüfung von Beweisen in zk-SNARK effizienter.

Polynome

Polynome sind eine Kernkomponente bei der Erstellung von quadratischen Arithmetikprogrammen (QAPs), bei denen Probleme durch Polynome dargestellt und durch Polynombewertung und -bindung gelöst werden.

Ein Polynom ist ein mathematischer Ausdruck, der aus Variablen und Konstanten besteht und Addition, Multiplikation und Potenzierung mit nichtnegativen ganzzahligen Exponenten verwendet.

Ein gutes Beispiel ist beispielsweise das Polynom 5x² + 2x + 8.

Wenn man eine Polynomgleichung betrachtet, kann sie eine unendliche Anzahl verschiedener Gleichungen zwischen Zahlen darstellen. Wenn wir zum Beispiel die Gleichung A(x) + B(x) = C(x) haben, die wahr ist, dann gilt sie auch für alle Werte von x, wie zum Beispiel:

A(0) + B(0) = C(0)

A(1) + B(1) = C(1)

A(2) + B(2) = C(2)

A(3) + B(3) = C(3)

und so weiter.

Der Grad des Polynoms wird durch die größte Potenz der Variablen im Polynom bestimmt. Beispielsweise hat das Polynom 6x⁴ + 2x³ + 3 den Grad 4, da die höchste Potenz der Variablen x 4 ist.

Kryptographie

Hash-Funktionen

Hash-Funktionen werden häufig verwendet, um „Commitments“ in kryptografischen Protokollen zu erstellen und so sicherzustellen, dass Daten nicht unbemerkt geändert werden können.

Eine Hash-Funktion ist ein Algorithmus oder eine mathematische Funktion, die eine Zeichenfolge mit Eingabedaten variabler Länge in eine Ausgabezeichenfolge fester Länge umwandelt, die als Hash-Wert bezeichnet wird.

Die Formel zur Darstellung der Hash-Funktion kann wie folgt beschrieben werden:

f ( m )= H

Dabei ist f die Hash-Funktion, m die Nachricht und H der resultierende Hash-Wert.

Hash-Funktionen verfügen über viele wichtige Eigenschaften, wodurch sie in vielen kryptografischen Anwendungen sehr nützlich sind. Zu diesen Attributen gehören:

  • Pre-Image-Resistenz: Mathematisch gesehen ist es sehr schwierig, die ursprüngliche Nachricht aus dem Hash-Wert abzurufen.

  • Zweiter Pre-Image-Widerstand: Angesichts einer bestimmten Eingabenachricht und ihres Hash-Werts ist es schwierig, eine andere Nachricht zu finden, die denselben Hash-Wert erzeugt.

  • Kollisionsresistenz: Es ist schwierig, zwei verschiedene Nachrichten zu finden, die denselben Hashwert erzeugen.

Eine sehr wünschenswerte Eigenschaft guter Hash-Funktionen ist der Avalanche-Effekt. Hierbei handelt es sich um die Eigenschaft, dass eine kleine Änderung der Eingabe eine große Änderung der Ausgabe verursacht, wodurch die Ausgabe zufällig und nicht unterscheidbar erscheint.

Verschlüsselung

Einfach ausgedrückt ist Verschlüsselung der Prozess der Umwandlung einer Eingabenachricht (Klartext) in eine scheinbar zufällige Ausgabe (Chiffretext), sodass nur autorisierte Personen diese Informationen entschlüsseln und verstehen können. Die Verschlüsselung basiert auf der Verwendung eines kryptografischen Schlüssels, bei dem es sich um eine Reihe mathematischer Werte handelt, die sowohl der Sender als auch der Empfänger zum Ver- und Entschlüsseln von Informationen verwenden.

Es gibt zwei Arten von Verschlüsselungsalgorithmen: symmetrische Verschlüsselung und asymmetrische Verschlüsselung.

Symmetrische Verschlüsselung

Bei der symmetrischen Verschlüsselung verwenden alle am Kommunikationsprozess beteiligten Parteien denselben Schlüssel zum Verschlüsseln und Entschlüsseln der Nachricht. Dieser Schlüssel wird zwischen den Parteien geheim gehalten, um die Sicherheit der ausgetauschten Informationen zu gewährleisten.

Asymmetrische Verschlüsselung

Bei der asymmetrischen Verschlüsselung, auch bekannt als Verschlüsselung mit öffentlichem Schlüssel, gibt es zwei Arten von Schlüsseln: einen öffentlichen Schlüssel, der zur Verschlüsselung verwendet wird, und einen privaten Schlüssel, der zur Entschlüsselung verwendet wird. Der private Schlüssel wird vom Empfänger geheim gehalten (daher der „private Schlüssel“), während der öffentliche Schlüssel mit jedem geteilt werden kann, der vertrauliche Informationen senden möchte (daher der „private Schlüssel“).

Asymmetrische Verschlüsselung wird häufig in den folgenden Situationen verwendet:

  • Senden einer sicheren Nachricht: Der Absender verwendet den öffentlichen Schlüssel des Empfängers, um die Nachricht zu verschlüsseln, und sendet sie dann an den Empfänger. Nur der Empfänger, der im Besitz des privaten Schlüssels ist, kann die Nachricht entschlüsseln und lesen.

  • Nachweis des Besitzes (der Kenntnis) eines privaten Schlüssels: Beim Nachweis des Besitzes eines privaten Schlüssels verschlüsselt (oder signiert) der Absender die Nachricht mit seinem privaten Schlüssel und sendet sie dann an den Empfänger. Der Empfänger verwendet den öffentlichen Schlüssel des Absenders, um die Nachricht zu entschlüsseln. Dieser Vorgang wird oft als digitale Signatur bezeichnet, und die so verschlüsselte Nachricht wird als „digitale Signatur“ bezeichnet. Dadurch beweist eine digitale Signatur, dass die Nachricht von jemandem gesendet wurde, der den entsprechenden privaten Schlüssel besitzt, und hilft außerdem, die Integrität der Informationen in der Nachricht zu überprüfen.

Homomorphe Verschlüsselung (homomorphe Verschlüsselung)

Die homomorphe Verschlüsselung hat großen Einfluss auf die Entwicklung hochwertiger Zero-Knowledge-Beweise, da sie die Durchführung von Berechnungen an verschlüsselten Daten ermöglicht, ohne dass diese entschlüsselt werden müssen.

Homomorphe Verschlüsselung ist eine spezielle Art der Verschlüsselung, die es ermöglicht, Berechnungen direkt an verschlüsselten Daten durchzuführen. Dies bedeutet, dass zusätzliche Berechnungen an verschlüsselten Daten durchgeführt werden können, ohne dass ein geheimer Schlüssel erforderlich ist. Die Ergebnisse dieser Berechnungen bleiben verschlüsselt und gewährleisten so die Sicherheit, ohne dass der ursprüngliche Dateninhalt preisgegeben wird.

In der Praxis weist die vollständig homomorphe Verschlüsselung, die die Durchführung beliebiger Berechnungen aller Art mit verschlüsselten Daten ermöglicht, noch viele Einschränkungen auf und ist noch nicht allgemein anwendbar. Die Durchführung bestimmter Operationen an homomorphen Strukturen ist jedoch möglich und wurde in praktischen Anwendungen eingesetzt.

Zu diesen Operationen gehören Addition und Multiplikation verschlüsselter Daten, was neue Möglichkeiten für eine sichere Datenverarbeitung ohne Entschlüsselung eröffnet hat.

Elliptische Kurvenkryptographie (ECC)

In ZK-SNARK spielen elliptische Kurven dank der Gruppierungsoperationen, mit denen eine bilineare Paarung erreicht wird, eine wichtige Rolle. ECC (Elliptic Curve Cryptography) bietet eine effiziente Plattform zum Erstellen und Verifizieren von Zero-Knowledge-Beweisen.

Eine elliptische Kurve ist eine Menge von Punkten, die eine bestimmte mathematische Gleichung erfüllen. Die Gleichung für eine elliptische Kurve hat die folgende Form:

Wobei a und b bekannte Konstanten sind. Der Graph dieser Gleichung sieht folgendermaßen aus:

Es gibt viele verschiedene Darstellungen elliptischer Kurven, aber bei der Technik geht es in erster Linie darum, Punkte zu finden, die eine bestimmte mathematische Gleichung erfüllen.

Aufgrund ihrer Eigenschaften sind elliptische Kurven in vielen Bereichen der Mathematik und insbesondere im Bereich der Kryptographie von großer Bedeutung.

Eine interessante Eigenschaft elliptischer Kurven ist ihre horizontale Symmetrie. Jeder Punkt auf der Kurve kann über die X-Achse gespiegelt werden, während die Kurve intakt bleibt. Das heißt, wenn Sie zwei beliebige Punkte auf der Kurve nehmen und eine Linie durch sie ziehen, schneidet diese Linie die Kurve an einem dritten Punkt.

Stellen Sie sich vor, es handelt sich um ein Billardspiel. Der Ball wird von einem Punkt aus geschossen und springt, wenn er auf die elliptische Kurve trifft, je nach seiner Position relativ zur x-Achse direkt nach oben oder unten.

Eine interessante Eigenschaft elliptischer Kurven besteht darin, dass Sie zwei Punkte auf der Kurve „punktieren“ können, um einen neuen Punkt zu erstellen. Sie können einen Punkt auch nacheinander mit sich selbst „punktieren“, um verschiedene Punkte auf der Kurve zu erstellen.

Aber das Interessante ist: Wenn man den Endpunkt und den Anfangspunkt kennt, ist es sehr schwierig, die Anzahl der „Punkte“ zu berechnen, die erforderlich sind, um vom Anfangspunkt zum Endpunkt zu gelangen!

Stellen Sie sich eine Person vor, die alleine in einem Raum spielt und den Ball gemäß den Spielregeln schlägt. Dann kommt jemand anderes herein und sieht die endgültige Position des Balls. Selbst wenn sie die Ausgangsposition und die Spielregeln kennen würden, könnten sie nicht wissen, wie oft der Ball geschlagen wurde, um dorthin zu gelangen, ohne das gesamte Spiel von Anfang an zu betrachten. Dadurch entsteht eine besondere Eigenschaft in der Kryptographie, die als Irreversibilität bezeichnet wird, und ist die Grundlage für viele leistungsstarke Anwendungen wie die Trapdoor-Funktion.

Diskrete Logarithmen auf elliptischen Kurven sind ein schwieriges Problem, das der Kryptografie auf Basis elliptischer Kurven zugrunde liegt. Im Gegensatz zur Faktorisierung gibt es keine Abkürzung, die dieses Problem lösen kann, was es deutlich schwieriger macht, die Kryptografie mit elliptischen Kurven zu knacken als mit RSA und Diffie-Hellman.

Während ECC mit kürzeren Schlüsseln ein hohes Maß an Sicherheit bietet, behält es dennoch eine gute Leistung auf Geräten mit geringem Stromverbrauch. Dies macht ECC zur idealen Wahl für kryptografische Anwendungen auf mobilen Geräten und Systemen mit begrenzten Ressourcen.

Am Ende dieses Abschnitts habe ich einige grundlegende mathematische und Codierungskonzepte hinter zk-SNARK dargelegt. Im nächsten Teil werde ich auf fortgeschrittenere Konzepte wie quadratische Arithmetikprogramme und elliptische Kurvenpaare eingehen.

Vielen Dank, dass Sie bis hierher gelesen haben. Wenn Ihnen dieser Artikel gefallen hat, vergessen Sie nicht, ihm zu folgen und eine Runde Applaus zu hinterlassen.

Quelle des Artikels: Team Tech/Research – AlphaTrue

Referenzquelle:

1. Quelle: Reitwiessner, C. (2016). zkSNARKs in a nutshell.  Ethereum-Blog, 6, 1–15.  https://chriseth.github.io/notes/articles/zksnarks/zksnarks.pdf

2. https://medium.com/coinmonks/from-zero-to-hero-in-zero-knowledge-proofs-part-7-61d639c2ef02

3. https://celo.academy/t/zk-snarks-proofs-as-a-privacy-solution-on-the-blockchain/1961

4.Links: Chen, T., Lu, H., Kunpittaya, T., & Luo, A. (2022). Eine Überprüfung von zk-snarks.  arXiv-Vorabdruck arXiv:2202.06877.  https://arxiv.org/pdf/2202.06877.pdf

5.  https://medium.com/coinmonks/from-zero-to-hero-in-zero-knowledge-proofs-part-8-262f923f1537

6. https://medium.com/@hira.siddiqui/from-zero-to-hero-in-zero-knowledge-proofs-part-2-ef17ce470f2d

7. Easttom, W. (2022).  Moderne Kryptographie: Angewandte Mathematik für Verschlüsselung und Informationssicherheit. Springer Nature.

8. https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/