Zufallszahlen und dezentralisierte Netzwerke: praktische Anwendungen

EinfĂŒhrung

„Die Erzeugung von Zufallszahlen ist zu wichtig, um sie dem Zufall zu ĂŒberlassen“
Robert Cavyu, 1970

Dieser Artikel widmet sich der praktischen Anwendung von Lösungen, die kollektive Zufallszahlengenerierung in unzuverlĂ€ssigen Umgebungen nutzen. Kurz gesagt – wie und wozu Zufallszahlen in Blockchains verwendet werden, und ein wenig darĂŒber, wie man „gute“ Zufallszahlen von „schlechten“ unterscheidet. Die Erzeugung einer wirklich zufĂ€lligen Zahl ist selbst auf einem einzelnen Computer ein Ă€ußerst komplexes Problem und wird bereits seit langem von Kryptographen erforscht. In dezentralen Netzwerken ist die Generierung von Zufallszahlen noch komplexer und wichtiger.

Gerade in Netzwerken, in denen die Teilnehmer einander nicht vertrauen, ermöglicht die FĂ€higkeit, eine unwiderlegbare Zufallszahl zu generieren, die effektive Lösung vieler wichtiger Aufgaben und verbessert bereits bestehende Systeme erheblich. Dabei sind GlĂŒcksspiele und Lotterien keineswegs das Hauptziel, wie es anfĂ€nglichen Lesern erscheinen mag.

Generierung von Zufallszahlen

Computer können keine Zufallszahlen selbst erzeugen; dazu benötigen sie externe Hilfe. Ein Computer kann einen gewissen Zufallswert erhalten, indem er beispielsweise die Bewegung der Maus, den verwendeten Speicher, parasitĂ€re Ströme an den Kontakten des Prozessors und viele andere Quellen, die als Entropiequellen bezeichnet werden, nutzt. Diese Werte sind nicht völlig zufĂ€llig, da sie sich in einem bestimmten Bereich befinden oder vorhersehbare Änderungen aufweisen. Um solche Zahlen in tatsĂ€chliche Zufallszahlen innerhalb eines bestimmten Bereichs umzuwandeln, werden kryptographische Transformationen angewendet, um aus ungleichmĂ€ĂŸig verteilten Werten der Entropiequelle gleichmĂ€ĂŸig verteilte pseudorandomisierte Werte zu erhalten. Die erhaltenen Werte werden als pseudorandomisiert bezeichnet, da sie nicht wirklich zufĂ€llig sind, sondern deterministisch aus Entropie erzeugt wurden. Jeder gute KryptoschlĂŒsselalgorithmen erzeugt beim VerschlĂŒsseln von Daten Chiffretexte, die statistisch nicht von einer zufĂ€lligen Sequenz zu unterscheiden sein sollten, sodass zur Erzeugung von Zufallszahlen eine Entropiequelle herangezogen werden kann, die nur eine gute Unvorhersehbarkeit und Wiederholbarkeit der Werte gewĂ€hrleistet, wĂ€hrend der Rest der Arbeit zum Mischen und Verteilen von Bits im Ergebnis vom VerschlĂŒsselungsalgorithmus ĂŒbernommen wird.

Um das kurze Grundlagenwissen abzuschließen, fĂŒge ich hinzu, dass die Generierung von Zufallszahlen, selbst auf einem einzigen GerĂ€t, einer der Grundpfeiler der Sicherheit unserer Daten ist. Die erzeugten pseudorandomisierten Zahlen werden zur Etablierung von sicheren Verbindungen in verschiedenen Netzwerken, zur Generierung von kryptografischen SchlĂŒsseln, zur Lastenverteilung, zur IntegritĂ€tskontrolle und fĂŒr viele weitere Anwendungen verwendet. Die Sicherheit vieler Protokolle hĂ€ngt von der FĂ€higkeit ab, ein zuverlĂ€ssiges, von außen unvorhersehbares Zufallswert zu erzeugen, es zu speichern und es bis zum nĂ€chsten Schritt des Protokolls nicht offenzulegen, da sonst die Sicherheit gefĂ€hrdet ist. Ein Angriff auf den Generator von pseudorandomisierten Werten ist Ă€ußerst gefĂ€hrlich und gefĂ€hrdet sofort alle Software, die die Generierung von Zufallswerten nutzt.

All dies sollten Sie wissen, wenn Sie einen basischen Kurs in Kryptographie besucht haben. Daher machen wir mit dezentralen Netzwerken weiter.

ZufÀlligkeit in Blockchains

ZunĂ€chst werde ich ĂŒber Blockchains mit UnterstĂŒtzung fĂŒr Smart Contracts sprechen, da diese die Möglichkeiten vollstĂ€ndig nutzen können, die durch qualitativ hochwertigen, unumstrittenen Zufall bereitgestellt werden. Um es kurz zu machen, werde ich diese Technologie als “Öffentlich ÜberprĂŒfbare Zufallsbeacons” oder PVRB bezeichnen. Da Blockchains Netzwerke sind, deren Informationen von jedem Teilnehmer ĂŒberprĂŒft werden können, ist ein SchlĂŒsselteil des Namens “Öffentlich ÜberprĂŒfbar”, d.h. jeder, der möchte, kann durch Berechnungen den Beweis erlangen, dass die im Blockchain gespeicherte Zahl solche Eigenschaften hat:

  • Das Ergebnis muss eine nachweisbar gleichmĂ€ĂŸige Verteilung aufweisen, d.h. es muss auf nachweisbar robuster Kryptografie basieren.
  • Es ist unmöglich, irgendein Bit des Ergebnisses zu kontrollieren. Folglich kann das Ergebnis nicht im Voraus vorhergesagt werden.
  • Der Protokollgenerator darf nicht durch Nicht-Teilnahme am Protokoll oder durch Überlastung des Netzwerks mit Angreifer-Nachrichten sabotiert werden.
  • Alles oben Genannte muss gegenĂŒber Absprachen einer zulĂ€ssigen Anzahl unredlicher Teilnehmer des Protokolls robust sein (zum Beispiel 1/3 der Teilnehmer).

Jede Möglichkeit einer verschworen Gruppe von Teilnehmern, sogar kontrolliert zufĂ€llig gerade/ungerade ZufĂ€lle zu erzeugen, ist ein Sicherheitsrisiko. Jede Möglichkeit einer Gruppe, die Ausgabe von Zufall zu stoppen, ist ein Sicherheitsrisiko. Insgesamt gibt es viele Probleme, und diese Aufgabe ist nicht einfach


Es scheint, dass die wichtigste Anwendung fĂŒr PVRB verschiedene Spiele, Lotterien und generell jede Form von GlĂŒcksspiel auf der Blockchain ist. TatsĂ€chlich ist dies ein wichtiges Gebiet, aber der Zufall in Blockchains hat auch wichtigere Anwendungen. Lassen Sie uns diese betrachten.

Konsens-Algorithmen

PVRB spielt eine enorme Rolle bei der Organisation des Netzwerk-Konsenses. Transaktionen in Blockchains sind durch digitale Signaturen geschĂŒtzt, daher bedeutet eine "Angriff auf die Transaktion" immer, eine Transaktion in einen Block (oder mehrere Blöcke) einzufĂŒgen oder herauszunehmen. Die Hauptaufgabe des Konsens-Algorithmus besteht darin, sich ĂŒber die Reihenfolge dieser Transaktionen und die Reihenfolge der Blöcke, die diese Transaktionen enthalten, zu verstĂ€ndigen. Ein weiteres notwendiges Merkmal realer Blockchains ist die FinalitĂ€t – die FĂ€higkeit des Netzwerks, sich darauf zu einigen, dass die Kette bis zum finalisierten Block endgĂŒltig ist und niemals aufgrund eines neuen Forks ausgeschlossen wird. Um zu vereinbaren, dass ein Block gĂŒltig und vor allem final ist, mĂŒssen Signaturen von der Mehrheit der Blockproduzenten gesammelt werden (im Folgenden BP – Blockproduzenten), was erfordert, dass die Blockkette an alle BPs geliefert und die Signaturen unter allen BPs verbreitet werden. Mit dem Wachstum der Anzahl der BPs wĂ€chst die Anzahl der notwendigen Nachrichten im Netzwerk exponentiell, daher funktionieren Konsensalgorithmen, die FinalitĂ€t erfordern und beispielsweise im pBFT-Konsens von Hyperledger verwendet werden, nicht mit der erforderlichen Geschwindigkeit, beginnend mit nur einigen Dutzend BPs, und erfordern eine enorme Anzahl von Verbindungen.

Wenn im Netzwerk ein unumstrittenes und ehrliches PVRB vorhanden ist, kann man selbst in der einfachsten AnnĂ€herung auf dessen Basis einen der Blockproduzenten auswĂ€hlen und ihn wĂ€hrend einer Protokollrunde zum "Leader" ernennen. Wenn wir N Blockproduzenten haben, von denen M: M > 1/2 N ehrlich sind, Transaktionen nicht zensieren und keine Forks der Kette mit dem Ziel eines "Double Spend"-Angriffs erstellen, wird die Nutzung eines gleichmĂ€ĂŸig verteilten unumstrittenen PVRB es ermöglichen, einen ehrlichen Leader mit einer Wahrscheinlichkeit von M / N (M / N > 1/2). Wenn jedem einzelnen Validator ein eigener Zeitraum zugewiesen wird, in dem er einen Block erstellen und die Kette validieren kann, und diese ZeitrĂ€ume gleich sind, wird die Kette von ehrlichen Valideuren lĂ€nger sein als die von bösartigen Valideuren. Der Konsensalgorithmus, der auf der KettenlĂ€nge basiert, wird einfach die „schlechte“ Kette verwerfen. Dieses Prinzip der gleichmĂ€ĂŸigen Zeitverteilung fĂŒr jeden Validator wurde erstmals in Graphene (dem VorgĂ€nger von EOS) angewendet und ermöglicht es, die meisten Blöcke mit einer einzigen Unterschrift zu schließen, was die Netzwerklast erheblich verringert und es diesem Konsens ermöglicht, extrem schnell und stabil zu arbeiten. Dennoch muss das EOS-Netzwerk derzeit spezielle Blöcke (Last Irreversible Block) verwenden, die mit den Unterschriften von 2/3 der Validierer bestĂ€tigt werden. Diese Blöcke dienen der Sicherstellung der FinalitĂ€t (der Unmöglichkeit, einen Fork der Kette zu erzeugen, der vor dem letzten Last Irreversible Block beginnt).

Außerdem ist das Protokoll in echten Implementierungen komplexer — die Abstimmung ĂŒber vorgeschlagene Blöcke erfolgt in mehreren Phasen, um den Betrieb des Netzwerks im Falle von versĂ€umten Blöcken und Netzwerkproblemen aufrechtzuerhalten. Selbst unter BerĂŒcksichtigung dessen benötigen Konsensalgorithmen, die PVRB verwenden, erheblich weniger Nachrichten zwischen den Validierern, was sie schneller macht als das traditionelle PВFT oder verschiedene seiner Modifikationen.

Das auffĂ€lligste Beispiel fĂŒr solche Algorithmen ist: Ouroboros vom Cardano-Team, das, wie angekĂŒndigt, mathematisch nachweisbare Robustheit gegen das Vorhandensein von Absprachen unter den Validierern aufweist.

In Ouroboros wird PVRB verwendet, um den sogenannten „BP-Hochlaufplan“ – einen Zeitplan, der jedem Validator ein Zeitfenster zur Veröffentlichung eines Blocks zuweist – zu bestimmen. Ein großer Vorteil der Verwendung von PVRB ist die vollstĂ€ndige „Gleichheit“ der Validierer (entsprechend der GrĂ¶ĂŸen ihrer Konten). Die IntegritĂ€t von PVRB garantiert, dass bösartige Valideure den Zeitplan der Zeitfenster nicht kontrollieren können und daher die Kette nicht manipulieren können, indem sie Forks im Voraus vorbereiten und analysieren. Es reicht aus, sich einfach auf die KettenlĂ€nge zu verlassen, ohne ausgeklĂŒgelte Methoden zur Berechnung des „Nutzens“ der Validierer und des „Gewichts“ ihrer Blöcke anzuwenden.

Insgesamt ist PVRB in fast allen FĂ€llen, in denen in einem dezentralen Netzwerk ein zufĂ€lliger Teilnehmer ausgewĂ€hlt werden muss, die beste Wahl, und nicht eine deterministische Variante, die beispielsweise auf dem Hash eines Blocks basiert. Ohne PVRB fĂŒhrt die Möglichkeit, Einfluss auf die Auswahl des Teilnehmers zu nehmen, zu Angriffen, bei denen der Angreifer, indem er aus mehreren zukĂŒnftigen Optionen wĂ€hlt, den nĂ€chsten korrupten Teilnehmer oder mehrere gleichzeitig auswĂ€hlen kann, um ein grĂ¶ĂŸeres Gewicht im Entscheidungsprozess zu gewĂ€hrleisten. Der Einsatz von PVRB diskreditiert solche Angriffe.

Skalierung und Lastverteilung

PVRB kann auch bei der Reduzierung von Lasten und der Skalierung von Zahlungen erhebliche Vorteile bringen. ZunĂ€chst lohnt es sich, sich mit der einem Artikel Rivista “Electronic Lottery Tickets as Micropayments” vertraut zu machen. Die grundlegende Idee ist, dass anstelle von 100 Zahlungen von 1 Cent vom Zahler an den EmpfĂ€nger eine ehrliche Lotterie mit einem Preis von 1 $ = 100 Cent gespielt werden kann, wobei der Zahler bei jeder Zahlung von 1 Cent der Bank eines von 100 „Lottoscheinen“ ĂŒbertrĂ€gt. Einer dieser Scheine gewinnt der Bank 1 $, und genau diesen Schein kann der EmpfĂ€nger in der Blockchain festhalten. Das Wichtigste ist, dass die anderen 99 Scheine zwischen EmpfĂ€nger und Zahler ohne Ă€ußere Beteiligung ĂŒber einen privaten Kanal und in beliebiger Geschwindigkeit ĂŒbertragen werden. Eine gute Beschreibung des Protokolls auf dieser Basis im Emercoin-Netzwerk kann gelesen werden. hier.

Dieses Schema hat einige Probleme, zum Beispiel kann der EmpfĂ€nger sofort nach Erhalt des Gewinnscheins aufhören, den Zahler zu bedienen, aber fĂŒr viele spezielle Anwendungen, wie minutenspezifische Abrechnung oder elektronische Abonnements fĂŒr Dienstleistungen, kann darĂŒber hinweg gesehen werden. Die Hauptanforderung besteht natĂŒrlich darin, dass die durchgefĂŒhrte Lotterie ehrlich ist, und fĂŒr ihre DurchfĂŒhrung ist PVRB unbedingt erforderlich.

Die Auswahl eines zufĂ€lligen Teilnehmers ist auch fĂŒr die Sharding-Protokolle von entscheidender Bedeutung, deren Ziel es ist, die Blockchain horizontal zu skalieren, sodass verschiedene BPs nur ihren eigenen Anwendungsbereich von Transaktionen verarbeiten können. Dies ist eine Ă€ußerst komplexe Aufgabe, insbesondere hinsichtlich der Sicherheit bei der ZusammenfĂŒhrung von Shards. Eine ehrliche Auswahl eines zufĂ€lligen BPs, um ihn fĂŒr einen bestimmten Shard verantwortlich zu machen, ist wie bei den Konsensalgorithmen ebenfalls eine Aufgabe von PVRB. In zentralisierten Systemen werden Shards durch einen Lastverteiler zugewiesen, der einfach den Hash der Anfrage berechnet und ihn an den entsprechenden AusfĂŒhrer sendet. In Blockchains kann die Möglichkeit, diese Zuweisung zu beeinflussen, zu Angriffen auf den Konsens fĂŒhren. Zum Beispiel kann der Inhalt der Transaktionen vom Angreifer kontrolliert werden, der steuern kann, welche Transaktionen in den von ihm kontrollierten Shard gelangen, und die Blockchain darin manipulieren kann. Weitere Informationen zu den Problemen der Verwendung von Zufallszahlen fĂŒr Sharding-Aufgaben in Ethereum können gelesen werden. hier
Sharding ist eine der ambitioniertesten und herausforderndsten Aufgaben im Bereich Blockchain, deren Lösung es ermöglicht, dezentrale Netzwerke mit fantastischer Leistung und KapazitĂ€t aufzubauen. PVRB ist lediglich einer der wichtigen Bausteine fĂŒr ihre Lösung.

Spiele, wirtschaftliche Protokolle, Arbitrage

Die Rolle von Zufallszahlen in der Spieleindustrie ist schwer zu ĂŒberschĂ€tzen. Ihre explizite Nutzung in Online-Casinos und die implizite BerĂŒcksichtigung bei der Berechnung der Effekte bestimmter Aktionen eines Spielers sind Ă€ußerst komplexe Probleme fĂŒr dezentralisierte Netzwerke, in denen man sich nicht auf eine zentrale Zufallsquelle verlassen kann. Doch die Zufallsauswahl kann auch viele wirtschaftliche Probleme lösen und dabei helfen, einfachere und effektivere Protokolle zu erstellen. Angenommen, in unserem Protokoll gibt es Streitigkeiten ĂŒber die Bezahlung einiger gĂŒnstiger Dienstleistungen, und diese Streitigkeiten treten relativ selten auf. In diesem Fall können Kunden und VerkĂ€ufer, wenn ein unbestrittener PVRB vorliegt, eine zufĂ€llige Beilegung der Streitigkeiten mit einer vorgegebenen Wahrscheinlichkeit vereinbaren. Zum Beispiel hat der Kunde eine Gewinnchance von 60 % und der VerkĂ€ufer von 40 %. Dieser auf den ersten Blick absurde Ansatz ermöglicht eine automatische Lösung von Streitigkeiten mit genau vorhersehbaren Gewinn-/Verlustquoten, die beide Seiten zufriedenstellt, ohne dass eine dritte Partei einbezogen wird und ohne unnötige Zeitverschwendung. DarĂŒber hinaus kann das VerhĂ€ltnis der Wahrscheinlichkeiten dynamisch sein und von einigen globalen Variablen abhĂ€ngen. Wenn das Unternehmen beispielsweise gut lĂ€uft, eine geringe Anzahl von Streitigkeiten und eine hohe RentabilitĂ€t verzeichnet, kann es die Wahrscheinlichkeit der Streitbeilegung zugunsten der Kunden erhöhen, etwa auf 70/30 oder 80/20, und umgekehrt, wenn Streitigkeiten große Mittel kosten und betrĂŒgerisch oder unangemessen sind, kann die Wahrscheinlichkeit in die andere Richtung verschoben werden.

Eine Vielzahl interessanter dezentraler Protokolle, wie zum Beispiel token curated registries, Predictive Markets, Bonding Curves und viele andere, stellen ökonomische Spiele dar, die gutes Verhalten belohnen und schlechtes bestrafen. HĂ€ufig treten in diesen Protokollen Sicherheitsprobleme auf, deren Schutz sich gegenseitig widerspricht. Was gegen Angriffe von „Walen“ mit Milliarden von Tokens („big stake“) geschĂŒtzt ist, ist anfĂ€llig fĂŒr Angriffe von Tausenden von Konten mit kleinen Guthaben („sybil stake“). Die Maßnahmen, die gegen einen Angriffsvektor ergriffen werden, wie beispielsweise nichtlineare GebĂŒhren, die dazu entwickelt wurden, das Arbeiten mit großen Stakes unrentabel zu machen, werden in der Regel durch einen anderen Angriff diskreditiert. Da es sich um ein ökonomisches Spiel handelt, können die entsprechenden statistischen Gewichte im Voraus berechnet und die GebĂŒhren einfach durch randomisierte mit dem entsprechenden Verteilung ersetzt werden. Solche probabilistischen GebĂŒhren lassen sich extrem einfach umsetzen, wenn die Blockchain eine zuverlĂ€ssige Zufallsquelle hat, und erfordern keine komplexen Berechnungen, die sowohl Walen als auch Sybils das Leben erschweren.
Dabei muss man sich weiterhin bewusst sein, dass die Kontrolle ĂŒber ein einzelnes Bit in diesem Zufallswert betrĂŒgerisch beeinflusst werden kann, indem die Wahrscheinlichkeiten verdoppelt oder halbiert werden, sodass ein ehrlicher PVRB eine entscheidende Komponente solcher Protokolle ist.

Wo findet man den richtigen Zufall?

In der Theorie ermöglicht eine ehrliche Zufallsauswahl in dezentralen Netzwerken einen nachweisbaren Schutz fast jedes Protokolls vor Kollusion. Die BegrĂŒndung ist recht einfach: Wenn das Netzwerk sich auf ein einzelnes Bit von 0 oder 1 einigt und weniger als die HĂ€lfte der Teilnehmer unehrlich ist, dann wird das Netzwerk mit ausreichenden Iterationen mit fester Wahrscheinlichkeit zu einem Konsens ĂŒber dieses Bit gelangen. Einfach weil der ehrliche Zufall in 51 % der FĂ€lle 51 von 100 Teilnehmern auswĂ€hlen wird. Aber das ist nur theoretisch, da in realen Netzwerken fĂŒr ein solches Sicherheitsniveau, wie in den Veröffentlichungen beschrieben, zahlreiche Nachrichten zwischen Hosts, komplexe kryptographische Prozesse und jede Komplikation des Protokolls neue Angriffsvektoren einfĂŒhrt.
Deshalb sehen wir bisher in Blockchains kein nachweislich robustes PVRB, das bereits lange genug genutzt wurde, um sich echten Anwendungen, mehreren Audits, Belastungstests und natĂŒrlich realen Angriffen zu bewĂ€hren, ohne die es schwerfĂ€llt, ein Produkt als wirklich sicher zu bezeichnen.

Dennoch gibt es mehrere vielversprechende AnsĂ€tze, die sich in vielen Details unterscheiden, und einer von ihnen wird sicherlich das Problem lösen. Mit heutigen Rechenressourcen kann die kryptographische Theorie recht geschickt in praktische Anwendungen umgesetzt werden. In Zukunft werden wir gerne ĂŒber die Implementierungen von PVRB berichten: Es gibt derzeit mehrere, jede mit ihrem eigenen Satz wichtiger Eigenschaften und Umsetzungen, und hinter jeder steht eine gute Idee. Nur wenige Teams beschĂ€ftigen sich mit Zufallszahlen, und die Erfahrungen jedes einzelnen sind fĂŒr alle anderen von grĂ¶ĂŸter Bedeutung. Wir hoffen, dass unsere Informationen es anderen Teams ermöglichen, schneller voranzukommen, unter BerĂŒcksichtigung der Erfahrungen der VorgĂ€nger.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster