Wie können Transaktionen mit Werten in Systemen ausgeführt werden, die auf Blockchain-Technologie basieren, ohne deren Inhalt offenzulegen?

In den letzten Jahren hat sich die Blockchain-Technologie weltweit aktiv entwickelt. Dabei handelt es sich um eine verteilte Architektur, die aus vielen gleichen "Knoten" besteht. „Knoten“ wiederum tauschen Informationen in Form von Transaktionen aus, die Informationen sowohl über die Bewegung von Werten als auch über die Ausführung intelligenter Verträge enthalten. Gleichzeitig stellt die Technologie selbst die Gruppierung dieser Transaktionen in Blöcke, die Entwicklung eines Konsenses zur Aufnahme von Blöcken in die vorhandenen Sequenzen, die Auswahl der einzig richtigen Blockkette (Blockchain) und die Verteilung der richtigen Blockkette zwischen allen "Knoten" sicher.



Die Blockchain-Technologie stellt sicher, dass jeder Knoten über die richtige Blockchain verfügt, die auch als verteilte Ledger-Technologie bezeichnet werden kann.



Tatsächlich ist eine Blockchain oder Blockkette ein ständig aktualisiertes Register, das alle Informationen über Transaktionen (Bewegung von Werten und Operationen mit ihnen) in offener Form speichert und es Ihnen ermöglicht, den vollständigen Verlauf des Ursprungs und der Übertragung von Werten zwischen Teilnehmern zu verfolgen. Zusammen mit dem Vorhandensein der richtigen Blockkette in jedem "Knoten" ist es möglich, die Unveränderlichkeit und Transparenz der in einem solchen verteilten Hauptbuch enthaltenen Informationen für die Systemteilnehmer sicherzustellen.



Es sollte berücksichtigt werden, dass nicht jeder Teilnehmer, der die Funktionalität der verteilten Hauptbuchtechnologie nutzt, die Zusammensetzung, Qualität und Quantität seiner Werte, die mit ihnen durchgeführten Vorgänge oder Teilnehmer an solchen Vorgängen bewerben möchte. Um das Problem der Gewährleistung der Vertraulichkeit der angegebenen Informationen in verschiedenen Systemen auf der Grundlage der verteilten Hauptbuchtechnologie zu lösen, kann die Verwendung von Technologie unter Verwendung des Zero-Knowledge-Protokolls in Betracht gezogen werden.



Und was ist mit dem Bankensektor? Aus Sicht der JSC Rosselkhozbank kann die verteilte Hauptbuchtechnologie mit der Implementierung des Zero Disclosure Protocol bei der Organisation der elektronischen Interaktion zwischen Banken hilfreich sein.



Bild



Diese Lösung bietet die folgenden Vorteile:



  • Speichern von Informationen über Wertsachen und Transaktionen mit ihnen ohne Offenlegung des Inhalts dieser Informationen (Vertraulichkeit);
  • hohe Betriebsgeschwindigkeit;
  • relative Einfachheit bei der Implementierung der Skalierbarkeit des Systems basierend auf der verteilten Hauptbuchtechnologie, abhängig von den Bedürfnissen der Teilnehmer;
  • hohe Fehlertoleranz beim Speichern von Informationen.


Wir schlagen vor, uns eingehender mit der Lösung zu befassen, die die Verwendung des Zero-Sharing-Protokolls beinhaltet, da dieses Schlüsselelement unserer Meinung nach das Potenzial des Einsatzes der verteilten Hauptbuchtechnologie im Bankensektor bestimmt.



Funktionen zur Verwendung des Zero-Knowledge-Protokolls



Das Zero-Knowledge- Protokoll ist ein starkes Authentifizierungsprotokoll. In seiner Arbeit werden zwei öffentliche und private Schlüssel verwendet, um Benutzer zu authentifizieren, ohne geheime Informationen preiszugeben. Solche Protokolle sind anwendbar, um die Informationssicherheit in vielen Bereichen der modernen Informationstechnologie zu gewährleisten. Darüber hinaus gibt es Optionen für die Verwendung von Protokollen ohne Kenntnis eines Geheimnisses, um einen elektronischen Signaturmechanismus aufzubauen oder seine kryptografische Stärke gegen Angriffe durch Übeltäter zu erhöhen.



Zero-Knowledge-Protokolle gehören zu Public-Key-Protokollen. Das Protokoll basiert auf der Wiederholung von Runden mit bestimmten Aktionen. Im Laufe seiner Arbeit wird die Runde in 3 Schritten durchgeführt. Die ersten beiden Schritte verwenden Zufallswerte als Eingabe. Die überprüfte Partei wird als "Prüfer" bezeichnet , und die überprüfte Partei wird als "Verifizierer" bezeichnet .



Runde Schritte:



  1. Der Prüfer generiert einen einmaligen privaten Schlüssel sowie einen einmaligen öffentlichen Schlüssel, der dann an den Prüfer gesendet wird.
  2. Der Prüfer empfängt einen einmaligen öffentlichen Schlüssel vom Prüfer und generiert dann ein zufälliges Bit, das dann an den Prüfer gesendet wird.
  3. Der Prüfer erhält einige Informationen und führt Berechnungen durch.


Der Prüfer sendet das resultierende Ergebnis zur Überprüfung an den Prüfer.



In allen Testrunden beträgt die Wahrscheinlichkeit einer korrekten Antwort 50%, dh in jeder Runde kann der Prüfer die Wahrheit mit einer Wahrscheinlichkeit von 50% kennen.



Um die erforderliche Genauigkeit zu erreichen, sollte die Anzahl solcher Runden erhöht werden, um die erforderliche Wahrscheinlichkeit zu erreichen, mit der der Prüfer als autorisiert betrachtet wird.



Die Hauptprobleme bei der Verwendung von Protokollen ohne Wissen sind:



  1. Die erforderliche Länge des öffentlichen Schlüssels;
  2. Vertrauen, dass das Geheimnis nicht auf andere Weise geteilt wurde.


Betrachten wir die theoretische Komponente mehrerer Protokolle ohne Kenntnis der Geheimnisse und erstellen Sie eine Vergleichstabelle ihrer Eigenschaften.



ZkSNARKs Protokoll



zkSNARKs steht für Zero Knowledge Non-Interactive Argument of Knowledge.



Dies ist eine Form der Kryptographie, mit der eine Person nachweisen kann, dass sie Eigentümer eines bestimmten Datensatzes ist, ohne ihn unbedingt preiszugeben. Dieses System umfasst nur zwei Seiten: Leiter und Prüfer. Der Leitfaden beweist, dass ein bestimmtes Element, eine bestimmte Information oder ein bestimmtes Wort vorhanden und korrekt ist, ohne zu offenbaren, was dieses Element oder diese Information ist. Dies ist die Bedeutung von Nullwissen . Der Prozess zum Prüfen und Validieren von Informationen ist schnell und kann selbst für Programme mit großen Datenmengen in Sekundenbruchteilen validiert werden.



Damit das Protokoll funktioniert, muss es die Grundvoraussetzungen erfüllen, dass das Geheimnis nicht bekannt ist.



Beispielsweise wurde ein intelligenter Vertrag erstellt. Der Benutzer kann eine Zahlung erhalten, wenn er bestimmte Maßnahmen ergreift. Was ist, wenn der Benutzer keine Details preisgeben möchte, weil diese für Wettbewerber vertraulich und geheim sind?



Hierzu wird das Zero- Knowledge- Protokoll von zkSNARK verwendet , das belegt, dass die Schritte gemäß den Bestimmungen des Smart-Vertrags ausgeführt wurden, ohne dass diese Aktionen offengelegt wurden. Er kann nur einen Teil des Prozesses zeigen, ohne den gesamten Prozess zu zeigen, und beweisen, dass der Benutzer ehrlich ist.



zkSNARKs besteht aus drei Algorithmen: G , P und V .



Generator (C - Programm, λ - Eingang, der nicht offengelegt werden sollte (vertraulich)):



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



Beweis (x ist eine öffentliche Eingabe, w ist eine geheime Aussage, die bewiesen, aber nicht erzählt werden muss):



π = P (pk, x, w) - Beweis prf Prüfer



:



V (vk, x, π) == (∃ w stC (x, w)) - wahr oder falsch



G ist ein Schlüsselgenerator , der die Eingabe λ (die unter keinen Umständen erweitert werden sollte) und das Programm C akzeptiert. Dann werden zwei öffentliche Schlüssel generiert: ein Validierungsschlüssel pk (für einen Proofer) und ein Proofschlüssel vk ( für den Prüfer). Diese Schlüssel stehen allen Interessenten zur Verfügung.



P.Ist derjenige, der 3 Elemente als Eingabe verwendet. Der Validierungsschlüssel pk, eine zufällige Eingabe x, die öffentlich verfügbar ist, und eine Aussage, die bewiesen werden muss, aber nicht gesagt wird, was sie wirklich ist. Nennen wir diesen Operator "w". Der Algorithmus P erzeugt einen Beweis prf, so dass: prf = P (pk, x, w) .



Der Überprüfungsalgorithmus V gibt eine boolesche Variable zurück. Eine boolesche Variable hat nur zwei Optionen: Sie kann TRUE oder FALSE sein . Der Prüfer verwendet also Schlüssel, Eingabe X und Proof Prf als Eingaben, z. B.: V (vk, x, prf) . Und dann bestimmt es, ob es wahr oder falsch ist.



Es ist zu beachten, dass der Parameter λDie Verwendung im Generator macht es manchmal schwierig, zkSNARKs in realen Anwendungen zu verwenden. Der Grund dafür ist, dass jeder, der diesen Parameter kennt, gefälschte Beweise generieren kann. Daher muss der Wert von λ vertraulich behandelt werden .



Das Starten des Generators muss daher ein sicherer Prozess sein, der vor allen Personen geschützt ist, die den λ- Parameter kennen oder stehlen .



ZkSTARKs Protokoll



In zkSTARKs gibt es keine externe vertrauenswürdige Installationsphase, und die verwendete Zufälligkeit sind öffentliche Informationen. Die öffentliche Verwendung von Zufälligkeit ist für die Öffentlichkeit äußerst wichtig, um wissensfreien Systemen zu vertrauen. Andernfalls könnte eine mächtige Einheit ihren Einfluss ausüben, um Einstellungen zu erhalten und falsche Beweise zu generieren. Da es keine Vertrauens-Setup-Phase eines Drittanbieters gibt und stattdessen eine öffentlich überprüfbare Zufälligkeit verwendet wird, erstellen die zkSTARK- Systeme eine überprüfbare Vertrauensstellung.



zkSTARKs basieren nicht auf öffentlichen und privaten Schlüsselpaaren (wie z. B. ECDSA)), aber verlassen Sie sich auf kollisionsresistentes Hashing für interaktive Lösungen und ein zufälliges Orakelmodell (das normalerweise anstelle von generischen kryptografischen Hash-Funktionen verwendet wird, bei denen starke Annahmen über die Zufälligkeit erforderlich sind, um auf das Orakel zu schließen) für nicht interaktive Beweise ( zknSTARKs , n = nicht interaktiv) Daher können zkSTARKs gegen Angriffe von Quantencomputern resistent sein.



Das zkSTARKs- Protokoll ist skalierbar, transparent, universell einsetzbar und kann quantenstabil sein. Dies schafft Vertrauen in die Technologie, da diese überprüfbar ist. Es gibt viele Bereiche, die mit Technologien wie zkSTARKs verbessert werden könnenWo Vertrauen erforderlich ist und es große Anreize zum Betrügen gibt, zum Beispiel:



  • Abstimmungssysteme;
  • Durchführen von Berechnungen und Überprüfen der Ergebnisse, z. B. vergangene Transaktionen in verteilten Hauptbüchern;
  • Sichere Überprüfung von Informationen, z. B. zur Überprüfung der Identität oder der Anmeldeinformationen.


Es gibt vier Kategorien in Bezug auf die Skalierbarkeit (Ergebnisse von zkSTARKs ).



  1. Die Komplexität der arithmetischen Schaltung (in den Systemen zkSNARK und zkSTARK wird der Code zum Erstellen von zk- Programmen so geschrieben, dass sie in Schaltungen unterteilt und dann berechnet werden können - tatsächlich ist die Komplexität der Schaltung höher als ihre Recheneffizienz.
  2. ( zkSNARK , zkSTARKs, ).
  3. (zkSTARKs zkSNARK 10 , ).
  4. ( zkSTARKs zkSNARK, , zkSTARKs zkSNARK, ).


Das zkSTARKs- Protokoll sollte in Ethereum für überprüfbare Computer- und potenziell sichere / anonyme Transaktionen sowie in Dapps verwendet werden, in denen Datenschutz wichtig ist, z. B. im Brave-Webbrowser, der das Basic Attention-Token verwendet.



Es gibt ein neues Unternehmen namens StarkWare Industries , das darauf abzielt, einige der Probleme mit dem ZK-STARK (eines davon ist die Proof-Größe) zu lösen und die Technologie zu kommerzialisieren, die in vielen Branchen eingesetzt werden kann, einschließlich verteilter Ledger-Implementierungen.



Bulletproofs-Technologie



Die Distributed Ledger Development Division von ING experimentiert mit Bulletproofs, einer datenschutzorientierten Technologie, die auf modernen kryptografischen Algorithmen basiert.



Bulletproofs basiert auf Arbeiten von Jonathan Bootle und anderen im Jahr 2016 zur Verbesserung der Verwendung diskreter Logarithmen, die keinen Wissensnachweisen zugrunde liegen. und stellt eine effektivere Form dieses Beweises dar.



Wichtig ist, dass Bulletproofs eine integrierte Unterstützung für öffentliche Schlüssel und Pedersen-Verpflichtungen bietet(Ein kryptografisches Grundelement, mit dem Sie einen ausgewählten Wert festlegen und vor anderen verbergen können, um später den festgelegten Wert anzuzeigen.) Dies ermöglicht es uns, Entfernungsnachweise nach allgemeinen Prinzipien des Nullwissens zu implementieren, ohne schwere maschinelle Berechnungen von elliptischen Kurven durchzuführen.



Evidence Bulletproofs werden viel allgemeiner dargestellt als der Range Proof und können für willkürliche Aussagen ohne Wissen verwendet werden. Die Technologie ist in ihrer Effizienz mit zkSNARKs oder zkSTARKs vergleichbar, bietet jedoch eine integrierte Unterstützung für öffentliche Schlüssel mit elliptischen Kurven und Pedersen-Verpflichtungen(Daher müssen in der Regel keine elliptischen Kurvenberechnungen innerhalb des getesteten Programms durchgeführt werden.) Auch im Gegensatz zu zkSNARKs , Bulletproofs hat eine volle 128-Bit - Ebene der Verschlüsselungsstärke in Übereinstimmung mit Standardannahmen , ohne eine „vertrauenswürdige Installation“ zu verwenden. Und im Gegensatz zu zkSTARKs sind sie schnell genug, um vernünftige Probleme auf herkömmlicher Computerhardware zu beweisen und zu validieren.



Im Vergleich zur ZKP- Technologie , die mehr Rechenleistung erfordert, ist die Bulletproofs- Technologie etwa zehnmal schneller, da Transaktionen ohne den Austausch von Zahlungsdaten möglich sind.



Wichtige Punkte für diese Technologie (Protokoll):



  • Bulletproofs basieren auf den allgemeinen Prinzipien des Zero Knowledge Proof (wie in zkSNARKs);
  • Die Technologie kann verwendet werden, um multilaterale Protokolle wie Multisignatur- oder wissensfreie bedingte Zahlungen zu erweitern.
  • Bulletproofs bietet eine wesentlich effizientere Version des Nachweises einer Reihe vertraulicher Transaktionen (bei Verwendung der Stapelverifizierung ist die Verifizierungsgeschwindigkeit mehr als 23-mal schneller).
  • Solche Bereichsnachweise können innerhalb einer Transaktion kombiniert werden, und ihre Größe wächst logarithmisch.
  • Bei ordnungsgemäßer Aggregation wie z. B. Bestimmungen bietet die Chargenüberprüfung eine über 120-fache Geschwindigkeit früherer Proofs.


Vergleichstabelle der Protokolleigenschaften



Lassen Sie uns eine Vergleichstabelle mit den Merkmalen der betrachteten Protokolle ohne geheimes Wissen zusammenstellen



Bild



Schlussfolgerungen



  1. zk-SNARKs und zk-STARKs haben viele Anwendungsbereiche, unter anderem für die Implementierung einfacher elektronischer Signaturen sowie für die Erstellung elektronischer Dokumentenverwaltungssysteme unter der Annahme der Vertraulichkeit von Informationen.
  2. Insgesamt sind Zero-Knowledge-Protokolle sehr vielversprechend und werden für die Verwendung in verteilten Ledger-Technologie-Systemen praktischer. Im Moment sticht jede Implementierung auf ihre eigene Weise hervor, sie erfordern jedoch alle Ressourcen, und es besteht Bedarf an effektiven Lösungen ohne Wissensbereich.
  3. , , , , ( , , ).


1. 34.13-2018 (). . // docs.cntd.ru URL: docs.cntd.ru/document/1200161709 ( : 31.05.2020);

2. Recommendation for Key Management Part 1: General // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf ( : 11.05.2020);

3. / 12207-2010 // docs.cntd.ru/ URL: docs.cntd.ru/document/gost-r-iso-mek-12207-2010 ( : 11.05.2020);

4. Recommendation for Cryptographic Key Generation // nvlpubs.nist.gov/ URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r1.pdf ( : 11.05.2020);

5. Recommendation for Key Management Part 2 – Best Practices for Key Management Organizations // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt2r1.pdf ( : 11.05.2020);

6. Security Requirements for Cryptographic Modules // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf ( : 11.05.2020);

7. Payment Card Industry (PCI) Data Security Standard // pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf?agreement=true&time=1589494129851 ( : 11.05.2020);

8. // intuit.ru URL: www.intuit.ru/studies/courses/553/409/info ( : 11.05.2020).

9. // cryptowiki.net/ URL: cryptowiki.net/index.php?title=____ ( : 11.05.2020);

10. Kerberos_(protocol) // en.wikipedia.org URL: en.wikipedia.org/wiki/Kerberos_(protocol) ( : 11.05.2020)

11. RFC5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile;

12. Recommendation for Key Management Part 3: Application-Specific Key Management Guidance // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf ( : 11.05.2020);

13. Blockchain reference architecture // ibm.com URL: www.ibm.com/cloud/architecture/files/blockchain-architecture-diagram.pdf ( : 24.05.2020).

14. Key management // cloud.ibm.com URL: cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-security ( : 24.05.2020);

15. , . . / . . . — : // . — 2016. — № 1 (105). — . 141-143. — URL: moluch.ru/archive/105/24663 ( : 31.05.2020).

16. CKMS – // www.cryptomathic.com URL: www.cryptomathic.com/hubfs/Documents/Product_Sheets/Cryptomathic_CKMS_-_Product_Sheet.pdf ( : 31.05.2020);

17. HSM // www.croc.ru URL: www.croc.ru/promo/insafety/design/hardware-security-module ( : 31.05.2020);

18. HSM // cbr.ru URL: cbr.ru/Content/Document/File/104755/FT_35.pdf ( : 30.05.2020);

19. AWS Key Management Service // aws.amazon.com URL: aws.amazon.com/ru/kms ( : 30.05.2020);

20. . . // zakonbase.ru URL: zakonbase.ru/content/part/1250444 ( : 31.05.2020);

21. Diffie Hellman Protocol // mathworld.wolfram.com URL: mathworld.wolfram.com/Diffie-HellmanProtocol.html ( : 31.05.2020);

22. STS Protocol // archive.dimacs.rutgers.edu URL: archive.dimacs.rutgers.edu/Workshops/Security/program2/boyd/node13.html ( : 31.05.2020);

23. The Needham-Schroeder Protocol // www.cs.utexas.edu URL: www.cs.utexas.edu/~byoung/cs361/lecture60.pdf ( : 31.05.2020);

24. Otway Rees protocol // www.lsv.fr URL: www.lsv.fr/Software/spore/otwayRees.pdf ( : 31.05.2020);

25. Payment Card Industry (PCI) PTS HSM Security Requirements // www.pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PTS_HSM_Technical_FAQs_v3_May_2018.pdf ( : 31.05.2020);

26. zk-SNARK? // z.cash/ru URL: z.cash/ru/technology/zksnarks ( : 31.05.2020);

27. zk-SNARKs zk-STARKs? // academy.binance.com/ru URL: academy.binance.com/ru/blockchain/zk-snarks-and-zk-starks-explained ( : 31.05.2020);

28. Bulletproofs: Short Proofs for Confidential Transactions and More // web.stanford.edu URL: web.stanford.edu/~buenz/pubs/bulletproofs.pdf ( : 31.05.2020);

29. // beincrypto.ru URL: beincrypto.ru/learn/chto-takoe-tehnologiya-raspredelennogo-reestra ( : 31.05.2020);

30. 12 - // dou.ua URL: dou.ua/lenta/articles/12-konsensus-protocols ( : 31.05.2020);

31. ISO/IEC 11770-1-2017. 1 // www.egfntd.kz URL: www.egfntd.kz/rus/tv/391980.html?sw_gr=-1&sw_str=&sw_sec=24 ( : 31.05.2020);

32. Consensus algorithm // whatis.techtarget.com URL: clck.ru/Nvade ( : 31.05.2020);

33. Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain // medium.com URL: medium.com/@kotsbtechcdac/introduction-to-zero-knowledge-proof-the-protocol-of-next-generation-blockchain-305b2fc7f8e5 ( : 31.05.2020).




All Articles