EinfĂŒhrung
âDie Generierung von Zufallszahlen ist zu wichtig, um sie dem Zufall zu ĂŒberlassenâ
Robert Cavyou, 1970
Dieser Artikel widmet sich der praktischen Anwendung von Lösungen, die kollektive Zufallszahlengenerierung in einer nicht vertrauenswĂŒrdigen Umgebung nutzen. Kurz gesagt: Wie und warum wird Zufall in Blockchains verwendet, und ein bisschen darĂŒber, wie man âgutenâ Zufall von âschlechtemâ unterscheidet. Die Generierung einer tatsĂ€chlich zufĂ€lligen Zahl ist ein Ă€uĂerst komplexes Problem, selbst auf einem einzelnen Computer, das schon lange von Kryptographen untersucht wird. In dezentralen Netzwerken ist die Generierung von Zufallszahlen jedoch noch schwieriger und wichtiger.
In Netzwerken, in denen die Teilnehmer einander nicht vertrauen, ermöglicht die FĂ€higkeit, eine unwiderlegbare Zufallszahl zu generieren, die effektive Lösung zahlreicher wichtiger Aufgaben und verbessert erheblich bereits bestehende Systeme. Dabei sind GlĂŒcksspiel und Lotterien keineswegs das Hauptziel, wie es ungeĂŒbten Lesern zunĂ€chst erscheinen mag.
Zufallszahlengenerierung
Computer sind nicht in der Lage, selbst zufĂ€llige Zahlen zu erzeugen; dafĂŒr benötigen sie externe Hilfe. Ein Computer kann beispielsweise einige zufĂ€llige Werte erhalten, indem er die Bewegungen der Maus, die Menge des verwendeten Speichers, parasitĂ€re Ströme an den Kontakten des Prozessors und viele andere Quellen nutzt, die als Entropiequellen bezeichnet werden. Diese Werte sind nicht ganz zufĂ€llig, da sie innerhalb eines bestimmten Bereichs liegen oder vorhersehbare VerĂ€nderungsmuster haben. Um solche Zahlen in tatsĂ€chlich zufĂ€llige Werte innerhalb eines definierten Bereichs umzuwandeln, werden kryptographische Transformationen angewendet, um aus den ungleichmĂ€Ăig verteilten Werten der Entropiequellen gleichmĂ€Ăig verteilte pseudorandomisierte Werte zu gewinnen. Diese Werte werden als pseudorandomisiert bezeichnet, da sie nicht wirklich zufĂ€llig sind, sondern deterministisch aus der Entropie erzeugt werden. Ein guter KryptAlgorithmus erzeugt beim VerschlĂŒsseln von Daten Chiffretexte, die statistisch von echten Zufallsfolgen nicht zu unterscheiden sind. Daher kann eine Entropiequelle verwendet werden, die lediglich eine gute Wiederholbarkeit und Unvorhersehbarkeit der Werte in kleinen Bereichen bietet, wĂ€hrend der Rest der Arbeit zur Verteilung und Mischen der Bits im Resultat vom VerschlĂŒsselungsalgorithmus ĂŒbernommen wird.
Um den kurzen Ăberblick abzuschlieĂen, möchte ich hinzufĂŒgen, dass die Generierung von Zufallszahlen, selbst auf einem einzigen GerĂ€t, eine der SĂ€ulen fĂŒr die Sicherheit unserer Daten ist. Die erzeugten pseudorandomisierten Zahlen werden zur Einrichtung sicherer Verbindungen in verschiedenen Netzwerken, zur Generierung kryptografischer SchlĂŒssel, zum Lastenausgleich, zur IntegritĂ€tskontrolle und fĂŒr viele weitere Anwendungen verwendet. Die Sicherheit vieler Protokolle hĂ€ngt davon ab, zuverlĂ€ssige, von auĂen unvorhersehbare Zufallszahlen zu generieren, sie zu speichern und sie bis zum nĂ€chsten Schritt des Protokolls nicht offenzulegen, da ansonsten die Sicherheit gefĂ€hrdet wĂ€re. Ein Angriff auf den Generator pseudorandomisierter Werte ist Ă€uĂerst gefĂ€hrlich und gefĂ€hrdet sofort alle Software, die auf die Generierung von Zufallszahlen angewiesen ist.
All dies mĂŒssen Sie wissen, wenn Sie einen Grundkurs in Kryptografie absolviert haben, also fahren wir fort mit dezentralisierten Netzwerken.
Zufallszahlen in Blockchains
Zuerst werde ich ĂŒber Blockchains sprechen, die Smart Contracts unterstĂŒtzen, denn diese können die Möglichkeiten voll ausschöpfen, die durch qualitativ hochwertigen, unbestreitbaren Zufall bereitgestellt werden. Im Folgenden werde ich diese Technologie kurz als âĂffentlich ĂberprĂŒfbare Zufallsbeaconsâ oder PVRB bezeichnen. Da Blockchains Netzwerke sind, in denen die Informationen von jedem Teilnehmer ĂŒberprĂŒft werden können, ist ein zentraler Bestandteil des Namens âĂffentlich ĂberprĂŒfbarâ, d.h. jeder Interessierte kann durch Berechnungen den Nachweis erbringen, dass die im Blockchain gespeicherte Zahl folgende Eigenschaften hat:
- Das Ergebnis muss nachweislich gleichmĂ€Ăig verteilt sein, d.h. es basiert auf nachweislich sicherer Kryptografie.
- Keiner der Bits des Ergebnisses kann kontrolliert werden. Folglich kann das Ergebnis nicht im Voraus vorhergesagt werden.
- Der Protokoll zur Generierung kann nicht durch Nicht-Teilnahme oder durch Ăberlastung des Netzwerks mit Angriffsnachrichten sabotiert werden.
- All das oben Genannte muss widerstandsfÀhig gegen Kollusionen einer zulÀssigen Anzahl unehrlicher Teilnehmer im Protokoll sein (z. B. 1/3 der Teilnehmer).
Jede Möglichkeit einer kooperierenden Minderheit von Teilnehmern, sogar kontrollierte gerade / ungerade Zufallszahlen zu erzeugen, stellt ein Sicherheitsrisiko dar. Jede Möglichkeit dieser Gruppe, die Zufallszahlenvergabe zu stoppen, ist ebenfalls ein Sicherheitsproblem. Insgesamt gibt es viele Herausforderungen, und diese Aufgabe ist nicht einfachâŠ
Es scheint, dass die wichtigste Anwendung fĂŒr PVRB in verschiedenen Spielen, Lotterien und im Allgemeinen in allen Arten von Gambling auf der Blockchain zu finden ist. TatsĂ€chlich ist das ein wichtiger Bereich, aber Zufallsgeneratoren in Blockchains haben auch bedeutendere Anwendungen. Lassen Sie uns diese nĂ€her betrachten.
Konsensalgorithmen
Die PVRB fĂŒr die Organisation des Netzwerk-Konsenses spielt eine enorme Rolle. Transaktionen in Blockchains sind durch digitale Signaturen geschĂŒtzt, weshalb eine "Transaktionsattacke" stets das EinfĂŒgen oder Entfernen einer Transaktion in einem Block (oder in mehreren Blöcken) bedeutet. Die Hauptaufgabe des Konsensalgorithmus besteht darin, sich ĂŒber die Reihenfolge dieser Transaktionen und die Reihenfolge der Blöcke, die diese Transaktionen enthalten, zu einigen. Ein notwendiges Merkmal fĂŒr echte 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 durch das Auftauchen eines neuen Forks ausgeschlossen wird. Um sich darauf zu einigen, dass ein Block gĂŒltig und vor allem final ist, ist es erforderlich, die Signaturen von der Mehrheit der Blockproduzenten (BP â Blockproduzenten) zu sammeln, was mindestens die Zustellung der Blockkette an alle BPs erfordert und die Verbreitung der Signaturen zwischen allen BPs. Mit zunehmender Anzahl von BPs wĂ€chst die Anzahl der erforderlichen Nachrichten im Netzwerk exponentiell, wodurch Konsensalgorithmen, die FinalitĂ€t erfordern, wie zum Beispiel der pBFT-Konsens von Hyperledger, nicht mit der notwendigen Geschwindigkeit arbeiten können, bereits ab einigen Dutzend BPs und dabei eine riesige Anzahl von Verbindungen benötigen.
Wenn es ein unbestreitbares und faires PVRB im Netzwerk gibt, kann man selbst in der einfachsten AnnĂ€herung auf dessen Grundlage einen der Blockproduzenten auswĂ€hlen und ihn wĂ€hrend einer Runde des Protokolls als âLeiterâ einsetzen. Wenn wir N Blockproduzenten haben, von denen M: M > 1/2 N ehrlich sind, Transaktionen nicht zensieren und keine Forks der Kette bauen, um einen âDouble Spendâ-Angriff durchzufĂŒhren, ermöglicht die Nutzung eines gleichmĂ€Ăig verteilten unbestreitbaren PVRB die Auswahl eines ehrlichen Leiters mit einer Wahrscheinlichkeit von M / N (M / N > 1/2). Wenn jedem Blockproduzenten ein spezifisches Zeitfenster zugewiesen wird, innerhalb dessen er einen Block erstellen und die Kette validieren kann, und diese Zeitfenster gleichmĂ€Ăig verteilt sind, dann wird die Kette von ehrlichen Blockproduzenten lĂ€nger sein als die von bösartigen Blockproduzenten. Ein Konsensalgorithmus, der auf der KettenlĂ€nge basiert, wird einfach die âschlechteâ Kette verwerfen. Dieses Prinzip, jedem Blockproduzenten gleiche Zeitintervalle zuzuteilen, wurde erstmals in Graphene (dem VorlĂ€ufer von EOS) angewendet und ermöglicht es, die Mehrheit der Blöcke mit einer einzigen Signatur abzuschlieĂen. Dies verringert die Netzwerkbelastung erheblich und ermöglicht einen extrem schnellen und stabilen Konsens. Dennoch muss das EOS-Netzwerk derzeit spezielle Blöcke (Last Irreversible Block) verwenden, die durch die Signaturen von 2/3 der Blockproduzenten bestĂ€tigt werden. Diese Blöcke dienen dazu, die EndgĂŒltigkeit zu gewĂ€hrleisten (d.h. die Unmöglichkeit, dass ein Fork vorkommt, der vor dem letzten Last Irreversible Block beginnt).
In der Praxis ist das Protokollschema komplexer â Abstimmungen ĂŒber die vorgeschlagenen Blöcke erfolgen in mehreren Phasen, um den Netzwerkbetrieb bei BlockausfĂ€llen und Netzwerkproblemen aufrechtzuerhalten. Selbst unter BerĂŒcksichtigung dieser Aspekte erfordern Konsensalgorithmen mit PVRB wesentlich weniger Nachrichten zwischen den BP, was sie schneller macht als das traditionelle PĐFT oder dessen verschiedene Modifikationen.
Ein herausragendes Beispiel fĂŒr solche Algorithmen ist: vom Team von Cardano, das, wie angekĂŒndigt, mathematisch bewiesene WiderstandsfĂ€higkeit gegenĂŒber Absprachen unter BP aufweist.
Im Ouroboros PVRB wird das sogenannte "BP-Schedule" verwendet â ein Zeitplan, der jedem BP einen eigenen Zeitfenster fĂŒr die Veröffentlichung eines Blocks zuweist. Ein groĂer Vorteil der Verwendung von PVRB ist die vollstĂ€ndige "Gleichheit" der BPs (basierend auf der GröĂe ihrer Salden). Die Fairness von PVRB gewĂ€hrleistet, dass böswillige BPs nicht das Zeitfenster kontrollieren können und somit nicht in der Lage sind, die Blockchain zu manipulieren, indem sie Forks im Voraus vorbereiten und analysieren. Um einen Fork auszuwĂ€hlen, reicht es aus, sich einfach auf die LĂ€nge der Kette zu stĂŒtzen, anstatt ausgeklĂŒgelte Methoden zur Berechnung der "NĂŒtzlichkeit" der BPs und des "Gewichts" ihrer Blöcke zu verwenden.
In allen FĂ€llen, in denen ein zufĂ€lliger Teilnehmer in einem dezentralen Netzwerk ausgewĂ€hlt werden muss, ist fast immer PVRB die beste Wahl, nicht eine deterministische Option, wie etwa ein Block-Hash. Ohne PVRB besteht die Möglichkeit, die Auswahl des Teilnehmers zu beeinflussen, was zu Angriffen fĂŒhren kann, bei denen der Angreifer aus mehreren zukĂŒnftigen Optionen wĂ€hlt, um den nĂ€chsten korrumpierten Teilnehmer oder sogar mehrere auszuwĂ€hlen, um eine gröĂere Stimme im Entscheidungsprozess zu sichern. Der Einsatz von PVRB entwertet diese Arten von Angriffen.
Skalierung und Lastverteilung
PVRB kann auch erhebliche Vorteile bei Aufgaben zur Lastverringerung und Skalierung von Zahlungen bieten. ZunĂ€chst ist es sinnvoll, sich mit Der RIVESTA âElektronische Lotterietickets als Mikropaymentsâ. Die grundlegende Idee ist, dass anstelle von 100 Zahlungen von 1 Cent vom Zahler an den EmpfĂ€nger, man an einer fairen Lotterie teilnehmen kann mit einem Preis von 1 $ = 100 Cent, wobei der Zahler bei jeder Zahlung von 1 Cent der Bank eines von 100 seiner âLotterieticketsâ ĂŒbertrĂ€gt. Eines dieser Tickets gewinnt der Bank 1 $, und genau dieses Ticket kann der EmpfĂ€nger in der Blockchain festhalten. Das Wichtigste ist, dass die restlichen 99 Tickets zwischen dem EmpfĂ€nger und dem Zahler ohne jegliche externe Beteiligung, ĂŒber einen privaten Kanal und in beliebiger Geschwindigkeit ĂŒbertragen werden. Eine gute Beschreibung des Protokolls auf Basis dieses Schemas im Emercoin-Netzwerk kann gelesen werden. .
Diese Lösung hat mehrere Probleme, zum Beispiel könnte der EmpfĂ€nger den Zahler sofort nach Erhalt des Gewinnertickets nicht mehr bedienen. FĂŒr viele spezielle Anwendungen, wie minutengenaue Abrechnung oder elektronische Abonnements fĂŒr Dienste, können diese jedoch ignoriert werden. Das Hauptkriterium ist natĂŒrlich die Fairness der durchgefĂŒhrten Lotterie, und dafĂŒr ist ein PVRB unbedingt notwendig.
Die Auswahl eines zufĂ€lligen Teilnehmers ist auch fĂŒr Sharding-Protokolle von entscheidender Bedeutung, deren Ziel es ist, die Blockchain horizontal zu skalieren. Dabei kann jeder BP nur seinen bestimmten Transaktionsbereich verarbeiten. Dies ist eine Ă€uĂerst komplexe Aufgabe, insbesondere in Bezug auf die Sicherheit bei der ZusammenfĂŒhrung von Shards. Eine faire Auswahl eines zufĂ€lligen BP, um ihn fĂŒr einen bestimmten Shard verantwortlich zu machen, ist ebenso eine Herausforderung wie bei Konsensalgorithmen â auch dies ist eine PVRB-Aufgabe. In zentralisierten Systemen werden Shards von einem Lastenausgleichsmechanismus zugewiesen, der einfach einen Hash vom Anfrage berechnet und an den entsprechenden AusfĂŒhrer sendet. In Blockchains kann die Möglichkeit, auf diese Zuweisung Einfluss zu nehmen, zu einem Angriff auf den Konsens fĂŒhren. Beispielsweise kann der Angreifer den Inhalt der Transaktionen kontrollieren und bestimmen, welche Transaktionen in den von ihm kontrollierten Shard gelangt und die Blockchain darin manipuliert werden. Die Diskussion ĂŒber die Problematik der Verwendung von Zufallszahlen fĂŒr Sharding-Aufgaben in Ethereum kann man weiterlesen.
Sharding ist eine der ambitioniertesten und anspruchsvollsten Herausforderungen im Bereich Blockchain. Ihre Lösung ermöglicht den Aufbau von dezentralen Netzwerken mit fantastischer Leistung und KapazitĂ€t. PVRB ist nur ein wichtiger Baustein fĂŒr diese Lösung.
Spiele, wirtschaftliche Protokolle, Arbitrage
Die Rolle von Zufallszahlen in der Spieleindustrie ist enorm. Ihr offensichtlicher Einsatz in Online-Casinos sowie ihr impliziter Einfluss auf die Berechnung der Auswirkungen bestimmter Spielaktionen stellen komplexe Herausforderungen fĂŒr dezentralisierte Netzwerke dar, in denen es keinen zentralen Zufallsquelle gibt. ZufĂ€llige Auswahlen können jedoch auch viele wirtschaftliche Probleme lösen und dabei helfen, einfachere und effektivere Protokolle zu erstellen. Angenommen, unser Protokoll sieht Streitigkeiten ĂŒber die Bezahlung von kostengĂŒnstigen Dienstleistungen vor, und diese Streitigkeiten treten recht selten auf. In diesem Fall, wenn es einen unwiderlegbaren PVRB gibt, können Kunden und VerkĂ€ufer eine zufĂ€llige Lösung der Streitigkeiten vereinbaren, jedoch mit einer bestimmten Wahrscheinlichkeit. Zum Beispiel hat der Kunde eine 60%ige Gewinnchance, der VerkĂ€ufer 40%. Dieser auf den ersten Blick absurde Ansatz ermöglicht es, Streitigkeiten automatisch mit einer genau vorhersagbaren Gewinn- und Verlustquote zu lösen, die beide Parteien zufriedenstellt, ohne dass eine dritte Partei eingreifen muss und ohne Zeitverschwendung. DarĂŒber hinaus kann das VerhĂ€ltnis der Wahrscheinlichkeiten dynamisch sein und von bestimmten globalen Variablen abhĂ€ngen. Wenn ein Unternehmen beispielsweise gut lĂ€uft, wenige Streitigkeiten und hohe Einnahmen verzeichnet, kann es die Wahrscheinlichkeit der streitigen Lösung zugunsten der Kunden erhöhen, zum Beispiel auf 70/30 oder 80/20. Umgekehrt, wenn Streitigkeiten erhebliche Kosten verursachen und betrĂŒgerisch oder unangemessen sind, kann die Wahrscheinlichkeit in die andere Richtung verschoben werden.
Eine Vielzahl interessanter dezentraler Protokolle, wie tokenkuratierte Register, PrognosemĂ€rkte, Bonding-Kurven und viele andere, stellen wirtschaftliche Spiele dar, in denen gutes Verhalten belohnt und schlechtes bestraft wird. HĂ€ufig treten Sicherheitsprobleme auf, deren Abwehr sich gegenseitig widerspricht. Was vor Angriffen von âWalenâ mit Milliarden von Tokens (âbig stakeâ) geschĂŒtzt ist, ist anfĂ€llig fĂŒr Angriffe von Tausenden von Konten mit kleinen Salden (âsybil stakeâ). Die MaĂnahmen gegen eine Art von Angriff, wie zum Beispiel nichtlineare GebĂŒhren, die darauf abzielen, es unattraktiv zu machen, einen groĂen Stake zu haben, werden in der Regel von einem anderen Angriff unterlaufen. Da es sich um ein wirtschaftliches Spiel handelt, können die entsprechenden statistischen Gewichte im Voraus berechnet werden, und die GebĂŒhren können einfach durch randomisierte Alternativen mit entsprechender Verteilung ersetzt werden. Solche probabilistischen GebĂŒhren lassen sich Ă€uĂerst einfach implementieren, wenn die Blockchain eine zuverlĂ€ssige Quelle fĂŒr ZufĂ€lligkeit bietet und keine komplexen Berechnungen erforderlich sind, was sowohl Walen als auch Sybils das Leben erschwert.
Es ist wichtig, sich bewusst zu sein, dass die Kontrolle ĂŒber ein einzelnes Bit in diesem Zufallsprozess die Möglichkeit bietet, zu manipulieren, indem Wahrscheinlichkeiten verdoppelt oder halbiert werden. Daher ist ein ehrlicher PVRB eine entscheidende Komponente solcher Protokolle.
Wo findet man den richtigen Zufall?
Theoretisch ermöglicht eine ehrliche Zufallsauswahl in dezentralen Netzwerken, nahezu jede Protokollvereinbarung gegen Kollusion nachnachweislich abzusichern. Die BegrĂŒndung ist recht einfach: Wenn das Netzwerk sich auf ein Bit von 0 oder 1 einigt und weniger als die HĂ€lfte der Teilnehmer unehrlich sind, wird das Netzwerk bei ausreichender Anzahl von Iterationen mit fester Wahrscheinlichkeit zu einem Konsens bezĂŒglich dieses Bits gelangen. Einfach weil der ehrliche Zufallsprozess in 51% der FĂ€lle 51 von 100 Teilnehmern auswĂ€hlen wird. Aber das ist theoretisch, denn in realen Netzwerken erfordert das Erreichen eines solchen Sicherheitsniveaus, wie in den Artikeln beschrieben, viele Nachrichten zwischen Hosts, komplexe mehrstufige Kryptografie, und jede Erschwerung des Protokolls fĂŒgt sofort neue Angriffsvektoren hinzu.
Deshalb ist bisher kein PVRB in Blockchain-Systemen nachweislich robust, der lange genug verwendet wurde, um die Tests durch echte Anwendungen, mehrere Audits, Belastungstests und selbstverstÀndlich echten Angriffen zu bestehen. Ohne diese ist es schwierig, ein Produkt tatsÀchlich als sicher zu betrachten.
Dennoch gibt es mehrere vielversprechende AnsĂ€tze, die sich in zahlreichen Details unterscheiden, und einer von ihnen wird sicherlich das Problem lösen. Mit den heutigen Rechenressourcen kann theoretische Kryptografie recht geschickt in praktische Anwendungen umgesetzt werden. In Zukunft werden wir gerne ĂŒber die Implementierungen von PVRB berichten: es gibt derzeit mehrere davon, jede mit einem eigenen Satz wichtiger Eigenschaften und Besonderheiten in der Umsetzung, und hinter jeder steht eine interessante Idee. Nur wenige Teams beschĂ€ftigen sich mit Randomisierung, und die Erfahrungen jedes einzelnen sind fĂŒr alle anderen Ă€uĂerst wertvoll. Wir hoffen, dass unsere Informationen es anderen Teams ermöglichen, schneller voranzukommen, unter BerĂŒcksichtigung der Erfahrungen der VorgĂ€nger.
Quelle: habr.com
