Algorand: Kripto Para Birimleri İçin Bizans Anlaşmalarını Ölçeklendirme
Zusammenfassung
Ein öffentliches Hauptbuch ist eine manipulationssichere Datenfolge, die von jedem gelesen und ergänzt werden kann. Öffentliche Hauptbücher haben unzählige und überzeugende Verwendungsmöglichkeiten. Sie können alle Arten vor aller Augen sichern von Transaktionen – wie Titeln, Verkäufen und Zahlungen – in der genauen Reihenfolge, in der sie stattfinden. Öffentliche Hauptbücher dämmen nicht nur Korruption ein, sondern ermöglichen auch hochentwickelte Anwendungen – wie z Kryptowährungen und smart contracts. Sie werden die Art und Weise einer demokratischen Gesellschaft revolutionieren betreibt. In der derzeit implementierten Form sind sie jedoch schlecht skalierbar und können ihr Potenzial nicht ausschöpfen. Algorand ist eine wirklich demokratische und effiziente Möglichkeit, ein öffentliches Hauptbuch zu implementieren. Im Gegensatz zu früher Implementierungen, die auf Arbeitsnachweisen basieren, erfordern einen vernachlässigbaren Rechenaufwand und generiert einen Transaktionsverlauf, der mit überwältigend hoher Wahrscheinlichkeit nicht „verzweigt“ wird. Algorand basiert auf einer (neuen und superschnellen) byzantinischen Vereinbarung zur Nachrichtenübermittlung. Der Konkretheit halber beschreiben wir Algorand nur als Geldplattform.
Özet
Halka açık bir defter, herkes tarafından okunabilen ve artırılabilen, tahrifata dayanıklı bir veri dizisidir. Kamu defterlerinin sayısız ve ilgi çekici kullanımları vardır. Göz önünde her türlü şeyi güvence altına alabilirler. tapu, satış ve ödemeler gibi işlemlerin tam olarak gerçekleştikleri sıraya göre sıralanması. Kamu defterleri sadece yolsuzluğu engellemekle kalmıyor, aynı zamanda çok karmaşık uygulamaları da mümkün kılıyor. kripto para birimleri ve smart contracts. Demokratik bir toplumun yolunda devrim yapmak için duruyorlar çalışır. Ancak şu anda uygulandıkları şekliyle zayıf ölçekleniyorlar ve potansiyellerine ulaşamıyorlar. Algorand, halka açık bir defteri uygulamanın gerçek anlamda demokratik ve etkili bir yoludur. Öncekinin aksine iş kanıtına dayalı uygulamalar, ihmal edilebilir miktarda hesaplama gerektirir ve son derece yüksek olasılıkla "çatallanmayacak" bir işlem geçmişi oluşturur. Algorand (yeni ve süper hızlı) mesaj ileten Bizans anlaşmasına dayanmaktadır. Somut olması açısından Algorand'yi yalnızca bir para platformu olarak tanımlayacağız.
Einführung
Geld wird immer virtueller. Es wurde geschätzt, dass etwa 80 % der Vereinigten Staaten Dollar existieren heute nur noch als Hauptbucheinträge [5]. Andere Finanzinstrumente ziehen nach. In einer idealen Welt, in der wir auf eine allgemein vertrauenswürdige zentrale Instanz zählen könnten, wären wir immun Um allen möglichen Cyber-Angriffen standzuhalten, könnten Geld- und andere Finanztransaktionen ausschließlich elektronisch abgewickelt werden. Leider leben wir nicht in einer solchen Welt. Dementsprechend sind dezentrale Kryptowährungen, wie z als Bitcoin [29] und „smart contract“-Systeme wie Ethereum wurden [4] vorgeschlagen. Bei Das Herzstück dieser Systeme ist ein gemeinsames Hauptbuch, das eine Abfolge von Transaktionen zuverlässig aufzeichnet. ∗Dies ist die formellere (und asynchronere) Version des ArXiv-Artikels des zweiten Autors [24], eines Artikels basiert auf dem von Gorbunov und Micali [18]. Die Technologien von Algorand sind Gegenstand des Folgenden Patentanmeldungen: US62/117.138 US62/120.916 US62/142.318 US62/218.817 US62/314.601 PCT/US2016/018300 US62/326.865 62/331.654 US62/333.340 US62/343.369 US62/344.667 US62/346.775 US62/351.011 US62/653.482 US62/352.195 US62/363.970 US62/369.447 US62/378.753 US62/383.299 US62/394.091 US62/400.361 US62/403.403 US62/410.721 US62/416.959 US62/422.883 US62/455.444 US62/458.746 US62/459.652 US62/460.928 US62/465.931so vielfältig wie Zahlungen und Verträge, und zwar auf manipulationssichere Weise. Die Technologie der Wahl Die Gewährleistung dieser Manipulationssicherheit ist blockchain. Blockchains stecken hinter Anwendungen wie Kryptowährungen [29], Finanzanwendungen [4] und das Internet der Dinge [3]. Mehrere Techniken Zur Verwaltung blockchain-basierter Ledger wurden vorgeschlagen: Proof of Work [29], Proof of Stake [2], praktische byzantinische Fehlertoleranz [8] oder eine Kombination davon. Derzeit kann die Verwaltung von Hauptbüchern jedoch ineffizient sein. Zum Beispiel proof-of-work von Bitcoin Der Ansatz (basierend auf dem ursprünglichen Konzept von [14]) erfordert einen großen Rechenaufwand und ist verschwenderisch und skaliert schlecht [1]. Darüber hinaus konzentriert es de facto die Macht in sehr wenigen Händen. Wir möchten daher eine neue Methode zur Implementierung eines öffentlichen Hauptbuchs vorschlagen, das Folgendes bietet: Bequemlichkeit und Effizienz eines zentralisierten Systems, das von einer vertrauenswürdigen und unantastbaren Autorität betrieben wird, ohne die Ineffizienzen und Schwächen aktueller dezentraler Implementierungen. Wir nennen unseren Ansatz Algorand, weil wir algorithmische Zufälligkeit verwenden, um basierend auf dem bisher erstellten Hauptbuch auszuwählen, eine Gruppe von Verifizierern, die für die Erstellung des nächsten Blocks gültiger Transaktionen verantwortlich sind. Natürlich, Wir stellen sicher, dass solche Auswahlen nachweislich vor Manipulationen geschützt und bis dahin unvorhersehbar sind in letzter Minute, sondern auch, dass sie letztendlich allgemein klar sind. Der Ansatz von Algorand ist durchaus demokratisch, weder im Prinzip noch de facto erstellt verschiedene Klassen von Benutzern (als „Miner“ und „normale Benutzer“ in Bitcoin). In Algorand „alle Die Macht liegt bei der Menge aller Benutzer.“ Eine bemerkenswerte Eigenschaft von Algorand ist, dass sein Transaktionsverlauf nur mit sehr kleinen Teilen möglich ist Wahrscheinlichkeit (z. B. eins zu einer Billion oder sogar 10−18). Algorand kann auch einige rechtliche Aspekte ansprechen und politische Bedenken. Der Algorand-Ansatz gilt für blockchains und allgemeiner für jede Generierungsmethode eine manipulationssichere Folge von Blöcken. Wir haben tatsächlich eine neue Methode vorgeschlagen – eine Alternative zu und effizienter als blockchains – das kann von unabhängigem Interesse sein. 1.1 Annahme und technische Probleme von Bitcoin Bitcoin ist ein sehr ausgeklügeltes System und hat viele weitere Forschungen inspiriert. Doch es ist auch problematisch. Fassen wir die zugrunde liegende Annahme und die technischen Probleme zusammen – welche werden tatsächlich von praktisch allen Kryptowährungen geteilt, die, wie Bitcoin, auf proof-of-work basieren. Für diese Zusammenfassung genügt es, sich daran zu erinnern, dass ein Benutzer in Bitcoin mehrere öffentliche Schlüssel besitzen kann eines digitalen Signatursystems, dass Geld mit öffentlichen Schlüsseln verknüpft ist und dass eine Zahlung eine ist Digitale Signatur, die einen Geldbetrag von einem öffentlichen Schlüssel auf einen anderen überträgt. Im Wesentlichen, Bitcoin organisiert alle verarbeiteten Zahlungen in einer Kette von Blöcken, B1, B2, . . ., jeweils bestehend aus mehreren Zahlungen, so dass alle Zahlungen von B1, in beliebiger Reihenfolge, gefolgt von denen von B2, in beliebiger Reihenfolge, usw. stellen eine Folge gültiger Zahlungen dar. Jeder Block wird im Durchschnitt alle 10 Minuten generiert. Bei dieser Abfolge von Blöcken handelt es sich um eine Kette, da sie so strukturiert ist, dass jede Änderung auch möglich ist in einem einzelnen Block, dringt in alle nachfolgenden Blöcke ein und erleichtert so das Erkennen von Änderungen die Zahlungshistorie. (Wie wir sehen werden, wird dies dadurch erreicht, dass in jeden Block ein kryptografischer Code eingefügt wird hash des vorherigen.) Eine solche Blockstruktur wird als blockchain bezeichnet. Annahme: Ehrliche Mehrheit der Rechenleistung Bitcoin geht davon aus, dass keine böswillige Absicht vorliegt Eine Entität (noch eine Koalition koordinierter böswilliger Entitäten) kontrolliert den Großteil der Rechenleistung Macht, die der Blockgenerierung gewidmet ist. Eine solche Entität wäre tatsächlich in der Lage, blockchain zu ändern,und so die Zahlungshistorie nach Belieben umschreiben. Es könnte insbesondere eine Zahlung \(\wp\) leisten, Erhalten Sie die bezahlten Leistungen und „löschen“ Sie dann jede Spur von \(\wp\). Technisches Problem 1: Rechenverschwendung Bitcoins proof-of-work-Ansatz zum Blockieren Die Generierung erfordert einen außerordentlichen Rechenaufwand. Derzeit sind es nur ein paar Hundert Tausende öffentliche Schlüssel im System können die 500 leistungsstärksten Supercomputer nur aufbringen lediglich 12,8 % der gesamten Rechenleistung, die von den Bitcoin-Spielern benötigt wird. Dies Der Rechenaufwand würde erheblich zunehmen, wenn deutlich mehr Benutzer dem System beitreten würden. Technisches Problem 2: Machtkonzentration Heute aufgrund der exorbitanten Menge an Berechnung erforderlich, ein Benutzer, der versucht, einen neuen Block mithilfe eines normalen Desktops zu generieren (geschweige denn a Handy), rechnet damit, Geld zu verlieren. Um einen neuen Block mit einem gewöhnlichen Computer zu berechnen, Die erwarteten Kosten für den für die Berechnung erforderlichen Strom übersteigen die erwartete Belohnung. Nur die Verwendung von Pools speziell gebauter Computer (die nichts anderes tun als „neue Blöcke abbauen“), einer könnte erwarten, durch die Generierung neuer Blöcke einen Gewinn zu erzielen. Dementsprechend sind es heute de facto zwei disjunkte Benutzerklassen: normale Benutzer, die nur Zahlungen leisten, und spezialisierte Mining-Pools, die nur nach neuen Blöcken suchen. Es sollte daher nicht überraschen, dass seit kurzem die gesamte Rechenleistung für Block Generation liegt in nur fünf Pools. Unter solchen Bedingungen ist die Annahme, dass eine Mehrheit der Rechenleistung ist ehrlich, wird weniger glaubwürdig. Technisches Problem 3: Mehrdeutigkeit In Bitcoin ist blockchain nicht unbedingt eindeutig. Tatsächlich sein letzter Teil verzweigt sich oft: Der blockchain kann – sagen wir – B1 sein, . . . , Bk, B′ k+1, B′ k+2, gem ein Benutzer und B1, . . . , Bk, B'' k+1, B'' k+2, B'' k+3 laut einem anderen Benutzer. Erst nach mehreren Blöcken Kann man einigermaßen sicher sein, dass die ersten k + 3 Blöcke gleich sind, wenn sie zur Kette hinzugefügt wurden? für alle Benutzer. Daher kann man sich nicht sofort auf die im letzten Block enthaltenen Zahlungen verlassen die Kette. Es ist sinnvoller abzuwarten und zu sehen, ob der Block ausreichend tief im Inneren sitzt blockchain und somit ausreichend stabil. Unabhängig davon wurden auch Bedenken hinsichtlich der Strafverfolgung und der Geldpolitik in Bezug auf Bitcoin.1 geäußert 1.2 Algorand, kurz und bündig Einstellung Algorand arbeitet in einer sehr schwierigen Umgebung. Kurz gesagt, (a) Erlaubnisfreie und erlaubte Umgebungen. Algorand funktioniert effizient und sicher in einer völlig erlaubnisfreien Umgebung, in der beliebig viele Benutzer dem beitreten dürfen System jederzeit und ohne jegliche Überprüfung oder Erlaubnis jeglicher Art zu öffnen. Natürlich funktioniert Algorand noch besser in einer zugelassenen Umgebung. 1Die durch Bitcoin-Zahlungen gebotene (Pseudo-)Anonymität kann zur Geldwäsche und/oder Finanzierung missbraucht werden von kriminellen Personen oder terroristischen Organisationen. Traditionelle Banknoten oder Goldbarren, die im Prinzip perfekt sind Anonymität sollte die gleiche Herausforderung darstellen, aber die Physizität dieser Währungen verlangsamt das Geld erheblich Übermittlungen, um ein gewisses Maß an Überwachung durch Strafverfolgungsbehörden zu ermöglichen. Die Fähigkeit, „Geld zu drucken“, ist eine der grundlegendsten Befugnisse eines Nationalstaats. Im Prinzip also das Massive Die Einführung einer unabhängig schwankenden Währung könnte diese Macht einschränken. Derzeit ist Bitcoin jedoch noch lange nicht da Es stellt eine Bedrohung für die staatliche Geldpolitik dar und wird es aufgrund seiner Skalierbarkeitsprobleme möglicherweise nie sein.(b) Sehr kontroverse Umgebungen. Algorand widersteht einem sehr mächtigen Gegner, der es kann (1) jeden Benutzer, den er möchte, zu jeder Zeit, die er möchte, sofort korrumpieren, vorausgesetzt, dass in a In einer erlaubnisfreien Umgebung gehören zwei Drittel des Geldes im System ehrlichen Benutzern. (In einem (In einer genehmigten Umgebung, unabhängig vom Geld, reicht es aus, dass 2/3 der Benutzer ehrlich sind.) (2) vollständige Kontrolle und perfekte Koordinierung aller beschädigten Benutzer; und (3) Planen Sie die Zustellung aller Nachrichten, vorausgesetzt, dass jede Nachricht von einem ehrlichen Benutzer gesendet wird erreicht 95 % der ehrlichen Nutzer innerhalb einer Zeit \(\lambda\)m, die allein von der Größe von m abhängt. Haupteigenschaften Trotz der Anwesenheit unseres mächtigen Gegners in Algorand • Der Rechenaufwand ist minimal. Im Wesentlichen egal, wie viele Benutzer es gibt Im System vorhanden, muss jeder der fünfzehnhundert Benutzer höchstens einige Sekunden ausführen Berechnung. • Ein neuer Block wird in weniger als 10 Minuten generiert und verlässt de facto nie den blockchain. Beispielsweise ist zu erwarten, dass die Zeit zum Generieren eines Blocks in der ersten Ausführungsform kürzer ist als Λ + 12,4\(\lambda\), wobei Λ die Zeit ist, die erforderlich ist, um einen Block in einem Peer-to-Peer-Klatsch zu verbreiten Mode, egal welche Blockgröße man wählt, und \(\lambda\) ist die Zeit, um 1.500 200B lange Nachrichten zu verbreiten. (Da in einem wirklich dezentralisierten System Λ im Wesentlichen eine intrinsische Latenz ist, in Algorand Der begrenzende Faktor bei der Blockgenerierung ist die Netzwerkgeschwindigkeit.) Die zweite Ausführungsform hat tatsächlich experimentell getestet (von?), was darauf hindeutet, dass ein Block in weniger als 40 generiert wird Sekunden. Darüber hinaus darf blockchain von Algorand nur mit vernachlässigbarer Wahrscheinlichkeit (d. h. weniger als eins) gegabelt werden in einer Billion), und so können Benutzer die in einem neuen Block enthaltenen Zahlungen weiterleiten, sobald die Block erscheint. • Die gesamte Macht liegt bei den Benutzern selbst. Algorand ist ein wirklich verteiltes System. Insbesondere Es gibt keine exogenen Einheiten (wie die „Miner“ in Bitcoin), die welche Transaktionen kontrollieren können werden anerkannt. Algorands Techniken. 1. Ein neues und schnelles Byzantinisches Abkommensprotokoll. Algorand generiert einen neuen Block über ein neues kryptografisches, nachrichtenweitergebendes, binäres Byzantine Agreement (BA)-Protokoll, BA⋆. Protokoll BA⋆erfüllt nicht nur einige zusätzliche Eigenschaften (auf die wir gleich noch eingehen werden), sondern ist auch sehr schnell. Grob gesagt besteht die Version mit Binäreingabe aus einer dreistufigen Schleife, in der ein Spieler eine Single sendet Nachricht mi an alle anderen Spieler. Ausgeführt in einem vollständigen und synchronen Netzwerk, mit mehr Wenn mehr als 2/3 der Spieler ehrlich sind, mit einer Wahrscheinlichkeit von > 1/3, endet das Protokoll nach jeder Schleife Vereinbarung. (Wir betonen, dass das Protokoll BA⋆der ursprünglichen Definition der byzantinischen Vereinbarung entspricht von Pease, Shostak und Lamport [31], ohne Abschwächungen.) Algorand nutzt dieses binäre BA-Protokoll, um in unserer unterschiedlichen Kommunikation eine Einigung zu erzielen Modell, auf jedem neuen Block. Der vereinbarte Block wird dann über eine vorgeschriebene Anzahl zertifiziert Digitale Signatur der entsprechenden Prüfer erstellt und über das Netzwerk verbreitet. 2. Kryptografische Sortierung. Obwohl es sehr schnell ist, würde das Protokoll BA⋆ von weiteren Vorteilen profitieren Geschwindigkeit, wenn sie von Millionen von Benutzern gespielt wird. Dementsprechend wählt Algorand die künftigen Spieler von BA⋆ auseine viel kleinere Teilmenge der Menge aller Benutzer. Um eine andere Art von Machtkonzentration zu vermeiden Problem, jeder neue Block Br wird durch eine neue Ausführung von BA⋆ konstruiert und vereinbart, durch einen separaten Satz ausgewählter Prüfer, SV r. Im Prinzip kann die Auswahl eines solchen Sets genauso schwierig sein wie Br direkt auswählen. Wir begegnen diesem potenziellen Problem mit einem Ansatz, den wir „umfassend“ nennen der aufschlussreiche Vorschlag von Maurice Herlihy, kryptografische Sortierung. Sortierung ist die Praxis von Auswahl von Beamten nach dem Zufallsprinzip aus einer großen Gruppe berechtigter Personen [6]. (Sortierung wurde geübt über Jahrhunderte hinweg: zum Beispiel durch die Republiken Athen, Florenz und Venedig. In der modernen Justiz Systeme werden bei der Auswahl der Jurys häufig Zufallsauswahlverfahren eingesetzt. In letzter Zeit gibt es auch Zufallsstichproben für Wahlen befürwortet von David Chaum [9].) In einem dezentralen System natürlich die Wahl der Es ist problematisch, zufällige Münzen zu verwenden, um die Mitglieder jedes Verifizierersatzes SV r zufällig auszuwählen. Wir greifen daher auf Kryptographie zurück, um jeden Verifizierersatz aus der Population aller Benutzer auszuwählen. auf eine Weise, die garantiert automatisch (d. h. ohne Nachrichtenaustausch) und zufällig erfolgt. Im Wesentlichen verwenden wir eine kryptografische Funktion, um den vorherigen Block automatisch zu ermitteln Br−1, ein Benutzer, der Leiter, der dafür verantwortlich ist, den neuen Block Br vorzuschlagen, und der Verifizierer SV r, in Aufgabe ist es, eine Einigung über den vom Vorsitzenden vorgeschlagenen Block zu erzielen. Da böswillige Benutzer Einfluss nehmen können Die Zusammensetzung von Br−1 (z. B. durch Auswahl einiger seiner Zahlungen) konstruieren und verwenden wir speziell Zusätzliche Eingaben, um zu beweisen, dass der Anführer für den r-ten Block und der Verifizierersatz SV r tatsächlich vorhanden sind zufällig ausgewählt. 3. Die Menge (Samen) Qr. Wir verwenden dazu den letzten Block Br−1 im blockchain Bestimmen Sie automatisch den nächsten Verifizierersatz und den Leiter, der für den Aufbau des neuen Blocks verantwortlich ist Br. Die Herausforderung bei diesem Ansatz besteht darin, dass durch die einfache Auswahl einer etwas anderen Zahlung im In der letzten Runde erlangt unser mächtiger Gegner eine enorme Kontrolle über den nächsten Anführer. Auch wenn er Obwohl er nur 1/1000 der Spieler/Gelder im System kontrollierte, konnte er sicherstellen, dass alle Anführer dies tun bösartig. (Siehe Abschnitt 4.1 zur Intuition.) Diese Herausforderung ist für alle proof-of-stake-Ansätze von zentraler Bedeutung. und nach unserem besten Wissen wurde es bis jetzt noch nicht zufriedenstellend gelöst. Um dieser Herausforderung gerecht zu werden, bauen wir gezielt und sorgfältig ein separates und kontinuierlich aktualisiertes System auf definierte Größe Qr, die nachweislich nicht nur unvorhersehbar, sondern auch nicht beeinflussbar ist mächtiger Gegner. Wir können Qr als den r-ten Samen bezeichnen, da Algorand von Qr auswählt, Über eine geheime kryptografische Sortierung werden alle Benutzer, die bei der Generierung eine besondere Rolle spielen, ermittelt rter Block. 4. Geheime krytografische Sortierung und geheime Anmeldeinformationen. Zufällige und eindeutige Verwendung des aktuellen letzten Blocks, Br−1, um den Verifizierersatz und den verantwortlichen Leiter auszuwählen Der Bau des neuen Blocks Br reicht nicht aus. Da Br−1 bekannt sein muss, bevor Br erzeugt wird, Auch die letzte in Br−1 enthaltene, nicht beeinflussbare Größe Qr−1 muss bekannt sein. Dementsprechend also sind die Verifizierer und der Leiter, der für die Berechnung des Blocks Br verantwortlich ist. Also unser mächtiger Gegner könnte sie alle sofort korrumpieren, bevor sie sich auf eine Diskussion über Br einlassen, um zu bekommen volle Kontrolle über den von ihnen zertifizierten Block. Um diesem Problem vorzubeugen, erfahren Führungskräfte (und eigentlich auch Prüfer) heimlich von ihrer Rolle, können es aber Berechnen Sie einen ordnungsgemäßen Berechtigungsnachweis, der in der Lage ist, jedem nachzuweisen, der diese Rolle tatsächlich innehat. Wann Ein Benutzer erkennt privat, dass er der Anführer für den nächsten Block ist, und baut zunächst heimlich seinen Block zusammen Er erstellt einen eigenen vorgeschlagenen neuen Block und verbreitet ihn dann zusammen mit seinem eigenen (damit er zertifiziert werden kann). Berechtigung. Auf diese Weise erkennt der Gegner jedoch sofort, wer der Anführer des nächsten ist Block ist, und obwohl er ihn sofort korrumpieren kann, wird es für den Gegner zu spät sein Einfluss auf die Wahl eines neuen Blocks haben. Tatsächlich kann er die Botschaft des Anführers nicht mehr „zurückrufen“.als eine mächtige Regierung eine von WikiLeaks viral verbreitete Botschaft zurück in die Flasche stecken kann. Wie wir sehen werden, können wir weder die Einzigartigkeit eines Anführers garantieren, noch dafür, dass jeder sicher ist, wer der Anführer ist ist, einschließlich des Anführers selbst! Aber in Algorand ist ein eindeutiger Fortschritt garantiert. 5. Spieleraustauschbarkeit. Nachdem er einen neuen Block vorgeschlagen hat, könnte der Anführer genauso gut „sterben“ (oder sterben). vom Gegner korrumpiert), weil seine Arbeit erledigt ist. Für die Verifizierer in SV r sind die Dinge jedoch weniger einfach. Da ich für die Beglaubigung des neuen Blocks Br mit ausreichend vielen Unterschriften verantwortlich bin, Sie müssen zunächst eine byzantinische Einigung über den vom Führer vorgeschlagenen Block herbeiführen. Das Problem ist, dass Egal wie effizient es ist, BA⋆erfordert mehrere Schritte und die Ehrlichkeit von > 2/3 seiner Spieler. Dies stellt ein Problem dar, da die Spielermenge von BA⋆aus Effizienzgründen aus der kleinen Menge SV r besteht wird zufällig aus der Menge aller Benutzer ausgewählt. So ist unser mächtiger Gegner zwar unfähig korrupt 1/3 aller Benutzer, kann sicherlich alle Mitglieder von SV r korrumpieren! Glücklicherweise werden wir beweisen, dass das Protokoll BA⋆, das durch die Verbreitung von Nachrichten auf Peer-to-Peer-Art ausgeführt wird, vom Spieler austauschbar ist. Diese neuartige Anforderung bedeutet, dass das Protokoll korrekt und korrekt ist erreicht effizient einen Konsens, auch wenn jeder seiner Schritte völlig neu und zufällig ausgeführt wird und unabhängig ausgewählter Satz von Spielern. Somit gibt es bei Millionen von Benutzern jeweils eine kleine Gruppe von Spielern einem Schritt von BA⋆ zugeordnet, hat höchstwahrscheinlich einen leeren Schnittpunkt mit der nächsten Menge. Darüber hinaus werden die Spielermengen verschiedener Schritte von BA⋆ wahrscheinlich völlig unterschiedlich sein Kardinalitäten. Darüber hinaus wissen die Mitglieder jeder Gruppe nicht, wer die nächste Spielergruppe sein wird sein und keinen inneren Zustand heimlich passieren. Die Eigenschaft des austauschbaren Spielers ist tatsächlich entscheidend, um den dynamischen und sehr mächtigen Spieler zu besiegen Gegner, den wir uns vorstellen. Wir glauben, dass sich Protokolle mit austauschbaren Playern in vielen Fällen als entscheidend erweisen werden Kontexte und Anwendungen. Sie werden insbesondere für die sichere Ausführung kleiner Unterprotokolle von entscheidender Bedeutung sein Eingebettet in ein größeres Spieleruniversum mit einem dynamischen Gegner, der selbst korrumpieren kann Ein kleiner Bruchteil der Gesamtzahl der Spieler hat keine Schwierigkeiten, alle Spieler in den kleineren zu korrumpieren Unterprotokoll. Eine zusätzliche Eigenschaft/Technik: Faule Ehrlichkeit Ein ehrlicher Benutzer befolgt seine Vorschriften Anweisungen, zu denen auch gehört, online zu sein und das Protokoll auszuführen. Seitdem ist Algorand nur bescheiden Rechen- und Kommunikationsanforderungen, Online-Sein und Ausführung des Protokolls „im Hintergrund“ ist kein großes Opfer. Natürlich gibt es auch ein paar „Abwesenheiten“ unter ehrlichen Spielern, wie z aufgrund eines plötzlichen Verbindungsverlusts oder der Notwendigkeit eines Neustarts werden automatisch toleriert (weil Wir können so wenige Spieler immer als vorübergehend böswillig betrachten. Wir weisen jedoch darauf hin, dass Algorand einfach angepasst werden kann, um in einem neuen Modell zu funktionieren, in dem ehrliche Benutzer vorhanden sind Die meiste Zeit offline. Unser neues Modell kann wie folgt informell vorgestellt werden. Faule Ehrlichkeit. Grob gesagt ist ein Benutzer faul, aber ehrlich, wenn er (1) alle seine Vorschriften befolgt Anweisungen, wenn er zur Teilnahme am Protokoll aufgefordert wird, und (2) er zur Teilnahme aufgefordert wird nur selten und mit entsprechender Vorankündigung auf das Protokoll eingehen. Mit einer so entspannten Vorstellung von Ehrlichkeit sind wir möglicherweise noch zuversichtlicher, dass ehrliche Menschen es sein werden zur Hand, wenn wir sie brauchen, und Algorand garantieren, dass, wenn dies der Fall ist, Das System arbeitet auch dann sicher, wenn zu einem bestimmten Zeitpunkt Die Mehrheit der teilnehmenden Spieler ist böswillig.1.3 Eng verwandte Arbeit Proof-of-Work-Ansätze (wie die zitierten [29] und [4]) sind ziemlich orthogonal zu unserem. So sind die Ansätze, die auf byzantinischer Vereinbarung zur Nachrichtenübermittlung oder praktischer byzantinischer Fehlertoleranz basieren (wie das zitierte [8]). Tatsächlich können diese Protokolle nicht von allen Benutzern ausgeführt werden und können auch nicht in unserem Modell auf eine entsprechend kleine Gruppe von Benutzern beschränkt sein. Tatsächlich ist unser mächtiger Gegner mein beschädigt sofort alle beteiligten Benutzer einer kleinen Gruppe, die tatsächlich ein BA-Protokoll ausführen soll. Unser Ansatz könnte als mit dem Proof of Stake [2] verknüpft betrachtet werden, in dem Sinne, dass die „Macht“ der Benutzer beim Blockaufbau ist proportional zu dem Geld, das sie im System besitzen (im Gegensatz zu – sagen wir – zu das Geld, das sie in ein „Treuhandkonto“ eingezahlt haben). Das Papier, das unserem am nächsten kommt, ist das Sleepy Consensus Model von Pass und Shi [30]. Um das zu vermeiden Der proof-of-work-Ansatz erfordert umfangreiche Berechnungen, auf die sich ihr Artikel (und freundlicherweise) stützt Credits) Algorands geheime kryptografische Sortierung. Mit diesem entscheidenden Aspekt haben mehrere gemeinsam Es bestehen erhebliche Unterschiede zwischen unseren Papieren. Insbesondere (1) Ihre Einstellung ist nur erlaubt. Im Gegensatz dazu ist Algorand auch ein erlaubnisloses System. (2) Sie verwenden ein Protokoll im Nakamoto-Stil, weshalb ihre blockchain häufig gegabelt werden. Obwohl Unter Verzicht auf proof-of-work wird in ihrem Protokoll ein heimlich ausgewählter Anführer gebeten, das zu verlängern längste gültige (in einem umfassenderen Sinne) blockchain. Gabelungen sind daher unvermeidlich und man muss darauf warten Der Block ist ausreichend „tief“ in der Kette. Tatsächlich, um ihre Ziele mit einem Gegner zu erreichen Da sie zu adaptiven Verfälschungen fähig sind, erfordern sie, dass ein Block poly(N) tief ist, wobei N das darstellt Gesamtzahl der Benutzer im System. Beachten Sie das, selbst wenn man davon ausgeht, dass ein Block erzeugt werden könnte Wenn es in einer Minute N = 1 Mio. Benutzer gäbe, müsste man etwa 2 Mio. Jahre darauf warten dass ein Block N-tief wird, und etwa zwei Jahre lang, bis ein Block N-tief wird. Im Gegensatz dazu Algorands blockchain gabelt sich nur mit vernachlässigbarer Wahrscheinlichkeit, auch wenn der Gegner korrupt ist Benutzer können sich sofort und anpassungsfähig an die neuen Blöcke wenden, auf die man sich sofort verlassen kann. (3) Sie behandeln keine einzelnen byzantinischen Verträge. In gewissem Sinne garantieren sie nur „letzterer Konsens über eine wachsende Reihe von Werten“. Es handelt sich vielmehr um ein Zustandsreplikationsprotokoll als ein BA-Wert und kann nicht verwendet werden, um eine byzantinische Einigung über einen individuellen Interessenwert zu erzielen. Im Gegensatz dazu kann Algorand bei Bedarf auch nur einmal verwendet werden, um Millionen von Benutzern schnell zu ermöglichen byzantinische Einigung über einen bestimmten Zinswert erzielen. (4) Sie erfordern schwach synchronisierte Uhren. Das heißt, die Uhren aller Benutzer sind um eine kleine Zeit verschoben δ. Im Gegensatz dazu müssen Uhren in Algorand nur (im Wesentlichen) die gleiche „Geschwindigkeit“ haben. (5) Ihr Protokoll funktioniert mit faulen, aber ehrlichen Benutzern oder mit der ehrlichen Mehrheit der Online-Benutzer. Sie danken Algorand dafür, dass er das Problem angesprochen hat, dass ehrliche Benutzer massenhaft offline gehen, und zwar dafür Als Antwort darauf wurde das Modell der faulen Ehrlichkeit vorgeschlagen. Ihr Protokoll funktioniert nicht nur bei Faulenzern Ehrlichkeitsmodell, aber auch in ihrem kontradiktorischen Sleepy-Modell, bei dem ein Gegner auswählt, welche Benutzer online sind und die offline sind, vorausgesetzt, dass die Mehrheit der Online-Nutzer jederzeit ehrlich ist.2 2Die ursprüngliche Version ihres Artikels betrachtete in ihrem kontradiktorischen, schläfrigen Modell tatsächlich nur Sicherheit. Die Die ursprüngliche Version von Algorand, die ihrer Vorgängerversion vorausgeht, sah auch ausdrücklich die Annahme vor, dass eine bestimmte Mehrheit der Online-Spieler sind immer ehrlich, haben dies jedoch zugunsten des Modells der faulen Ehrlichkeit ausdrücklich von der Betrachtung ausgeschlossen. (Wenn sich zum Beispiel irgendwann die Hälfte der ehrlichen Benutzer dafür entscheidet, offline zu gehen, dann die Mehrheit der Benutzer online kann sehr wohl bösartig sein. Um dies zu verhindern, sollte der Gegner die meisten seiner Kräfte erzwingen (Er hat auch korrupte Spieler dazu gebracht, offline zu gehen, was eindeutig seinem eigenen Interesse zuwiderläuft.) Beachten Sie, dass es sich um ein Protokoll mit einer Mehrheit handelt von faulen, aber ehrlichen Spielern funktioniert gut, wenn die Mehrheit der Online-Benutzer immer böswillig ist. Das ist so, weil Eine ausreichende Anzahl ehrlicher Spieler, die wissen, dass sie zu einem seltenen Zeitpunkt von entscheidender Bedeutung sein werden, werden wählen In diesen Momenten nicht offline zu gehen, noch kann der Gegner sie dazu zwingen, offline zu gehen, da er nicht weiß, wer das ist Entscheidend könnten ehrliche Spieler sein.(6) Sie erfordern eine einfache ehrliche Mehrheit. Im Gegensatz dazu erfordert die aktuelle Version von Algorand eine 2/3 ehrliche Mehrheit. Ein weiteres Papier in unserer Nähe ist Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol, von Kiayias, Russell, David und Oliynykov [20]. Auch ihr System erschien nach unserem. Es auch nutzt kryptografische Sortierung, um auf nachweisbare Weise auf einen Arbeitsnachweis zu verzichten. Allerdings sind ihre Das System ist wiederum ein Protokoll im Nakamoto-Stil, bei dem Gabelungen sowohl unvermeidbar als auch häufig sind. (In ihrem Modell müssen die Blöcke jedoch nicht so tief sein wie im Sleepy-Consensus-Modell.) Darüber hinaus Ihr System basiert auf den folgenden Annahmen: In den Worten der Autoren selbst: „(1) die Das Netzwerk ist hochgradig synchron, (2) die Mehrheit der ausgewählten Stakeholder ist bei Bedarf verfügbar an jeder Epoche teilzunehmen, (3) die Stakeholder bleiben nicht für längere Zeit offline, (4) Die Adaptivität von Verfälschungen unterliegt einer kleinen Verzögerung, die in Runden linear gemessen wird der Sicherheitsparameter.“ Im Gegensatz dazu ist Algorand mit überwältigender Wahrscheinlichkeit forkfrei und stützt sich auf keine dieser vier Annahmen. Insbesondere in Algorand ist der Gegner dazu in der Lage die Benutzer, die er kontrollieren möchte, sofort korrumpieren.
giriiş
Para giderek sanallaşıyor. Amerika Birleşik Devletleri'nin yaklaşık %80'inin dolar bugün yalnızca defter girişleri olarak mevcut [5]. Diğer finansal araçlar da aynı yolu izliyor. Evrensel olarak güvenilen merkezi bir varlığa güvenebileceğimiz ideal bir dünyada, bağışıklık olası tüm siber saldırılara karşı para ve diğer finansal işlemler yalnızca elektronik olabilir. Ne yazık ki böyle bir dünyada yaşamıyoruz. Buna göre, merkezi olmayan kripto para birimleri, Bitcoin [29] olarak ve Ethereum gibi “smart contract” sistemler [4] olarak önerilmiştir. Şu tarihte: Bu sistemlerin kalbi, bir dizi işlemi güvenilir bir şekilde kaydeden paylaşılan bir defterdir. ∗Bu, ikinci yazar [24] tarafından hazırlanan ArXiv makalesinin daha resmi (ve eşzamansız) versiyonudur; kendisi Gorbunov ve Micali'ninkine dayanmaktadır [18]. Algorand'in teknolojileri aşağıdakilerin amacıdır patent başvuruları: US62/117,138 US62/120,916 US62/142,318 US62/218,817 US62/314,601 PCT/US2016/018300 US62/326,865 62/331,654 US62/333,340 US62/343,369 US62/344,667 US62/346,775 US62/351,011 US62/653,482 US62/352,195 US62/363,970 US62/369,447 US62/378,753 US62/383,299 US62/394,091 US62/400,361 US62/403,403 US62/410,721 US62/416,959 US62/422,883 US62/455,444 US62/458,746 US62/459,652 US62/460,928 US62/465,931ödemeler ve sözleşmeler kadar çeşitlidir ve kurcalanamaz bir şekilde. Tercih edilen teknoloji kurcalamaya karşı korumanın blockchain olduğunu garanti edin. Blockchain'ler aşağıdaki gibi uygulamaların arkasındadır: kripto para birimleri [29], finansal uygulamalar [4] ve Nesnelerin İnterneti [3]. Çeşitli teknikler blockchain tabanlı defterleri yönetmek için önerildi: iş kanıtı [29], hisse kanıtı [2], pratik Bizans hata toleransı [8] veya bazı kombinasyonlar. Ancak şu anda defterlerin yönetimi yetersiz olabiliyor. Örneğin, Bitcoin’nin proof-of-work yaklaşım (orijinal [14] kavramına dayalıdır) büyük miktarda hesaplama gerektirir ve israftır ve yetersiz ölçekleniyor [1]. Ayrıca fiili olarak gücü çok az sayıda elde topluyor. Bu nedenle, halka açık bir defteri uygulamaya yönelik yeni bir yöntem ortaya koymak istiyoruz. güvenilir ve dokunulmaz bir otorite tarafından yönetilen merkezi bir sistemin rahatlığı ve verimliliği mevcut merkezi olmayan uygulamaların verimsizlikleri ve zayıflıkları. Yaklaşımımızı diyoruz Algorand, şu ana kadar oluşturulan deftere dayanarak seçim yapmak için algoritmik rastgelelik kullandığımızdan, Bir sonraki geçerli işlem bloğunu oluşturmaktan sorumlu olan bir dizi doğrulayıcı. Doğal olarak, bu tür seçimlerin manipülasyonlara karşı kanıtlanabilir bir şekilde bağışık olmasını ve şu ana kadar öngörülemez olmasını sağlıyoruz: son dakikada, ama aynı zamanda sonuçta evrensel olarak açık olduklarını da. Algorand'nin yaklaşımı ne prensipte ne de fiili olarak oldukça demokratiktir. farklı kullanıcı sınıfları oluşturur (Bitcoin'de “madenciler” ve “sıradan kullanıcılar” olarak). Algorand içinde “tümü güç tüm kullanıcıların elindedir”. Algorand'un dikkate değer bir özelliği, işlem geçmişinin yalnızca çok küçük işlemlerle çatallanabilmesidir. olasılık (örneğin trilyonda bir, hatta 10−18). Algorand aynı zamanda bazı yasal konuları da ele alabilir ve siyasi kaygılar. Algorand yaklaşımı blockchain'ler ve daha genel olarak herhangi bir veri oluşturma yöntemi için geçerlidir. kurcalamaya dayanıklı blok dizisi. Biz aslında yeni bir yöntem ortaya koyduk; buna alternatif ve blockchains'den daha verimli; bu bağımsız olarak ilgi çekici olabilir. 1.1 Bitcoin Varsayımları ve Teknik Sorunlar Bitcoin çok ustaca hazırlanmış bir sistemdir ve daha sonra yapılan birçok araştırmaya ilham kaynağı olmuştur. Yine de aynı zamanda sorunludur. Bunun altında yatan varsayımı ve teknik sorunları özetleyelim; aslında Bitcoin gibi proof-of-work temeline dayanan tüm kripto para birimleri tarafından paylaşılmaktadır. Bu özet için, Bitcoin'da bir kullanıcının birden fazla ortak anahtara sahip olabileceğini hatırlamak yeterli olacaktır. dijital imza şemasında, paranın genel anahtarlarla ilişkili olduğu ve ödemenin bir ödeme olduğu Bir miktar parayı bir genel anahtardan diğerine aktaran dijital imza. Esasen, Bitcoin işlenen tüm ödemeleri B1, B2, blok zincirinde düzenler. . ., her biri birden fazla parçadan oluşur B1'in tüm ödemeleri herhangi bir sırayla alınacak ve ardından B2'nin ödemeleri herhangi bir sırayla yapılacak şekilde, vb. geçerli ödemelerin bir dizisini oluşturur. Her blok ortalama olarak her 10 dakikada bir oluşturulur. Bu blok dizisi bir zincirdir, çünkü herhangi bir değişimin gerçekleşmesini sağlayacak şekilde yapılandırılmıştır. tek bir blokta, sonraki tüm bloklara sızarak herhangi bir değişikliğin fark edilmesini kolaylaştırır. ödeme geçmişi. (Göreceğimiz gibi, bu, her bloğa bir kriptografik öncekinin hash.) Bu tür blok yapısına blockchain denir. Varsayım: Hesaplama Gücünün Dürüst Çoğunluğu Bitcoin, kötü amaçlı hiçbir şeyin olmadığını varsayar varlık (veya koordineli kötü niyetli varlıklardan oluşan bir koalisyon) hesaplamanın çoğunluğunu kontrol ediyor blok üretimine ayrılmış güç. Böyle bir varlık aslında blockchain'yi değiştirebilir,ve böylece ödeme geçmişini istediği gibi yeniden yazabilirsiniz. Özellikle ödeme yapabilir \(\wp\), ödenen faydaları elde edin ve ardından \(\wp\)'nin tüm izlerini “silin”. Teknik Sorun 1: Hesaplamalı Atık Bitcoin'in proof-of-work bloğa yaklaşımı üretimi olağanüstü miktarda hesaplama gerektirir. Şu anda sadece birkaç yüz sistemdeki binlerce ortak anahtar, en güçlü 500 süper bilgisayarın yalnızca toplayabileceği Bitcoin oyuncularının ihtiyaç duyduğu toplam hesaplama gücünün yalnızca yüzde 12,8'i. Bu Sisteme önemli ölçüde daha fazla kullanıcı katılırsa hesaplama miktarı büyük ölçüde artacaktır. Teknik Sorun 2: Gücün Yoğunlaşması Bugün aşırı miktardan dolayı hesaplama gerektiğinde, bir kullanıcı sıradan bir masaüstünü (bırakın bir masaüstü bilgisayarı) kullanarak yeni bir blok oluşturmaya çalışıyor. cep telefonu), para kaybetmeyi bekliyor. Gerçekten de, sıradan bir bilgisayarla yeni bir bloğu hesaplamak için, hesaplamaya güç sağlamak için gerekli elektriğin beklenen maliyeti beklenen ödülü aşıyor. Yalnızca özel olarak oluşturulmuş bilgisayar havuzlarını kullanan ("yeni bloklar kazmaktan" başka hiçbir şey yapmayan), bir kişi yeni bloklar üreterek kar elde etmeyi bekleyebilirler. Buna göre bugün fiilen iki ayrık kullanıcı sınıfları: yalnızca ödeme yapan sıradan kullanıcılar ve özel madencilik havuzları, bu yalnızca yeni blokları arar. Bu nedenle son zamanlarda bloklar için toplam bilgi işlem gücünün artması sürpriz olmamalıdır. nesil sadece beş havuzda yer alıyor. Bu gibi durumlarda çoğunluğun olduğu varsayımı hesaplama gücü dürüstse daha az güvenilir hale gelir. Teknik Sorun 3: Belirsizlik Bitcoin'de blockchain mutlaka benzersiz değildir. Gerçekten en son kısmı sıklıkla çatallanır: blockchain —diyelim ki— B1, . . . , Bk, B' k+1, B' göre k+2 bir kullanıcı ve B1, . . . , Bk, B'' k+1, B'' k+2, B'' başka bir kullanıcıya göre k+3. Ancak birkaç blok tamamlandıktan sonra Zincire eklendiğinde ilk k+3 bloğun aynı olacağından makul olarak emin olunabilir mi? tüm kullanıcılar için. Bu nedenle, son blokta yer alan ödemelere hemen güvenilemez. zincir. Bloğun yeterince derinleşip derinleşmediğini bekleyip görmek daha akıllıca olacaktır. blockchain ve dolayısıyla yeterince kararlı. Ayrı olarak, Bitcoin.1 ile ilgili kolluk kuvvetleri ve para politikası endişeleri de dile getirildi. 1.2 Algorand, Özetle Ayar Algorand çok zorlu bir ortamda çalışıyor. Kısaca, (a) İzinsiz ve İzin Verilen Ortamlar. Algorand bile verimli ve güvenli bir şekilde çalışır keyfi olarak birçok kullanıcının katılmasına izin verilen, tamamen izinsiz bir ortamda Sisteme herhangi bir zamanda, herhangi bir inceleme veya izin olmaksızın. Elbette Algorand çalışıyor izin verilen bir ortamda daha da iyi. 1Bitcoin ödemeleri tarafından sunulan (sözde) anonimlik, kara para aklama ve/veya finansman amacıyla kötüye kullanılabilir Suçlu kişilerin veya terör örgütlerinin. Prensipte mükemmel teklifler sunan geleneksel banknotlar veya altın külçeler anonimlik de aynı zorluğu doğurmalıdır, ancak bu para birimlerinin fizikselliği parayı önemli ölçüde yavaşlatır kolluk kuvvetleri tarafından bir dereceye kadar izlemeye izin verecek şekilde transferler. “Para basabilme” yeteneği, bir ulus devletin en temel güçlerinden biridir. Bu nedenle prensipte masif Bağımsız olarak dalgalanan bir para biriminin benimsenmesi bu gücü azaltabilir. Ancak şu anda Bitcoin olmaktan çok uzak hükümetin para politikalarına yönelik bir tehdittir ve ölçeklenebilirlik sorunları nedeniyle hiçbir zaman olmayabilir.(b) Çok Çelişkili Ortamlar. Algorand çok güçlü bir Düşmana karşı dayanıklıdır; (1) istediği herhangi bir kullanıcıyı, istediği zaman, şu şartla anında yozlaştırabilir: İzinsiz ortamda sistemdeki paranın 2/3'ü dürüst kullanıcıya aittir. (Bir İzin verilen ortamda, para ne olursa olsun, kullanıcıların 2/3'ünün dürüst olması yeterlidir.) (2) tüm bozuk kullanıcıları tamamen kontrol edin ve mükemmel şekilde koordine edin; ve (3) her mesajın dürüst bir kullanıcı tarafından gönderilmesi koşuluyla, tüm mesajların teslimini planlayın Dürüst kullanıcıların %95'ine yalnızca m'nin boyutuna bağlı olan \(\lambda\)m süresi içinde ulaşır. Ana Özellikler Güçlü düşmanımızın varlığına rağmen Algorand'de • Gereken hesaplama miktarı minimum düzeydedir. Aslında kaç kullanıcı olursa olsun Sistemde mevcut olan her bin beş yüz kullanıcının her birinin en fazla birkaç saniyelik bir işlem yapması gerekmektedir. hesaplama. • 10 dakikadan kısa sürede Yeni Bir Blok Oluşturulur ve fiili olarak blockchain'den asla ayrılmaz. Örneğin, beklenti durumunda, ilk düzenlemede bir blok oluşturma süresi daha azdır Λ + 12,4\(\lambda\)'dan daha fazladır; burada Λ, eşler arası dedikoduda bir bloğu yaymak için gereken süredir moda, hangi blok boyutu seçilirse seçilsin ve \(\lambda\), 1.500 200Blong mesajın yayılma süresidir. (Gerçekten merkezi olmayan bir sistemde, Λ aslında içsel bir gecikme olduğundan, Algorand blok oluşturmadaki sınırlayıcı faktör ağ hızıdır.) İkinci düzenlemede aslında deneysel olarak (? tarafından) test edilmiştir, bu da bir bloğun 40'tan daha kısa sürede oluşturulduğunu gösterir. saniye. Ek olarak, Algorand’nin blockchain’si yalnızca ihmal edilebilir olasılıkla (yani birden az) çatallanma yapabilir. trilyonda bir) ve böylece kullanıcılar yeni bir blokta yer alan ödemeleri, ödemeler gerçekleştiği anda aktarabilirler. blok görünür. • Tüm yetki kullanıcılara aittir. Algorand gerçek bir dağıtılmış sistemdir. özellikle, hangi işlemleri kontrol edebilecek dışsal varlıklar (Bitcoin'deki "madenciler" gibi) yoktur tanınmaktadır. Algorand Teknikleri. 1. Yeni ve Hızlı Bir Bizans Anlaşması Protokolü. Algorand aracılığıyla yeni bir blok oluşturur yeni bir kriptografik, mesaj ileten, ikili Bizans anlaşması (BA) protokolü, BA⋆. Protokol BA sadece bazı ek özellikleri sağlamakla kalmıyor (bunları yakında tartışacağız), aynı zamanda çok hızlı. Kabaca söylemek gerekirse, ikili girişli versiyonu 3 adımlı bir döngüden oluşuyor ve burada i oyuncusu tek bir sinyal gönderiyor. diğer tüm oyunculara mesaj gönder. Daha fazlası ile eksiksiz ve senkronize bir ağda yürütülür Oyuncuların 2/3'ünden fazlası dürüst, > 1/3 olasılıkla, her döngüden sonra protokol sona eriyor anlaşma. (BA protokolünün Bizans anlaşmasının orijinal tanımını karşıladığını vurguluyoruz.) Pease, Shostak ve Lamport [31], herhangi bir zayıflama olmaksızın.) Algorand farklı iletişimlerimizde anlaşmaya varmak için bu ikili BA protokolünü kullanır model, her yeni blokta. Üzerinde mutabakata varılan blok daha sonra önceden belirlenmiş sayıda belge aracılığıyla sertifikalandırılır. uygun doğrulayıcıların dijital imzası alınır ve ağ üzerinden yayılır. 2. Kriptografik Ayrıştırma. Çok hızlı olmasına rağmen BA⋆ protokolü daha fazla fayda sağlayacaktır. Milyonlarca kullanıcı tarafından oynandığında hız. Buna göre, Algorand BA⋆ oyuncularını seçiyortüm kullanıcılar kümesinin çok daha küçük bir alt kümesi. Farklı türden bir güç yoğunlaşmasından kaçınmak için Sorun, her yeni Br bloğu, BA⋆'ın yeni bir uygulaması yoluyla inşa edilecek ve üzerinde anlaşmaya varılacak, ayrı bir seçilmiş doğrulayıcı grubu tarafından, SV r. Prensipte böyle bir setin seçilmesi çok zor olabilir. Br'yi doğrudan seçerek. Bu potansiyel sorunu, "her şeyi kucaklayan" olarak adlandırdığımız bir yaklaşımla aşıyoruz. Maurice Herlihy'nin anlayışlı önerisi, kriptografik sıralama. Sıralama bir uygulamadır Yetkililerin geniş bir uygun kişi kümesi arasından rastgele seçilmesi [6]. (Sıralama uygulandı yüzyıllar boyunca: örneğin Atina, Floransa ve Venedik cumhuriyetleri tarafından. Modern yargıda Sistemlerde jürilerin seçiminde sıklıkla rastgele seçim kullanılmaktadır. Rastgele örnekleme de son zamanlarda seçimler David Chaum tarafından savunuldu [9].) Merkezi olmayan bir sistemde elbette Her doğrulayıcı set SVr'nin üyelerini rastgele seçmek için gerekli olan rastgele paralar sorunludur. Bu nedenle, tüm kullanıcı popülasyonundan her bir doğrulama setini seçmek için kriptografiye başvuruyoruz. Otomatik (yani mesaj alışverişi gerektirmeyen) ve rastgele olması garanti edilen bir şekilde. Temelde, önceki bloktan otomatik olarak belirlemek için bir şifreleme işlevi kullanıyoruz. Br−1, yeni Br bloğunu önermekten sorumlu bir kullanıcı, lider ve SV r doğrulayıcı kümesi Liderin önerdiği blokta anlaşmaya varılması talep ediliyor. Kötü niyetli kullanıcılar etkileyebileceğinden Br−1'in bileşimini (örneğin ödemelerinden bazılarını seçerek), özel olarak oluşturuyoruz ve kullanıyoruz r'inci bloğun liderinin ve doğrulama seti SV r'nin gerçekten aynı olduğunu kanıtlayacak ek girişler rastgele seçilmiştir. 3. Miktar (Tohum) Qr. blockchain içindeki son Br−1 bloğunu kullanıyoruz. bir sonraki doğrulayıcı grubunu ve yeni bloğun inşasından sorumlu lideri otomatik olarak belirler br. Bu yaklaşımın zorluğu, sadece biraz farklı bir ödeme seçeneğinin seçilmesidir. Bir önceki turda, güçlü Düşmanımız bir sonraki lider üzerinde muazzam bir kontrol elde eder. O olsa bile sistemdeki oyuncuların/paranın yalnızca 1/1000'ini kontrol edebiliyordu, tüm liderlerin kötü niyetli. (Bkz. Sezgi Bölüm 4.1.) Bu zorluk tüm proof-of-stake yaklaşımlarının merkezinde yer alır, ve bildiğimiz kadarıyla bu sorun şu ana kadar tatmin edici bir şekilde çözülmedi. Bu zorluğun üstesinden gelmek için, bilinçli olarak ayrı ve dikkatli bir şekilde bir web sitesi oluşturuyoruz ve sürekli olarak güncelliyoruz. Tanımlanmış miktar Qr, bizim tarafımızdan sadece öngörülemez değil aynı zamanda etkilenebilir de değildir. güçlü Düşman. Algorand'nin Qr'den seçtiği için Qr'yi r'inci tohum olarak adlandırabiliriz, gizli kriptografik sıralama yoluyla, oluşturulmasında özel bir rol oynayacak tüm kullanıcılar r. blok. 4. Gizli Kritografik Sıralama ve Gizli Kimlik Bilgileri. Doğrulayıcı setini ve sorumlu lideri seçmek için mevcut son blok olan Br-1'i rastgele ve açık bir şekilde kullanarak Yeni bloğun (Br) inşa edilmesi yeterli değil. Br oluşturulmadan önce Br−1'in bilinmesi gerektiğinden, Br−1'in içerdiği son etkilenmeyen miktar Qr−1'in de bilinmesi gerekir. Buna göre yani Br bloğunu hesaplamaktan sorumlu doğrulayıcılar ve liderdir. Böylece güçlü Düşmanımız Br hakkında herhangi bir tartışmaya girişmeden önce hepsini anında yozlaştırabilirler. Sertifikalandırdıkları blok üzerinde tam kontrol. Bu sorunu önlemek için liderler (ve aslında doğrulayıcılar da) gizlice rollerini öğrenirler, ancak Gerçekten bu role sahip olan herkese kanıtlayabilecek uygun bir kimlik bilgisi hesaplayın. Ne zaman Bir kullanıcı özel olarak bir sonraki bloğun lideri olduğunun farkına varır, önce gizlice kendi bloğunu bir araya getirir. önerdiği yeni bloğu kendi bloğuyla birlikte dağıtır (böylece sertifikalandırılabilir) kimlik bilgisi. Bu şekilde, Düşman bir sonraki liderin kim olduğunu hemen anlayacaktır. blok vardır ve her ne kadar onu hemen yozlaştırabilse de, Düşman için artık çok geç olacaktır. yeni blok seçimini etkileyebilir. Gerçekten de artık liderin mesajını “geri arayamaz”Güçlü bir hükümetin WikiLeaks tarafından viral olarak yayılan bir mesajı şişeye geri koyabileceğinden çok daha fazlası. Göreceğimiz gibi ne liderin benzersizliğini ne de herkesin liderin kim olduğundan emin olduğunu garanti edebiliriz. liderin kendisi de dahil! Ancak Algorand'da net bir ilerleme garanti edilecektir. 5. Oynatıcının Değiştirilebilirliği. Yeni bir blok önerdikten sonra lider "ölebilir" (ya da öldürülebilir) Düşman tarafından yozlaştırıldı), çünkü işi bitti. Ancak SV r'deki doğrulayıcılar için işler daha az basit. Gerçekten de, yeni Br bloğunun yeterli sayıda imzayla sertifikalandırılmasından sorumlu olarak, Öncelikle liderin önerdiği blok üzerinde Bizans anlaşmasını yürütmeleri gerekiyor. Sorun şu ki, Ne kadar verimli olursa olsun, BA⋆ birden fazla adıma ve oyuncularının > 2/3'ünün dürüstlüğüne ihtiyaç duyar. Bu bir problemdir, çünkü verimlilik nedenleriyle BA⋆'nın oynatıcı seti küçük SV r setinden oluşur. tüm kullanıcılar arasından rastgele seçilmiştir. Böylece, güçlü Düşmanımız, her ne kadar bunu başaramasa da, tüm kullanıcıların 1/3'ünü bozar, kesinlikle SV r'nin tüm üyelerini bozabilir! Neyse ki mesajların eşler arası bir şekilde yayılmasıyla yürütülen BA⋆ protokolünün oyuncular tarafından değiştirilebileceğini kanıtlayacağız. Bu yeni gereksinim, protokolün doğru ve Adımların her biri tamamen yeni ve rastgele bir şekilde yürütülse bile verimli bir şekilde fikir birliğine varılır. ve bağımsız olarak seçilmiş oyunculardan oluşan bir grup. Böylece milyonlarca kullanıcıyla her küçük oyuncu grubu BA'nın bir adımıyla ilişkili olanın sonraki kümeyle büyük ihtimalle boş kesişimi vardır. Ek olarak, BA⋆'nın farklı adımlarındaki oyuncu kümeleri muhtemelen tamamen farklı özelliklere sahip olacaktır. kardinaliteler. Ayrıca, her setin üyeleri bir sonraki oyuncu setinin kim olacağını bilmezler. olun ve gizlice herhangi bir iç durumu geçmeyin. Değiştirilebilir oyuncu özelliği aslında dinamik ve çok güçlü olanı yenmek için çok önemlidir. Hayal ettiğimiz düşman. Değiştirilebilir oynatıcı protokollerinin birçok durumda hayati öneme sahip olacağına inanıyoruz. bağlamlar ve uygulamalar. Özellikle küçük alt protokollerin güvenli bir şekilde yürütülmesi için hayati önem taşıyacaklar dinamik bir düşmana sahip daha geniş bir oyuncu evrenine yerleştirilmiş, hatta yozlaştırabilen Toplam oyuncuların küçük bir kısmı, daha küçük gruptaki tüm oyuncuları yozlaştırmada hiç zorluk çekmiyor. alt protokol. Ek Bir Özellik/Teknik: Tembel Dürüstlük Dürüst bir kullanıcı reçetesine uyar çevrimiçi olmayı ve protokolü çalıştırmayı içeren talimatlar. Algorand'den bu yana yalnızca mütevazı bir değere sahip hesaplama ve iletişim gereksinimi, çevrimiçi olma ve protokolü çalıştırma arka plan” büyük bir fedakarlık değildir. Elbette dürüst oyuncular arasında birkaç "eksiklik" var. ani bağlantı kaybı veya yeniden başlatma ihtiyacı nedeniyle otomatik olarak tolere edilir (çünkü bu kadar az sayıda oyuncunun her zaman geçici olarak kötü niyetli olduğunu düşünebiliriz). Ancak şunu belirtelim. Algorand, dürüst kullanıcıların dahil olacağı yeni bir modelde çalışacak şekilde kolayca uyarlanabilir. çoğu zaman çevrimdışıyım. Yeni modelimiz resmi olarak şu şekilde tanıtılabilir. Tembel Dürüstlük. Kabaca söylemek gerekirse, bir i kullanıcısı eğer (1) tüm reçetelerini yerine getiriyorsa tembel ama dürüsttür. Protokole katılması istendiğinde talimatlar ve (2) katılması istendiğinde protokole nadiren ve uygun bir önceden bildirimde bulunarak. Böylesine rahat bir dürüstlük anlayışıyla, dürüst insanların da öyle olacağından daha da emin olabiliriz. ihtiyaç duyduğumuzda elimizin altında ve Algorand bunu garanti ediyor, böyle bir durumda Belirli bir zamanda sistem güvenli bir şekilde çalışsa bile katılan oyuncuların çoğunluğu kötü niyetli.1.3 Yakından İlgili Çalışma İş kanıtı yaklaşımları (alıntılanan [29] ve [4] gibi) bizimkine oldukça diktir. Onlar da öyle Mesaj ileten Bizans anlaşmasına veya pratik Bizans hata toleransına dayalı yaklaşımlar (alıntılanan [8] gibi). Aslında bu protokoller tüm kullanıcılar arasında çalıştırılamaz ve modelimizde uygun şekilde küçük bir kullanıcı grubuyla sınırlandırılmalıdır. Aslında güçlü düşmanımız benim fiilen bir BA protokolü çalıştırmakla yükümlü küçük bir gruba dahil olan tüm kullanıcıları derhal yozlaştırmak. Yaklaşımımız, kullanıcıların "gücü" anlamında, stake kanıtı [2] ile ilgili olarak düşünülebilir. blok inşa etmede sistemde sahip oldukları parayla orantılıdır (örneğin, “emanet”e koydukları para). Bizimkine en yakın makale Pass ve Shi'nin Sleepy Consensus Modeli [30]'dir. önlemek için proof-of-work yaklaşımında yoğun hesaplamalar gerekli olduğundan, makaleleri buna dayanmaktadır (ve nazik bir şekilde kredi) Algorand'nin gizli kriptografik sıralaması. Bu çok önemli ortak noktayla birlikte, birkaç yazılarımız arasında önemli farklılıklar bulunmaktadır. özellikle, (1) Ayarlarına yalnızca izin verilir. Buna karşılık, Algorand aynı zamanda izin gerektirmeyen bir sistemdir. (2) Nakamoto tarzı bir protokol kullanırlar ve dolayısıyla blockchain çatallarını sıklıkla kullanırlar. Rağmen proof-of-work'den vazgeçilerek, protokollerinde gizlice seçilmiş bir liderden görev süresini uzatması istenir. en uzun geçerlilik süresi (daha zengin anlamda) blockchain. Bu nedenle çatallar kaçınılmazdır ve beklemek gerekir blok zincirde yeterince "derin"dir. Gerçekten de, bir düşmanla hedeflerine ulaşmak için Uyarlanabilir bozulmalar yapabilen bu sistemler, bir bloğun poli(N) derinliğinde olmasını gerektirir; burada N, Sistemdeki toplam kullanıcı sayısı. Bir bloğun üretilebileceğini varsayalım bile Bir dakika içinde N = 1 milyon kullanıcı olsaydı, o zaman yaklaşık 2 milyon yıl beklemek zorunda kalacaktık. bir bloğun N 2 derinliğine ulaşması ve yaklaşık 2 yıl boyunca bir bloğun N derinliğine ulaşması. Buna karşılık, Algorand'nin blockchain çatalları, Düşman yolsuzluk yapsa bile yalnızca ihmal edilebilir olasılıkla çatallanır kullanıcılar anında ve uyarlanabilir bir şekilde kullanılabilir ve yeni bloklarına anında güvenilebilir. (3) Bireysel Bizans anlaşmalarını ele almazlar. Bir anlamda sadece garanti veriyorlar “Büyüyen bir değerler dizisi üzerinde nihai fikir birliği”. Onlarınki bir durum çoğaltma protokolüdür, daha ziyade BA'dan daha fazladır ve bireysel bir ilgi değeri üzerinde Bizans anlaşmasına varmak için kullanılamaz. Buna karşılık, Algorand milyonlarca kullanıcının hızlı bir şekilde Belirli bir faiz değeri üzerinde Bizans anlaşmasına varmak. (4) Zayıf senkronize edilmiş saatlere ihtiyaç duyarlar. Yani tüm kullanıcıların saatleri küçük bir zaman farkıyla kaydırılır δ. Buna karşılık, Algorand'de saatlerin yalnızca (esasen) aynı "hıza" sahip olması gerekir. (5) Protokolleri tembel ama dürüst kullanıcılarla veya çevrimiçi kullanıcıların dürüst çoğunluğuyla çalışır. Dürüst kullanıcıların topluca internete girmesi sorununu gündeme getirdiği için Algorand'e teşekkür ederiz ve buna cevaben tembel dürüstlük modelini öne sürüyoruz. Protokolleri sadece tembellerde işe yaramıyor dürüstlük modeli değil, aynı zamanda düşmanın hangi kullanıcıları seçeceği rakip uykulu modeli de Çevrimiçi kullanıcıların çoğunluğunun her zaman dürüst olması koşuluyla çevrimiçi ve çevrimdışı olanlar.2 2Makalelerinin orijinal versiyonu aslında düşmanca uykulu modelinde yalnızca güvenliği dikkate alıyordu.
Algorand'nın kendilerinden önceki orijinal versiyonu da, belirli bir çoğunluğun mevcut olduğu varsayılarak açıkça öngörülmüştür. çevrimiçi oyuncular her zaman dürüsttür, ancak tembel dürüstlük modelinin lehine bunu açıkça değerlendirme dışı bıraktılar. (Örneğin, dürüst kullanıcıların yarısı bir noktada çevrimdışı olmayı seçerse, bu durumda kullanıcıların çoğunluğu çevrimiçi çok iyi niyetli olabilir. Bu nedenle, bunun olmasını önlemek için, Düşmanın gücünün çoğunu zorlaması gerekir. Oyuncuların da çevrimdışı olmalarını sağladı, bu da açıkça kendi çıkarlarına aykırıydı.) Çoğunluğa sahip bir protokolün Tembel ama dürüst oyuncuların sayısı, çevrimiçi kullanıcıların çoğunluğunun her zaman kötü niyetli olması durumunda gayet iyi çalışır. Bu böyle çünkü Nadir bir zamanda çok önemli olacaklarını bilen yeterli sayıda dürüst oyuncu, bu anlarda çevrimdışı olmamaları gerektiği gibi, Düşman tarafından da çevrimdışı olmaya zorlanamazlar çünkü o, düşmanın kim olduğunu bilmemektedir. çok önemli dürüst oyuncular olabilir.(6) Basit ve dürüst bir çoğunluk gerektirirler. Buna karşılık, Algorand'nin mevcut sürümü şunu gerektirir: 2/3 dürüst çoğunluk. Bize yakın olan bir diğer makale ise Ouroboros: Kanıtlanabilir Güvenli Hisse Kanıtı Blockchain Protokolü. Yazan: Kiayias, Russell, David ve Oliynykov [20]. Ayrıca onların sistemi de bizden sonra ortaya çıktı. Aynı zamanda Kanıtlanabilir bir şekilde iş kanıtını ortadan kaldırmak için kriptografik sıralamayı kullanır. Ancak onların sistem yine çatalların hem kaçınılmaz hem de sık olduğu Nakamoto tarzı bir protokoldür. (Ancak onların modelinde blokların uykulu fikir birliği modeli kadar derin olması gerekmez.) Üstelik, sistemleri aşağıdaki varsayımlara dayanmaktadır: yazarların kendi ifadeleriyle, “(1) Ağ oldukça senkronizedir, (2) seçilen paydaşların çoğunluğu ihtiyaç duyulduğunda mevcuttur her döneme katılmak, (3) paydaşların uzun süre çevrimdışı kalmaması, (4) yolsuzlukların uyarlanabilirliği, doğrusal olarak turlarla ölçülen küçük bir gecikmeye tabidir. güvenlik parametresi." Buna karşılık, Algorand büyük olasılıkla çatalsızdır ve bu 4 varsayımın hiçbirine dayanmamaktadır. Özellikle Algorand'da Düşman şunları yapabilir: kontrol etmek istediği kullanıcıları anında yozlaştırıyor.
Grundlagen
2.1 Kryptografische Primitive Ideales Hashing. Wir werden uns auf eine effizient berechenbare kryptografische hash-Funktion H verlassen, die ordnet beliebig lange Strings binären Strings fester Länge zu. Wir modeln einer langen Tradition folgend H als zufälliges oracle, im Wesentlichen eine Funktion, die jede mögliche Zeichenfolge s einem zufälligen und zuordnet unabhängig ausgewählte (und dann festgelegte) Binärzeichenfolge H(s) der gewählten Länge. In diesem Artikel hat H 256 Bit lange Ausgänge. Tatsächlich ist diese Länge kurz genug, um dies zu ermöglichen systemeffizient und lang genug, um das System sicher zu machen. Wir wollen zum Beispiel, dass H kollisionsresistent ist. Das heißt, es sollte schwierig sein, zwei verschiedene Zeichenfolgen x und y zu finden, sodass H(x) = H(y). Wenn H ein zufälliger oracle mit 256 Bit langen Ausgaben ist, ist das Finden eines solchen Zeichenfolgenpaars tatsächlich möglich schwierig. (Bei einem zufälligen Versuch und unter Berufung auf das Geburtstagsparadoxon wäre 2256/2 = 2128 erforderlich Versuche.) Digitales Signieren. Mithilfe digitaler Signaturen können Benutzer Informationen untereinander authentifizieren ohne irgendwelche geheimen Schlüssel weiterzugeben. Ein digitales Signaturschema besteht aus drei schnellen Algorithmen: ein probabilistischer Schlüsselgenerator G, ein Signierungsalgorithmus S und ein Verifizierungsalgorithmus V. Bei einem Sicherheitsparameter k, einer ausreichend hohen Ganzzahl, verwendet ein Benutzer i G, um ein Paar zu erzeugen k-Bit-Schlüssel (d. h. Zeichenfolgen): ein „öffentlicher“ Schlüssel PKI und ein passender „geheimer“ Signaturschlüssel Ski. Entscheidend ist, a Der öffentliche Schlüssel „verrät“ seinen entsprechenden geheimen Schlüssel nicht. Das heißt, selbst wenn man Kenntnisse über PKI hat, nein Jemand anderes als ich ist in der Lage, Ski in weniger als astronomischer Zeit zu berechnen. Benutzer i nutzt Ski, um Nachrichten digital zu signieren. Für jede mögliche Nachricht (Binärzeichenfolge) m, i zuerst hashes m und führt dann den Algorithmus S auf den Eingängen H(m) und Ski aus, um die k-Bit-Zeichenfolge zu erzeugen sigpki(m) \(\triangleq\)S(H(m), ski) .3 3Da H kollisionsresistent ist, ist es praktisch unmöglich, dass man durch das Signieren von m versehentlich etwas anderes „signiert“. Nachricht m′.Die Binärzeichenfolge sigpki(m) wird als digitale Signatur von m (relativ zu pki) von i bezeichnet und kann es sein einfacher mit sigi(m) bezeichnet, wenn der öffentliche Schlüssel pki aus dem Kontext klar hervorgeht. Jeder, der pki kennt, kann damit die von i erstellten digitalen Signaturen überprüfen. Konkret: auf gibt (a) den öffentlichen Schlüssel pki eines Spielers i, (b) eine Nachricht m und (c) eine Zeichenfolge s ein, d. h. i ist angeblich Wenn die digitale Signatur der Nachricht m vorliegt, gibt der Verifizierungsalgorithmus V entweder JA oder NEIN aus. Die Eigenschaften, die wir von einem digitalen Signaturschema benötigen, sind: 1. Legitime Signaturen werden immer verifiziert: Wenn s = sigi(m), dann V (pki, m, s) = Y ES; und 2. Digitale Signaturen sind schwer zu fälschen: Ohne Wissen über die Zeit, um eine solche Zeichenfolge zu finden dass V (pki, m, s) = Y ES für eine Nachricht m, die nie von i signiert wurde, astronomisch lang ist. (Aufgrund der strengen Sicherheitsanforderungen von Goldwasser, Micali und Rivest [17] ist dies wahr selbst wenn man die Signatur einer anderen Nachricht erhalten kann.) Um zu verhindern, dass jemand anderes Nachrichten in seinem Namen signiert, muss ein Spieler seinen behalten Der Signaturschlüssel ist geheim (daher der Begriff „geheimer Schlüssel“) und ermöglicht es jedem, die Nachrichten zu überprüfen Er unterschreibt, ich habe ein Interesse daran, seinen Schlüssel-PKI zu veröffentlichen (daher der Begriff „öffentlicher Schlüssel“). Im Allgemeinen ist eine Nachricht m nicht aus ihrer Signatur sigi(m) abrufbar. Um virtuell zu handeln mit digitalen Signaturen, die die konzeptionell praktische Eigenschaft „Abrufbarkeit“ erfüllen (d. h. zu garantieren, dass der Unterzeichner und die Nachricht aus einer Signatur leicht errechenbar sind, definieren wir SIGpki(m) = (i, m, sigpki(m)) und SIGi(m) = (i, m, sigi(m)), wenn pki klar ist. Einzigartiges digitales Signieren. Wir berücksichtigen auch digitale Signaturschemata (G, S, V), die die Anforderungen erfüllen folgende zusätzliche Eigenschaft. 3. Einzigartigkeit. Es ist schwierig, solche Zeichenfolgen pk′, m, s und s′ zu finden s ̸= s′ und V (pk′, m, s) = V (pk′, m, s′) = 1. (Beachten Sie, dass die Eindeutigkeitseigenschaft auch für Zeichenfolgen pk′ gilt, die nicht legitim generiert wurden öffentliche Schlüssel. Insbesondere impliziert die Einzigartigkeitseigenschaft jedoch, dass, wenn man die verwendet spezifizierter Schlüsselgenerator G, um einen öffentlichen Schlüssel pk zusammen mit einem passenden geheimen Schlüssel sk zu berechnen, Und so wusste Sk, dass es auch für ihn im Grunde unmöglich sein würde, zwei verschiedene digitale zu finden Signaturen derselben Nachricht relativ zu pk.) Bemerkungen • Von eindeutigen Signaturen bis hin zu überprüfbaren Zufallsfunktionen. Relativ zu einem digitalen Signaturschema mit der Eindeutigkeitseigenschaft, dem die Zuordnung m \(\to\) H(sigi(m)) zugeordnet ist jede mögliche Zeichenfolge m, eine eindeutige, zufällig ausgewählte 256-Bit-Zeichenfolge, und deren Richtigkeit Die Zuordnung kann anhand der Signatur sigi(m) nachgewiesen werden. Das heißt, ein ideales hashing- und digitales Signaturschema, das die Eindeutigkeitseigenschaft im Wesentlichen erfüllt stellen eine elementare Implementierung einer überprüfbaren Zufallsfunktion bereit, wie sie eingeführt wurde und von Micali, Rabin und Vadhan [27]. (Ihre ursprüngliche Implementierung war zwangsläufig komplexer, da sie sich nicht auf ideale hashing verlassen haben.)• Drei unterschiedliche Anforderungen an digitale Signaturen. In Algorand verlässt sich ein Benutzer auf digital Unterschriften für (1) Authentifizierung meiner eigenen Zahlungen. In dieser Anwendung können Schlüssel „langfristig“ (d. h. gewohnt) sein signieren viele Nachrichten über einen langen Zeitraum) und stammen aus einem gewöhnlichen Signaturschema. (2) Generieren von Anmeldeinformationen, die beweisen, dass i berechtigt ist, bei einigen Schritten einer Runde r zu handeln. Hier, Schlüssel können langfristig sein, müssen aber aus einem Schema stammen, das die Eindeutigkeitseigenschaft erfüllt. (3) Authentifizieren der Nachricht, die ich in jedem Schritt sendet, in dem er handelt. Hier müssen Schlüssel sein ephemer (d. h. nach der ersten Verwendung zerstört), können aber aus einem gewöhnlichen Signaturschema stammen. • Eine Vereinfachung mit geringem Aufwand. Der Einfachheit halber stellen wir uns vor, dass jeder Benutzer einen einzigen Langzeitschlüssel hat. Dementsprechend muss ein solcher Schlüssel aus einem Signaturschema mit Eindeutigkeit stammen Eigentum. Eine solche Einfachheit hat einen geringen Rechenaufwand. Normalerweise tatsächlich einzigartig digital Die Erstellung und Überprüfung von Signaturen ist etwas teurer als bei gewöhnlichen Signaturen. 2.2 Das idealisierte öffentliche Hauptbuch Algorand versucht, das folgende Zahlungssystem nachzuahmen, basierend auf einem idealisierten öffentlichen Hauptbuch. 1. Der Anfangsstatus. Geld ist mit einzelnen öffentlichen Schlüsseln verknüpft (privat generierte und Eigentum der Benutzer). Lassen Sie pk1, . . . , pkj seien die anfänglichen öffentlichen Schlüssel und a1, . . . , aj ihre jeweiligen Anfangsbeträge an Geldeinheiten, dann ist der Anfangsstatus S0 = (pk1, a1), . . . , (pkj, aj) , von dem angenommen wird, dass es im System allgemein bekannt ist. 2. Zahlungen. Sei pk ein öffentlicher Schlüssel, der derzeit \(\geq\)0 Geldeinheiten hat, und pk′ ein anderer öffentlicher Schlüssel Schlüssel und a′ eine nicht negative Zahl, die nicht größer als a ist. Dann ist eine (gültige) Zahlung \(\wp\)eine digitale Unterschrift, bezogen auf PK, die zusammen die Übertragung von a′-Geldeinheiten von PK auf PK′ angibt mit einigen Zusatzinformationen. In Symbolen, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), Dabei steht „I“ für alle zusätzlichen Informationen, die als nützlich, aber nicht sensibel erachtet werden (z. B. Zeit). Informationen und eine Zahlungskennung) und ich alle zusätzlichen Informationen, die als vertraulich gelten (z. B. der Grund der Zahlung, möglicherweise die Identität der Eigentümer von pk und pk′ usw.). Wir bezeichnen pk (oder seinen Besitzer) als Zahler, jeden pk′ (oder seinen Besitzer) als Zahlungsempfänger und a′ als die Höhe der Zahlung \(\wp\). Kostenloser Beitritt über Zahlungen. Beachten Sie, dass Benutzer jederzeit dem System beitreten können Generieren ihrer eigenen öffentlichen/geheimen Schlüsselpaare. Dementsprechend ist der öffentliche Schlüssel pk′, der in erscheint Bei der oben genannten Zahlung kann es sich um einen neu generierten öffentlichen Schlüssel handeln, der noch nie Geld „besessen“ hat vor. 3. Das magische Hauptbuch. Im Idealized System sind alle Zahlungen gültig und manipulationssicher Liste L der Zahlungssätze, die „am Himmel veröffentlicht“ sind, damit jeder sie sehen kann: L = 1 ZAHLEN, 2 ZAHLEN, . . . ,Jeder Block PAY r+1 besteht aus der Menge aller Zahlungen, die seit dem Erscheinen des Blocks getätigt wurden ZAHLEN r. Im idealen System erscheint ein neuer Block nach einer festen (oder endlichen) Zeitspanne. Diskussion. • Allgemeinere Zahlungen und nicht ausgegebene Transaktionsausgabe. Allgemeiner gesagt, wenn es sich um einen öffentlichen Schlüssel handelt Besitzt pk einen Betrag a, so darf eine gültige Zahlung \(\wp\)von pk die Beträge a′ übertragen 1, ein‘ 2, . . ., jeweils zu den Tasten pk′ 1, Pk′ 2, . . ., solange P j a′ j \(\leq\)a. In Bitcoin und ähnlichen Systemen wird das Geld, das einem öffentlichen Schlüssel gehört, getrennt aufgeteilt Beträge und eine Zahlung \(\wp\)der pk müssen einen solchen abgesonderten Betrag in voller Höhe überweisen. Wenn pk nur einen Bruchteil a′ < a von a auf einen anderen Schlüssel übertragen möchte, muss er auch den übertragen Balance, die nicht ausgegebene Transaktionsausgabe, an einen anderen Schlüssel, möglicherweise pk selbst. Algorand funktioniert auch mit Schlüsseln mit getrennten Beträgen. Um sich jedoch auf die zu konzentrieren Aufgrund der neuen Aspekte von Algorand ist es konzeptionell einfacher, bei unseren einfacheren Zahlungsformen zu bleiben und Schlüssel, denen ein einzelner Betrag zugeordnet ist. • Aktueller Status. Das Idealisierte Schema liefert keine direkten Informationen über den Strom Status des Systems (d. h. ungefähr, wie viele Geldeinheiten jeder öffentliche Schlüssel hat). Diese Informationen ist aus dem Magic Ledger ableitbar. Im idealen System speichert und aktualisiert ein aktiver Benutzer kontinuierlich die neuesten Statusinformationen. oder er müsste es sonst rekonstruieren, entweder von Grund auf oder vom letzten Mal an habe es berechnet. (In der nächsten Version dieses Dokuments werden wir Algorand erweitern, um es zu ermöglichen Benutzer können den aktuellen Status effizient rekonstruieren.) • Sicherheit und „Privatsphäre“. Digitale Signaturen garantieren, dass niemand eine Zahlung fälschen kann ein anderer Benutzer. Bei einer Zahlung \(\wp\) sind nicht die öffentlichen Schlüssel und der Betrag verborgen, sondern die Sensiblen Informationen, die ich habe. Tatsächlich erscheint nur H(I) in \(\wp\), und da H eine ideale hash-Funktion ist, ist H(I) ist ein zufälliger 256-Bit-Wert, und daher gibt es keine Möglichkeit herauszufinden, um was ich besser war als um einfach nur erraten. Doch um zu beweisen, was ich getan habe (z. B. um den Grund für die Zahlung zu beweisen), war der Der Zahler kann nur I offenbaren. Die Richtigkeit des offenbarten I kann durch Berechnen von H(I) überprüft werden. und Vergleichen des resultierenden Werts mit dem letzten Element von \(\wp\). Da H tatsächlich stoßfest ist, Es ist schwierig, einen zweiten Wert I′ zu finden, so dass H(I) = H(I′). 2.3 Grundbegriffe und Notationen Schlüssel, Benutzer und Besitzer Sofern nicht anders angegeben, ist jeder öffentliche Schlüssel (kurz „Schlüssel“) langfristig und relativ zu einem digitalen Signaturschema mit der Eindeutigkeitseigenschaft. Ein öffentlicher Schlüssel, den ich hinzufüge das System, wenn ein anderer öffentlicher Schlüssel j, der sich bereits im System befindet, eine Zahlung an i vornimmt. Für die Farbe personifizieren wir Schlüssel. Wir bezeichnen einen Schlüssel i als „er“, sagen, dass ich ehrlich ist, dass ich sende und empfängt Nachrichten usw. Benutzer ist ein Synonym für Schlüssel. Wenn wir einen Schlüssel unterscheiden wollen von die Person, der es gehört, wir verwenden jeweils die Begriffe „digitaler Schlüssel“ und „Eigentümer“. Erlaubnislose und erlaubte Systeme. Ein System ist erlaubnislos, wenn ein digitaler Schlüssel frei ist jederzeit beitreten und ein Eigentümer kann mehrere digitale Schlüssel besitzen; und es ist erlaubt, sonst.Einzigartige Darstellung Jedes Objekt in Algorand hat eine eindeutige Darstellung. Insbesondere jede Menge {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} wird auf eine vorab festgelegte Weise geordnet: z. B. zuerst lexikografisch in x, dann in y usw. Uhren mit gleicher Geschwindigkeit Es gibt keine globale Uhr, sondern jeder Benutzer hat seine eigene Uhr. Benutzeruhren müssen in keiner Weise synchronisiert werden. Wir gehen jedoch davon aus, dass sie alle die gleiche Geschwindigkeit haben. Wenn es beispielsweise laut der Uhr eines Benutzers i 12:00 Uhr ist, kann es entsprechend 14:30 Uhr sein die Uhr eines anderen Benutzers j, aber wenn es laut der Uhr von i 12:01 ist, ist es laut i 2:31 zu js Uhr. Das heißt: „Eine Minute ist für jeden Benutzer gleich (ausreichend, im Wesentlichen gleich).“ Runden Algorand ist in logischen Einheiten organisiert, r = 0, 1, . . ., sogenannte Runden. Wir verwenden konsequent hochgestellte Zeichen, um Runden anzuzeigen. Um anzuzeigen, dass eine nicht numerische Größe Q (z. B. eine Zeichenfolge, ein öffentlicher Schlüssel, ein Satz, eine digitale Signatur usw.) auf ein rundes r bezieht, schreiben wir einfach Qr. Nur wenn Q eine echte Zahl ist (im Gegensatz zu einer als Zahl interpretierbaren Binärzeichenfolge), tun Sie dies wir schreiben Q(r), sodass das Symbol r nicht als Exponent von Q interpretiert werden kann. Zu Beginn einer Runde r > 0 ist die Menge aller öffentlichen Schlüssel PKr und der Systemstatus ist Sr = n ich, ein(r) ich , . . . : i \(\in\)PKro , wo a(r) ich ist der Geldbetrag, der dem öffentlichen Schlüssel i zur Verfügung steht. Beachten Sie, dass PKr daraus abgeleitet werden kann Sr, und dass Sr auch andere Komponenten für jeden öffentlichen Schlüssel i angeben kann. Für Runde 0 ist PK0 der Satz der anfänglichen öffentlichen Schlüssel und S0 der Anfangsstatus. Sowohl PK0 als auch Es wird davon ausgegangen, dass S0 im System allgemein bekannt sind. Der Einfachheit halber zu Beginn der Runde r, also sind PK1, . . . , PKr und S1, . . . , Sr. In einer Runde r geht der Systemstatus von Sr zu Sr+1 über: symbolisch, Runde r: Sr −→Sr+1. Zahlungen In Algorand führen die Benutzer kontinuierlich Zahlungen durch (und verbreiten diese auf diese Weise). beschrieben in Abschnitt 2.7). Eine Zahlung \(\wp\)eines Benutzers i \(\in\)PKr hat das gleiche Format und die gleiche Semantik wie im Idealen System. Nämlich, \(\wp\)= SIGi(i, i′, a, I, H(I)) . Die Zahlung \(\wp\)ist bei einer Runde r einzeln gültig (ist kurz eine Runde-R-Zahlung), wenn (1) ihr Betrag a ist kleiner oder gleich a(r) i , und (2) es erscheint in keinem offiziellen Gehaltssatz PAY r′ für r′ < r. (Wie unten erläutert, bedeutet die zweite Bedingung, dass \(\wp\) noch nicht wirksam geworden ist. Eine Menge von Rund-r-Zahlungen von i ist insgesamt gültig, wenn die Summe ihrer Beträge höchstens a(r) ist. ich . Gehaltssätze Ein Round-r-Zahlungssatz P ist ein Satz von Round-r-Zahlungen, sodass für jeden Benutzer i die Zahlungen erfolgen von i in P (möglicherweise keine) sind kollektiv gültig. Die Menge aller Round-r-Gehaltssätze ist PAY(r). Ein Rund-r Die Auszahlungsmenge P ist maximal, wenn keine Obermenge von P eine Round-R-Auszahlungsmenge ist. Wir schlagen tatsächlich vor, dass eine Zahlung \(\wp\)auch eine Runde \(\rho\) angibt, \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , und kann in keiner Runde außerhalb von [\(\rho\), \(\rho\) + k] für eine feste nichtnegative ganze Zahl k gültig sein.4 4Dies vereinfacht die Überprüfung, ob \(\wp\) „wirksam“ geworden ist (d. h. es vereinfacht die Bestimmung, ob ein Gehaltssatz vorliegt). PAY r enthält \(\wp\). Wenn k = 0, wenn \(\wp\)= SIGi(r, i, i′, a, I, H(I)) und \(\wp\)/\(\in\)PAY r, dann muss ich \(\wp\) erneut einreichen.Offizielle Gehaltssätze Für jede Runde r wählt Algorand öffentlich aus (auf eine später beschriebene Weise). ein einzelner (möglicherweise leerer) Payset, PAY r, der offizielle Payset der Runde. (Im Wesentlichen stellt PAY r dar die Round-R-Zahlungen, die „tatsächlich“ stattgefunden haben.) Wie im Idealen System (und Bitcoin) ist (1) die einzige Möglichkeit für einen neuen Benutzer, j das System zu betreten soll der Empfänger einer Zahlung sein, die zum offiziellen Gehaltssatz PAY r einer bestimmten Runde r gehört; und (2) PAY r bestimmt den Status der nächsten Runde, Sr+1, aus dem der aktuellen Runde, Sr. Symbolisch, PAY r : Sr −→Sr+1. Konkret: 1. Die Menge der öffentlichen Schlüssel der Runde r + 1, PKr+1, besteht aus der Vereinigung von PKr und der Menge aller Zahlungsempfängerschlüssel, die erstmals in den Zahlungen von PAY r auftauchen; und 2. der Geldbetrag a(r+1) ich dass ein Benutzer i in Runde r + 1 besitzt, ist die Summe von ai(r) – d. h. die Geldbetrag, den ich in der vorherigen Runde besaß (0, wenn i ̸\(\in\)PKr) – und die Summe der Beträge an i entsprechend den Zahlungen von PAY r gezahlt. Zusammenfassend ist, wie im Idealsystem, jeder Status Sr+1 aus der vorherigen Zahlungshistorie ableitbar: ZAHLEN 0, . . . , ZAHLEN r. 2.4 Blöcke und bewährte Blöcke In Algorand0 gibt der Block Br, der einem runden r entspricht, Folgendes an: r selbst; die Menge der Zahlungen von runde r, ZAHLE r; eine zu erklärende Größe Qr und der hash des vorherigen Blocks, H(Br−1). Ausgehend von einem festen Block B0 haben wir also ein traditionelles blockchain: B1 = (1, PAY 1, Q0, H(B0)), B2 = (2, PAY 2, Q1, H(B1)), B3 = (3, PAY 3, Q2, H(B2)), . . . In Algorand wird die Authentizität eines Blocks tatsächlich durch eine separate Information bestätigt, ein „Blockzertifikat“ CERT r, das Br in einen bewährten Block, Br, verwandelt. Das Magic Ledger ist daher wird durch die Reihenfolge der bewährten Blöcke umgesetzt, B1, B2, . . . Diskussion Wie wir sehen werden, besteht CERT r aus einem Satz digitaler Signaturen für H(Br), denen von a Mehrheit der Mitglieder des SV r, zusammen mit einem Nachweis, dass jedes dieser Mitglieder tatsächlich dazugehört zu SV r. Wir könnten natürlich die Zertifikate CERT r in die Blöcke selbst einbauen, aber wir werden es finden konzeptionell sauberer, um es getrennt zu halten.) In Bitcoin muss jeder Block eine spezielle Eigenschaft erfüllen, das heißt, er muss „eine Lösung von a enthalten Krypto-Puzzle“, was die Blockgenerierung rechenintensiv macht und beides unvermeidlich verzweigt und nicht selten. Im Gegensatz dazu hat blockchain von Algorand zwei Hauptvorteile: Es wird mit generiert minimaler Rechenaufwand, und es wird nicht mit überwältigend hoher Wahrscheinlichkeit gegabelt. Jeder Block Bi ist sicher endgültig, sobald es den blockchain betritt.2.5 Akzeptable Ausfallwahrscheinlichkeit Um die Sicherheit von Algorand zu analysieren, geben wir die Wahrscheinlichkeit F an, mit der wir dazu bereit sind Akzeptieren Sie, dass etwas schief geht (z. B. dass ein Verifizierersatz SV r keine ehrliche Mehrheit hat). Wie bei der Ausgabelänge der kryptografischen Funktion hash H ist auch F ein Parameter. Aber wie in diesem Fall finden wir es nützlich, F auf einen konkreten Wert zu setzen, um eine intuitivere Darstellung zu erhalten begreifen, dass es in Algorand tatsächlich möglich ist, gleichzeitig ausreichende Sicherheit zu genießen und ausreichende Effizienz. Zunächst möchte ich betonen, dass F ein Parameter ist, der beliebig eingestellt werden kann und zweite Ausführungsformen haben wir jeweils festgelegt F = 10−12 und F = 10−18 . Diskussion Beachten Sie, dass 10−12 tatsächlich weniger als eine von einer Billion ist, und wir glauben, dass dies der Fall ist Die Wahl von F ist für unsere Anwendung ausreichend. Wir möchten betonen, dass 10−12 nicht die Wahrscheinlichkeit ist mit dem der Gegner die Zahlungen eines ehrlichen Benutzers fälschen kann. Alle Zahlungen erfolgen digital signiert, und wenn die richtigen digitalen Signaturen verwendet werden, besteht daher eine hohe Wahrscheinlichkeit, dass eine Zahlung gefälscht wird weit niedriger als 10−12 und tatsächlich im Wesentlichen 0. Das schlimme Ereignis, das wir bereit sind zu tolerieren mit der Wahrscheinlichkeit F ist, dass sich blockchain von Algorand verzweigt. Beachten Sie, dass mit unserer Einstellung von F und Bei einminütigen Runden wird erwartet, dass eine Gabelung in blockchain von Algorand so selten wie möglich auftritt (ungefähr) einmal in 1,9 Millionen Jahren. Im Gegensatz dazu kommt es in Bitcoin recht häufig zu einer Verzweigung. Eine anspruchsvollere Person kann F auf einen niedrigeren Wert einstellen. Zu diesem Zweck in unserer zweiten Ausführungsform Wir überlegen, F auf 10−18 zu setzen. Beachten Sie, dass unter der Annahme, dass jede Sekunde ein Block generiert wird, 1018 ist die geschätzte Anzahl an Sekunden, die das Universum bisher benötigt hat: vom Urknall bis heute Zeit. Wenn also mit F = 10−18 ein Block in einer Sekunde erzeugt wird, sollte man mit dem Alter von rechnen Das Universum sieht eine Gabelung. 2.6 Das kontradiktorische Modell Algorand ist so konzipiert, dass es in einem sehr kontroversen Modell sicher ist. Lassen Sie es uns erklären. Ehrliche und böswillige Benutzer Ein Benutzer ist ehrlich, wenn er alle seine Protokollanweisungen befolgt und ist durchaus in der Lage, Nachrichten zu senden und zu empfangen. Ein Benutzer ist böswillig (d. h. byzantinisch). (Sprache des verteilten Rechnens), wenn er willkürlich von seinen vorgeschriebenen Anweisungen abweichen kann. Der Gegner Der Gegner ist ein effizienter (technisch gesehen polynomialer) Algorithmus, personifiziert durch Farbe, der jeden Benutzer, den er möchte, jederzeit und jederzeit böswillig machen kann (Subjekt nur bis zu einer Obergrenze der Anzahl der Benutzer, die er korrumpieren kann). Der Gegner kontrolliert und koordiniert alle böswilligen Benutzer vollständig. Er ergreift alle Maßnahmen in ihrem Namen, einschließlich des Empfangens und Versendens aller ihrer Nachrichten, und kann zulassen, dass sie davon abweichen ihre vorgeschriebenen Anweisungen auf willkürliche Weise. Oder er kann einfach einen beschädigten Benutzerversand isolieren und Empfangen von Nachrichten. Lassen Sie uns klarstellen, dass niemand sonst automatisch erfährt, dass ein Benutzer böswillig ist. Allerdings kann sich meine Böswilligkeit durch die Handlungen bemerkbar machen, die der Gegner von ihm verlangt. Dieser mächtige Gegner jedoch, • Verfügt über keine unbegrenzte Rechenleistung und kann das Digitale nicht erfolgreich fälschen Unterschrift eines ehrlichen Benutzers, außer mit vernachlässigbarer Wahrscheinlichkeit; Und• Darf in keiner Weise den Nachrichtenaustausch zwischen ehrlichen Benutzern beeinträchtigen. Darüber hinaus wird seine Fähigkeit, ehrliche Benutzer anzugreifen, durch eine der folgenden Annahmen eingeschränkt. Ehrlichkeit, Mehrheit des Geldes Wir betrachten ein Kontinuum der ehrlichen Mehrheit des Geldes (HMM). Annahmen: nämlich für jede nicht negative ganze Zahl k und reelles h > 1/2, HHMk > h: Die ehrlichen Benutzer in jeder Runde r besaßen einen Bruchteil größer als h des gesamten Geldes in das System bei Runde r −k. Diskussion. Vorausgesetzt, dass alle böswilligen Benutzer ihre Aktionen perfekt koordinieren (als ob sie kontrolliert würden). durch eine einzelne Entität, den Gegner) ist eine eher pessimistische Hypothese. Perfekte Koordination auch untereinander Für viele Menschen ist es schwierig, dies zu erreichen. Vielleicht findet die Koordination nur innerhalb separater Gruppen statt von böswilligen Spielern. Da man jedoch nicht sicher sein kann, wie gut die Koordination böswilliger Benutzer ist Vielleicht genießen Sie es, wir gehen besser auf Nummer sicher. Auch die Annahme, dass der Gegner Benutzer heimlich, dynamisch und sofort korrumpieren kann, ist möglich pessimistisch. Schließlich dürfte es realistisch gesehen einige Zeit dauern, bis man die vollständige Kontrolle über die Vorgänge eines Benutzers erlangt. Die Annahme HMMk > h impliziert beispielsweise, dass eine Runde (im Durchschnitt) durchgeführt wird In einer Minute bleibt dann der Großteil des Geldes einer bestimmten Runde in ehrlichen Händen mindestens zwei Stunden, wenn k = 120, und mindestens eine Woche, wenn k = 10.000. Beachten Sie die HMM-Annahmen und die vorherige ehrliche Mehrheit der Rechenleistung Annahmen hängen in dem Sinne zusammen, dass Rechenleistung mit Geld gekauft werden kann, Wenn böswillige Benutzer das meiste Geld besitzen, können sie auch den Großteil der Rechenleistung erhalten. 2.7 Das Kommunikationsmodell Wir gehen davon aus, dass die Verbreitung von Nachrichten – d. h. „Peer-to-Peer-Klatsch“5 – das einzige Mittel dafür ist Kommunikation. Vorübergehende Annahme: Rechtzeitige Zustellung von Nachrichten im gesamten Netzwerk. Für In den meisten Teilen dieses Artikels gehen wir davon aus, dass jede verbreitete Nachricht fast alle ehrlichen Benutzer erreicht rechtzeitig. Wir werden diese Annahme in Abschnitt 10 entfernen, wo wir uns mit Netzwerken befassen Partitionen, die entweder natürlich vorkommen oder durch Angriffe herbeigeführt werden. (Wie wir sehen werden, nehmen wir nur an rechtzeitige Zustellung von Nachrichten innerhalb jeder verbundenen Komponente des Netzwerks.) Eine konkrete Möglichkeit, die rechtzeitige Zustellung verbreiteter Nachrichten (im gesamten Netzwerk) zu erfassen, ist Folgendes: Für alle Erreichbarkeiten \(\rho\) > 95 % und Nachrichtengröße \(\mu\) \(\in\)Z+ gibt es \(\lambda\) \(\rho\),\(\mu\), so dass Wenn ein ehrlicher Benutzer zum Zeitpunkt t eine \(\mu\)-Byte-Nachricht m weiterleitet, dann erreicht m zum Zeitpunkt t + \(\lambda\) \(\rho\),\(\mu\) mindestens einen Bruchteil \(\rho\) der ehrlichen Benutzer. 5Im Wesentlichen, wie in Bitcoin, wenn ein Benutzer eine Nachricht m verbreitet, empfängt jeder aktive Benutzer m zum ersten Mal, wählt zufällig und unabhängig eine entsprechend kleine Anzahl aktiver Benutzer, seine „Nachbarn“, aus, an die er m weiterleitet, möglicherweise bis er eine Bestätigung von ihnen erhält. Die Weitergabe von m endet, wenn kein Benutzer empfängt Ich bin zum ersten Mal dabei.Die obige Eigenschaft kann jedoch unser Algorand-Protokoll nicht unterstützen, ohne explizit und separat einen Mechanismus vorzusehen, um die neueste blockchain zu erhalten – von einem anderen Benutzer/Depot usw. Um einen neuen Block Br zu konstruieren, muss nicht nur ein geeigneter Satz von Verifizierern die Runde r rechtzeitig erhalten Nachrichten, sondern auch die Nachrichten früherer Runden, um Br−1 und alle anderen vorherigen zu kennen Blöcke, die notwendig sind, um festzustellen, ob die Zahlungen in Br gültig sind. Folgendes Stattdessen reicht die Annahme aus. Annahme der Nachrichtenweitergabe (MP): Für alle \(\rho\) > 95 % und \(\mu\) \(\in\)Z+ gibt es \(\lambda\) \(\rho\),\(\mu\) so dass für alle Zeiten t und alle \(\mu\)-Byte-Nachrichten m, die von einem ehrlichen Benutzer vor t verbreitet wurden −\(\lambda\) \(\rho\),\(\mu\), m wird zum Zeitpunkt t von mindestens einem Bruchteil \(\rho\) der ehrlichen Benutzer empfangen. Das Protokoll Algorand weist tatsächlich jeden einer kleinen Anzahl von Benutzern (d. h. die Prüfer eines) an gegebener Schritt einer Runde in Algorand ′, um eine separate Nachricht einer (kleinen) vorgeschriebenen Größe zu verbreiten, und wir müssen die Zeit begrenzen, die zur Erfüllung dieser Anweisungen erforderlich ist. Wir tun dies, indem wir den MP bereichern Annahme wie folgt. Für alle n, \(\rho\) > 95 % und \(\mu\) \(\in\)Z+ gibt es \(\lambda\)n,\(\rho\),\(\mu\), so dass für alle Zeiten t und alle \(\mu\)-Byte gilt Nachrichten m1, . . . , mn, jeweils von einem ehrlichen Benutzer vor t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . propagiert. . . , mn werden empfangen, bis zur Zeit t um mindestens einen Bruchteil \(\rho\) der ehrlichen Benutzer. Hinweis • Die obige Annahme ist bewusst einfach, aber auch stärker als in unserer Arbeit erforderlich.6 • Der Einfachheit halber gehen wir von \(\rho\) = 1 aus und verzichten daher auf die Erwähnung von \(\rho\). • Wir gehen pessimistisch davon aus, dass er, sofern er nicht gegen die MP-Annahme verstößt, der Gegner ist kontrolliert vollständig die Zustellung aller Nachrichten. Insbesondere ohne dass es von den Ehrlichen bemerkt wird Benutzer können den Gegner willkürlich entscheiden, welcher ehrliche Spieler wann welche Nachricht erhält, und die Zustellung jeder gewünschten Nachricht willkürlich beschleunigen.7
Ön Hazırlıklar
2.1 Şifreleme İlkelleri İdeal Hashing. Verimli bir şekilde hesaplanabilir kriptografik hash fonksiyonuna (H) güveneceğiz: keyfi uzun dizeleri sabit uzunluktaki ikili dizelerle eşler. Uzun bir geleneğin ardından model oluyoruz H rastgele bir oracle olarak, esasen her olası dizeyi rastgele ve seçilen uzunlukta, bağımsız olarak seçilmiş (ve sonra sabitlenmiş) ikili dize, H(s). Bu yazıda H'nin 256 bit uzunluğunda çıkışları vardır. Aslında bu uzunluk, sistem verimli ve sistemi güvenli hale getirecek kadar uzun. Örneğin H'nin çarpışmaya dayanıklı olmasını istiyoruz. Yani H(x) = H(y) olacak şekilde iki farklı x ve y dizisini bulmak zor olmalı. H, 256 bit uzunluğunda çıktılara sahip rastgele bir oracle olduğunda, bu tür herhangi bir dizi çiftini bulmak aslında zor. (Rastgele denemek ve doğum günü paradoksuna güvenmek için 2256/2 = 2128 gerekir. denemeler.) Dijital İmzalama. Dijital imzalar, kullanıcıların bilgileri birbirlerine doğrulatmasına olanak tanır herhangi bir gizli anahtarı paylaşmadan. Bir dijital imza şeması üç hızlı Algoritmalar: olasılıklı bir anahtar üreteci G, bir imzalama algoritması S ve bir doğrulama algoritması V. Yeterince yüksek bir tamsayı olan k güvenlik parametresi verildiğinde, i kullanıcısı bir çift oluşturmak için G'yi kullanır. k-bit anahtarları (yani dizeler): bir "genel" anahtar pki ve eşleşen bir "gizli" imzalama anahtarı kayak. En önemlisi, bir ortak anahtar, karşılık gelen gizli anahtarına "ihanet etmez". Yani, pki bilgisi verilse bile, hayır benden başkası kayak hesaplamasını astronomik süreden daha kısa sürede yapabiliyor. Kullanıcı i, mesajları dijital olarak imzalamak için ski'yi kullanıyor. Her olası mesaj için (ikili dizi) m, ilk olarak ben hashes m ve ardından k-bit dizesini üretmek için H(m) girişleri ve ski üzerinde S algoritmasını çalıştırır sigpki(m) \(\triangleq\)S(H(m), kayak) .3 3H çarpışmaya dayanıklı olduğundan, m'yi imzalayarak farklı bir imzayı "yanlışlıkla imzalamış" olmak neredeyse imkansızdır. mesaj m'.İkili dizi sigpki(m), m'nin (pki'ye göre) dijital imzası olarak adlandırılır ve şu şekilde ifade edilebilir: genel anahtar pki bağlamdan açık olduğunda daha basit bir şekilde sigi(m) ile gösterilir. Pki'yi bilen herkes onu i tarafından üretilen dijital imzaları doğrulamak için kullanabilir. Özellikle, (a) i oyuncusunun genel anahtarı pki'yi, (b) m mesajını ve (c) s dizesini, yani i'nin iddiasını girer m mesajının dijital imzası, doğrulama algoritması V ya EVET ya da HAYIR olarak çıkar. Dijital imza şemasından istediğimiz özellikler şunlardır: 1. Meşru imzalar her zaman doğrulanır: Eğer s = sigi(m), o zaman V (pki, m, s) = Y ES; ve 2. Dijital imzaların sahtesini yapmak zordur: Kayak bilgisi olmadan öyle bir dize bulmanın zamanı gelir V (pki, m, s) = EVET, i tarafından asla imzalanmayan bir m mesajı için astronomik uzunluktadır. (Goldwasser, Micali ve Rivest [17]'nin güçlü güvenlik gereksinimleri uyarınca bu doğrudur başka bir mesajın imzası elde edilebilse bile.) Buna göre, başka birinin kendisi adına mesaj imzalamasını önlemek için, oyuncunun kendi hesabını saklaması gerekir. anahtar kayak sırrının imzalanması (dolayısıyla "gizli anahtar" terimi) ve herkesin mesajları doğrulamasını sağlamak İmzalıyorsa, anahtar PK'sını duyurmakla ilgileniyorum (bu nedenle "ortak anahtar" terimi de budur). Genel olarak, bir m mesajı imza sigi(m)'sinden alınamaz. Sanal olarak anlaşmak için kavramsal olarak uygun “geri alınabilirlik” özelliğini karşılayan dijital imzalarla (örn. imzalayanın ve mesajın bir imzadan kolayca hesaplanabileceğini garanti ediyoruz. SIGpki(m) = (i, m, sigpki(m)) ve SIGi(m) = (i, m, sigi(m)) eğer pki açıksa. Benzersiz Dijital İmzalama. Ayrıca aşağıdaki şartları karşılayan dijital imza şemalarını da (G, S, V) dikkate alıyoruz. ek mülkün ardından. 3. Benzersizlik. Öyle ki pk', m, s ve s' dizilerini bulmak zordur. s̸= s′ ve V (pk', m, s) = V (pk', m, s') = 1. (Benzersizlik özelliğinin aynı zamanda yasal olarak üretilmeyen pk′ dizeleri için de geçerli olduğunu unutmayın. ortak anahtarlar. Ancak özellikle benzersizlik özelliği şunu ima eder: eşleşen bir gizli anahtar sk ile birlikte bir genel anahtar pk'yi hesaplamak için belirtilen anahtar üreteci G, ve dolayısıyla sk'yi tanıyorsa, onun için de iki farklı dijital veri bulması aslında imkansız olurdu. pk'ye göre aynı mesajın imzaları.) Açıklamalar • Benzersiz imzalardan doğrulanabilir rastgele işlevlere kadar. Dijital ile ilgili benzersizlik özelliğine sahip imza şeması, m \(\to\) H(sigi(m)) eşlemesi ile ilişkilendirilir her olası dize m, benzersiz, rastgele seçilmiş, 256 bitlik bir dize ve bunun doğruluğu eşleme sigi(m) imzası verildiğinde kanıtlanabilir. Yani ideal hashing ve benzersizlik özelliğini temel olarak karşılayan dijital imza şeması tanıtıldığı şekliyle ve doğrulanabilir bir rastgele fonksiyonun temel bir uygulamasını sağlamak Micali, Rabin ve Vadhan [27]. (Orijinal uygulamaları zorunlu olarak daha karmaşıktı, ideal hashing'e güvenmedikleri için.)• Dijital imzalar için üç farklı ihtiyaç. Algorand'de bir kullanıcı i dijitale güveniyor için imzalar (1) i'nin kendi ödemelerinin doğrulanması. Bu uygulamada anahtarlar "uzun vadeli" olabilir (ör. uzun bir süre boyunca birçok mesajı imzalar) ve sıradan bir imza şemasından gelir. (2) i'nin r turunun bazı adımlarında hareket etme hakkına sahip olduğunu kanıtlayan kimlik bilgilerinin oluşturulması. Burada, anahtarlar uzun vadeli olabilir ancak benzersizlik özelliğini karşılayan bir şemadan gelmelidir. (3) Hareket ettiği her adımda i'nin gönderdiği mesajın doğrulanması. Burada anahtarlar olmalı geçicidir (yani ilk kullanımdan sonra yok edilir), ancak sıradan bir imza şemasından gelebilir. • Küçük maliyetli bir basitleştirme. Basitlik açısından her i kullanıcısının tek bir uzun vadeli anahtara sahip olmasını öngörüyoruz. Buna göre böyle bir anahtarın benzersizliğe sahip bir imza şemasından gelmesi gerekir. mülk. Bu basitliğin küçük bir hesaplama maliyeti vardır. Aslında tipik olarak benzersiz dijital İmzaların üretilmesi ve doğrulanması sıradan imzalara göre biraz daha pahalıdır. 2.2 İdealleştirilmiş Kamu Defterleri Algorand idealleştirilmiş bir kamu defterine dayalı olarak aşağıdaki ödeme sistemini taklit etmeye çalışır. 1. Başlangıç Durumu. Para, bireysel genel anahtarlarla (özel olarak oluşturulmuş ve kullanıcılara aittir). Pk1'e izin veriliyor, . . . , pkj ilk genel anahtarlar ve a1, . . . , ve onların ilgilileri başlangıçtaki para birimi miktarları, ardından başlangıç durumu S0 = (pk1, a1), . . . , (pkj, aj) , sistemde ortak bilgi olduğu varsayılmaktadır. 2. Ödemeler. Pk şu anda \(\geq\)0 para birimine sahip bir genel anahtar olsun, pk′ başka bir genel anahtar olsun anahtar ve a', a'dan büyük olmayan, negatif olmayan bir sayıdır. O halde (geçerli) bir ödeme dijitaldir a' para birimlerinin pk'den pk'ye transferini belirten, pk'ye göre imza, birlikte bazı ek bilgilerle. Sembollerde, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)) Yararlı kabul edilen ancak hassas olmayan herhangi bir ek bilgiyi temsil ettiğimde (örneğin, zaman bilgiler ve ödeme tanımlayıcı) ve hassas sayılan her türlü ek bilgiyi (ör. ödemenin nedeni, muhtemelen pk ve pk' sahiplerinin kimlikleri vb.). Pk'yi (veya sahibini) ödeyen olarak, her Pk'yi (veya sahibini) alacaklı olarak ve a'yı da alacaklı olarak adlandırıyoruz. ödeme tutarı \(\wp\). Ödeme Yoluyla Ücretsiz Katılma. Kullanıcıların diledikleri zaman sisteme katılabileceklerini unutmayın. kendi genel/gizli anahtar çiftlerini oluşturma. Buna göre, görünen pk′ ortak anahtarı Yukarıdaki ödeme \(\wp\)hiçbir zaman paraya "sahip olmayan" yeni oluşturulmuş bir genel anahtar olabilir önce. 3. Sihirli Defter. İdealleştirilmiş Sistemde tüm ödemeler geçerlidir ve kurcalanmaya karşı korumalı bir şekilde görünür Herkesin görmesi için “gökyüzüne gönderilen” L ödeme setlerinin listesi: L = ÖDEME 1, ÖDEME 2, . . . ,Her PAY r+1 bloğu, bloğun ortaya çıkışından bu yana yapılan tüm ödemelerin kümesinden oluşur ÖDEME r. İdeal sistemde, sabit (veya sonlu) bir sürenin ardından yeni bir blok ortaya çıkar. Tartışma. • Daha Fazla Genel Ödemeler ve Harcanmamış İşlem Çıktısı. Daha genel olarak, eğer bir ortak anahtar pk, a miktarına sahipse, o zaman pk'nin geçerli bir ödemesi \(\wp\), a′ tutarlarını aktarabilir 1, a' 2, . . ., sırasıyla pk′ tuşlarına 1, pk' 2, . . ., P olduğu sürece j a′ j \(\leq\)a. Bitcoin ve benzeri sistemlerde, genel anahtar pk'nin sahip olduğu para ayrı bölümlere ayrılır tutarlar ve pk tarafından yapılan bir ödemenin, bu şekilde ayrılmış bir tutarın tamamını aktarması gerekir. Eğer pk, a'nın yalnızca a′ < a kesirini başka bir anahtara aktarmak isterse, o zaman aynı zamanda bakiye, harcanmamış işlem çıktısı, başka bir anahtara, muhtemelen pk'nin kendisine. Algorand ayrıca tutarları ayrılmış anahtarlarla da çalışır. Ancak konuya odaklanmak için Algorand'nin yeni yönleri, daha basit ödeme şekillerimize bağlı kalmak kavramsal olarak daha kolaydır ve kendileriyle ilişkilendirilmiş tek bir miktara sahip anahtarlar. • Mevcut Durum. İdealleştirilmiş Şema mevcut durum hakkında doğrudan bilgi sağlamaz. sistemin durumu (yani her bir genel anahtarın kaç para birimine sahip olduğu hakkında). Bu bilgi Magic Ledger'dan düşülebilir. İdeal sistemde aktif bir kullanıcı sürekli olarak en son durum bilgisini saklar ve günceller. ya da aksi halde onu ya sıfırdan ya da son kez yaptığından itibaren yeniden inşa etmek zorunda kalacaktı. bunu hesapladı. (Bu yazının bir sonraki versiyonunda, Algorand öğesini etkinleştirecek şekilde artıracağız. kullanıcıların mevcut durumu verimli bir şekilde yeniden yapılandırmasını sağlar.) • Güvenlik ve “Gizlilik”. Dijital imzalar, hiç kimsenin sahte ödeme yapamayacağını garanti eder. başka bir kullanıcı. Bir ödemede \(\wp\), genel anahtarlar ve tutar gizli değildir ancak hassas bilgiler gizlidir bilgi ben. Aslında, \(\wp\)'de yalnızca H(I) görünür ve H ideal bir hash fonksiyonu olduğundan, H(I) rastgele 256 bitlik bir değerdir ve bu nedenle hangi konuda daha iyi olduğumu anlamanın hiçbir yolu yoktur. sadece tahmin ediyorum. Ancak ne olduğumu kanıtlamak için (örneğin, ödemenin nedenini kanıtlamak için) ödeyen sadece I'yi açıklayabilir. Açıklanan I'in doğruluğu H(I)'nin hesaplanmasıyla doğrulanabilir. ve elde edilen değerin \(\wp\)'nin son öğesiyle karşılaştırılması. Aslında H çarpışmaya dayanıklı olduğundan, H(I) = H(I′) olacak şekilde ikinci bir I′ değeri bulmak zordur. 2.3 Temel Kavramlar ve Gösterimler Anahtarlar, Kullanıcılar ve Sahipler Aksi belirtilmedikçe, her genel anahtar (kısaca “anahtar”) uzun vadelidir ve benzersizlik özelliğine sahip bir dijital imza şemasına bağlıdır. Katıldığım bir ortak anahtar Sistemde zaten bulunan başka bir j genel anahtarı i'ye ödeme yaptığında sistem. Renk için tuşları kişiselleştiriyoruz. Bir i anahtarına "o" adını veririz, dürüst olduğumu ve gönderdiğimi söyleriz ve mesajları vb. alır. Kullanıcı, anahtarın eşanlamlısıdır. Bir anahtarı ayırt etmek istediğimizde ait olduğu kişi için sırasıyla “dijital anahtar” ve “sahip” tabirlerini kullanırız. İzinsiz ve İzinli Sistemler. Dijital anahtar ücretsizse sistem izinsizdir herhangi bir zamanda katılabilir ve bir sahibi birden fazla dijital anahtara sahip olabilir; ve aksi takdirde izin verilir.Benzersiz Temsil Algorand içindeki her nesnenin benzersiz bir temsili vardır. özellikle, her küme {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} önceden belirlenmiş bir şekilde sıralanır: örneğin, ilk sözlükbilimsel olarak x'te, sonra y'de vb. Aynı Hızda Saatler Küresel bir saat yoktur; bunun yerine her kullanıcının kendi saati vardır. Kullanıcı saatleri hiçbir şekilde senkronize edilmesine gerek yoktur. Ancak hepsinin aynı hıza sahip olduğunu varsayıyoruz. Örneğin i kullanıcısının saatine göre saat 12:00 iken, i kullanıcısının saatine göre 14:30 olabilir. Başka bir j kullanıcısının saati, ancak i'nin saatine göre 12:01 olduğunda, i'nin saatine göre 2:31 olacaktır. j'nin saatine. Yani, "bir dakika her kullanıcı için aynıdır (yeterince, esas itibarıyla aynıdır)". Turlar Algorand mantıksal birimler halinde düzenlenmiştir, r = 0, 1, . . ., tur denir. Turları belirtmek için sürekli olarak üst simgeler kullanırız. Sayısal olmayan bir miktarın Q olduğunu belirtmek için (örneğin, bir dize, bir genel anahtar, bir küme, bir dijital imza, vb.) yuvarlak bir r'yi ifade eder, biz sadece Qr yazarız. Yalnızca Q gerçek bir sayı olduğunda (sayı olarak yorumlanabilen ikili bir dizenin aksine), Q(r) yazarız, böylece r sembolü Q'nun üssü olarak yorumlanamaz. r > 0 turunda (a'nın başlangıcında), tüm genel anahtarların kümesi PKr'dir ve sistem durumu Sr = n ben, bir(r) ben . . . : i \(\in\)PKro , nerede a(r) ben i genel anahtarının kullanabileceği para miktarıdır. PKr'nin düşülebileceğini unutmayın. Sr ve bu Sr ayrıca her bir genel anahtar i için diğer bileşenleri de belirleyebilir. 0. tur için, PK0 başlangıç genel anahtarlarının kümesidir ve S0 başlangıç durumudur. Hem PK0 hem de S0'ın sistemde ortak bilgi olduğu varsayılmaktadır. Basitlik açısından, r turunun başlangıcında, yani PK1, . . . , PKr ve S1, . . . , Sr. Bir r turunda sistem durumu Sr'den Sr+1'e geçiş yapar: sembolik olarak, Yuvarlak r: Sr −→Sr+1. Ödemeler Algorand'de kullanıcılar sürekli olarak ödeme yapar (ve bunları ödeme şekline göre dağıtır) altbölüm 2.7'de açıklanmıştır). Bir i \(\in\)PKr kullanıcısının \(\wp\) ödemesi aynı format ve anlama sahiptir İdeal Sistem'de olduğu gibi. Yani, \(\wp\)= SIGi(i, i′, a, I, H(I)) . Ödeme \(\wp\), eğer (1) tutarı ise r turunda bireysel olarak geçerlidir (kısaca r turu ödemesidir) a, a(r)'den küçük veya ona eşittir i ve (2) r′ < r için herhangi bir resmi ödeme kümesinde PAY r′ görünmüyor. (Aşağıda açıklandığı gibi ikinci koşul \(\wp\)'nin henüz yürürlüğe girmediği anlamına gelir. i'nin bir dizi yuvarlak r ödemesi, tutarlarının toplamı en fazla a(r) ise toplu olarak geçerlidir ben. Ödeme Setleri Bir yuvarlak-r ödeme kümesi P, bir yuvarlak-r ödemeler kümesidir, öyle ki, her i kullanıcısı için, ödemeler P'deki i'nin (muhtemelen hiçbiri) toplu olarak geçerliliği yoktur. Tüm yuvarlak ödeme kümelerinin kümesi PAY(r)'dir. Yuvarlak bir r P'nin hiçbir üst kümesi yuvarlak r'li bir ödeme kümesi değilse, P ödeme kümesi maksimumdur. Biz aslında bir \(\wp\) ödemesinin aynı zamanda bir \(\rho\) turunu da belirttiğini öneriyoruz, \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , ve negatif olmayan bazı sabit tamsayılar için [\(\rho\), \(\rho\) + k] dışındaki herhangi bir turda geçerli olamaz.4 4Bu, \(\wp\)'nin "etkili" hale gelip gelmediğini kontrol etmeyi basitleştirir (yani bazı ödeme setlerinin etkin olup olmadığını belirlemeyi kolaylaştırır) PAY r, \(\wp\)'yi içerir. K = 0 olduğunda, eğer \(\wp\)= SIGi(r, i, i′, a, I, H(I)) ve \(\wp\)/\(\in\)PAY r ise, o zaman i'nin \(\wp\)'yi yeniden göndermesi gerekir.Resmi Ödeme Setleri Her r turu için, Algorand herkese açık olarak seçer (daha sonra açıklanacak şekilde) tek bir (muhtemelen boş) ödeme seti, PAY r, turun resmi ödeme seti. (Esasen, PAY r şunu temsil eder: "gerçekte" gerçekleşen yuvarlak ödemeler.) İdeal Sistemde (ve Bitcoin) olduğu gibi, (1) yeni bir j kullanıcısının sisteme girmesinin tek yolu belirli bir tur r'nin resmi ödeme seti PAY r'ye ait bir ödemenin alıcısı olmaktır; ve (2) PAY r, mevcut tur olan Sr'den sonraki tur olan Sr+1'in durumunu belirler. Sembolik olarak, ÖDEME r : Sr −→Sr+1. Özellikle, 1. r + 1, PKr+1 turunun genel anahtarları kümesi, PKr'nin birleşiminden ve hepsinin kümesinden oluşur PAY r ödemelerinde ilk kez görünen alacaklı anahtarları; ve 2. para miktarı a(r+1) ben r + 1 turunda i'nin sahip olduğu kullanıcı ai(r)'nin toplamıdır — yani önceki turda sahip olduğum para miktarı (eğer i̸\(\in\)PKr ise 0)— ve miktarların toplamı PAY r ödemelerine göre i'ye ödenir. Özetle, İdeal Sistem'de olduğu gibi her Sr+1 durumu önceki ödeme geçmişinden düşülebilir: 0 ÖDEME. . . , ÖDEME r. 2.4 Bloklar ve Kanıtlanmış Bloklar Algorand0'da, bir r turuna karşılık gelen Br bloğu şunları belirtir: r'nin kendisi; ödeme seti yuvarlak r, PAY r; açıklanacak bir Qr miktarı ve önceki bloğun hash değeri, H(Br−1). Böylece, sabit bir B0 bloğundan başlayarak geleneksel bir blockchain elde ederiz: B1 = (1, ÖDEME 1, Q0, H(B0)) B2 = (2, ÖDEME 2, Q1, H(B1)) B3 = (3, ÖDE 3, Q2, H(B2)) . . . Algorand'de bir bloğun gerçekliği aslında ayrı bir bilgiyle doğrulanır, Br'yi kanıtlanmış bir bloğa dönüştüren bir “blok sertifikası” CERT r, Br. Bu nedenle Sihirli Defter, kanıtlanmış blokların sırası ile uygulanır, B1, B2, . . . Tartışma Göreceğimiz gibi CERT r, H(Br) için bir dizi dijital imzadan oluşur; SV r üyelerinin çoğunluğu ve bu üyelerin her birinin gerçekten üye olduğuna dair bir kanıt SV r'ye. Elbette CERT r sertifikalarını blokların içine dahil edebiliriz, ancak onu da bulabiliriz. ayrı tutmak için kavramsal olarak daha temiz.) Bitcoin'da her blok özel bir özelliği karşılamalıdır, yani "bir çözüm içermelidir" Blok oluşturmayı hesaplama açısından yoğun hale getiren ve çatallanmaları kaçınılmaz hale getiren kripto bulmacası” ve nadir değil. Buna karşılık, Algorand'nin blockchain'sinin iki ana avantajı vardır: minimum hesaplama ve çok yüksek olasılıkla çatallanmayacaktır. Her blok Bi blockchain girer girmez güvenli bir şekilde sonlandırılır.2.5 Kabul Edilebilir Arıza Olasılığı Algorand güvenliğini analiz etmek için, istediğimiz F olasılığını belirtiriz. bir şeylerin ters gittiğini kabul edin (örneğin, bir doğrulayıcı SV r kümesinin dürüst bir çoğunluğa sahip olmaması). Kriptografik hash fonksiyonu H'nin çıkış uzunluğu durumunda olduğu gibi, F de bir parametredir. Ancak bu durumda olduğu gibi, daha sezgisel bir sonuç elde etmek için F'yi somut bir değere ayarlamanın faydalı olduğunu düşünüyoruz. Algorand'de aynı anda yeterli güvenlikten yararlanmanın gerçekten mümkün olduğu gerçeğini kavramak ve yeterli verimlilik. F'nin istenildiği gibi ayarlanabilen bir parametre olduğunu vurgulamak için ilk aşamada ve sırasıyla belirlediğimiz ikinci düzenlemeler F = 10−12 ve F = 10−18 . Tartışma 10−12'nin aslında trilyonda birden az olduğuna dikkat edin ve biz böyle bir sayının olduğuna inanıyoruz. Uygulamamızda F seçimi yeterlidir. 10−12'nin olasılık olmadığını vurgulayalım Düşmanın dürüst bir kullanıcının ödemelerini taklit edebileceği. Tüm ödemeler dijital olarak yapılıyor imzalanır ve dolayısıyla uygun dijital imzalar kullanılırsa sahte ödeme olasılığı 10−12'den çok daha düşüktür ve aslında aslında 0'dır. Hoşgörmeye hazır olduğumuz kötü olay F olasılığı ile Algorand’nin blockchain çatalıdır. F ve ayarlarımızla buna dikkat edin. bir dakikalık uzun turlarda, Algorand'nin blockchain'sında şu kadar seyrek bir çatallanma meydana gelmesi beklenir: (kabaca) 1,9 milyon yılda bir. Buna karşılık, Bitcoin'de çatallanmalar oldukça sık meydana gelir. Daha talepkar bir kişi F'yi daha düşük bir değere ayarlayabilir. Bu amaçla ikinci uygulamamızda F'yi 10−18 olarak ayarlamayı düşünüyoruz. Her saniyede bir bloğun oluşturulduğunu varsayarsak 1018 Evrenin Büyük Patlama'dan günümüze kadar geçen tahmini saniye sayısıdır zaman. Bu nedenle, F = 10−18 ile, eğer bir blok bir saniyede üretilirse, yaşı beklenmelidir. Evren bir çatal görecek. 2.6 Çekişmeli Model Algorand oldukça çekişmeli bir modelde güvenli olacak şekilde tasarlanmıştır. Açıklayalım. Dürüst ve Kötü niyetli Kullanıcılar Bir kullanıcı tüm protokol talimatlarını yerine getiriyorsa dürüsttür ve mesaj gönderme ve alma konusunda mükemmel bir yeteneğe sahiptir. Bir kullanıcı kötü niyetlidir (örn. Bizans, Dağıtılmış bilgi işlemin tabiriyle) eğer öngörülen talimatlarından keyfi olarak sapabilirse. Düşman Düşman, istediği kullanıcıyı istediği zaman anında kötü niyetli hale getirebilen, renk açısından kişiselleştirilmiş, etkili (teknik olarak polinom zamanlı) bir algoritmadır (konu). yalnızca bozabileceği kullanıcı sayısının üst sınırına kadar). Düşman, tüm kötü niyetli kullanıcıları tamamen kontrol eder ve mükemmel bir şekilde koordine eder. Tüm işlemleri o yapıyor tüm mesajlarını almak ve göndermek de dahil olmak üzere, onların adına izin verebilir ve bunların sapmasına izin verebilir. onların belirlenmiş talimatlarını keyfi yollarla yerine getirirler. Veya bozuk bir kullanıcı gönderimini izole edebilir ve mesaj alıyorum. Başka hiç kimsenin bir i kullanıcısının kötü niyetli olduğunu otomatik olarak öğrenmeyeceğini açıklığa kavuşturalım. yine de i'nin kötü niyetliliği, Düşmanın ona yaptırdığı eylemlerden ortaya çıkabilir. Ancak bu güçlü düşman, • Sınırsız hesaplama gücüne sahip değildir ve dijital verileri başarılı bir şekilde oluşturamaz İhmal edilebilir bir olasılık dışında dürüst bir kullanıcının imzası; Ve• Dürüst kullanıcılar arasındaki mesaj alışverişlerine hiçbir şekilde müdahale edilemez. Ayrıca dürüst kullanıcılara saldırma yeteneği aşağıdaki varsayımlardan biriyle sınırlıdır. Dürüstlük Paranın Çoğunluğu Paranın Dürüst Çoğunluğunun (HMM) sürekliliğini düşünüyoruz varsayımlar: yani, negatif olmayan her k tamsayı ve gerçek h > 1/2 için, HHMk > h: her r turundaki dürüst kullanıcılar, tüm paranın h'den daha fazla bir kısmına sahipti sistem r −k turunda. Tartışma. Tüm kötü niyetli kullanıcıların eylemlerini mükemmel şekilde koordine ettiği varsayılırsa (sanki kontrol ediliyormuş gibi) tek bir varlık tarafından (Düşman) ortaya atılması oldukça karamsar bir hipotezdir. Aralarında mükemmel koordinasyon birçok kişiye ulaşmak zordur. Belki koordinasyon yalnızca ayrı gruplar arasında gerçekleşir kötü niyetli oyuncuların Ancak kötü niyetli kullanıcıların koordinasyon seviyesinden emin olunamadığı için keyif alabiliriz, üzgün olmaktansa güvende olsak iyi olur. Düşmanın gizlice, dinamik olarak ve anında kullanıcıları yozlaştırabileceğini varsaymak da kötümser. Sonuçta gerçekçi olmak gerekirse, kullanıcının işlemlerinin tam kontrolünü ele geçirmek biraz zaman almalıdır. HMMk > h varsayımı örneğin bir turun (ortalama olarak) uygulanması durumunda şunu ima eder: o zaman bir dakika içinde belirli bir turdaki paranın çoğunluğu dürüst ellerde kalacak k = 120 ise en az iki saat ve k = 10.000 ise en az bir hafta. HMM varsayımlarının ve önceki Bilgi İşlem Gücünün Dürüst Çoğunluğunun varsayımlar şu anlamda ilişkilidir: bilgi işlem gücü parayla satın alınabildiğinden, Kötü niyetli kullanıcılar paranın çoğuna sahipse, bilgi işlem gücünün çoğunu elde edebilirler. 2.7 İletişim Modeli Mesaj yaymanın -yani "eşler arası dedikodu"5- tek yol olduğunu düşünüyoruz. iletişim. Geçici Varsayım: Mesajların Tüm Ağda Zamanında Teslimi. için Bu makalenin büyük bir bölümünde, yayılan her mesajın neredeyse tüm dürüst kullanıcılara ulaştığını varsayıyoruz. zamanında. Ağ konusunu ele aldığımız Bölüm 10'da bu varsayımı kaldıracağız. doğal olarak meydana gelen veya olumsuz bir şekilde tetiklenen bölünmeler. (Göreceğimiz gibi, yalnızca varsayıyoruz Ağın bağlı her bileşeninde mesajların zamanında teslim edilmesi.) Yayılan mesajların (ağın tamamında) zamanında teslimini yakalamanın somut bir yolu, aşağıdakiler: Tüm erişilebilirlik \(\rho\) > %95 ve mesaj boyutu \(\mu\) \(\in\)Z+ için, \(\lambda\) \(\rho\),μ vardır, öyle ki, eğer dürüst bir kullanıcı \(\mu\) baytlık m mesajını t zamanında yayarsa, bu durumda m, t + \(\lambda\) \(\rho\),μ zamanına kadar dürüst kullanıcıların en azından \(\rho\) kısmına ulaşır. 5Aslında, Bitcoin'de olduğu gibi, bir kullanıcı bir m mesajını yaydığında, her aktif i kullanıcısı m'yi ilk kez alır, m'yi ilettiği uygun sayıda az sayıda aktif kullanıcıyı, yani "komşularını" rastgele ve bağımsız olarak seçer, muhtemelen onlardan bir onay alana kadar. Hiçbir kullanıcı bir mesaj almadığında m'nin yayılması sona erer ilk kez m.Ancak yukarıdaki özellik, en son blockchain'yi başka bir kullanıcı/depozito/vb. tarafından elde etmek için açık ve ayrı bir mekanizma öngörmeden Algorand protokolümüzü destekleyemez. Aslında, yeni bir Br bloğu inşa etmek için sadece uygun bir doğrulayıcı grubunun zamanında r-round-r alması yeterli değildir. mesajları değil, aynı zamanda Br−1 ve önceki tüm diğer mesajları bilmek için önceki turların mesajlarını da içerir. Br'deki ödemelerin geçerli olup olmadığını belirlemek için gerekli olan bloklar. Aşağıdakiler bunun yerine varsayım yeterlidir. Mesaj Yayılımı (MP) Varsayımı: Tüm \(\rho\) > %95 ve \(\mu\) \(\in\)Z+ için \(\lambda\) \(\rho\),μ vardır Öyle ki, tüm t zamanları ve t −\(\lambda\) \(\rho\),μ öncesinde dürüst bir kullanıcı tarafından yayılan tüm \(\mu\) baytlık m mesajları için, m, t zamanında dürüst kullanıcıların en azından bir \(\rho\) kısmı tarafından alınır. Algorand Protokolü aslında az sayıdaki kullanıcının her birine (yani bir veri doğrulayıcılarına) talimat verir. (küçük) öngörülen boyutta ayrı bir mesajı yaymak için Algorand ′ içinde bir turda verilen adım, ve bu talimatları yerine getirmek için gereken süreyi sınırlamamız gerekiyor. Bunu MP'yi zenginleştirerek yapıyoruz varsayım şu şekildedir. Tüm n, \(\rho\) > %95 ve \(\mu\) \(\in\)Z+ için, tüm t zamanları ve tüm \(\mu\) baytlar için \(\lambda\)n,\(\rho\),μ vardır. mesajlar m1, . . . , mn, her biri dürüst bir kullanıcı tarafından t −\(\lambda\)n,\(\rho\),μ, m1,'den önce yayılır. . . , mn alındı, t zamanına kadar, dürüst kullanıcıların en azından \(\rho\) kısmı kadar. Not • Yukarıdaki varsayım kasıtlı olarak basittir ancak aynı zamanda makalemizde gerekenden daha güçlüdür.6 • Basitlik açısından \(\rho\) = 1 varsayıyoruz ve dolayısıyla \(\rho\)'dan bahsetmeyi bırakıyoruz. • Kötümser bir şekilde, MP varsayımını ihlal etmemesi koşuluyla, Düşmanın tüm mesajların teslimini tamamen kontrol eder. Özellikle dürüst kişiler tarafından fark edilmeden Kullanıcılar, Düşman hangi dürüst oyuncunun hangi mesajı ne zaman alacağına keyfi olarak karar verebilir, ve istediği herhangi bir mesajın iletilmesini keyfi olarak hızlandırır.7
Das BA-Protokoll BA⋆in einer traditionellen Umgebung
Wie bereits betont, ist das byzantinische Abkommen ein wesentlicher Bestandteil von Algorand. Tatsächlich ist es durch die Verwendung eines solchen BA-Protokolls, dass Algorand von Forks nicht beeinflusst wird. Um jedoch sicher vor unserem zu sein Der mächtige Gegner Algorand muss sich auf ein BA-Protokoll verlassen, das die Ersetzbarkeit neuer Spieler erfüllt Einschränkung. Damit Algorand effizient ist, muss ein solches BA-Protokoll außerdem sehr effizient sein. BA-Protokolle wurden zunächst für ein idealisiertes Kommunikationsmodell, synchrone Vollständigkeit, definiert Netzwerke (SC-Netzwerke). Ein solches Modell ermöglicht einen einfacheren Entwurf und eine einfachere Analyse von BA-Protokollen. 6Anhand des ehrlichen Prozentsatzes h und der akzeptablen Ausfallwahrscheinlichkeit F berechnet Algorand eine Obergrenze N, auf die maximale Anzahl von Prüfern in einem Schritt. Daher muss die MP-Annahme nur für n \(\leq\) N gelten. Darüber hinaus gilt die MP-Annahme, wie bereits erwähnt, unabhängig davon, wie viele andere Nachrichten gleichzeitig verbreitet werden die mjs. Wie wir jedoch sehen werden, werden Nachrichten in Algorand in im Wesentlichen nicht überlappender Zeit verbreitet Intervalle, in denen entweder ein einzelner Block propagiert wird oder höchstens N Verifizierer einen kleinen (z. B. 200B) propagieren Nachricht. Somit könnten wir die MP-Annahme auf eine schwächere, aber auch komplexere Weise umformulieren. 7Zum Beispiel kann er die Nachrichten, die ehrliche Spieler senden, sofort erfahren. Somit ist ein böswilliger Benutzer i′, wer ist Wenn ein ehrlicher Benutzer i aufgefordert wird, gleichzeitig eine Nachricht zu verbreiten, kann er immer seine eigene Nachricht m′ basierend darauf auswählen die Nachricht, die m tatsächlich von i verbreitet wurde. Diese Fähigkeit steht im Zusammenhang mit Rushing, im Sprachgebrauch verteilter Berechnungen Literatur.Dementsprechend stellen wir in diesem Abschnitt ein neues BA-Protokoll, BA⋆, für SC-Netzwerke und Ignorieren vor die Frage der Spielerersetzbarkeit insgesamt. Das Protokoll BA⋆ist ein Beitrag von gesondertem Wert. Tatsächlich ist es das bisher effizienteste kryptografische BA-Protokoll für SC-Netzwerke. Um es in unserem Algorand-Protokoll zu verwenden, modifizieren wir BA⋆ein wenig, um unseren Unterschieden Rechnung zu tragen Kommunikationsmodell und -kontext, aber achten Sie darauf, in Abschnitt X hervorzuheben, wie BA⋆ verwendet wird innerhalb unseres aktuellen Protokolls Algorand ′. Wir erinnern uns zunächst an das Modell, nach dem BA⋆ operiert, und an die Vorstellung einer byzantinischen Vereinbarung. 3.1 Synchrone vollständige Netzwerke und passende Gegner In einem SC-Netzwerk gibt es eine gemeinsame Uhr, die jeweils zu ganzzahligen Zeiten r = 1, 2, . tickt. . . Bei jedem geraden Klick auf r sendet jeder Spieler sofort und gleichzeitig eine Single Nachricht an Herrn i,j (möglicherweise die leere Nachricht) an jeden Spieler j, einschließlich sich selbst. Jeder Herr i,j wird empfangen Zu diesem Zeitpunkt klicken Sie auf r + 1 von Spieler j, zusammen mit der Identität des Absenders i. Auch in einem Kommunikationsprotokoll ist ein Spieler ehrlich, wenn er alle seine Anweisungen befolgt Anweisungen und sonst böswillig. Alle böswilligen Spieler werden vollständig und perfekt kontrolliert koordiniert durch den Gegner, der insbesondere alle an ihn gerichteten Nachrichten sofort erhält böswillige Spieler und wählt die Nachrichten aus, die sie senden. Der Angreifer kann jeden ehrlichen Benutzer, den er möchte, jederzeit bösartig machen Er will, vorbehaltlich nur einer möglichen Obergrenze t für die Anzahl böswilliger Spieler. Das heißt, Der Gegner „kann nicht in die Nachrichten eingreifen, die bereits von einem ehrlichen Benutzer i gesendet wurden“, was der Fall sein wird wie gewohnt geliefert. Der Gegner hat außerdem die zusätzliche Fähigkeit, in jeder geraden Runde sofort zu sehen, was Nachrichten, die die derzeit ehrlichen Spieler senden, und verwenden diese Informationen sofort zur Auswahl Die Nachrichten, die die böswilligen Spieler gleichzeitig senden, ticken. Bemerkungen • Gegnerische Macht. Die obige Einstellung ist sehr kontrovers. Tatsächlich im byzantinischen Abkommen In der Literatur sind viele Situationen weniger kontrovers. Es gibt jedoch einige kontroversere Einstellungen Es wurde auch in Betracht gezogen, dass der Gegner, nachdem er die von einem ehrlichen Spieler gesendeten Nachrichten gesehen hat, i Wenn Sie zu einem bestimmten Zeitpunkt auf r klicken, können Sie alle diese Nachrichten sofort aus dem Netzwerk löschen korruptes i, wählen Sie die Nachricht aus, die das jetzt böswillige i sendet, klicken Sie auf r und lassen Sie sie wie gewohnt geliefert. Die erwartete Macht des Gegners entspricht der, die er in unserer Umgebung hat. • Physikalische Abstraktion. Das geplante Kommunikationsmodell abstrahiert ein eher physisches Modell, bei dem jedes Spielerpaar (i, j) durch eine separate und private Kommunikationsleitung li,j verbunden ist. Das heißt, niemand sonst kann die übermittelten Nachrichten einschleusen, stören oder Informationen über sie erhalten li,j. Die einzige Möglichkeit für den Gegner, Zugriff auf li,j zu erhalten, besteht darin, entweder i oder j zu beschädigen. • Datenschutz und Authentifizierung. In SC-Netzwerken sind Nachrichtenvertraulichkeit und Authentifizierung gewährleistet durch Annahme. Im Gegensatz dazu in unserem Kommunikationsnetzwerk, wo Nachrichten verbreitet werden Von Peer zu Peer wird die Authentifizierung durch digitale Signaturen garantiert und es gibt keinen Datenschutz. Um das Protokoll BA⋆an unsere Umgebung anzupassen, sollte daher jede ausgetauschte Nachricht digital signiert sein (zur weiteren Identifizierung des Staates, in dem es gesendet wurde). Glücklicherweise sind die BA-Protokolle, die wir haben Erwägen Sie die Verwendung in Algorand erfordern keinen Datenschutz für Nachrichten.3.2 Die Idee eines byzantinischen Abkommens Der Begriff der byzantinischen Vereinbarung wurde von Pease Shostak und Lamport [31] für die eingeführt binärer Fall, das heißt, wenn jeder Anfangswert aus einem Bit besteht. Es wurde jedoch schnell erweitert auf beliebige Anfangswerte. (Siehe die Umfragen von Fischer [16] und Chor and Dwork [10].) Von einem BA Protokoll, wir meinen ein Protokoll mit beliebigem Wert. Definition 3.1. In einem synchronen Netzwerk sei P ein N-Spieler-Protokoll, dessen Spielersatz gemeinsam ist Wissen unter den Spielern, t eine positive ganze Zahl, so dass n \(\geq\)2t + 1. Wir sagen, dass P ein ist beliebiger Wert (bzw. binär) (n, t)-Byzantinisches Vereinbarungsprotokoll mit Solidität \(\sigma\) \(\in\)(0, 1) wenn für jede Menge von Werten V, die nicht das Sonderzeichen \(\bot\) enthält (bzw. für V = {0, 1}), in an Ausführung, bei der höchstens t der Spieler böswillig sind und bei der jeder Spieler mit einem beginnt Anfangswert vi \(\in\)V , jeder ehrliche Spieler j hält mit Wahrscheinlichkeit 1 an und gibt einen Wert outi \(\in\)V \(\cup\){\(\bot\)} aus um mit einer Wahrscheinlichkeit von mindestens \(\sigma\) die folgenden zwei Bedingungen zu erfüllen: 1. Übereinstimmung: Es existiert out \(\in\)V \(\cup\){\(\bot\)} mit outi = out für alle ehrlichen Spieler i. 2. Konsistenz: Wenn für einen Wert v \(\in\)V vi = v für alle ehrlichen Spieler ist, dann gilt out = v. Wir bezeichnen out als P-Output und jedes Outi als Player-i-Output. 3.3 Die BA-Notation # In unseren BA-Protokollen muss ein Spieler zählen, wie viele Spieler ihm eine bestimmte Nachricht gesendet haben einen bestimmten Schritt. Dementsprechend gilt für jeden möglichen Wert v, der gesendet werden könnte:
s
ich(v) (oder einfach #i(v), wenn s klar ist) ist die Anzahl der Spieler j, von denen i v in Schritt s erhalten hat. Denken Sie daran, dass ein Spieler i von jedem Spieler j genau eine Nachricht erhält, wenn die Anzahl der Spieler ist n, dann ist für alle i und s P v #s i(v) = n. 3.4 Das binäre BA-Protokoll BBA⋆ In diesem Abschnitt stellen wir ein neues binäres BA-Protokoll vor, BBA⋆, das auf der Ehrlichkeit von mehr basiert als zwei Drittel der Spieler und ist sehr schnell: Egal, was die böswilligen Spieler tun, Jede Ausführung der Hauptschleife bringt die Spieler mit einer Wahrscheinlichkeit von 1/3 zur Übereinstimmung. Jeder Spieler verfügt über seinen eigenen öffentlichen Schlüssel eines digitalen Signaturschemas, das der eindeutigen Signatur entspricht Eigentum. Da dieses Protokoll für die Ausführung in einem synchronen Gesamtnetzwerk vorgesehen ist, ist dies nicht der Fall Ich brauche einen Spieler, der jede seiner Nachrichten signiert. Digitale Signaturen werden verwendet, um in Schritt 3 ein ausreichend häufiges Zufallsbit zu generieren. (In Algorand, Digitale Signaturen werden auch zur Authentifizierung aller anderen Nachrichten verwendet.) Das Protokoll erfordert eine minimale Einrichtung: eine gemeinsame Zufallszeichenfolge r, unabhängig von den Spielern. Schlüssel. (In Algorand wird r tatsächlich durch die Größe Qr ersetzt.) Das Protokoll BBA⋆ist eine dreistufige Schleife, in der die Spieler wiederholt boolesche Werte austauschen Verschiedene Spieler können diese Schleife zu unterschiedlichen Zeiten verlassen. Ein Spieler verlässt diese Schleife durch Weitergabe, irgendwann entweder einen Sonderwert 0∗ oder einen Sonderwert 1∗ und weist damit alle Spieler an „Stellen Sie sich vor“, dass sie in allen zukünftigen Schritten jeweils 0 und 1 von i erhalten. (Alternativ gesagt: annehmendass die letzte Nachricht, die ein Spieler j von einem anderen Spieler i erhalten hat, ein bisschen b war. Dann, in jedem Schritt in dem er keine Nachricht von i erhält, verhält sich j so, als ob ich ihm das Bit b geschickt hätte.) Das Protokoll verwendet einen Zähler \(\gamma\), der angibt, wie oft seine dreistufige Schleife ausgeführt wurde. Zu Beginn von BBA⋆ ist \(\gamma\) = 0. (Man könnte sich \(\gamma\) als einen globalen Zähler vorstellen, aber er wird tatsächlich erhöht von jedem einzelnen Spieler jedes Mal, wenn die Schleife ausgeführt wird.) Es gibt n \(\geq\)3t + 1, wobei t die maximal mögliche Anzahl böswilliger Spieler ist. Eine Binärdatei Zeichenfolge x wird mit der Ganzzahl identifiziert, deren binäre Darstellung (mit möglichen führenden Nullen) x ist; und lsb(x) bezeichnet das niedrigstwertige Bit von x. Protokoll BBA⋆ (Kommunikation) Schritt 1. [Coin-Fixed-To-0-Schritt] Jeder Spieler sendet bi. 1.1 Wenn #1 i (0) \(\geq\)2t + 1, dann setzt i bi = 0, sendet 0∗, gibt outi = 0 aus, und HALTS. 1.2 Wenn #1 i (1) \(\geq\)2t + 1, dann setzt i bi = 1. 1.3 Ansonsten setzt i bi = 0. (Kommunikation) Schritt 2. [Coin-Fixed-To-1-Schritt] Jeder Spieler sendet Bi. 2.1 Wenn #2 i (1) \(\geq\)2t + 1, dann setzt i bi = 1, sendet 1∗, Ausgänge outi = 1, und HALTS. 2.2 Wenn #2 i (0) \(\geq\)2t + 1, dann setze ich bi = 0. 2.3 Ansonsten setzt i bi = 1. (Kommunikation) Schritt 3. [Münzen-echt umgedrehter Schritt] Jeder Spieler i sendet bi und SIGi(r, \(\gamma\)). 3.1 Wenn #3 i (0) \(\geq\)2t + 1, dann setzt i bi = 0. 3.2 Wenn #3 i (1) \(\geq\)2t + 1, dann setzt i bi = 1. 3.3 Ansonsten sei Si = {j \(\in\)N, die i in diesem Schritt 3 eine richtige Nachricht gesendet haben }, i setzt bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); erhöht \(\gamma\)i um 1; und kehrt zu Schritt 1 zurück. Satz 3.1. Immer wenn n \(\geq\)3t + 1, ist BBA⋆ein binäres (n, t)-BA-Protokoll mit der Solidität 1. Ein Beweis von Satz 3.1 ist in [26] gegeben. Seine Anpassung an unsere Umgebung und seine Austauschbarkeit durch Spieler Eigentum sind neu. Historische Bemerkung Probabilistische binäre BA-Protokolle wurden erstmals von Ben-Or vorgeschlagen asynchrone Einstellungen [7]. Das Protokoll BBA⋆ist eine neuartige Anpassung des binäres BA-Protokoll von Feldman und Micali [15]. Ihr Protokoll war das erste, das wie erwartet funktionierte konstante Anzahl von Schritten. Es funktionierte dadurch, dass die Spieler selbst eine gemeinsame Münze einführten, eine von Rabin vorgeschlagene Idee, die sie über eine externe vertrauenswürdige Partei [32] implementierte.3.5 Abgestufter Konsens und das Protokoll GC Erinnern wir uns für willkürliche Werte an einen Konsensbegriff, der viel schwächer ist als die byzantinische Vereinbarung. Definition 3.2. Sei P ein Protokoll, in dem die Menge aller Spieler allgemein bekannt ist, und zwar jeder Spieler i kennt privat einen beliebigen Anfangswert v′ ich. Wir sagen, dass P ein (n, t)-gestuftes Konsensprotokoll ist, wenn bei jeder Ausführung mit n Spielern at Die meisten davon sind böswillig. Jeder ehrliche Spieler hört auf, ein Wert-Grade-Paar (vi, gi) auszugeben. wobei gi \(\in\){0, 1, 2}, um die folgenden drei Bedingungen zu erfüllen: 1. Für alle ehrlichen Spieler i und j gilt |gi −gj| \(\leq\)1. 2. Für alle ehrlichen Spieler i und j, gi, gj > 0 ⇒vi = vj. 3. Wenn v′ 1 = \(\cdots\) = v′ n = v für einen Wert v, dann ist vi = v und gi = 2 für alle ehrlichen Spieler i. Historische Anmerkung Der Begriff eines abgestuften Konsenses leitet sich einfach von dem eines abgestuften Konsenses ab Sendung, vorgebracht von Feldman und Micali in [15], indem sie die Vorstellung eines Kreuzfahrers stärkt Vereinbarung, eingeführt von Dolev [12] und verfeinert von Turpin und Coan [33].8 In [15] stellten die Autoren auch ein dreistufiges (n, t)-bewertetes Rundfunkprotokoll bereit, Gradecast, für n \(\geq\)3t+1. Später wurde ein komplexeres (n, t)-Graded-Broadcasting-Protokoll für n > 2t+1 gefunden von Katz und Koo [19]. Das folgende zweistufige Protokoll GC besteht aus den letzten beiden Schritten des Gradecasts, ausgedrückt in unserem Notation. Um diese Tatsache hervorzuheben und die Schritte des Protokolls Algorand ′ in Abschnitt 4.1 anzupassen, haben wir Nennen Sie jeweils 2 und 3 die Schritte von GC. Protokoll GC Schritt 2. Jeder Spieler i sendet v′ Ich an alle Spieler. Schritt 3. Jeder Spieler i sendet genau dann an alle Spieler die Zeichenfolge x, wenn #2 i (x) \(\geq\)2t + 1. Ausgabeermittlung. Jeder Spieler i gibt das wie folgt berechnete Paar (vi, gi) aus: • Wenn für ein x, #3 i (x) \(\geq\)2t + 1, dann gilt vi = x und gi = 2. • Wenn für ein x, #3 i (x) \(\geq\)t + 1, dann gilt vi = x und gi = 1. • Sonst gilt vi = \(\bot\)und gi = 0. Satz 3.2. Wenn n \(\geq\)3t + 1, dann ist GC ein (n, t)-abgestuftes Broadcast-Protokoll. Der Beweis folgt unmittelbar aus dem des Protokoll-Gradecasts in [15] und wird daher weggelassen.9 8Im Wesentlichen ist in einem abgestuften Rundfunkprotokoll (a) die Eingabe jedes Spielers die Identität eines Distinguished Spieler, der Absender, der einen beliebigen Wert v als zusätzliche private Eingabe hat, und (b) die Ausgaben müssen die erfüllen gleiche Eigenschaften 1 und 2 des abgestuften Konsenses, plus die folgende Eigenschaft 3′: Wenn der Absender ehrlich ist, dann gilt vi = v und gi = 2 für alle ehrlichen Spieler i. 9Tatsächlich sendet der Absender in seinem Protokoll in Schritt 1 seinen eigenen privaten Wert v an alle Spieler, und jeder Spieler i lässt zu v′ i besteht aus dem Wert, den er in Schritt 1 tatsächlich vom Absender erhalten hat.3.6 Das Protokoll BA⋆ Wir beschreiben nun das Arbiträrwert-BA-Protokoll BA⋆über das binäre BA-Protokoll BBA⋆und das Protokoll mit abgestuftem Konsens GC. Unten ist der Anfangswert jedes Spielers i v′ ich. Protokoll BA⋆ Schritte 1 und 2. Jeder Spieler i führt GC bei der Eingabe v′ aus i, um ein Paar (vi, gi) zu berechnen. Schritt 3, . . . Jeder Spieler i führt BBA⋆ aus – mit der anfänglichen Eingabe 0, wenn gi = 2, und 1 andernfalls – also um das Bit outi zu berechnen. Ausgabeermittlung. Jeder Spieler i gibt vi aus, wenn outi = 0, andernfalls \(\bot\). Satz 3.3. Immer wenn n \(\geq\)3t + 1, ist BA⋆ein (n, t)-BA-Protokoll mit der Solidität 1. Beweis. Wir beweisen zunächst die Konsistenz und dann die Übereinstimmung. Konsistenznachweis. Nehmen Sie an, dass für einen Wert v \(\in\)V v′ i = v. Dann, nach Eigenschaft 3 von Abgestufter Konsens, nach der GC-Ausführung geben alle ehrlichen Spieler aus (v, 2). Dementsprechend ist 0 das erste Stück aller ehrlichen Spieler am Ende der Ausführung von BBA⋆. Also durch die Vereinbarung Eigenschaft der binären byzantinischen Vereinbarung, am Ende der Ausführung von BA⋆, outi = 0 für alle ehrlich Spieler. Dies impliziert, dass die Ausgabe jedes ehrlichen Spielers i in BA⋆vi = v ist. ✷ Nachweis der Vereinbarung. Da BBA⋆ auch ein binäres BA-Protokoll ist (A) outi = 1 für alle ehrlichen Spieler i, oder (B) outi = 0 für alle ehrlichen Spieler i. Im Fall A geben alle ehrlichen Spieler \(\bot\)in BA⋆ aus, und somit gilt die Vereinbarung. Betrachten Sie nun Fall B. In In diesem Fall ist bei der Ausführung von BBA⋆ das Anfangsbit von mindestens einem ehrlichen Spieler i 0. (In der Tat, wenn Das anfängliche Bit aller ehrlichen Spieler war 1, dann hätten wir es aufgrund der Konsistenzeigenschaft von BBA⋆ outj = 1 für alle ehrlichen j.) Dementsprechend gibt i nach der Ausführung von GC das Paar (v, 2) für einige aus Wert v. Somit ist nach Eigenschaft 1 des abgestuften Konsenses gj > 0 für alle ehrlichen Spieler j. Dementsprechend von Eigenschaft 2 des abgestuften Konsenses, vj = v für alle ehrlichen Spieler j. Dies impliziert, dass am Ende BA⋆, jeder ehrliche Spieler j gibt v aus. Somit gilt Übereinstimmung auch im Fall B. ✷ Da sowohl Konsistenz als auch Übereinstimmung gelten, ist BA⋆ein BA-Protokoll mit beliebigem Wert. Historische Anmerkung Turpin und Coan waren die ersten, die zeigten, dass für n \(\geq\)3t+1 jedes binäre (n, t)-BA gilt Das Protokoll kann in ein (n, t)-BA-Protokoll mit beliebigem Wert umgewandelt werden. Die Reduzierung auf einen beliebigen Wert Die byzantinische Vereinbarung zur binären byzantinischen Vereinbarung über einen abgestuften Konsens ist modularer und sauberer und vereinfacht die Analyse unseres Algorand-Protokolls Algorand ′. Verallgemeinerung von BA⋆zur Verwendung in Algorand Algorand funktioniert auch dann, wenn die gesamte Kommunikation über erfolgt Klatschen. Allerdings, obwohl in einem traditionellen und vertrauten Kommunikationsnetzwerk präsentiert, so Um einen besseren Vergleich mit dem Stand der Technik und ein leichteres Verständnis zu ermöglichen, funktioniert das Protokoll BA⋆works auch in Klatschnetzwerken. Tatsächlich werden wir es in unseren detaillierten Ausführungsformen von Algorand vorstellen direkt für Klatschnetzwerke. Wir weisen auch darauf hin, dass es der Austauschbarkeit des Spielers gerecht wird Eigentum, das für die Sicherheit von Algorand im geplanten sehr kontradiktorischen Modell von entscheidender Bedeutung ist.
Jedes durch einen BA-Spieler austauschbare Protokoll, das in einem klatschenden Kommunikationsnetzwerk funktioniert, kann sein sicher im erfinderischen Algorand-System eingesetzt. Insbesondere Micali und Vaikunthanatan haben BA⋆ erweitert, um auch mit einer einfachen Mehrheit ehrlicher Spieler sehr effizient zu arbeiten. Das Auch das Protokoll könnte in Algorand verwendet werden.
Geleneksel Bir Ortamda BA Protokolü BA⋆
Daha önce de vurgulandığı gibi, Bizans anlaşması Algorand'nin önemli bir bileşenidir. Gerçekten de bu sayede oluyor Algorand'nin çatallardan etkilenmemesini sağlayacak şekilde bir BA protokolünün kullanılması. Ancak bize karşı güvende olmak için Güçlü Rakip, Algorand yeni oyuncu tarafından değiştirilebilirlik şartını karşılayan bir BA protokolüne güvenmek zorundadır kısıtlama. Ayrıca Algorand'nın etkili olabilmesi için böyle bir BA protokolünün çok etkili olması gerekir. BA protokolleri ilk olarak idealleştirilmiş bir iletişim modeli için tanımlandı. ağlar (SC ağları). Böyle bir model, BA protokollerinin daha basit bir şekilde tasarlanmasına ve analizine olanak tanır. 6Dürüst yüzde h ve kabul edilebilir başarısızlık olasılığı F verildiğinde, Algorand bir üst sınır olan N'yi hesaplar, bir adımda maksimum doğrulayıcı üye sayısına kadar. Dolayısıyla MP varsayımının yalnızca n \(\leq\)N için geçerli olması gerekir. Ek olarak, belirtildiği gibi, MP varsayımı, yanında kaç tane başka mesajın yayılabileceğine bakılmaksızın geçerlidir. mj'ler. Ancak ileride göreceğimiz gibi, Algorand adresindeki mesajlar temelde örtüşmeyen bir zamanda yayılır. ya tek bir bloğun yayıldığı ya da en fazla N doğrulayıcının küçük bir bloğu (örn. 200B) yaydığı aralıklar mesaj. Böylece MP varsayımını daha zayıf fakat aynı zamanda daha karmaşık bir şekilde yeniden ifade edebiliriz. 7Örneğin dürüst oyuncuların gönderdiği mesajları anında öğrenebiliyor. Böylece, kötü niyetli bir kullanıcı olan i' Dürüst bir kullanıcı i ile aynı anda bir mesajı yayması istendiğinde, her zaman kendi mesajını m′ seçebilir. m mesajı aslında i tarafından yayıldı. Bu yetenek, dağıtılmış hesaplamanın tabiriyle acele etmeyle ilgilidir. edebiyat.Buna göre, bu bölümde, SC ağları için yeni bir BA protokolü olan BA⋆'yi tanıtıyoruz ve bu protokolü göz ardı ediyoruz. tamamen oyuncunun değiştirilebilmesi meselesi. BA⋆ protokolü ayrı bir değere sahip bir katkıdır. Aslında SC ağları için şu ana kadar bilinen en etkili kriptografik BA protokolüdür. Bunu Algorand protokolümüz dahilinde kullanmak için, farklı özelliklerimizi hesaba katacak şekilde BA⋆biraz değiştiririz. iletişim modeli ve bağlamı, ancak Bölüm X'te BA⋆'nın nasıl kullanıldığını vurguladığınızdan emin olun. gerçek protokolümüz dahilinde Algorand ′. BA'nın faaliyet gösterdiği modeli ve Bizans anlaşması kavramını hatırlatarak başlıyoruz. 3.1 Senkronize Komple Ağlar ve Eşleşen Rakipler Bir SC ağında, her bir r = 1, 2, integral zamanında işleyen ortak bir saat vardır. . . Her çift tıklamada r'ye tıkladığınızda, her oyuncu anında ve eş zamanlı olarak tek bir mesaj gönderir. mesaj bay i,j (muhtemelen boş mesaj) kendisi dahil her j oyuncusuna. Her bir bay i,j alınır zamanda gönderenin kimliğiyle birlikte j oyuncusu tarafından r + 1'e tıklayın. Yine bir iletişim protokolünde, bir oyuncu kendisine söylenenlerin hepsini yerine getiriyorsa dürüsttür. talimatlar ve aksi takdirde kötü niyetli. Tüm kötü niyetli oyuncular tamamen kontrol edilir ve mükemmel bir şekilde kontrol edilir Özellikle kendisine gönderilen tüm mesajları anında alan Düşman tarafından koordine edilir. kötü niyetli oyuncular ve gönderecekleri mesajları seçer. Düşman, istediği herhangi bir dürüst kullanıcıyı herhangi bir tıklamayla anında kötü niyetli hale getirebilir sadece kötü niyetli oyuncuların sayısına olası bir üst sınıra bağlı olarak istiyor. Yani, Düşman “dürüst bir kullanıcı i tarafından zaten gönderilmiş olan mesajlara müdahale edemez”; her zamanki gibi teslim edildi. Düşman aynı zamanda her çift turda anında görebilme ek yeteneğine de sahiptir. Şu anda dürüst olan oyuncuların gönderdiği mesajlar ve bu bilgileri anında kullanarak seçim yapın. Kötü niyetli oyuncuların gönderdikleri mesajlar aynı anda işaretlenir. Açıklamalar • Düşman Gücü. Yukarıdaki ortam oldukça düşmancadır. Nitekim Bizans anlaşmasında Literatürde birçok ortam daha az düşmancadır. Ancak bazı daha düşmanca ortamlar var Ayrıca, Düşmanın dürüst bir oyuncu tarafından gönderilen mesajları gördükten sonra Belirli bir zamanda r'ye tıklayın, tüm bu mesajları ağdan anında silme olanağına sahiptir bozuk i, şimdi kötü amaçlı olan i'nin r'ye tıkladığında göndereceği mesajı seçin ve bunları sağlayın her zamanki gibi teslim edildi. Rakibin öngörülen gücü, bizim ortamımızda sahip olduğu maçlardır. • Fiziksel Soyutlama. Öngörülen iletişim modeli daha fiziksel bir modeli soyutlamaktadır. burada her bir oyuncu çifti (i, j), ayrı ve özel bir iletişim hattı li,j ile bağlanır. Yani, gönderilen mesajlara başka hiç kimse enjekte edemez, müdahale edemez veya bunlar hakkında bilgi elde edemez. li, j. Düşmanın li,j'ye erişmesinin tek yolu i veya j'yi bozmaktır. • Gizlilik ve Kimlik Doğrulama. SC ağlarında mesaj gizliliği ve kimlik doğrulaması garanti edilir varsayım yoluyla. Bunun aksine, mesajların yayıldığı iletişim ağımızda eşler arası kimlik doğrulama dijital imzalarla garanti edilir ve gizlilik mevcut değildir. Bu nedenle, BA⋆ protokolünü ortamımıza uyarlamak için, değiştirilen her mesajın dijital olarak imzalanması gerekir. (ayrıca gönderildiği eyaleti de tanımlar). Neyse ki, kullandığımız BA protokolleri mesaj gizliliği gerektirmeyen Algorand içinde kullanmayı düşünün.3.2 Bizans Anlaşması Kavramı Bizans anlaşması kavramı Pease Shostak ve Lamport [31] tarafından ortaya atıldı. ikili durum, yani her başlangıç değeri bir bitten oluştuğunda. Ancak kısa sürede uzatıldı keyfi başlangıç değerlerine. (Fischer [16] ve Chor ve Dwork [10] anketlerine bakın.) Bir BA tarafından protokol, keyfi değerde olanı kastediyoruz. Tanım 3.1. Senkron bir ağda P, oynatıcı seti ortak olan n oyunculu bir protokol olsun oyuncular arasındaki bilgi, n \(\geq\)2t + 1 olacak şekilde pozitif bir tam sayı. P'nin bir olduğunu söylüyoruz. keyfi değer (sırasıyla ikili) (n, t)-Sağlamlık \(\sigma\) \(\in\)(0, 1) olan Bizans anlaşma protokolü eğer, \(\bot\) özel sembolünü içermeyen her V değer kümesi için (sırasıyla, V = {0, 1} için), bir oyuncuların çoğunun kötü niyetli olduğu ve her oyuncunun bir i ile başladığı yürütme başlangıç değeri vi \(\in\)V, her dürüst oyuncu j 1 olasılıkla durur ve çıkış değeri outi \(\in\)V \(\cup\){\(\bot\)} olur en az \(\sigma\) olasılıkla aşağıdaki iki koşulu sağlayacak şekilde: 1. Anlaşma: \(\in\)V \(\cup\){\(\bot\)} var, öyle ki outi = tüm dürüst oyuncular için out i. 2. Tutarlılık: eğer bir v \(\in\)V değeri için, tüm dürüst oyuncular için vi = v ise, o zaman out = v. Out'a P'nin çıkışı, her outi'ye ise i oyuncusunun çıkışı diyoruz. 3.3 BA Notasyonu # BA protokollerimizde, bir oyuncunun kendisine belirli bir mesajı kaç oyuncunun gönderdiğini sayması gerekir. belirli bir adım. Buna göre gönderilebilecek her olası v değeri için,
s
ben(v) (veya s açık olduğunda sadece #i(v)) s adımında v'yi aldığım j oyuncu sayısıdır. Hatırlarsak, i oyuncusu her j oyuncusundan tam olarak bir mesaj alır; oyuncular n'dir, o halde tüm i ve s için P v #s i(v) = n. 3.4 İkili BA Protokolü BBA⋆ Bu bölümde daha fazla bilginin dürüstlüğüne dayanan yeni bir ikili BA protokolü olan BBA⋆'ı sunuyoruz. oyuncuların üçte ikisinden fazlası ve çok hızlı: kötü niyetli oyuncular ne yaparsa yapsın, Ana döngünün her yürütülmesi, oyuncuları 1/3 olasılıkla anlaşmaya getirir. Her oyuncunun, benzersiz imzayı karşılayan bir dijital imza şemasının kendi genel anahtarı vardır. mülk. Bu protokolün senkronize tam ağ üzerinde çalıştırılması amaçlandığından, mesajlarının her birini imzalayacak bir oyuncuya ihtiyaç var. Dijital imzalar, 3. Adımda yeterince ortak bir rastgele bit oluşturmak için kullanılır. (Algorand'de, dijital imzalar diğer tüm mesajların kimliğini doğrulamak için de kullanılır.) Protokol minimal bir kurulum gerektirir: oyuncuların davranışlarından bağımsız olarak ortak bir rastgele dizi r. anahtarlar. (Algorand'de r aslında Qr miktarıyla değiştirilir.) BBA⋆ Protokolü, oyuncuların tekrar tekrar Boole değerlerini değiştirdiği 3 adımlı bir döngüdür ve farklı oyuncular bu döngüden farklı zamanlarda çıkabilir. Bir oyuncu i bu döngüden yayılarak çıkar, bir aşamada ya 0∗ özel değeri ya da 1∗ özel değeri kullanılır, böylece tüm oyunculara şu talimat verilir: Gelecekteki tüm adımlarda i'den sırasıyla 0 ve 1 alıyormuş gibi davranın. (Alternatif olarak şöyle söylenir: varsayalımj oyuncusunun başka bir i oyuncusundan aldığı son mesajın biraz b olduğu. Daha sonra herhangi bir adımda i'den herhangi bir mesaj almadığında, j ona b bitini göndermişim gibi davranır.) Protokol, 3 adımlı döngünün kaç kez yürütüldüğünü temsil eden bir \(\gamma\) sayacı kullanır. BBA⋆ başlangıcında \(\gamma\) = 0. (\(\gamma\)'nın global bir sayaç olduğu düşünülebilir ancak gerçekte artırılmıştır.) döngü her yürütüldüğünde her bir oyuncu tarafından.) n \(\geq\)3t + 1 vardır; burada t, kötü niyetli oyuncuların mümkün olan maksimum sayısıdır. Bir ikili x dizisi, ikili gösterimi (olası baştaki 0'larla) x olan tamsayı ile tanımlanır; ve lsb(x), x'in en az anlamlı bitini belirtir. Protokol BBA⋆ (İletişim) Adım 1. [Paraya Sabitlenmiş 0 Adım] Her oyuncuya bi gönderir. 1.1 Eğer #1 ise i (0) \(\geq\)2t + 1, o zaman i bi = 0'ı ayarlar, 0∗ gönderir, çıkışlar outi = 0 olur, ve DUR. 1.2 Eğer #1 ise i (1) \(\geq\)2t + 1 ise i, bi = 1 değerini verir. 1.3 Aksi halde i, bi = 0 değerini verir. (İletişim) Adım 2. [1'e Sabit Para Adımı] Her oyuncuya bi gönderir. 2.1 Eğer #2 i (1) \(\geq\)2t + 1 ise i, bi = 1 değerini verir, 1∗ gönderir, çıkışlar outi = 1, ve DUR. 2.2 Eğer #2 i (0) \(\geq\)2t + 1 ise bi = 0 olarak belirlerim. 2.3 Aksi halde i, bi = 1 değerini verir. (İletişim) Adım 3. [Gerçekten Yazı-Para Çevirme Adımı] Her oyuncu i, bi ve SIGi(r, \(\gamma\)) gönderir. 3.1 Eğer #3 i (0) \(\geq\)2t + 1 ise i, bi = 0 olur. 3.2 Eğer #3 i (1) \(\geq\)2t + 1 ise i, bi = 1 değerini verir. 3.3 Aksi halde, bu 3. adımda i'ye uygun bir mesaj gönderen Si = {j \(\in\)N olsun}, i ayarlar bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); \(\gamma\)i'yi 1 artırır; ve Adım 1'e geri döner. Teorem 3.1. Ne zaman n \(\geq\)3t + 1 olursa, BBA⋆ sağlamlığı 1 olan bir ikili (n, t)-BA protokolüdür. Teorem 3.1'in bir kanıtı [26]'de verilmiştir. Ortamımıza adaptasyonu ve oyuncu tarafından değiştirilebilirliği mülkiyet yenidir. Tarihsel Açıklama Olasılıksal ikili BA protokolleri ilk olarak Ben-Or tarafından önerilmiştir. eşzamansız ayarlar [7]. Protokol BBA⋆, açık anahtar ortamımıza yeni bir uyarlamadır. Feldman ve Micali'nin ikili BA protokolü [15]. Onların protokolü beklenen bir şekilde çalışan ilk protokoldü. sabit sayıda adım. Oyuncuların kendilerinin ortak bir jeton uygulamasını sağlayarak işe yaradı. Rabin tarafından önerilen ve bunu harici bir güvenilir taraf [32] aracılığıyla uygulayan bir fikir.3.5 Kademeli Konsensüs ve Protokol GC Keyfi değerler konusunda, Bizans anlaşmasından çok daha zayıf bir konsensüs kavramını hatırlayalım. Tanım 3.2. P'nin, tüm oyuncuların kümesinin ortak bilgi sahibi olduğu ve her birinin i oyuncusu özel olarak keyfi bir başlangıç değeri v′ biliyor ben. Eğer n oyunculu her yürütmede, P'nin (n, t) dereceli bir konsensüs protokolü olduğunu söyleriz. çoğu kötü niyetli, her dürüst oyuncu bir değer-dereceli çift (vi, gi) çıkarmayı durdurur, burada gi \(\in\){0, 1, 2}, aşağıdaki üç koşulu sağlayacak şekilde: 1. Bütün dürüst oyuncular i ve j için |gi −gj| \(\leq\)1. 2. Tüm dürüst oyuncular için i ve j, gi, gj > 0 ⇒vi = vj. 3. Eğer v′ 1 = \(\cdots\) = v′ Bir v değeri için n = v, sonra tüm dürüst oyuncular i için vi = v ve gi = 2. Tarihsel Not Kademeli konsensüs kavramı basitçe derecelendirilmiş fikir birliğinden türetilmiştir. Feldman ve Micali tarafından [15]'de haçlı kavramını güçlendirerek ortaya atılan yayın Dolev [12] tarafından sunulan ve Turpin ve Coan [33].8 tarafından geliştirilen anlaşma [15]'da yazarlar ayrıca 3 adımlı (n, t) dereceli bir yayın protokolü olangradecast'i de sağladılar. n \(\geq\)3t+1. Daha sonra n > 2t+1 için daha karmaşık (n, t) dereceli bir yayın protokolü bulundu Katz ve Koo tarafından [19]. Aşağıdaki iki adımlı protokol GC, bizim formülümüzde ifade edilen not dökümünün son iki adımından oluşur. notasyon. Bu gerçeği vurgulamak ve bölüm 4.1'deki Algorand ′ protokolünün adımlarına uymak için, GC'nin adımlarını sırasıyla 2 ve 3 olarak adlandırın. Protokol GC Adım 2. Gönderdiğim her oyuncuya v′ tüm oyunculara sesleniyorum. Adım 3. Her i oyuncusu tüm oyunculara x dizesini ancak ve ancak #2 ise gönderir i(x) \(\geq\)2t + 1. Çıkış Belirleme. Her oyuncu i, aşağıdaki gibi hesaplanan (vi, gi) çiftinin çıktısını verir: • Eğer bazı x'ler için #3 i (x) \(\geq\)2t + 1 ise vi = x ve gi = 2 olur. • Eğer bazı x'ler için #3 i (x) \(\geq\)t + 1 ise vi = x ve gi = 1 olur. • Aksi takdirde vi = \(\bot\)ve gi = 0. Teorem 3.2. Eğer n \(\geq\)3t + 1 ise GC (n, t) dereceli bir yayın protokolüdür. Kanıt, [15]'deki protokol not dökümünün hemen ardından gelir ve bu nedenle atlanır.9 8Aslında, kademeli yayın protokolünde, (a) her oyuncunun girdisi seçkin bir kişinin kimliğidir ek bir özel girdi olarak isteğe bağlı bir v değerine sahip olan gönderen ve (b) çıktıların şu koşulları karşılaması gerekir: dereceli fikir birliğinin aynı özellikleri 1 ve 2 artı aşağıdaki özellik 3': eğer gönderen dürüstse, o zaman vi = v ve gi = 2 tüm dürüst oyuncular için i. 9Aslında, protokollerinde, 1. adımda, gönderen kendi özel v değerini tüm oyunculara gönderir ve her oyuncuya izin verir. v′ 1. adımda gönderenden fiilen aldığı değerden oluşuyorum.3.6 Protokol BA⋆ Şimdi keyfi değerli BA protokolünü BA⋆ ikili BA protokolü BBA⋆ aracılığıyla tanımlıyoruz ve kademeli fikir birliği protokolü GC. Aşağıda her bir oyuncunun başlangıç değeri i v'dir ben. Protokol BA⋆ Adım 1 ve 2. Her i oyuncusu, v′ girişinde GC'yi yürütür. i, bir (vi, gi) çiftini hesaplamak için. Adım 3, . . . Her i oyuncusu, gi = 2 ise başlangıç girişi 0, aksi takdirde 1 ile BBA⋆'yi çalıştırır; yani bit çıkışını hesaplamak için. Çıkış Belirleme. Her i oyuncusu outi = 0 ise vi, aksi takdirde \(\bot\) sonucunu verir. Teorem 3.3. Ne zaman n \(\geq\)3t + 1 olursa, BA⋆ sağlamlığı 1 olan bir (n, t)-BA protokolüdür. Kanıt. Önce Tutarlılığı, sonra da Anlaşmayı kanıtlarız. Tutarlılığın Kanıtı. Varsayalım ki, bir v \(\in\)V değeri için v′ i = v. O zaman 3. özelliğe göre GC'nin uygulanmasından sonra kademeli fikir birliği, tüm dürüst oyuncuların çıktısı (v, 2). Buna göre 0 BBA'nın infazının sonunda tüm dürüst oyuncuların ilk kısmı⋆. Böylece, Anlaşma ile İkili Bizans anlaşmasının özelliği, BA⋆'nın yürütülmesinin sonunda, tüm dürüstler için outi = 0 oyuncular. Bu, BA⋆'daki her dürüst oyuncu i'nin çıktısının vi = v olduğu anlamına gelir. ✷ Anlaşma Kanıtı. BBA⋆ ikili bir BA protokolü olduğundan (A) outi = tüm dürüst oyuncu i için 1, veya (B) outi = tüm dürüst oyuncu i için 0. A durumunda, tüm dürüst oyuncular BA⋆'da \(\bot\)çıktı verir ve dolayısıyla Anlaşma geçerlidir. Şimdi B durumunu düşünün. bu durumda, BBA⋆'nin yürütülmesinde, en az bir dürüst oyuncu i'nin başlangıç biti 0'dır. Tüm dürüst oyuncuların başlangıçtaki biti 1 idi, o zaman BBA⋆'nin Tutarlılık özelliğine göre şunu elde ederdik: outj = 1 tüm dürüst j. için.) Buna göre, GC'nin yürütülmesinden sonra i, bazıları için (v, 2) çiftini çıktı olarak verir. değer v. Dolayısıyla, kademeli konsensüsün 1. özelliğine göre, tüm dürüst oyuncular j için gj > 0. Buna göre, tarafından Kademeli konsensüsün 2. özelliği, vj = v tüm dürüst oyuncular için j. Bu şu anlama gelir: sonunda BA⋆, her dürüst oyuncu j v çıktısı verir. Dolayısıyla Anlaşma B durumunda da geçerlidir. ✷ Hem Tutarlılık hem de Anlaşma geçerli olduğundan, BA⋆ keyfi değerli bir BA protokolüdür. Tarihsel Not Turpin ve Coan, n \(\geq\)3t+1 için herhangi bir ikili (n, t)-BA'nın olduğunu gösteren ilk kişilerdi. protokolü keyfi değerde (n, t)-BA protokolüne dönüştürülebilir. Azaltma keyfi değeri Aşamalı fikir birliği yoluyla ikili Bizans anlaşmasına Bizans anlaşması daha modülerdir ve daha temizdir ve Algorand protokolümüzün Algorand ′ analizini basitleştirir. BA⋆'nın Algorand'de kullanım için genelleştirilmesi Algorand tüm iletişim üzerinden olsa bile çalışır dedikodu. Ancak her ne kadar geleneksel ve tanıdık bir iletişim ağı içerisinde sunulsa da, Önceki teknikle daha iyi bir karşılaştırma ve daha kolay bir anlayış sağlamak için BA⋆works protokolü dedikodu ağlarında da var. Aslında Algorand'nin ayrıntılı düzenlemelerinde onu sunacağız doğrudan dedikodu ağları için. Oyuncunun değiştirilebilirliğini karşıladığını da belirtelim. Algorand için çok önemli olan mülkün, öngörülen son derece çekişmeli modelde güvende olması.
Dedikodu iletişim ağında çalışan herhangi bir BA oynatıcısı tarafından değiştirilebilir protokol, buluşa ait Algorand sistemi içerisinde güvenli bir şekilde kullanılır. Özellikle Micali ve Vaikunthanatan BA⋆'yı dürüst oyuncuların basit çoğunluğuyla da çok verimli çalışacak şekilde genişlettik. bu protokol de Algorand'de kullanılabilir.
Zwei Ausführungsformen von Algorand
Wie bereits erwähnt, läuft eine Runde Algorand auf sehr hohem Niveau idealerweise wie folgt ab. Zuerst ein Zufall Der ausgewählte Benutzer, der Leiter, schlägt einen neuen Block vor und verteilt ihn. (Dieser Prozess umfasst zunächst Wählen Sie einige potenzielle Führungskräfte aus und stellen Sie dann sicher, dass zumindest in einem guten Teil der Zeit a es entsteht ein einziger gemeinsamer Anführer.) Zweitens wird ein zufällig ausgewähltes Komitee von Benutzern ausgewählt, und erreicht eine byzantinische Einigung über den vom Führer vorgeschlagenen Block. (Dieser Prozess beinhaltet das Jeder Schritt des BA-Protokolls wird von einem separat ausgewählten Ausschuss geleitet.) Der vereinbarte Block wird dann von einer bestimmten Schwelle (TH) an Ausschussmitgliedern digital signiert. Diese digitalen Signaturen werden verteilt, so dass jeder sicher ist, welcher der neue Block ist. (Dazu gehört auch die Weitergabe der Anmeldeinformationen der Unterzeichner und Authentifizierung nur des hash des neuen Blocks, um sicherzustellen, dass jeder wird den Block garantiert lernen, sobald sein hash klargestellt ist.) In den nächsten beiden Abschnitten stellen wir zwei Ausführungsformen von Algorand, Algorand vor. 1 und Algorand ′ 2, die unter der Annahme der Mehrheit der ehrlichen Benutzer funktionieren. In Abschnitt 8 zeigen wir, wie man diese übernimmt Verkörperungen funktionieren unter der Annahme einer ehrlichen Mehrheit des Geldes. Algorand ′ 1 sieht lediglich vor, dass > 2/3 der Ausschussmitglieder ehrlich sind. Darüber hinaus in Algorand ′ 1 ist die Anzahl der Schritte zur Erzielung einer byzantinischen Einigung auf einen angemessen hohen Betrag begrenzt Zahl, so dass eine Einigung mit überwältigender Wahrscheinlichkeit innerhalb von a gewährleistet ist Feste Anzahl von Schritten (aber möglicherweise länger dauernd als die Schritte von Algorand ′ 2). Im In einem entfernten Fall, in dem bis zum letzten Schritt noch keine Einigung erzielt wurde, stimmt der Ausschuss dem zu leerer Block, der immer gültig ist. Algorand ′ 2 sieht vor, dass die Zahl der ehrlichen Mitglieder in einem Ausschuss immer größer ist als oder gleich einem festen Schwellenwert tH (was dies zumindest mit überwältigender Wahrscheinlichkeit garantiert). 2/3 der Ausschussmitglieder sind ehrlich). Darüber hinaus Algorand ′ 2 ermöglicht eine byzantinische Vereinbarung in einer beliebigen Anzahl von Schritten erreicht werden (aber möglicherweise in kürzerer Zeit als Algorand ′ 1). Viele Varianten dieser Grundausführungen lassen sich leicht ableiten. Insbesondere ist es einfach, gegeben Algorand ′ 2, um Algorand ′ zu ändern 1, um eine willkürliche byzantinische Einigung zu ermöglichen Anzahl der Schritte. Beide Ausführungsformen teilen den folgenden gemeinsamen Kern, die folgenden Notationen, Begriffe und Parameter. 4.1 Ein gemeinsamer Kern Ziele Idealerweise würde Algorand für jede Runde r die folgenden Eigenschaften erfüllen: 1. Perfekte Korrektheit. Alle ehrlichen Benutzer sind sich im selben Block einig, Br. 2. Vollständigkeit 1. Mit Wahrscheinlichkeit 1 ist die Lohnmenge von Br, PAY r, maximal.10 10Weil Gehaltssätze so definiert sind, dass sie gültige Zahlungen enthalten und ehrliche Benutzer nur gültige Zahlungen leisten dürfen, ein Maximum PAY r enthält die „aktuell ausstehenden“ Zahlungen aller ehrlichen Nutzer.Natürlich ist die Gewährleistung vollkommener Korrektheit allein trivial: Jeder wählt immer den Beamten Payset PAY r muss leer sein. Aber in diesem Fall hätte das System die Vollständigkeit 0. Leider Die Gewährleistung sowohl vollkommener Richtigkeit als auch Vollständigkeit 1 ist angesichts böswilliger Angriffe nicht einfach Benutzer. Algorand verfolgt somit eine realistischere Zielsetzung. Informell bezeichnet h den Prozentsatz der ehrlichen Benutzer, h > 2/3, ist das Ziel von Algorand Garantiert mit überwältigender Wahrscheinlichkeit vollkommene Korrektheit und Vollständigkeit nahe h. Der Richtigkeit Vorrang vor der Vollständigkeit zu geben, scheint eine vernünftige Entscheidung zu sein: Zahlungen werden nicht verarbeitet Eine Runde kann in der nächsten abgearbeitet werden, man sollte aber nach Möglichkeit auf Gabelungen verzichten. Geführtes byzantinisches Abkommen Perfekte Korrektheit kann wie folgt garantiert werden. Am Anfang In Runde r erstellt jeder Benutzer i seinen eigenen Kandidatenblock Br i , und dann erreichen alle Benutzer Byzantine Einigung über einen Kandidatenblock. Gemäß unserer Einführung erfordert das verwendete BA-Protokoll eine ehrliche 2/3-Mehrheit und ist durch Spieler austauschbar. Jeder seiner Schritte kann von einem kleinen und ausgeführt werden zufällig ausgewählte Gruppe von Verifizierern, die keine inneren Variablen gemeinsam haben. Leider gibt es für diesen Ansatz keine Vollständigkeitsgarantie. Das ist so, weil der Kandidat Die Blöcke der ehrlichen Benutzer unterscheiden sich höchstwahrscheinlich völlig voneinander. Somit ist das letztendlich Der vereinbarte Block kann immer einer mit einem nicht maximalen Gehaltssatz sein. Tatsächlich kann es immer so sein leerer Block, B\(\varepsilon\), d. h. der Block, dessen Payset leer ist. Nun, es wird die Standardeinstellung sein, leer. Algorand ′ vermeidet dieses Vollständigkeitsproblem wie folgt. Zunächst wird ein Anführer für die Runde r, \(\ell\)r, ausgewählt. Dann propagiert \(\ell\)r seinen eigenen Kandidatenblock, Br \(\ell\)r. Schließlich einigen sich die Nutzer auf die Sperre sie erhalten tatsächlich von \(\ell\)r. Denn wann immer \(\ell\)r ehrlich ist, vollkommene Korrektheit und Vollständigkeit 1 gilt beides, Algorand ′ stellt sicher, dass \(\ell\)r ehrlich ist mit einer Wahrscheinlichkeit nahe h. (Wenn der Anführer ist Böswillig ist es uns egal, ob der vereinbarte Block einer mit einem leeren Payset ist. Immerhin a böswilliger Anführer \(\ell\)r könnte sich immer böswillig für Br entscheiden \(\ell\)r der leere Block sein, und dann ehrlich verbreiten Sie es und zwingen Sie so die ehrlichen Benutzer, sich auf den leeren Block zu einigen.) Auswahl des Leiters In Algorand hat der r-te Block die Form Br = (r, PAY r, Qr, H(Br−1). Wie bereits in der Einleitung erwähnt, wird die Größe Qr−1 sorgfältig so konstruiert, dass sie ist im Wesentlichen nicht manipulierbar durch unseren sehr mächtigen Gegner. (Später in diesem Abschnitt werden wir Geben Sie eine Vorstellung davon, warum dies der Fall ist.) Zu Beginn einer Runde r kennen alle Benutzer das blockchain bisher, B0, . . . , Br−1, woraus sie die Menge der Benutzer jeder vorherigen Runde ableiten: das ist, PK1, . . . , PKr−1. Ein potenzieller Anführer der Runde r ist ein Benutzer, der so ist .H SIGi r, 1, Qr−1 \(\leq\)p . Lassen Sie es uns erklären. Beachten Sie, dass die Größe Qr−1 Teil des Blocks Br−1 und des zugrundeliegenden ist Das Signaturschema erfüllt die Eindeutigkeitseigenschaft SIGi r, 1, Qr−1 ist eindeutig eine Binärzeichenfolge verbunden mit i und r. Da H also ein zufälliger oracle ist, ist H SIGi r, 1, Qr−1 ist ein zufälliges 256-Bit lange Zeichenfolge, die eindeutig i und r zugeordnet ist. Das Symbol „.“ vor H SIGi r, 1, Qr−1 ist das Dezimalpunkt (in unserem Fall binär), so dass ri \(\triangleq\).H SIGi r, 1, Qr−1 ist die binäre Entwicklung von a Zufällige 256-Bit-Zahl zwischen 0 und 1, die eindeutig i und r zugeordnet ist. Somit ist die Wahrscheinlichkeit, dass ri kleiner oder gleich p ist im Wesentlichen p. (Unser Auswahlmechanismus für potenzielle Führungskräfte war inspiriert vom Mikrozahlungssystem von Micali und Rivest [28].) Die Wahrscheinlichkeit p wird so gewählt, dass mit überwältigender Wahrscheinlichkeit (d. h. 1 − F) mindestens eins vorliegt Der potenzielle Prüfer ist ehrlich. (Tatsächlich wird p so gewählt, dass es die kleinste derartige Wahrscheinlichkeit ist.)Beachten Sie, dass er allein dazu in der Lage ist, da ich der Einzige ist, der in der Lage ist, seine eigenen Signaturen zu berechnen Stellen Sie fest, ob er ein potenzieller Prüfer der ersten Runde ist. Indem Sie jedoch seine eigenen Qualifikationen offenlegen, \(\sigma\)r i \(\triangleq\)SIGi r, 1, Qr−1 , ich kann jedem beweisen, dass ich ein potenzieller Prüfer der Runde r bin. Der Anführer ist der potenzielle Anführer, dessen hashed-Berechtigung kleiner ist als der hashed-Berechtigungsnachweis aller anderen potenziellen Anführer j: das heißt, H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j). Beachten Sie, dass, da ein böswilliger \(\ell\)r seinen Berechtigungsnachweis nicht preisgeben darf, der richtige Anführer der Runde r dies tun darf nie bekannt werden, und dass \(\ell\)r, sofern es keine unwahrscheinlichen Bindungen gibt, tatsächlich der einzige Anführer der Runde r ist. Lassen Sie uns abschließend noch ein letztes, aber wichtiges Detail ansprechen: Ein Benutzer kann ein potenzieller Anführer sein (und somit der Anführer) einer Runde r nur dann, wenn er mindestens k Runden dem System angehörte. Das garantiert die Nichtmanipulierbarkeit von Qr und allen zukünftigen Q-Größen. Tatsächlich einer der potenziellen Anführer wird tatsächlich Qr bestimmen. Auswahl des Verifizierers Jeder Schritt s > 1 der Runde r wird von einer kleinen Gruppe von Prüfern, SV r,s, ausgeführt. Auch hier wird jeder Verifizierer i \(\in\)SV r,s zufällig unter den Benutzern ausgewählt, die sich bereits in den k Runden des Systems befinden vor r und wiederum über die Sondergröße Qr−1. Konkret ist i \(\in\)PKr−k ein Verifizierer in SV r,s, wenn .H SIGi r, s, Qr−1 \(\leq\)p′ . Auch hier weiß nur ich, ob er zum SV r,s gehört, aber wenn das der Fall ist, könnte er es durch beweisen stellt seinen Berechtigungsnachweis \(\sigma\)r,s vor ich \(\triangleq\)H(SIGi r, s, Qr−1 ). Ein Prüfer i \(\in\)SV r,s sendet eine Nachricht, mr,s ich, in Schritte s der Runde r, und diese Nachricht enthält seine Anmeldeinformationen \(\sigma\)r,s i , um die Verifizierer für die zu aktivieren Nestschritt, um zu erkennen, dass Herr, S ich ist eine legitime Step-S-Nachricht. Die Wahrscheinlichkeit p′ wird so gewählt, dass sichergestellt ist, dass in SV r,s #good die Zahl von ist ehrliche Benutzer und #bad die Anzahl böswilliger Benutzer, mit überwältigender Wahrscheinlichkeit das Folgende Es gelten zwei Bedingungen. Zur Verkörperung Algorand ′ 1: (1) #gut > 2 \(\cdot\) #schlecht und (2) #gut + 4 \(\cdot\) #schlecht < 2n, wobei n die erwartete Kardinalität von SV r,s ist. Zur Verkörperung Algorand ′ 2: (1) #gut > tH und (2) #gut + 2#schlecht < 2tH, wobei tH ein festgelegter Schwellenwert ist. Diese Bedingungen implizieren, dass mit ausreichend hoher Wahrscheinlichkeit (a) im letzten Schritt des BA Protokoll wird es mindestens eine bestimmte Anzahl ehrlicher Spieler geben, die den neuen Block Br digital signieren, (b) nur ein Block pro Runde darf die erforderliche Anzahl an Signaturen haben und (c) die verwendete BA Das Protokoll verfügt (bei jedem Schritt) über die erforderliche ehrliche Zweidrittelmehrheit. Klärung der Blockgenerierung Wenn der Rund-R-Anführer \(\ell\)r ehrlich ist, dann der entsprechende Block ist von der Form Br = r, PAY r, SIG\(\ell\)r Qr−1 , H Br−1 , wobei der Payset PAY r maximal ist. (Denken Sie daran, dass alle Gehaltssätze per Definition kollektiv gültig sind.) Andernfalls (d. h. wenn \(\ell\)r böswillig ist) hat Br eine der folgenden zwei möglichen Formen: Br = r, ZAHLEN r, SIGi Qr−1 , H Br−1 und Br = Br \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br−1 .In der ersten Form ist PAY r eine (nicht unbedingt maximale) Gehaltsmenge und kann PAY r = \(\emptyset\) sein; und ich bin ein potenzieller Anführer der Runde r. (Allerdings bin ich möglicherweise nicht der Anführer. Dies kann tatsächlich passieren, wenn \(\ell\)r hält seinen Ausweis geheim und gibt sich nicht zu erkennen.) Die zweite Form entsteht, wenn bei der Round-R-Ausführung des BA-Protokolls alle ehrlichen Spieler auftreten Geben Sie den Standardwert aus, der der leere Block Br ist \(\varepsilon\) in unserer Anwendung. (Per Definition das Mögliche Ausgaben eines BA-Protokolls enthalten einen Standardwert, der allgemein mit \(\bot\) bezeichnet wird. Siehe Abschnitt 3.2.) Beachten Sie, dass Br =, obwohl die Gehaltssätze in beiden Fällen leer sind r, \(\emptyset\), SIGi Qr−1 , H Br−1 und Br \(\varepsilon\) sind syntaktisch unterschiedliche Blöcke und treten in zwei verschiedenen Situationen auf: bzw. „alle verlief reibungslos genug bei der Ausführung des BA-Protokolls“, und „etwas ist schief gelaufen BA-Protokoll und der Standardwert wurde ausgegeben“. Beschreiben wir nun intuitiv, wie die Generierung des Blocks Br in Runde r von Algorand ′ abläuft. Im ersten Schritt prüft jeder teilnahmeberechtigte Spieler, also jeder Spieler i \(\in\)PKr−k, ob er ein Potential ist Anführer. Wenn dies der Fall ist, dann wird ich gefragt, unter Verwendung aller Zahlungen, die er bisher gesehen hat, und die aktuell blockchain, B0, . . . , Br−1, um heimlich einen maximalen Zahlungssatz, PAY r, vorzubereiten ich, und zwar heimlich stellt seinen Kandidatenblock zusammen, Br = r, ZAHLEN r Ich, SIGi Qr−1 , H Br−1 . Das heißt, nicht nur er in Br einschließen i als zweite Komponente der soeben vorbereitete Lohnsatz, aber auch als dritte Komponente seine eigene Signatur von Qr−1, der dritten Komponente des letzten Blocks, Br−1. Schließlich propagiert er seine Runde-r-Schritt-1-Nachricht, mr,1 i , zu dem (a) sein Kandidatenblock Br gehört i, (b) seine ordnungsgemäße Unterschrift seines Kandidatenblocks (d. h. seine Unterschrift des hash von Br i und (c) sein eigener Ausweis \(\sigma\)r,1 ich, beweisen dass er tatsächlich ein potenzieller Verifizierer der Runde r ist. (Beachten Sie, dass, bis ein ehrlicher Herr seine Botschaft hervorbringt, 1 Ich, der Widersacher hat keine Ahnung, dass ich ein bin potenzieller Prüfer. Sollte er ehrliche potenzielle Anführer korrumpieren wollen, könnte der Widersacher dies auch tun korrupte zufällige ehrliche Spieler. Sobald er jedoch Herrn 1 sieht i , da es die Anmeldeinformationen von i enthält, die Der Gegner weiß es und könnte i korrumpieren, kann mr,1 aber nicht verhindern i , das viral verbreitet wird, von alle Benutzer im System erreichen.) Im zweiten Schritt versucht jeder ausgewählte Verifizierer j \(\in\)SV r,2, den Anführer der Runde zu identifizieren. Insbesondere nimmt j die Anmeldeinformationen für Schritt 1 an, \(\sigma\)r,1 i1 , . . . , \(\sigma\)r,1 in , enthalten in der richtigen Schritt-1-Nachricht mr,1 ich er hat empfangen; hashes alle, das heißt, berechnet H \(\sigma\)r,1 i1 , . . . , H \(\sigma\)r,1 in ; findet den Ausweis, \(\sigma\)r,1 \(\ell\)j , dessen hash lexikographisch minimal ist; und überlegt \(\ell\)r j soll der Anführer der Runde r sein. Denken Sie daran, dass jeder betrachtete Berechtigungsnachweis eine digitale Signatur von Qr−1, also SIGi, ist r, 1, Qr−1 ist eindeutig durch i und Qr−1 bestimmt, dass H zufällig oracle ist und somit jedes H(SIGi r, 1, Qr−1 ist eine zufällige 256-Bit-lange Zeichenfolge, die für jeden potenziellen Anführer i der Runde r eindeutig ist. Daraus können wir schließen, dass die 256-Bit-Zeichenfolge Qr−1 selbst zufällig und unabhängig wäre ausgewählt, dann wären dies die hashed-Anmeldeinformationen aller potenziellen Anführer der Runde r. Tatsächlich alle Potenzielle Führungskräfte sind genau definiert, ebenso wie ihre Qualifikationen (ob tatsächlich berechnet oder nicht). nicht). Darüber hinaus ist die Menge potenzieller Anführer der Runde r eine zufällige Teilmenge der Benutzer der Runde r −k, und ein ehrlicher potenzieller Anführer, der seine Botschaft immer richtig formuliert und verbreitet, Herr ich, welches den Berechtigungsnachweis von i enthält. Da also der Prozentsatz der ehrlichen Benutzer h ist, egal was böswillige potenzielle Führungskräfte könnten das Mindeste tun (z. B. ihre eigenen Referenzen preisgeben oder verbergen). hashed Die Qualifikation als potenzieller Leiter gehört einem ehrlichen Benutzer, der unbedingt von jedem identifiziert werden kann der Anführer \(\ell\)r der Runde r sein. Wenn dementsprechend die 256-Bit-Zeichenfolge Qr−1 selbst zufällig wäre und unabhängig ausgewählt, mit Wahrscheinlichkeit genau h (a) der Anführer \(\ell\)r ist ehrlich und (b) \(\ell\)j = \(\ell\)r für alle Ehrliche Schritt-2-Prüfer j. In Wirklichkeit werden die hashed-Berechtigungsnachweise zwar zufällig ausgewählt, hängen aber von Qr-1 ab, was der Fall istnicht zufällig und unabhängig ausgewählt. Wir werden in unserer Analyse jedoch beweisen, dass Qr−1 gilt ausreichend nicht manipulierbar, um sicherzustellen, dass der Anführer einer Runde ehrlich mit der Wahrscheinlichkeit ist h′ hinreichend nahe bei h liegt: nämlich h′ > h2(1 + h − h2). Wenn beispielsweise h = 80 %, dann ist h′ > 0,7424. Nachdem sie den Anführer der Runde identifiziert haben (was sie richtig machen, wenn der Anführer ehrlich ist), Die Aufgabe der Schritt-2-Verifizierer besteht darin, mit der Ausführung des BA zu beginnen und dabei als Anfangswerte das zu verwenden, woran sie glauben der Block des Anführers sein. Um den Umfang der erforderlichen Kommunikation zu minimieren, Ein Verifizierer j \(\in\)SV r,2 verwendet nicht als seinen Eingabewert v′ j zum byzantinischen Protokoll, der Block Bj das Er hat tatsächlich von \(\ell\)j empfangen (der Benutzer j glaubt, der Anführer zu sein), aber der der Anführer, aber der hash dieses Blocks, also v′ j = H(Bi). Daher werden nach Beendigung des BA-Protokolls die Verifizierer des letzten Schritts nicht den gewünschten Round-r-Block Br berechnen, sondern berechnen (authentifizieren und propagieren) H(Br). Da H(Br) dementsprechend von ausreichend vielen Verifizierern digital signiert ist Im letzten Schritt des BA-Protokolls werden die Benutzer im System erkennen, dass H(Br) der hash des neuen ist blockieren. Sie müssen jedoch auch die Datei abrufen (oder darauf warten, da die Ausführung ziemlich asynchron ist). Blockieren Sie Br selbst, wodurch das Protokoll sicherstellt, dass es tatsächlich verfügbar ist, unabhängig vom Gegner könnte reichen. Asynchronität und Timing Algorand ′ 1 und Algorand ′ 2 weisen einen erheblichen Grad an Asynchronität auf. Dies liegt daran, dass der Gegner einen großen Spielraum bei der Planung der Zustellung der Nachrichten hat propagiert. Darüber hinaus gibt es eine Obergrenze dafür, ob die Gesamtzahl der Schritte in einer Runde begrenzt ist oder nicht Der Varianzbeitrag ergibt sich aus der Anzahl der tatsächlich unternommenen Schritte. Sobald er die Zertifikate B0 erlernt hat, . . . , Br−1, ein Benutzer i berechnet Qr−1 und beginnt zu arbeiten In Runde r prüft er, ob er ein potenzieller Anführer oder ein Prüfer in einigen Schritten von Runde r ist. Unter der Annahme, dass ich angesichts der besprochenen Asynchronität bei Schritt s handeln muss, verlasse ich mich auf verschiedene Strategien, um sicherzustellen, dass er über ausreichende Informationen verfügt, bevor er handelt. Beispielsweise könnte er warten, bis er mindestens eine bestimmte Anzahl von Nachrichten von den Prüfern von erhält Gehen Sie zum vorherigen Schritt über oder warten Sie ausreichend Zeit, um sicherzustellen, dass er die Nachrichten ausreichend erhält viele Verifizierer des vorherigen Schritts. Der Seed Qr und der Look-Back-Parameter k Denken Sie daran, dass im Idealfall die Größen Qr sein sollten zufällig und unabhängig, obwohl es ausreicht, dass sie ausreichend nicht manipulierbar sind der Gegner. Auf den ersten Blick könnten wir Qr−1 so wählen, dass es mit H übereinstimmt ZAHLEN Sie r−1 , und vermeiden Sie es daher spezifizieren Sie Qr−1 explizit in Br−1. Eine elementare Analyse zeigt jedoch, dass böswillige Benutzer möglicherweise Nutzen Sie diesen Auswahlmechanismus.11 Einige zusätzliche Anstrengungen zeigen, dass unzählige andere 11Wir stehen am Anfang der Runde r −1. Somit ist Qr−2 = PAY r−2 öffentlich bekannt und der Gegner privat weiß, wer die potenziellen Führungskräfte sind, die er kontrolliert. Gehen Sie davon aus, dass der Gegner 10 % der Benutzer kontrolliert dass mit sehr hoher Wahrscheinlichkeit ein böswilliger Benutzer w der potenzielle Anführer der Runde r −1 ist. Das heißt, nehmen Sie das an H SIGw r −2, 1, Qr−2 ist so gering, dass es höchst unwahrscheinlich ist, dass ein ehrlicher potenzieller Anführer dies tatsächlich tun wird Anführer der Runde r −1. (Da wir uns daran erinnern, dass wir potenzielle Anführer über einen geheimen kryptografischen Sortiermechanismus auswählen, Der Widersacher weiß nicht, wer die ehrlichen potenziellen Anführer sind.) Der Widersacher ist daher beneidenswert Position der Wahl des von ihm gewünschten Gehaltssatzes PAY′ und dass dieser zum offiziellen Gehaltssatz der Runde r −1 geworden ist. Allerdings er kann mehr. Er kann auch sicherstellen, dass mit hoher Wahrscheinlichkeit () einer seiner böswilligen Benutzer der Anführer sein wird auch der Runde r, so dass er frei wählen kann, wie hoch PAY r sein soll. (Und so weiter. Zumindest für eine lange Zeit, solange diese Ereignisse mit hoher Wahrscheinlichkeit tatsächlich eintreten.) Um () zu garantieren, verhält sich der Gegner wie folgt. Lass ZAHLEN‘ sei der vom Gegner bevorzugte Auszahlungssatz für Runde r −1. Dann berechnet er H(PAY ′) und prüft, ob für einige Der bereits böswillige Spieler z, SIGz(r, 1, H(PAY ′)) ist besonders klein, also klein genug, um sehr hoch zu sein Wahrscheinlichkeit z wird der Anführer der Runde r sein. Wenn dies der Fall ist, weist er w an, seinen Kandidatenblock auszuwählenAlternativen, die auf traditionellen Blockmengen basieren, können vom Gegner leicht ausgenutzt werden, um sicherzustellen dass böswillige Anführer sehr häufig sind. Vielmehr definieren wir unsere Marke gezielt und induktiv neue Größe Qr, um nachweisen zu können, dass sie vom Gegner nicht manipulierbar ist. Nämlich, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), wenn Br nicht der leere Block ist, andernfalls Qr \(\triangleq\)H(Qr−1, r). Die Intuition, warum diese Konstruktion von Qr funktioniert, ist wie folgt. Nehmen Sie das für einen Moment an Qr−1 wird wirklich zufällig und unabhängig ausgewählt. Wird Qr dann auch so sein? Wenn \(\ell\)r ehrlich ist, dann Die Antwort lautet (grob gesagt) ja. Das liegt daran H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 ist eine Zufallsfunktion. Wenn \(\ell\)r jedoch böswillig ist, ist Qr nicht mehr eindeutig aus Qr−1 definiert und \(\ell\)r. Es gibt mindestens zwei separate Werte für Qr. Man bleibt weiterhin Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), und der andere ist H(Qr−1, r). Lassen Sie uns zunächst argumentieren, dass die zweite Wahl zwar etwas willkürlich ist, eine zweite Wahl ist unbedingt erforderlich. Der Grund dafür ist, dass ein böswilliger Fehler immer verursacht werden kann völlig unterschiedliche Kandidatenblöcke, die von den ehrlichen Prüfern des zweiten Schritts empfangen werden müssen.12 Einmal Ist dies der Fall, lässt sich leicht sicherstellen, dass der Block letztendlich über das BA-Protokoll vereinbart wird Runde r ist die Standardrunde und enthält daher keine digitale Signatur von Qr−1. Aber Das System muss weitermachen und dafür braucht es einen Anführer für Runde r. Wenn dieser Anführer automatisch ist und offen ausgewählt, dann wird ihn der Widersacher trivial korrumpieren. Wenn es vom vorherigen ausgewählt wird Qr−1 über den gleichen Prozess, dann wird \(\ell\)r in Runde r+1 wieder der Anführer sein. Wir schlagen dies ausdrücklich vor Verwenden Sie denselben geheimen kryptografischen Sortiermechanismus, der jedoch auf eine neue Q-Menge angewendet wird: nämlich H(Qr−1, r). Dadurch, dass diese Menge die Ausgabe von H ist, wird garantiert, dass die Ausgabe zufällig ist. und indem r als zweite Eingabe von H einbezogen wird, während alle anderen Verwendungen von H eine oder mehr als drei Eingaben haben, „garantiert“, dass ein solcher Qr unabhängig ausgewählt wird. Auch hier ist unsere spezifische Wahl des alternativen Qr spielt keine Rolle, wichtig ist, dass \(\ell\)r zwei Möglichkeiten für Qr hat und somit seine Chancen verdoppeln kann einen anderen böswilligen Benutzer als nächsten Anführer zu haben. Die Optionen für Qr könnten für den Gegner, der einen böswilligen \(\ell\)r kontrolliert, sogar noch zahlreicher sein. Nehmen wir zum Beispiel an, x, y und z seien drei böswillige potenzielle Anführer der Runde r, so dass H \(\sigma\)r,1 x < H \(\sigma\)r,1 j < H \(\sigma\)r,1 z und H \(\sigma\)r,1 z ist besonders klein. Das heißt, so klein, dass eine gute Chance besteht, dass H \(\sigma\)r,1 z ist kleiner als die hashed-Referenz eines jeden ehrlichen potenziellen Anführers. Dann, indem Sie x bitten, seine zu verstecken Aufgrund seiner Qualifikation hat der Gegner gute Chancen, dass er der Anführer der Runde r −1 wird. Dies impliziert, dass er eine andere Option für Qr hat: nämlich SIGy Qr−1 . Ebenso kann der Gegner Bitten Sie sowohl x als auch y, ihre Anmeldeinformationen zurückzuhalten, damit z der Anführer der Runde r −1 wird und eine weitere Option für Qr zu gewinnen: nämlich SIGz Qr−1 . Natürlich ist die Wahrscheinlichkeit, dass diese und andere Optionen scheitern, ungleich Null, denn die Der Gegner kann den hash der digitalen Signaturen der ehrlichen potenziellen Benutzer nicht vorhersagen. Br−1 ich = (r −1, PAY ′, H(Br−2). Ansonsten hat er zwei weitere böswillige Benutzer x und y, die immer wieder eine neue Zahlung generieren \(\wp\)′, von einem zum anderen, bis für einen böswilligen Benutzer z (oder sogar für einen festen Benutzer z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) ist auch besonders klein. Dieses Experiment wird ziemlich schnell enden. Und wenn das der Fall ist, bittet uns der Gegner, einen Vorschlag zu machen der Kandidatenblock Br−1 ich = (r −1, PAY ′ \(\cup\){\(\wp\)}, H(Br−2). 12Um es beispielsweise einfach (aber extrem) zu halten: „Wenn die Zeit des zweiten Schritts bald abläuft“, könnte \(\ell\)r Senden Sie jedem Benutzer i direkt einen anderen Kandidatenblock Bi per E-Mail. Auf diese Weise können sie, wer auch immer die Schritt-2-Prüfer sein mögen wird völlig unterschiedliche Blöcke erhalten haben.Eine sorgfältige, Markov-Ketten-ähnliche Analyse zeigt dies, egal welche Optionen der Gegner wählt Solange er in Runde r −1 keine neuen Benutzer in das System aufnehmen kann, kann er die nicht verringern Wahrscheinlichkeit, dass ein ehrlicher Benutzer der Anführer der Runde r + 40 ist, liegt deutlich unter h. Dies ist der Grund dafür Wir fordern, dass die potenziellen Anführer der Runde r Benutzer sind, die bereits in Runde r − k existieren. Auf diese Weise kann sichergestellt werden, dass der Gegner in der Runde r − k die Wahrscheinlichkeit nicht wesentlich ändern kann Ein ehrlicher Benutzer wird zum Anführer von Round R. Tatsächlich spielt es keine Rolle, welche Benutzer er dem hinzufügt System in den Runden r −k bis r, sind sie nicht berechtigt, potenzielle Anführer zu werden (und erst recht die Anführer) der Runde r. Somit ist der Lookback-Parameter k letztlich ein Sicherheitsparameter. (Obwohl, Wie wir in Abschnitt 7 sehen werden, kann es sich auch um eine Art „Bequemlichkeitsparameter“ handeln.) Vergängliche Schlüssel Obwohl die Ausführung unseres Protokolls keinen Fork generieren kann, außer mit Mit vernachlässigbarer Wahrscheinlichkeit könnte der Gegner am r-ten Block nach dem legitimen eine Abzweigung erzeugen Block r wurde generiert. Sobald Br generiert wurde, hat der Gegner ungefähr erfahren, wer die Prüfer für jeden Schritt ist der Runde r sind. Somit könnte er sie alle korrumpieren und sie dazu zwingen, einen neuen Block zu zertifizieren f Br. Da dieser gefälschte Block möglicherweise erst nach dem legitimen Block weitergegeben wird, haben Benutzer dies getan Aufmerksamkeit würde sich nicht täuschen lassen.13 Nichtsdestotrotz, f Br wäre syntaktisch korrekt und wir verhindern wollen, dass sie hergestellt werden. Dies tun wir mittels einer neuen Regelung. Im Wesentlichen legen die Mitglieder des Verifizierers SV r,s eines Schritts s fest der Runde r verwenden kurzlebige öffentliche Schlüssel pkr,s ich um ihre Nachrichten digital zu signieren. Diese Schlüssel sind nur für den einmaligen Gebrauch bestimmt und ihre entsprechenden geheimen Schlüssel sind skr,s ich werden nach Gebrauch zerstört. Auf diese Weise, wenn ein Verifizierer vorhanden ist Da er später korrumpiert wird, kann der Gegner ihn nicht zwingen, etwas anderes zu unterzeichnen, als er ursprünglich unterzeichnet hat. Natürlich müssen wir sicherstellen, dass es für den Gegner unmöglich ist, einen neuen Schlüssel g zu berechnen PR,S ich und einen ehrlichen Benutzer davon überzeugen, dass es der richtige ephemere Schlüssel des Verifizierers i \(\in\)SV r,s ist, der in Schritt s verwendet werden soll. 4.2 Allgemeine Zusammenfassung von Notationen, Begriffen und Parametern Notationen • r \(\geq\)0: die aktuelle Rundenzahl. • s \(\geq\)1: die aktuelle Schrittnummer in Runde r. • Br: der in Runde r erzeugte Block. • PKr: die Menge der öffentlichen Schlüssel am Ende der Runde r −1 und am Anfang der Runde r. • Sr: der Systemstatus am Ende der Runde r −1 und am Anfang der Runde r.14 • PAY r: der in Br enthaltene Payset. • \(\ell\)r: Rund-R-Anführer. \(\ell\)r wählt den Payset PAY r der Runde r (und bestimmt den nächsten Qr). • Qr: der Startwert der Runde r, eine Menge (d. h. eine binäre Zeichenfolge), die am Ende der Runde r generiert wird und wird verwendet, um Verifizierer für Runde r + 1 auszuwählen. Qr ist unabhängig von den Gehaltssätzen in den Blöcken und kann nicht von \(\ell\)r manipuliert werden. 13Denken Sie daran, den Nachrichtensprecher eines großen Fernsehsenders zu korrumpieren und heute eine Wochenschau zu produzieren und auszustrahlen zeigt, wie Außenministerin Clinton die letzten Präsidentschaftswahlen gewann. Die meisten von uns würden es als Scherz erkennen. Aber Jemand, der aus dem Koma erwacht, könnte getäuscht werden. 14In einem System, das nicht synchron ist, ist der Begriff „das Ende der Runde r −1“ und „der Anfang der Runde r“ müssen sorgfältig definiert werden. Mathematisch werden PKr und Sr aus dem Ausgangszustand S0 und den Blöcken berechnet B1, . . . , Br−1.• SV r,s: die Menge der Verifizierer, die für die Schritte s der Runde r ausgewählt wurden. • SV r: die Menge der für Runde r gewählten Verifizierer, SV r = \(\cup\)s\(\geq\)1SV r,s. • MSV r,s und HSV r,s: die Menge der böswilligen Verifizierer bzw. die Menge der ehrlichen Verifizierer in SV r,s. MSV r,s \(\cup\)HSV r,s = SV r,s und MSV r,s ∩HSV r,s = \(\emptyset\). • n1 \(\in\)Z+ und n \(\in\)Z+: jeweils die erwartete Anzahl potenzieller Anführer in jedem SV r,1, und die erwartete Anzahl von Verifizierern in jedem SV r,s, für s > 1. Beachten Sie, dass n1 << n, da wir mindestens ein ehrliches ehrliches Mitglied in SV r,1 benötigen, aber zumindest eine Mehrheit ehrlicher Mitglieder in jedem SV r,s für s > 1. • h \(\in\)(0, 1): eine Konstante größer als 2/3. h ist das Ehrlichkeitsverhältnis im System. Das heißt, die Der Bruchteil der ehrlichen Benutzer oder des ehrlichen Geldes, abhängig von der verwendeten Annahme, in jedem PKr zumindest h. • H: eine kryptografische hash-Funktion, modelliert als zufällige oracle. • \(\bot\): Eine spezielle Zeichenfolge mit der gleichen Länge wie die Ausgabe von H. • F \(\in\)(0, 1): der Parameter, der die zulässige Fehlerwahrscheinlichkeit angibt. Eine Wahrscheinlichkeit \(\leq\)F ist als „vernachlässigbar“ und eine Wahrscheinlichkeit \(\geq\)1 −F gilt als „überwältigend“. • ph \(\in\)(0, 1): die Wahrscheinlichkeit, dass der Anführer einer Runde r, \(\ell\)r, ehrlich ist. Idealerweise ist pH = h. Mit Sobald der Gegner existiert, wird der pH-Wert in der Analyse ermittelt. • k \(\in\)Z+: der Lookback-Parameter. Das heißt, in Runde r − k befinden sich die Verifizierer für Runde r ausgewählt aus – nämlich SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): Für den ersten Schritt der Runde r wird ein Benutzer in Runde r −k ausgewählt, der im SV r,1 mit ist Wahrscheinlichkeit p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): Für jeden Schritt s > 1 der Runde r wird ein Benutzer in Runde r −k ausgewählt, der im SV r,s mit ist Wahrscheinlichkeit p \(\triangleq\) n |P Kr−k|. • CERT r: das Zertifikat für Br. Es handelt sich um eine Reihe von Signaturen von H(Br) von geeigneten Prüfern in rund r. • Br \(\triangleq\)(Br, CERT r) ist ein bewährter Block. Ein Benutzer kennt Br, wenn er beide Teile des bewährten Blocks besitzt (und erfolgreich verifiziert). Beachten Sie, dass die von verschiedenen Benutzern angezeigten CERT-Werte unterschiedlich sein können. • τ r i: die (lokale) Zeit, zu der ein Benutzer Br kennt. Im Algorand-Protokoll hat jeder Benutzer sein eigenes eigene Uhr. Die Uhren verschiedener Benutzer müssen nicht synchronisiert sein, sondern müssen die gleiche Geschwindigkeit haben. Lediglich zum Zweck der Analyse betrachten wir eine Referenzuhr und messen die verwandte Zeiten in Bezug darauf. • \(\alpha\)r,s ich und \(\beta\)r,s i: jeweils die (lokale) Zeit, zu der ein Benutzer i seine Ausführung von Schritten beginnt und beendet rund r. • Λ und \(\lambda\): im Wesentlichen die Obergrenzen für die Zeit, die zum Ausführen von Schritt 1 bzw. benötigt wird die Zeit, die für jeden anderen Schritt des Algorand-Protokolls benötigt wird. Der Parameter Λ begrenzt die Zeit, die für die Ausbreitung eines einzelnen 1-MB-Blocks benötigt wird, nach oben. (In unserer Notation, Λ = \(\lambda\) \(\rho\),1MB. Erinnern wir uns an unsere Notation, dass wir der Einfachheit halber \(\rho\) = 1 setzen und dass Blöcke dies sind so gewählt, dass es höchstens 1 MB lang ist, gilt Λ = \(\lambda\)1,1,1 MB.) 15Genau genommen sollte „r −k“ „max{0, r −k}“ sein.Der Parameter \(\lambda\) begrenzt die Zeit zur Verbreitung einer kleinen Nachricht pro Verifizierer in einem Schritt s > 1. (Bei Verwendung von elliptischen Kurvensignaturen mit 32B Schlüsseln, wie in Bitcoin, ist eine Verifizierernachricht 200B lang. Somit ist in unserer Notation \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) Wir gehen davon aus, dass Λ = O(\(\lambda\)). Vorstellungen • Prüferauswahl. Für jede Runde r und Schritt s > 1 gilt SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. Jeder Benutzer i \(\in\)PKr−k berechnet privat seine Signatur unter Verwendung seines Langzeitschlüssels und entscheidet, ob i \(\in\)SV r,s oder nicht. Wenn i \(\in\)SV r,s, dann ist SIGi(r, s, Qr−1) der (r, s)-Berechtigungsnachweis von i, kompakt bezeichnet von \(\sigma\)r,s ich . Für den ersten Schritt der Runde r, SV r,1 und \(\sigma\)r,1 ich sind ähnlich definiert, wobei p durch p1 ersetzt wird. Die Verifizierer in SV r,1 sind potenzielle Führungskräfte. • Auswahl des Leiters. Benutzer i \(\in\)SV r,1 ist der Anführer der Runde r, bezeichnet mit \(\ell\)r, wenn H(\(\sigma\)r,1 i ) \(\leq\)H(\(\sigma\)r,1 j ) für alle Potentiale Leiter j \(\in\)SV r,1. Immer wenn die hashes der Referenzen zweier Spieler verglichen werden, ist das unwahrscheinlich Im Falle von Bindungen bricht das Protokoll Bindungen immer lexikographisch entsprechend der (langfristigen Öffentlichkeit) auf Schlüssel der potenziellen Führungskräfte. Per Definition ist der hash-Wert der Anmeldeinformationen des Spielers auch der kleinste unter allen Benutzern in PKr−k. Beachten Sie, dass ein potenzieller Anführer nicht privat entscheiden kann, ob er der Anführer ist oder nicht. ohne die Referenzen der anderen potenziellen Führungskräfte zu sehen. Da die hash-Werte zufällig einheitlich sind, existiert und ist \(\ell\)r immer, wenn SV r,1 nicht leer ist ehrlich mit Wahrscheinlichkeit mindestens h. Der Parameter n1 ist groß genug, um sicherzustellen, dass jeder SV r,1 ist mit überwältigender Wahrscheinlichkeit nicht leer. • Blockstruktur. Ein nicht leerer Block hat die Form Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) und ist ein leerer Block hat die Form Br ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)). Beachten Sie, dass ein nicht leerer Block immer noch einen leeren Payset PAY r enthalten kann, wenn keine Zahlung erfolgt in dieser Runde oder wenn der Anführer böswillig ist. Ein nicht leerer Block impliziert jedoch, dass die Identität von \(\ell\)r, sein Ausweis \(\sigma\)r,1 \(\ell\)r und SIG\(\ell\)r(Qr−1) wurden alle rechtzeitig enthüllt. Das Protokoll garantiert Wenn der Anführer ehrlich ist, wird der Block mit überwältigender Wahrscheinlichkeit nicht leer sein. • Seed Qr. Wenn Br nicht leer ist, dann ist Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), andernfalls ist Qr \(\triangleq\)H(Qr−1, r). Parameter • Beziehungen zwischen verschiedenen Parametern. — Die Verifizierer und potenziellen Leiter der Runde r werden aus den Benutzern in PKr−k ausgewählt, wobei k so gewählt ist, dass der Gegner Qr−1 nicht in der Runde r −k −1 vorhersagen kann mit einer Wahrscheinlichkeit besser als F: Andernfalls kann er böswillige Benutzer einführen für Runde r − k, die alle potenzielle Anführer/Verifizierer in Runde r sein werden und erfolgreich sind
Einen böswilligen Anführer oder eine böswillige Mehrheit in SV r,s für einige Schritte zu haben, ist erwünscht von ihn. — Für Schritt 1 jeder Runde r wird n1 so gewählt, dass mit überwältigender Wahrscheinlichkeit SV r,1 ̸= \(\emptyset\). • Beispielhafte Auswahl wichtiger Parameter. — Die Ausgänge von H sind 256 Bit lang. — h = 80 %, n1 = 35. — Λ = 1 Minute und \(\lambda\) = 10 Sekunden. • Initialisierung des Protokolls. Das Protokoll beginnt zum Zeitpunkt 0 mit r = 0. Da es weder „B−1“ noch „CERT −1“ gibt, Syntaktisch ist B−1 ein öffentlicher Parameter, dessen dritte Komponente Q−1 und alle Benutzer angibt kenne B−1 zum Zeitpunkt 0.
Algorand'nin İki Düzenlemesi
Tartışıldığı gibi, çok yüksek bir düzeyde, Algorand turu ideal olarak aşağıdaki şekilde ilerler. İlk olarak rastgele bir seçilen kullanıcı, yani lider, yeni bir blok önerir ve dağıtır. (Bu süreç başlangıçta şunları içerir: Birkaç potansiyel liderin seçilmesi ve ardından en azından zamanın önemli bir bölümünde, tek bir ortak lider ortaya çıkar.) İkinci olarak, rastgele seçilmiş bir kullanıcı komitesi seçilir ve Liderin önerdiği blok üzerinde Bizans anlaşmasına varır. (Bu süreç şunları içerir: BA protokolünün her adımı ayrı olarak seçilen bir komite tarafından yürütülür.) Üzerinde anlaşmaya varılan blok daha sonra komite üyelerinin belirli bir eşiği (TH) tarafından dijital olarak imzalanır. Bu dijital imzalar Herkesin hangisinin yeni blok olduğundan emin olması için dağıtılır. (Buna, imzalayanların kimlik bilgileri ve yeni bloğun yalnızca hash kimlik doğrulaması yapılarak herkesin hash açıklandıktan sonra bloğu öğrenmesi garanti edilir.) Sonraki iki bölümde Algorand, Algorand ′'nin iki uygulamasını sunuyoruz. 1 ve Algorand ′ 2, dürüst kullanıcıların çoğunluğunun varsayımı altında çalışır. Bölüm 8'de bunların nasıl benimseneceğini gösteriyoruz Paranın dürüst çoğunluğu varsayımı altında çalışacak düzenlemeler. Algorand ′ 1 sadece komite üyelerinin > 2/3'ünün dürüst olduğunu öngörmektedir. Ayrıca, Algorand ′ Şekil 1'de, Bizans anlaşmasına varmak için atılacak adımların sayısı yeterince yüksek olacak şekilde sınırlandırılmıştır. Böylece çok büyük bir olasılıkla anlaşmaya varılması garanti altına alınır. sabit sayıda adım (ancak potansiyel olarak Algorand ′ adımlarından daha uzun süre gerektirir) 2). içinde Henüz son adımda anlaşmaya varılamayan uzak bir durumda, komite aşağıdaki hususlarda mutabakata varır: her zaman geçerli olan boş blok. Algorand ′ 2, bir komitedeki dürüst üyelerin sayısının her zaman daha fazla olduğunu öngörmektedir. veya sabit bir tH eşiğine eşit (bu, çok büyük bir olasılıkla, en azından bunu garanti eder) Komite üyelerinin 2/3'ü dürüsttür). Ayrıca Algorand ′ 2 Bizans anlaşmasına izin verir isteğe bağlı sayıda adımda ulaşılabilir (ancak potansiyel olarak Algorand 'den daha kısa bir sürede). 1). Bu temel düzenlemelerin birçok varyantını türetmek kolaydır. Özellikle kolay olduğu göz önüne alındığında Algorand ′ 2, Algorand değiştirmek için 1 keyfi bir şekilde Bizans anlaşmasına varılmasını sağlamak için adım sayısı. Her iki düzenleme de aşağıdaki ortak çekirdeği, notasyonları, kavramları ve parametreleri paylaşır. 4.1 Ortak Bir Çekirdek Hedefler İdeal olarak, her r turu için Algorand aşağıdaki özellikleri karşılayacaktır: 1. Mükemmel Doğruluk. Tüm dürüst kullanıcılar aynı blokta hemfikirdir Br. 2. Tamlık 1. Olasılık 1 ile Br'nin getirisi, PAY r, maksimumdur.10 10Ödeme kümeleri geçerli ödemeleri içerecek şekilde tanımlandığından ve dürüst kullanıcılar yalnızca geçerli ödemeler yapabileceğinden, maksimum PAY r, tüm dürüst kullanıcıların "şu anda ödenmemiş" ödemelerini içerir.Elbette tek başına mükemmel doğruluğu garanti etmek önemsizdir: Herkes her zaman resmi olanı seçer. ödeme seti PAY r boş olmalıdır. Ancak bu durumda sistemin tamlığı 0 olacaktır. Ne yazık ki, hem mükemmel doğruluğu hem de tamlığı garanti etmek 1 kötü niyetli kişilerin varlığında kolay değildir kullanıcılar. Algorand böylece daha gerçekçi bir hedefi benimsiyor. Gayri resmi olarak, h'nin yüzdeyi belirtmesine izin vermek dürüst kullanıcıların oranı, h > 2/3, Algorand hedefi Çok büyük olasılıkla h'ye yakın mükemmel doğruluk ve tamlık garanti edilir. Doğruluğa eksiksizliğe öncelik vermek makul bir seçim gibi görünüyor: ödemeler zamanında işleme koyulmuyor bir tur bir sonraki turda işlenebilir ancak mümkünse çatallardan kaçınılmalıdır. Liderlik Bizans Anlaşması Mükemmel Doğruluk aşağıdaki şekilde garanti edilebilir. Başlangıçta r turunda her i kullanıcısı kendi Br aday bloğunu oluşturur i ve ardından tüm kullanıcılar Bizans'a ulaşır bir aday blok üzerinde anlaşmaya varılması. Girişimize göre, kullanılan BA protokolü şunları gerektirir: 2/3 dürüst çoğunluk ve oyuncu tarafından değiştirilebilir. Adımlarının her biri küçük ve Herhangi bir iç değişkeni paylaşmayan, rastgele seçilmiş doğrulayıcılar kümesi. Ne yazık ki bu yaklaşımın tamlık garantisi yoktur. Bu böyle çünkü aday Dürüst kullanıcıların blokları büyük olasılıkla birbirinden tamamen farklıdır. Böylece, sonuçta üzerinde anlaşmaya varılan blok her zaman maksimum olmayan bir ödeme setine sahip olabilir. Aslında her zaman olabilir boş blok, B\(\varepsilon\), yani ödeme seti boş olan blok. varsayılan, boş olanı olalım. Algorand ′ bu tamlık sorununu aşağıdaki şekilde önler. İlk olarak r turu için bir lider, \(\ell\)r seçilir. Daha sonra \(\ell\)r kendi aday bloğunu yayar, Br \(\ell\)r. Sonunda kullanıcılar blok üzerinde anlaşmaya varır aslında \(\ell\)r'den alıyorlar. Çünkü ne zaman dürüst olursam, Kusursuz Doğruluk ve Tamlık 1 her ikisi de geçerlidir, Algorand ′, \(\ell\)r'nin h'ye yakın olasılıkla dürüst olmasını sağlar. (Lider olduğunda kötü niyetliyse, üzerinde anlaşmaya varılan bloğun boş bir ödeme seti olup olmadığı umurumuzda değil. Sonuçta, bir Kötü niyetli lider \(\ell\)r her zaman kötü niyetli olarak Br'yi seçebilir Boş blok olmak ve sonra dürüst olmak gerekirse bunu yayar, böylece dürüst kullanıcıları boş blok üzerinde anlaşmaya zorlar.) Lider Seçimi Algorand'lerde r'inci blok Br = (r, PAY r, Qr, H(Br−1) formundadır. Giriş bölümünde daha önce de belirtildiği gibi, Qr−1 miktarı dikkatli bir şekilde aslında çok güçlü Düşmanımız tarafından manipüle edilemez. (Bu bölümün ilerleyen kısımlarında durumun neden böyle olduğuna dair bir miktar sezgi sağlar.) Bir r turunun başlangıcında, tüm kullanıcılar blockchain şu ana kadar, B0, . . . , Br−1, bundan önceki her turun kullanıcı kümesini çıkarırlar: PK1, . . . , PKr−1. Round r'nin potansiyel lideri bir i kullanıcısıdır, öyle ki .H SIGI r, 1, Qr−1 \(\leq\)p . Açıklayalım. Qr−1 miktarı Br−1 bloğunun bir parçası olduğundan ve temeldeki imza şeması benzersizlik özelliği olan SIGi'yi karşılar r, 1, Qr−1 benzersiz bir ikili dizedir i ve r ile ilişkili. Dolayısıyla H rastgele bir oracle olduğundan, H SIGI r, 1, Qr−1 rastgele bir 256 bittir i ve r ile benzersiz şekilde ilişkilendirilen uzun dize. “.” sembolü. H'nin önünde SIGI r, 1, Qr−1 bu ondalık (bizim durumumuzda ikili) nokta, böylece ri \(\triangleq\).H SIGI r, 1, Qr−1 a'nın ikili açılımıdır i ve r ile benzersiz şekilde ilişkilendirilen, 0 ile 1 arasındaki rastgele 256 bitlik sayı. Böylece olasılık ri, p'den küçük veya ona eşittir, esasen p'dir. (Potansiyel lider seçim mekanizmamız Micali ve Rivest'in mikro ödeme planından esinlenilmiştir [28].) p olasılığı, ezici (yani 1 −F) olasılıkla en az bir tane olacak şekilde seçilir. Potansiyel doğrulayıcı dürüsttür. (Gerçekte p, bu tür en küçük olasılık olarak seçilir.)Kendi imzalarını hesaplayabilen tek kişi i olduğundan, yalnızca kendisinin imzasını hesaplayabileceğini unutmayın. 1. turun potansiyel doğrulayıcısı olup olmadığına karar verin. Ancak kendi kimlik bilgilerini açıklayarak, \(\sigma\)r ben \(\triangleq\)SIGi r, 1, Qr−1 , r'nin potansiyel doğrulayıcısı olduğumu herkese kanıtlayabilirim. Lider \(\ell\)r, hashed kimlik bilgisi şundan daha küçük olan potansiyel lider olarak tanımlanır: hashed diğer tüm potansiyel lider j'nin kimlik bilgileri: yani H(\(\sigma\)r,s) \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j) Kötü niyetli bir \(\ell\)r kimliğini açıklamayabileceğinden, r turunun doğru liderinin ifşa edemeyeceğini unutmayın. hiçbir zaman bilinemez ve bu, olası olmayan bağlar dışında, \(\ell\)r gerçekten de r turunun tek lideridir. Son olarak önemli bir detaya değinelim: Bir kullanıcı potansiyel bir lider olabilir (ve dolayısıyla bir r turunun lideri) yalnızca en az k tur boyunca sisteme ait olması durumunda. Bu garanti eder Qr'nin ve gelecekteki tüm Q miktarlarının değiştirilemezliği. Aslında potansiyel liderlerden biri aslında Qr'yi belirleyecektir. Doğrulayıcı Seçimi r turundaki her adım s > 1, küçük bir doğrulayıcılar seti (SV r,s) tarafından gerçekleştirilir. Yine, her bir doğrulayıcı i \(\in\)SV r,s, sistemde halihazırda k turda bulunan kullanıcılar arasından rastgele seçilir. r'den önce ve yine Qr−1 özel miktarı aracılığıyla. Özellikle, i \(\in\)PKr−k, SV r,s'de bir doğrulayıcıdır, eğer .H SIGI r, s, Qr−1 \(\leq\)p' . Bir kez daha onun SV r,s'ye ait olup olmadığını yalnızca ben biliyorum, ancak durum buysa bunu şu şekilde kanıtlayabilir: kimlik bilgilerini sergiliyor \(\sigma\)r,s ben \(\triangleq\)H(SIGi r, s, Qr−1 ). Doğrulayıcı i \(\in\)SV r,s bir mesaj gönderir, mr,s ben, içinde r turunun s adımıdır ve bu mesaj onun \(\sigma\)r,s kimlik bilgilerini içerir i, doğrulayıcıların Bay'ı tanımak için yuva adımı ben meşru bir adım mesajıdır. p' olasılığı, SV r,s'de #iyi'nin sayısı olmasını sağlayacak şekilde seçilir. dürüst kullanıcılar ve #bad kötü niyetli kullanıcıların sayısı, büyük olasılıkla aşağıdakiler iki koşul geçerlidir. Düzenleme için Algorand ′ 1: (1) #iyi > 2 \(\cdot\) #kötü ve (2) #iyi + 4 \(\cdot\) #kötü < 2n, burada n, SV r,s'nin beklenen önemliliğidir. Düzenleme için Algorand ′ 2: (1) #iyi > tH ve (2) #iyi + 2#kötü < 2tH, burada tH belirli bir eşiktir. Bu koşullar, yeterince yüksek olasılıkla, (a) BA'nın son adımında protokole göre, yeni Br bloğunu dijital olarak imzalayacak en az belirli sayıda dürüst oyuncu olacak, (b) tur başına yalnızca bir blok gerekli sayıda imzaya sahip olabilir ve (c) kullanılan BA protokol (her adımda) gerekli 2/3 dürüst çoğunluğa sahiptir. Blok Oluşturmanın Netleştirilmesi Yuvarlak r lideri \(\ell\)r dürüstse, karşılık gelen blok formdadır Br = r, PAY r, SIG\(\ell\)r Qr−1 , H Br−1 , ödeme kümesi PAY r'nin maksimum olduğu yer. (tüm ödeme setlerinin tanım gereği kolektif olarak geçerli olduğunu unutmayın.) Aksi halde (yani \(\ell\)r kötü niyetliyse), Br aşağıdaki iki olası biçimden birine sahiptir: Br = r, ÖDEME r, SIGI Qr−1 , H Br−1 ve Br = Br \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br−1 .İlk biçimde, PAY r (zorunlu olarak maksimum olmayan) bir ödeme kümesidir ve PAY r = \(\emptyset\) olabilir; ve ben r. turun potansiyel lideri. (Ancak lider olamayabilirim. Eğer Kimlik bilgilerini gizli tutar ve kendisini açıklamaz.) İkinci biçim, BA protokolünün tekrar tekrar uygulanması sırasında tüm dürüst oyuncuların boş Br bloğu olan varsayılan değeri çıktılayın Uygulamamızda \(\varepsilon\). (Tanım gereği olası BA protokolünün çıktıları genel olarak \(\bot\) ile gösterilen varsayılan bir değer içerir. Bkz. bölüm 3.2.) Her iki durumda da ödeme kümeleri boş olmasına rağmen, Br = r, \(\emptyset\), SIGI Qr−1 , H Br−1 ve Br \(\varepsilon\) sözdizimsel olarak farklı bloklardır ve iki farklı durumda ortaya çıkarlar: sırasıyla, “tüm BA protokolünün yürütülmesi yeterince sorunsuz geçti” ve “bir şeyler ters gitti BA protokolü ve varsayılan değer çıktıydı”. Şimdi Br bloğunun oluşturulmasının Algorand ′ turunda r'de nasıl ilerlediğini sezgisel olarak açıklayalım. İlk adımda, her uygun oyuncu, yani her i \(\in\)PKr−k oyuncusu potansiyel olup olmadığını kontrol eder. lider. Eğer durum böyleyse, şimdiye kadar gördüğü tüm ödemeleri kullanarak bana soruluyor ve mevcut blockchain, B0, . . . , Br−1, gizlice maksimum bir ödeme seti hazırlamak için, PAY r ben ve gizlice aday bloğunu bir araya getirir, Br = r, ÖDEME r ben, SIGI Qr−1 , H Br−1 . Yani sadece o değil Br'ye dahil et i , ikinci bileşeni olarak yeni hazırlanmış ödeme seti, aynı zamanda üçüncü bileşeni olarak, son bloğun üçüncü bileşeni olan Br−1 olan Qr−1'in kendi imzası. Sonunda propagandasını yapıyor round-r-step-1 mesajı, bay,1 i , (a) aday bloğu Br'yi içerir i, (b) onun uygun imzası aday bloğunun (yani Br'nin hash imzası) i ve (c) kendi kimlik bilgisi \(\sigma\)r,1 ben kanıtlıyorum kendisinin gerçekten r turunun potansiyel doğrulayıcısı olduğunu. (Dürüst bir i mesajını verene kadar şunu unutmayın bayım,1 ben, Düşmanın benim bir kişi olduğuma dair hiçbir fikri yok potansiyel doğrulayıcı Eğer dürüst potansiyel liderleri yozlaştırmak istiyorsa, Düşman da bunu yapabilir. yozlaşmış rastgele dürüst oyuncular. Ancak Bay'ı gördüğünde, 1 i, i'nin kimlik bilgilerini içerdiğinden, Düşman biliyor ve i'yi bozabilir ama bay'ı engelleyemez1 i viral olarak yayılan, sistemdeki tüm kullanıcılara ulaşmaktadır.) İkinci adımda, seçilen her j \(\in\)SV r,2 doğrulayıcısı turun liderini belirlemeye çalışır. Spesifik olarak, j, 1. adım kimlik bilgilerini alır, \(\sigma\)r,1 i1 , . . . , \(\sigma\)r,1 içinde, uygun adım-1 mesajında bulunur mr,1 ben o aldı; hashhepsi var, yani H'yi hesaplıyor \(\sigma\)r,1 i1 , . . . , H \(\sigma\)r,1 içinde ; kimlik belgesini bulur, \(\sigma\)r,1 \(\ell\)j , hash sözlükbilimsel olarak minimumdur; ve \(\ell\)r'yi düşünüyor j, r turunun lideri olacak. Dikkate alınan her kimlik bilgisinin Qr−1'in dijital imzası olduğunu, SIGi'nin r, 1, Qr−1 öyle i ve Qr−1 tarafından benzersiz bir şekilde belirlenir, H rastgele oracle'dir ve dolayısıyla her H(SIGi) r, 1, Qr−1 r turunun her potansiyel lideri i'ye özgü, rastgele 256 bit uzunluğunda bir dizedir. Bundan şu sonuca varabiliriz: Eğer 256-bitlik Qr-1 dizisinin kendisi rastgele ve bağımsız olsaydı seçilirse, r. turun tüm potansiyel liderlerinin hashed kimlik bilgileri olacaktır. Aslında hepsi Potansiyel liderler iyi tanımlanmıştır ve kimlik bilgileri de (gerçekte hesaplanmış veya hesaplanmış olsun) değil). Ayrıca, r turunun potansiyel liderleri kümesi, tur kullanıcılarının rastgele bir alt kümesidir. r −k ve dürüst bir potansiyel lider i her zaman mesajını uygun şekilde oluşturur ve yayar bay ben, i'nin kimlik bilgilerini içeren. Dolayısıyla dürüst kullanıcıların yüzdesi h olduğundan, durum ne olursa olsun Kötü niyetli potansiyel liderlerin yapabileceği (örneğin, kendi kimlik bilgilerini açığa vurmak veya gizlemek) asgari hashed potansiyel lider kimlik bilgisi, mutlaka herkes tarafından tanımlanan dürüst bir kullanıcıya aittir raundun lideri olmak. Buna göre, eğer 256-bitlik Qr-1 dizisinin kendisi rastgele olsaydı ve bağımsız olarak seçilir, tam olarak h olasılıkla (a) lider \(\ell\)r dürüsttür ve (b) \(\ell\)j = \(\ell\)r herkes için dürüst adım-2 doğrulayıcıları j. Gerçekte, hashed kimlik bilgileri evet rastgele seçilir, ancak Qr−1'e bağlıdır;rastgele ve bağımsız olarak seçilmemiştir. Ancak analizimizde Qr−1'in olduğunu kanıtlayacağız. Bir turun liderinin olasılıklar konusunda dürüst olmasını garanti edecek kadar manipüle edilemez h' h'ye yeterince yakın: yani h' > h2(1 + h −h2). Örneğin, eğer h = %80 ise h' > 0,7424 olur. Turun liderini belirledikten sonra (ki bunu lider dürüst olduğunda doğru şekilde yaparlar), 2. adımdaki doğrulayıcıların görevi, inandıklarını başlangıç değerleri olarak kullanarak BA'yı yürütmeye başlamaktır. liderin bloğu olmak. Aslında gerekli iletişim miktarını en aza indirmek için, j \(\in\)SV r,2 doğrulayıcısı giriş değeri olarak v′ kullanmaz j Bizans protokolüne göre Bj bloğu aslında \(\ell\)j'den (j kullanıcısı lider olduğuna inanıyor) bilgi aldı, ancak lider, ancak o bloğun hash'si, yani v′ j = H(Bi). Dolayısıyla, BA protokolünün sona ermesi üzerine, doğrulayıcılar Son adımın istenen yuvarlak r bloğu Br'yi hesaplamayın, ancak hesaplayın (kimlik doğrulama ve yayılır) H(Br). Buna göre, H(Br) yeterince çok sayıda doğrulayıcı tarafından dijital olarak imzalandığından, BA protokolünün son adımında, sistemdeki kullanıcılar H(Br)'nin yeni protokolün hash'si olduğunu anlayacaklardır. Blok. Bununla birlikte, aynı zamanda, yürütme oldukça eşzamansız olduğu için, aynı zamanda almaları (veya beklemeleri) gerekir. Düşman ne olursa olsun, protokolün gerçekten kullanılabilir olmasını sağlayan Br'nin kendisini bloke edin yapabilir. Asenkronizasyon ve Zamanlama Algorand ′ 1 ve Algorand ′ 2 önemli derecede eşzamansızlığa sahiptir. Bunun nedeni, Düşmanın iletilen mesajların teslimini planlama konusunda geniş bir serbestliğe sahip olmasıdır. yayıldı. Ayrıca bir turdaki toplam adım sayısı sınırlı olsun ya da olmasın, varyans, gerçekte atılan adımların sayısına göre katkıda bulunur. B0 sertifikalarını öğrenir öğrenmez, . . . , Br−1, bir i kullanıcısı Qr−1'i hesaplar ve çalışmaya başlar r turunda, kendisinin potansiyel bir lider mi, yoksa r turunun bazı adımlarında doğrulayıcı mı olduğunu kontrol ediyor. Tartışılan eşzamansızlık ışığında, adım s'de hareket etmem gerektiğini varsayarsak, çeşitli yöntemlere güveniyorum. harekete geçmeden önce yeterli bilgiye sahip olmasını sağlayacak stratejiler. Örneğin, doğrulayıcılardan en azından belli sayıda mesaj almayı bekleyebilir. önceki adıma geçin veya mesajları yeterince aldığından emin olmak için yeterli süre bekleyin. önceki adımın birçok doğrulayıcısı. Çekirdek Qr ve Geriye Dönme Parametresi k İdeal olarak Qr miktarlarının olması gerektiğini hatırlayın. rastgele ve bağımsız olmasına rağmen, bunların başkaları tarafından yeterince değiştirilemez olması yeterli olacaktır. Düşman. İlk bakışta Qr−1'in H ile çakışmasını seçebiliriz ÖDEME r−1 ve böylece kaçınmak Br−1'de Qr−1'i açıkça belirtin. Ancak temel bir analiz, kötü niyetli kullanıcıların bu seçim mekanizmasından yararlanın.11 Bazı ek çabalar, sayısız başka seçeneğin olduğunu gösteriyor. 11r −1 turunun başındayız. Böylece, Qr−2 = PAY r−2 herkesçe bilinir ve Düşman özel olarak bilinir. kontrol ettiği potansiyel liderlerin kimler olduğunu biliyor. Düşmanın kullanıcıların %10'unu kontrol ettiğini varsayalım ve çok yüksek olasılıkla, kötü niyetli bir kullanıcı w, r -1 turunun potansiyel lideridir. Yani şunu varsayalım H SIGw r −2, 1, Qr−2 o kadar küçüktür ki, dürüst bir potansiyel liderin gerçekten de lider olması pek olası değildir. raundun lideri r −1. (Potansiyel liderleri gizli bir kriptografik sınıflandırma mekanizması yoluyla seçtiğimizi hatırlayın, Düşman, dürüst potansiyel liderlerin kim olduğunu bilmiyor.) Bu nedenle, Düşman kıskanılacak durumda. İstediği PAY' ödeme kümesini seçme konumu ve bunun r −1 turunun resmi ödeme kümesi olmasını sağlayın. Ancak, daha fazlasını yapabilir. Ayrıca, yüksek olasılıkla, kötü niyetli kullanıcılarından birinin () lider olmasını da sağlayabilir. ayrıca r turundadır, böylece PAY r'nin ne olacağını serbestçe seçebilir. (Vesaire. En azından uzun bir süre için, yani, bu yüksek olasılıklı olaylar gerçekten meydana geldiği sürece.) () garantisi vermek için, Düşman aşağıdaki şekilde hareket eder. ÖDEYELİM' Rakibin r −1 turu için tercih ettiği ödeme seti olsun. Daha sonra H(PAY′)'ı hesaplar ve bazı ödemeler için olup olmadığını kontrol eder. zaten kötü niyetli oyuncu z, SIGz(r, 1, H(PAY′)) özellikle küçüktür, yani çok yüksek bir değere sahip olacak kadar küçüktür. z olasılığı r turunun lideri olacaktır. Eğer durum buysa, w'ye aday bloğunu seçmesi talimatını verir.Geleneksel blok miktarlarına dayalı alternatifler, Rakip tarafından kolaylıkla kullanılabilir. kötü niyetli liderlerin çok sık olduğu. Bunun yerine markamızı özel ve tümevarımsal olarak tanımlarız Düşman tarafından manipüle edilemeyeceğini kanıtlayabilmek için yeni Qr miktarı. Yani, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), eğer Br boş blok değilse, aksi halde Qr \(\triangleq\)H(Qr−1, r). Qr'un bu yapısının neden işe yaradığına dair sezgi şu şekildedir. Bir an için şunu varsayalım Qr−1 gerçekten rastgele ve bağımsız olarak seçilir. O zaman Qr da öyle olacak mı? Dürüst olduğunda Cevap (kabaca konuşursak) evet. Bu böyle çünkü H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 rastgele bir fonksiyondur. Ancak \(\ell\)r kötü niyetli olduğunda, Qr artık Qr−1'den tek anlamlı olarak tanımlanmıyor ve \(\ell\)r. Qr için en az iki ayrı değer vardır. Bir, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r) olmaya devam ediyor, diğeri ise H(Qr−1, r). Öncelikle ikinci tercihin biraz keyfi olmasına rağmen şunu iddia edelim: ikinci bir seçim kesinlikle zorunludur. Bunun nedeni kötü niyetli bir kişinin her zaman sebep olabilmesidir. ikinci adımdaki dürüst doğrulayıcıların alacağı tamamen farklı aday blokları.12 bu durumda, bloğun nihai olarak BA protokolü aracılığıyla kararlaştırılmasını sağlamak kolaydır. yuvarlak r varsayılan olacak ve bu nedenle kimsenin Qr−1 dijital imzasını içermeyecektir. Ama sistemin devam etmesi gerekiyor ve bunun için r. turda bir lidere ihtiyacı var. Bu lider otomatik olarak ve açıkça seçilmişse, o zaman Düşman onu önemsiz bir şekilde yozlaştıracaktır. Önceki tarafından seçilmişse Aynı süreçle Qr−1, r+1 turunda \(\ell\)r'den yine lider olacak. Özellikle şunu öneriyoruz: aynı gizli kriptografik sıralama mekanizmasını kullanır, ancak yeni bir Q miktarına uygulanır: yani, H(Qr−1, r). Bu miktarın H'nin çıktısı olması, çıktının rastgele olmasını garanti eder, ve H'nin ikinci girişi olarak r'yi dahil ederek, H'nin diğer tüm kullanımlarında bir veya 3+ giriş bulunurken, Böyle bir Qr'nin bağımsız olarak seçildiğini "garanti eder". Yine özel alternatif Qr tercihimiz önemli değil, önemli olan şu ki \(\ell\)r'nin Qr için iki seçeneği var ve böylece şansını ikiye katlayabilir bir sonraki lider olarak başka bir kötü niyetli kullanıcıya sahip olmak. Kötü niyetli bir \(\ell\)r'yi kontrol eden Düşman için Qr seçenekleri daha da fazla olabilir. Örneğin x, y ve z, r turunun üç kötü niyetli potansiyel lideri olsun, öyle ki H \(\sigma\)r,1 x < Y \(\sigma\)r,1 sen < Y \(\sigma\)r,1 z ve H \(\sigma\)r,1 z özellikle küçüktür. Yani o kadar küçüktür ki H'nin olma ihtimali yüksektir. \(\sigma\)r,1 z öyle her dürüst potansiyel liderin hashed kimlik bilgisinden daha küçüğü. Daha sonra x'ten kimliğini saklamasını isteyerek Yeterlilik belgesine göre, Rakibin r-1 turunda y'yi lider yapma şansı yüksektir. Bu Qr için başka bir seçeneğe sahip olduğunu ima ediyor: SIGy Qr−1 . Benzer şekilde, Düşman da z'nin r −1 turunun lideri olması için hem x hem de y'den kimlik bilgilerini saklamalarını isteyin ve Qr için başka bir seçenek kazanıyor: SIGz Qr−1 . Ancak elbette bu ve diğer seçeneklerin her birinin başarısız olma şansı sıfır değildir, çünkü Rakip, dürüst potansiyel kullanıcıların dijital imzalarının hash değerini tahmin edemez. Br−1 ben = (r −1, PAY ′, H(Br−2). Aksi halde, yeni bir ödeme oluşturmaya devam edecek iki kötü niyetli x ve y kullanıcısı daha var \(\wp\)′, birinden diğerine, ta ki bazı kötü niyetli kullanıcılar için z (ya da hatta bazı sabit kullanıcılar için z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) olana kadar özellikle de küçük. Bu deney oldukça hızlı bir şekilde sona erecek. Ve bunu yaptığında, Düşman w'den evlenme teklif etmesini ister aday blok Br−1 ben = (r −1, ÖDEME ′ \(\cup\){\(\wp\)}, H(Br−2). 12Örneğin, basit (ancak aşırı) tutmak gerekirse, “ikinci adımın süresi dolmak üzereyken”, \(\ell\)r her kullanıcıya farklı bir aday blok Bi'yi doğrudan e-posta ile gönderin i. Bu şekilde, 2. adım doğrulayıcıları kim olursa olsun, tamamen farklı bloklar almış olacak.Dikkatli, Markov zinciri benzeri bir analiz şunu gösteriyor: Düşman hangi seçeneği seçerse seçsin r −1 turunda yapmak için sisteme yeni kullanıcılar enjekte edemediği sürece, kullanıcı sayısını azaltamaz dürüst bir kullanıcının r + 40 turunda lider olma olasılığı h'nin çok altındadır. Bunun nedeni bu r turunun potansiyel liderlerinin r −k turunda zaten mevcut olan kullanıcılar olmasını talep ediyoruz. Bu, r −k turunda Rakibin şu olasılığı çok fazla değiştirememesini sağlamanın bir yoludur: dürüst bir kullanıcı raundun lideri olur. Aslında, hangi kullanıcıları eklerse eklesin r –k’den r’ye kadar olan turlarda potansiyel lider olmaya uygun değillerdir (ve daha da önemlisi r. turun lideri). Dolayısıyla geriye dönük parametre k sonuçta bir güvenlik parametresidir. (Her ne kadar 7. bölümde göreceğimiz gibi aynı zamanda bir nevi “uygunluk parametresi” de olabilir.) Geçici Anahtarlar Her ne kadar protokolümüzün yürütülmesi bir çatal oluşturamasa da, ihmal edilebilir bir olasılıkla, Rakip meşru bloktan sonra r'inci blokta bir çatal oluşturabilir r bloğu oluşturuldu. Kabaca, Br oluşturulduktan sonra Düşman her adımın doğrulayıcılarının kim olduğunu öğrenmiştir. r yuvarlaktır. Böylece hepsini yozlaştırabilir ve onları yeni bir bloğu onaylamaya zorlayabilir. f br. Bu sahte blok ancak meşru bloktan sonra yayılabileceği için, dikkat etmek aldanmaz.13 Bununla birlikte, f Br sözdizimsel olarak doğru olurdu ve biz üretilmesinin önüne geçmek istiyoruz. Bunu yeni bir kuralla yapıyoruz. Temel olarak, doğrulayıcının üyeleri bir adım s'nin SV r,'lerini ayarlar. yuvarlak r pkr,s geçici ortak anahtarlarını kullanın ben mesajlarını dijital olarak imzalamak için. Bu anahtarlar tek kullanımlıktır ve bunlara karşılık gelen gizli anahtarlar skr,s ben kullanıldıktan sonra imha edilir. Bu şekilde, eğer bir doğrulayıcı Daha sonra bozulduğunda, Düşman onu başlangıçta imzalamadığı herhangi bir şeyi imzalamaya zorlayamaz. Doğal olarak, Düşmanın yeni bir g anahtarı hesaplamasının imkansız olduğundan emin olmalıyız. pr,ler ben ve dürüst bir kullanıcıyı, i \(\in\)SV r,s doğrulayıcısının s adımında kullanılacak doğru geçici anahtarı olduğuna ikna edin. 4.2 Gösterimlerin, Kavramların ve Parametrelerin Ortak Özeti Gösterimler • r \(\geq\)0: geçerli yuvarlak sayı. • s \(\geq\)1: r. turdaki geçerli adım numarası. • Br: r turunda oluşturulan blok. • PKr: r −1 turunun sonunda ve r turunun başındaki genel anahtarlar kümesi. • Sr: r −1 turunun sonunda ve r.14 turunun başındaki sistem durumu • PAY r: Br'de bulunan ödeme seti. • \(\ell\)r: yuvarlak-r lideri. \(\ell\)r, r turunun ödeme seti PAY r'yi seçer (ve bir sonraki Qr'yi belirler). • Qr: r turunun tohumu, r turunun sonunda oluşturulan bir miktar (yani ikili dizi). ve r + 1 turu için doğrulayıcıları seçmek için kullanılır. Qr, bloklardaki ödemelerden bağımsızdır ve \(\ell\)r tarafından manipüle edilemez. 13Büyük bir TV ağının haber sunucusunu bozmayı ve bugün bir haber filmi hazırlayıp yayınlamayı düşünün Sekreter Clinton'un son başkanlık seçimini kazandığını gösteriyor. Çoğumuz bunun bir aldatmaca olduğunu kabul edeceğiz. Ama komadan çıkan biri kandırılabilir. 14Senkron olmayan bir sistemde “r −1 turu sonu” ve “r turu başlangıcı” kavramı dikkatli bir şekilde tanımlanması gerekmektedir. Matematiksel olarak PKr ve Sr, S0 başlangıç durumundan ve bloklardan hesaplanır. B1, . . . , Br−1.• SV r,s: r turunun s adımları için seçilen doğrulayıcılar kümesi. • SV r: r turu için seçilen doğrulayıcılar kümesi, SV r = \(\cup\)s\(\geq\)1SV r,s. • MSV r,s ve HSV r,s: sırasıyla, kötü niyetli doğrulayıcılar kümesi ve dürüst doğrulayıcılar kümesi SV r,s'de. MSV r,s \(\cup\)HSV r,s = SV r,s ve MSV r,s ∩HSV r,s = \(\emptyset\). • n1 \(\in\)Z+ ve n \(\in\)Z+: sırasıyla her bir SV'de beklenen potansiyel lider sayısı r,1, ve s > 1 için her SV r,s'de beklenen doğrulayıcı sayısı. SV r,1'de en az bir dürüst dürüst üyeye ihtiyacımız olduğundan n1 << n olduğuna dikkat edin, ancak en azından s > 1 için her SV r,s'de dürüst üyelerin çoğunluğu. • h \(\in\)(0, 1): 2/3'ten büyük bir sabit. h sistemdeki dürüstlük oranıdır. Yani, Kullanılan varsayıma bağlı olarak her bir PKr'de dürüst kullanıcıların veya dürüst paranın oranı en azından h. • H: rastgele bir oracle olarak modellenen kriptografik bir hash işlevi. • \(\bot\): H'nin çıkışıyla aynı uzunlukta özel bir dize. • F \(\in\)(0, 1): izin verilen hata olasılığını belirten parametre. \(\leq\)F olasılığı "ihmal edilebilir" olarak kabul edilir ve \(\geq\)1 −F olasılığı "çok yüksek" olarak kabul edilir. • ph \(\in\)(0, 1): r, \(\ell\)r turunun liderinin dürüst olma olasılığı. İdeal durumda ph = h. ile Düşmanın varlığı analizde ph değerini belirleyecektir. • k \(\in\)Z+: geriye dönük inceleme parametresi. Yani r −k turu, r turu için doğrulayıcıların olduğu yerdir —yani SV r \(\subseteq\)PKr−k.15 arasından seçilmiştir. • p1 \(\in\)(0, 1): r turunun ilk adımı için, r −k turundaki bir kullanıcı SV r,1'de olacak şekilde seçilir ve olasılık p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): r döngüsünün her s > 1 adımı için, r −k turundaki bir kullanıcı SV r,s'de olacak şekilde seçilir. olasılık p \(\triangleq\) n |P Kr−k|. • CERT r: Br. sertifikası. Bu, H(Br)'nin uygun doğrulayıcılardan aldığı bir dizi imzadır. yuvarlak r. • Br \(\triangleq\)(Br, CERT r) kanıtlanmış bir bloktur. Bir i kullanıcısı, kanıtlanmış bloğun her iki parçasına da sahip olup olmadığını (ve başarıyla doğrulayıp doğrulamadığını) Br'yi bilir. Farklı kullanıcılar tarafından görülen CERT'nin farklı olabileceğini unutmayın. • τr i : i kullanıcısının Br'yi tanıdığı (yerel) saat. Algorand protokolünde her kullanıcının kendi kendi saati. Farklı kullanıcıların saatlerinin senkronize edilmesine gerek yoktur ancak aynı hıza sahip olmaları gerekir. Yalnızca analizin amacı doğrultusunda bir referans saati dikkate alıyoruz ve oyuncuların performanslarını ölçüyoruz. bununla ilgili zamanlar. • \(\alpha\)r,s ben ve \(\beta\)r,s i : sırasıyla bir i kullanıcısının Adım s'i yürütmeye başladığı ve bitirdiği (yerel) saat yuvarlak r. • Λ ve \(\lambda\): esasen, sırasıyla Adım 1 ve 1'i gerçekleştirmek için gereken sürenin üst sınırlarıdır. Algorand protokolünün diğer herhangi bir adımı için gereken süre. Λ parametresi tek bir 1 MB'lık bloğu yayma süresini üst sınırlar. (Bizim notasyonumuzda, Λ = \(\lambda\) \(\rho\),1MB. Basitlik açısından \(\rho\) = 1 olarak belirlediğimiz gösterimimizi hatırlayarak, bloklar en fazla 1MB uzunlukta olacak şekilde seçilmişse, Λ = \(\lambda\)1,1,1MB elde ederiz.) 15Aslında “r −k”, “max{0, r −k}” olmalıdır.Parametre \(\lambda\), Adım s > 1'de doğrulayıcı başına bir küçük mesajı yayma süresini üst sınırlar. (Bitcoin'de olduğu gibi, 32B anahtarlı eliptik eğri imzaları kullanıldığında, bir doğrulama mesajı 200B uzunluğunda olur. Dolayısıyla bizim notasyonumuzda \(\lambda\) = \(\lambda\)n,\(\rho\),200B olur.) Λ = O(\(\lambda\)) olduğunu varsayıyoruz. Kavramlar • Doğrulayıcı seçimi. Her r turu ve s > 1 adımı için, SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. Her biri i \(\in\)PKr−k kullanıcısı, uzun vadeli anahtarını kullanarak imzasını özel olarak hesaplar ve i \(\in\)SV r,s ya da değil. Eğer i \(\in\)SV r,s ise, o zaman SIGi(r, s, Qr−1) i'nin (r, s)-kimlik bilgisidir, kısaca gösterilir \(\sigma\)r,s'ye göre ben. Turun ilk adımı için r, SV r,1 ve \(\sigma\)r,1 ben benzer şekilde tanımlanır; p, p1 ile değiştirilir. SV r,1'deki doğrulayıcılar potansiyel liderlerdir. • Lider seçimi. Kullanıcı i \(\in\)SV r,1, eğer H(\(\sigma\)r,1 ise) r turunun lideridir ve \(\ell\)r ile gösterilir i ) \(\leq\)H(\(\sigma\)r,1 j) tüm potansiyel için liderler j \(\in\)SV r,1. İki oyuncunun kimlik bilgilerinin hashes'leri karşılaştırıldığında, pek olası olmayan bir durumda bağ olması durumunda, protokol her zaman (uzun vadeli kamuya açık) göre sözlükbilimsel olarak bağları koparır potansiyel liderlerin anahtarları. Tanım gereği, oyuncunun kimlik bilgilerinin hash değeri aynı zamanda tüm kullanıcılar arasında en küçüğüdür. PKr-k. Potansiyel bir liderin, lider olup olmadığına özel olarak karar veremeyeceğini unutmayın. diğer potansiyel liderlerin kimlik bilgilerini görmeden. hash değerleri rastgele tekdüze olduğundan, SV r,1 boş olmadığında, \(\ell\)r her zaman mevcuttur ve olasılık açısından dürüst en azından h. n1 parametresi her birinin olmasını sağlayacak kadar büyüktür. SV r,1 büyük olasılıkla boş değildir. • Blok yapısı. Boş olmayan bir blok Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) biçimindedir ve boş bir blok Br formundadır ϫ = (r, \(\emptyset\), Qr−1, H(Br−1)). Boş olmayan bir bloğun, eğer herhangi bir ödeme gerçekleşmezse, hala boş bir ödeme seti PAY r içerebileceğini unutmayın. Bu turda veya liderin kötü niyetli olup olmadığı. Ancak boş olmayan bir blok, \(\ell\)r, kimlik bilgisi \(\sigma\)r,1 \(\ell\)r ve SIG\(\ell\)r(Qr−1)'in tümü zamanında ortaya çıktı. Protokol garanti eder eğer lider dürüstse blok büyük olasılıkla boş olmayacaktır. • Tohum Qr. Br boş değilse Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), aksi halde Qr \(\triangleq\)H(Qr−1, r). Parametreler • Çeşitli parametreler arasındaki ilişkiler. — R turunun doğrulayıcıları ve potansiyel liderleri PKr−k'deki kullanıcılar arasından seçilir, burada k, Rakibin r −k −1 turunda Qr−1'i tahmin edemeyeceği şekilde seçilir F'den daha iyi bir olasılıkla: aksi takdirde, kötü niyetli kullanıcıları tanıtabilecektir r -k turu için bunların hepsi r turunda potansiyel liderler/doğrulayıcılar olacak ve
İstenilen bazı adımlar için SV r,'lerde kötü niyetli bir lidere veya kötü niyetli bir çoğunluğa sahip olmak o. — Her turun 1. Adımı için r, n1, büyük olasılıkla SV r,1 ̸= \(\emptyset\) olacak şekilde seçilir. • Önemli parametrelerin örnek seçimleri. — H'nin çıkışları 256 bit uzunluğundadır. — h = %80, n1 = 35. — Λ = 1 dakika ve \(\lambda\) = 10 saniye. • Protokolün başlatılması. Protokol 0 zamanında r = 0 ile başlar. “B−1” veya “CERT −1” bulunmadığından, Sözdizimsel olarak B−1, üçüncü bileşeni Q−1'i belirten genel bir parametredir ve tüm kullanıcılar 0 zamanında B−1'i bilin.
Algorand ′
1 In diesem Abschnitt erstellen wir eine Version von Algorand ′, die unter der folgenden Annahme arbeitet. Annahme: Ehrliche Mehrheit der Benutzer: Mehr als 2/3 der Benutzer in jedem PKr sind ehrlich. In Abschnitt 8 zeigen wir, wie man die obige Annahme durch die gewünschte ehrliche Mehrheit ersetzt Geldannahme. 5.1 Zusätzliche Notationen und Parameter Notationen • m \(\in\)Z+: die maximale Anzahl von Schritten im binären BA-Protokoll, ein Vielfaches von 3. • Lr \(\leq\)m/3: eine Zufallsvariable, die die Anzahl der Bernoulli-Versuche darstellt, die erforderlich sind, um eine 1 zu sehen, wenn jeder Versuch 1 mit der Wahrscheinlichkeit ph ist 2 und es gibt höchstens m/3-Versuche. Wenn alle Versuche scheitern, dann Lr \(\triangleq\)m/3. Lr wird verwendet, um die Zeit, die zum Generieren des Blocks Br benötigt wird, nach oben zu begrenzen. • tH = 2n 3 + 1: die Anzahl der Signaturen, die in den Endbedingungen des Protokolls erforderlich sind. • CERT r: das Zertifikat für Br. Es handelt sich um eine Reihe von Signaturen von H(Br) von geeigneten Prüfern in rund r. Parameter • Beziehungen zwischen verschiedenen Parametern. — Für jeden Schritt s > 1 der Runde r wird n so gewählt, dass mit überwältigender Wahrscheinlichkeit |HSV r,s| > 2|MSV r,s| und |HSV r,s| + 4|MSV r,s| < 2n. Je näher der Wert von h an 1 liegt, desto kleiner muss n sein. Insbesondere verwenden wir (Varianten von) Chernoff-Grenzen, um sicherzustellen, dass die gewünschten Bedingungen mit überwältigender Wahrscheinlichkeit eintreten. — m wird so gewählt, dass mit überwältigender Wahrscheinlichkeit Lr < m/3 ist. • Beispielhafte Auswahl wichtiger Parameter. — F = 10−12. — n \(\approx\)1500, k = 40 und m = 180.5.2 Implementierung kurzlebiger Schlüssel in Algorand ′ 1 Wie bereits erwähnt, wünschen wir uns, dass ein Verifizierer i \(\in\)SV r,s seine Nachricht mr,s digital signiert ich Schritt s in Runde r, relativ zu einem kurzlebigen öffentlichen Schlüssel pkr,s i , unter Verwendung eines kurzlebigen geheimen Schlüssels skr,s ich das Er zerstört sofort nach dem Gebrauch. Wir brauchen daher eine effiziente Methode, um sicherzustellen, dass jeder Benutzer dies tun kann Überprüfen Sie, ob pkr,s ich ist in der Tat der Schlüssel, mit dem ich die Unterschrift von Herrn, S. überprüfen kann ich . Wir tun dies nach bestem Wissen und Gewissen unseres Wissens) neue Verwendung identitätsbasierter Signaturverfahren. Auf hoher Ebene generiert in einem solchen Schema eine zentrale Behörde A einen öffentlichen Hauptschlüssel, PMK, und einen entsprechenden geheimen Hauptschlüssel, SMK. Angesichts der Identität U eines Spielers U berechnet A: Über SMK wird ein geheimer Signaturschlüssel skU relativ zum öffentlichen Schlüssel U bereitgestellt und skU privat an ihn weitergegeben U. (Tatsächlich ist in einem identitätsbasierten digitalen Signaturschema der öffentliche Schlüssel eines Benutzers U U selbst!) Auf diese Weise zerstört A SMK, nachdem er die geheimen Schlüssel der Benutzer berechnet hat, die er aktivieren möchte Digitale Signaturen erstellen und keinen berechneten geheimen Schlüssel aufbewahren, dann ist U der Einzige, der dies tut kann Nachrichten relativ zum öffentlichen Schlüssel U digital signieren. Somit kann jeder, der „Us Namen“ kennt, kennt automatisch den öffentlichen Schlüssel von U und kann daher die Signaturen von U überprüfen (möglicherweise auch unter Verwendung des öffentlicher Hauptschlüssel PMK). In unserer Anwendung ist die Autorität A der Benutzer i, und die Menge aller möglichen Benutzer U stimmt mit überein das Rundschrittpaar (r, s) in — sagen wir — S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, wobei r′ gegeben ist Runde und m + 3 die Obergrenze für die Anzahl der Schritte, die innerhalb einer Runde auftreten dürfen. Dies Weg, pkr,s ich \(\triangleq\)(i, r, s), sodass jeder die Signatur von i sieht, SIGr,s pkr,s ich (Herr, S ich ) kann, mit Überwältigung Wahrscheinlichkeit, überprüfen Sie es sofort für die ersten Millionen Runden r nach r′. Mit anderen Worten: Ich erzeuge zunächst PMK und SMK. Dann macht er bekannt, dass PMK mein Meister ist öffentlichen Schlüssel für jede Runde r \(\in\)[r′, r′ + 106] und verwendet SMK, um das Geheimnis privat zu erzeugen und zu speichern Schlüssel skr,s ich für jedes Tripel (i, r, s) \(\in\)S. Wenn das erledigt ist, zerstört er SMK. Wenn er feststellt, dass dies nicht der Fall ist Teil von SV r,s, dann kann ich skr,s verlassen ich allein (da das Protokoll nicht verlangt, dass er sich authentifiziert jede Nachricht in Schritt s der Runde r). Ansonsten verwende ich zuerst skr,s ich seine Nachricht digital signieren mr,s ich , und zerstört dann skr,s ich . Beachten Sie, dass ich seinen ersten öffentlichen Hauptschlüssel veröffentlichen kann, wenn er das System zum ersten Mal betritt. Das heißt, Die gleiche Zahlung \(\wp\), die i in das System bringt (in einer Runde r′ oder in einer Runde nahe r′), kann auch Geben Sie auf Wunsch von i an, dass der öffentliche Hauptschlüssel von i für jede Runde r \(\in\)[r′, r′ + 106] PMK ist – z. B. by einschließlich eines Paares der Form (PMK, [r′, r′ + 106]). Beachten Sie auch, dass m + 3 die maximale Anzahl von Schritten in einer Runde ist, vorausgesetzt, dass eine Runde erfolgt dauert eine Minute, der so hergestellte Vorrat an kurzlebigen Schlüsseln reicht für fast zwei Jahre. Gleichzeitig Mit der Zeit wird die Herstellung dieser kurzlebigen Geheimschlüssel nicht allzu lange dauern. Unter Verwendung einer elliptischen Kurve Bei einem System mit 32B Schlüsseln wird jeder geheime Schlüssel in wenigen Mikrosekunden berechnet. Wenn also m + 3 = 180, Dann können alle 180 Millionen geheimen Schlüssel in weniger als einer Stunde berechnet werden. Wenn sich die aktuelle Runde r′ + 106 nähert, um die nächsten Millionen Runden zu bewältigen, d generiert ein neues (PMK′, SMK′)-Paar und informiert über seinen nächsten Vorrat an kurzlebigen Schlüsseln – zum Beispiel – mit SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) geben Sie einen neuen Block ein, entweder als separate „Transaktion“ oder als zusätzliche Information, die Teil einer Zahlung ist. Dadurch Ich informiere jeden darüber, dass er/sie im nächsten Schritt PMK′ verwenden soll, um die ephemeren Signaturen von i zu überprüfen Millionen Schuss. Und so weiter. (Beachten Sie, dass es nach diesem grundlegenden Ansatz auch andere Möglichkeiten gibt, ephemere Schlüssel ohne zu implementieren Der Einsatz identitätsbasierter Signaturen ist durchaus möglich. Zum Beispiel über Merkle trees.16) 16Bei dieser Methode generiert i ein öffentlich-geheimes Schlüsselpaar (pkr,s ich, skr,s ich ) für jedes Rundenschrittpaar (r, s) in — sagen wir —Andere Möglichkeiten zur Implementierung ephemerer Schlüssel sind sicherlich möglich – z. B. über Merkle trees. 5.3 Passend zu den Schritten von Algorand ′ 1 mit denen von BA⋆ Wie gesagt, eine Runde in Algorand ′ 1 hat höchstens m + 3 Schritte. Schritt 1. In diesem Schritt berechnet und propagiert jeder potenzielle Anführer i seinen Kandidatenblock Br ich, zusammen mit seinem eigenen Ausweis, \(\sigma\)r,1 ich . Denken Sie daran, dass dieser Berechtigungsnachweis i explizit identifiziert. Das ist so, weil \(\sigma\)r,1 ich \(\triangleq\)SIGi(r, 1, Qr−1). Der potenzielle Verifizierer verbreitet als Teil seiner Nachricht auch seine ordnungsgemäße digitale Signatur von H(Br.) ich). Da es sich bei dieser Signatur nicht um eine Zahlung oder einen Ausweis handelt, bezieht sie sich auf seine flüchtige Öffentlichkeit Schlüssel VE,1 i: das heißt, er propagiert sigpkr,1 ich (H(Br ich )). Angesichts unserer Konventionen, anstatt Br. zu propagieren ich und sigpkr,1 ich (H(Br i)), er hätte es tun können propagierte SIGpkr,1 ich (H(Br ich )). In unserer Analyse benötigen wir jedoch expliziten Zugriff darauf sigpkr,1 ich (H(Br ich )). Schritte 2. In diesem Schritt legt jeder Verifizierer \(\ell\)r fest Ich möchte der potenzielle Anführer sein, dessen Qualifikation hash ist ist der kleinste und Br i soll der von \(\ell\)r vorgeschlagene Block sein ich . Da wir aus Gründen der Effizienz Wenn er sich auf H(Br) und nicht direkt auf Br einigen möchte, propagiert er die Botschaft, die er haben möchte propagiert im ersten Schritt von BA⋆mit Anfangswert v′ i = H(Br ich). Das heißt, er propagiert v′ ich, natürlich erst nach kurzer Unterzeichnung. (Nämlich nach der Unterzeichnung relativ zum rechten Ephemeren Öffentlicher Schlüssel, in diesem Fall pkr,2 i .) Selbstverständlich übermittelt auch ich seinen eigenen Ausweis. Da der erste Schritt von BA⋆aus dem ersten Schritt des abgestuften Konsensprotokolls GC besteht, Schritt 2 von Algorand ′ entspricht dem ersten Schritt von GC. Schritte 3. In diesem Schritt führt jeder Prüfer i \(\in\)SV r,2 den zweiten Schritt von BA⋆ aus. Das heißt, er sendet die Dieselbe Nachricht, die er im zweiten Schritt von GC gesendet hätte. Auch hier ist meine Botschaft vergänglich unterschrieben und mit meinem Ausweis versehen. (Von nun an werden wir es unterlassen, zu sagen, dass es sich um einen Verifizierer handelt unterzeichnet flüchtig seine Nachricht und verbreitet auch seine Beglaubigung.) Schritt 4. In diesem Schritt berechnet jeder Verifizierer i \(\in\)SV r,4 die Ausgabe von GC (vi, gi) und ephemer signiert und sendet die gleiche Nachricht, die er im dritten Schritt von BA⋆ gesendet hätte, also im erster Schritt von BBA⋆, mit Anfangsbit 0, wenn gi = 2, andernfalls 1. Schritt s = 5, . . . , m + 2. Ein solcher Schritt, falls jemals erreicht, entspricht dem Schritt s −1 von BA⋆ und damit Schritt s −3 von BBA⋆. Da unser Ausbreitungsmodell ausreichend asynchron ist, müssen wir die Möglichkeit berücksichtigen dass mitten in einem solchen Schritt s ein Verifizierer i \(\in\)SV r,s durch Informationen erreicht wird, die ihn beweisen dieser Block Br wurde bereits ausgewählt. In diesem Fall stoppt i seine eigene Ausführung von Runde r Algorand ′ und beginnt mit der Ausführung seiner Round-(r + 1)-Anweisungen. {R', . . . , r′ + 106} \(\times\) {1, . . . , m + 3}. Dann ordnet er diese öffentlichen Schlüssel auf kanonische Weise an und speichert den J-ten öffentlich Geben Sie das j-te Blatt eines Merkle tree ein und berechnen Sie den Wurzelwert Ri, den er veröffentlicht. Wenn er unterschreiben will eine Nachricht relativ zum Schlüssel pkr,s ich , i stellt nicht nur die eigentliche Signatur bereit, sondern auch den Authentifizierungspfad für pkr,s ich relativ zu Ri. Beachten Sie, dass dieser Authentifizierungspfad auch beweist, dass pkr,s ich wird im j-ten Blatt gespeichert. Der Rest Details können einfach ausgefüllt werden.Dementsprechend sind die Anweisungen eines Verifizierers i \(\in\)SV r,s, zusätzlich zu den entsprechenden Anweisungen Zu Schritt s −3 von BBA⋆ gehört auch die Prüfung, ob die Ausführung von BBA⋆ in einem früheren Zustand angehalten wurde Schritt s′. Da BBA⋆nur anhalten kann, ist ein Coin-Fixed-to-0-Schritt oder ein Coin-Fixed-to-1-Schritt Anweisungen unterscheiden, ob A (Endbedingung 0): s′ −2 ≡0 mod 3, oder B (Endbedingung 1): s′ −2 ≡1 mod 3. Tatsächlich ist im Fall A der Block Br nicht leer und daher sind zusätzliche Anweisungen erforderlich Stellen Sie sicher, dass ich Br zusammen mit dem richtigen Zertifikat CERT r ordnungsgemäß rekonstruiere. Im Fall B, Der Block Br ist leer und daher wird i angewiesen, Br = Br zu setzen \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), und um CERT r zu berechnen. Wenn i während seiner Ausführung von Schritt s keine Hinweise darauf sieht, dass der Block Br bereits vorhanden ist generiert wurde, sendet er dieselbe Nachricht, die er in Schritt s −3 von BBA⋆ gesendet hätte. Schritt m + 3. Wenn i \(\in\)SV r,m+3 während Schritt m + 3 erkennt, dass der Block Br bereits in generiert wurde einen vorherigen Schritt s′, dann geht er genauso vor wie oben erklärt. Anstatt die gleiche Nachricht zu senden, die er in Schritt m von BBA⋆ gesendet hätte, ist i angewiesen, auf der Grundlage der in seinem Besitz befindlichen Informationen Br und dessen entsprechende Werte zu berechnen Zertifikat CERT r. Denken Sie daran, dass wir die Gesamtzahl der Schritte einer Runde um m + 3 nach oben begrenzen. 5.4 Das eigentliche Protokoll Denken Sie daran, dass in jedem Schritt s einer Runde r ein Verifizierer i \(\in\)SV r,s sein langfristiges öffentlich-geheimes Schlüsselpaar verwendet seinen Ausweis vorlegen, \(\sigma\)r,s ich \(\triangleq\)SIGi(r, s, Qr−1) sowie SIGi Qr−1 im Fall s = 1. Verifier i verwendet seinen kurzlebigen geheimen Schlüssel skr,s ich seine (r,s)-Nachricht unterschreiben mr,s ich . Der Einfachheit halber, wenn r und s sind klar, wir schreiben esigi(x) statt sigpkr,s i (x), um die eigentliche ephemere Signatur eines Wertes zu bezeichnen x in Schritt s der Runde r und schreibe ESIGi(x) anstelle von SIGpkr,s i (x) zur Bezeichnung von (i, x, esigi(x)). Schritt 1: Vorschlag blockieren Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 1 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,1 oder nicht. • Wenn i /\(\in\)SV r,1, stoppt i sofort seine eigene Ausführung von Schritt 1. • Wenn i \(\in\)SV r,1, das heißt, wenn i ein potenzieller Anführer ist, dann kassiert er die runden Zahlungen, die er hat wurde ihm bisher propagiert und berechnet einen maximalen Payset PAY r ich von ihnen. Als nächstes er berechnet seinen „Kandidatenblock“ Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)). Schließlich rechnet er die Nachricht Herr,1 ich = (Br ich, esigi(H(Br i )), \(\sigma\)r,1 i ), zerstört seinen ephemeren geheimen Schlüssel skr,1 ich, und dann propagiert mr,1 ich .Bemerkung. Um die globale Ausführung von Schritt 1 zu verkürzen, ist es in der Praxis wichtig, dass (r, 1)- Nachrichten werden selektiv verbreitet. Das heißt, für jeden Benutzer i im System gilt für den ersten (r, 1)- Die Nachricht, die er jemals erhält und erfolgreich verifiziert,17 verbreitet der Spieler wie gewohnt. Für alle Andere (r, 1)-Nachrichten, die Spieler i empfängt und erfolgreich verifiziert, er verbreitet sie nur, wenn die hash Der Wert der darin enthaltenen Anmeldeinformationen ist der kleinste unter den hash Werten der enthaltenen Anmeldeinformationen in allen (r, 1)-Nachrichten, die er bisher erhalten und erfolgreich verifiziert hat. Darüber hinaus, wie vorgeschlagen von Georgios Vlachos ist es nützlich, dass jeder potenzielle Anführer i auch seine Qualifikation \(\sigma\)r,1 propagiert ich separat: Diese kleinen Nachrichten verbreiten sich schneller als Blöcke und stellen eine rechtzeitige Ausbreitung des mr,1 sicher j’s wobei die enthaltenen Anmeldeinformationen kleine hash-Werte haben, während solche mit großen hash-Werten erstellt werden verschwinden schnell. Schritt 2: Der erste Schritt des Graded Consensus Protocol GC Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 2 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,2 oder nicht. • Wenn i /\(\in\)SV r,2, stoppt i sofort seine eigene Ausführung von Schritt 2. • Wenn i \(\in\)SV r,2, verhält sich i nach einer Wartezeit von t2 \(\triangleq\) \(\lambda\) + Λ wie folgt. 1. Er findet den Benutzer \(\ell\)so dass H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) für alle Referenzen \(\sigma\)r,1 j die Teil davon sind die erfolgreich verifizierten (r, 1)-Nachrichten, die er bisher erhalten hat.a 2. Wenn er von \(\ell\)eine gültige Nachricht erhalten hat, mr,1 \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b dann setzt i v′ i \(\triangleq\)H(Br \(\ell\)); sonst setze ich v′ ich \(\triangleq\) \(\bot\). 3. i berechnet die Nachricht mr,2 ich \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c zerstört seinen ephemeren Geheimschlüssel skr,2 i und propagiert dann mr,2 ich . aIm Wesentlichen entscheidet Benutzer i privat, dass der Anführer der Runde r Benutzer \(\ell\) ist. bAuch hier wurden die Unterschriften von Spieler \(\ell\) und die hashes alle erfolgreich verifiziert und ZAHLEN r \(\ell\)in Br \(\ell\)ist ein gültiger Gehaltssatz für rundes r – obwohl ich nicht prüfe, ob PAY r \(\ell\)ist maximal für \(\ell\)oder nicht. cDie Nachricht mr,2 ich signalisiert, dass der Spieler v′ betrachtet i sei der hash des nächsten Blocks oder betrachte den nächsten Block soll leer sein. 17Das heißt, alle Signaturen sind korrekt und sowohl der Block als auch sein hash sind gültig – obwohl ich das nicht prüfe ob der enthaltene Gehaltssatz für seinen Antragsteller maximal ist oder nicht.
Schritt 3: Der zweite Schritt der GC Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 3 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,3 oder nicht. • Wenn i /\(\in\)SV r,3, stoppt i sofort seine eigene Ausführung von Schritt 3. • Wenn i \(\in\)SV r,3, verhält sich i nach einer Wartezeit von t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ wie folgt. 1. Wenn es einen Wert v′ ̸= \(\bot\) gibt, so dass unter allen gültigen Nachrichten mr,2 j er hat erhalten, mehr als 2/3 davon haben die Form (ESIGj(v′), \(\sigma\)r,2 j ), ohne jeden Widerspruch,a dann berechnet er die Nachricht mr,3 ich \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 ich). Andernfalls berechnet er mr,3 ich \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 ich). 2. Ich zerstöre seinen kurzlebigen geheimen Schlüssel skr,3 i und propagiert dann mr,3 ich . aDas heißt, er hat keine zwei gültigen Nachrichten erhalten, die ESIGj(v′′) bzw. ein anderes ESIGj(v′′) enthalten. von einem Spieler j. Hier und von nun an, außer in den später definierten Endbedingungen, wann immer ein ehrlicher Spieler Will Nachrichten einer bestimmten Form, werden widersprüchliche Nachrichten niemals gezählt oder als gültig angesehen.Schritt 4: Ausgabe von GC und der erste Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 4 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,4 oder nicht. • Wenn i /\(\in\)SV r,4, dann stoppt i seine eigene Ausführung von Schritt 4 sofort. • Wenn i \(\in\)SV r,4, verhält sich i nach einer Wartezeit von t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ wie folgt. 1. Er berechnet vi und gi, die Ausgabe von GC, wie folgt. (a) Wenn es einen Wert v′ ̸= \(\bot\) gibt, so dass unter allen gültigen Nachrichten mr,3 j er hat empfangen, mehr als 2/3 davon haben die Form (ESIGj(v′), \(\sigma\)r,3 j ), dann setzt er vi \(\triangleq\)v′ und gi \(\triangleq\)2. (b) Andernfalls, wenn unter allen gültigen Nachrichten ein Wert v′ ̸= \(\bot\)existiert Herr,3 j er erhalten hat, haben mehr als 1/3 davon die Form (ESIGj(v′), \(\sigma\)r,3 j), dann er setzt vi \(\triangleq\)v′ und gi \(\triangleq\)1.a (c) Ansonsten setzt er vi \(\triangleq\)H(Br ǫ ) und gi \(\triangleq\)0. 2. Er berechnet bi, die Eingabe von BBA⋆, wie folgt: bi \(\triangleq\)0, wenn gi = 2, andernfalls bi \(\triangleq\)1. 3. Er berechnet die Nachricht mr,4 ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), zerstört sein Vergängliches geheimer Schlüssel skr,4 i und propagiert dann mr,4 ich . aEs kann bewiesen werden, dass das v′ im Fall (b), falls vorhanden, eindeutig sein muss.
Schritt s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Ein Coin-Fixed-To-0-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,s. • Wenn i /\(\in\)SV r,s, stoppt i sofort seine eigene Ausführung von Schritt s. • Wenn i \(\in\)SV r,s, dann verhält er sich wie folgt. – Er wartet, bis eine Zeitspanne ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ verstrichen ist. – Endbedingung 0: Wenn während dieses Wartens und zu irgendeinem Zeitpunkt ein string v ̸= \(\bot\)und ein Schritt s′ so dass (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-0-Schritt, (b) Ich habe mindestens tH erhalten = 2n 3 + 1 gültige Nachrichten mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),a und (c) Ich habe eine gültige Nachricht mr,1 erhalten j = (Br j , esigj(H(Br j )), \(\sigma\)r,1 j ) mit v = H(Br j), dann stoppt i seine eigene Ausführung von Schritt s (und tatsächlich von Runde r) sofort ohne irgendetwas verbreiten; setzt Br = Br j ; und legt sein eigenes CERT r als Nachrichtenmenge fest mr,s′−1 j des Unterschritts (b).b – Endbedingung 1: Wenn während des Wartens und zu irgendeinem Zeitpunkt ein Schritt s′ so dass (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-1-Schritt, und (b’) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c dann stoppt i seine eigene Ausführung von Schritt s (und tatsächlich von Runde r) sofort ohne irgendetwas verbreiten; setzt Br = Br ǫ ; und legt sein eigenes CERT r als Nachrichtenmenge fest mr,s′−1 j des Teilschritts (b‘). – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er setzt vi als Mehrheitsvotum der vjs in den zweiten Komponenten aller gültigen Stimmen mr,s−1 j ’s hat er erhalten. Er berechnet bi wie folgt. Wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)0. Andernfalls, wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)1. Andernfalls setzt er bi \(\triangleq\)0. Er berechnet die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), zerstört sein Vergängliches geheimer Schlüssel skr,s i , und dann propagiert mr,s ich . aEine solche Nachricht von Spieler j wird auch dann gezählt, wenn Spieler i auch eine Nachricht von j erhalten hat, der für 1 signiert. Ähnliches gilt für Endbedingung 1. Wie in der Analyse gezeigt, geschieht dies, um sicherzustellen, dass alle ehrlichen Benutzer Bescheid wissen Br innerhalb der Zeit \(\lambda\) voneinander. bUser i kennt jetzt Br und seine eigenen Rundenabschlüsse. Als allgemeiner Benutzer hilft er immer noch bei der Verbreitung von Nachrichten, aber initiiert keine Ausbreitung als (r, s)-Verifizierer. Insbesondere hat er dazu beigetragen, alle in ihm enthaltenen Botschaften zu verbreiten CERT r, was für unser Protokoll ausreicht. Beachten Sie, dass er auch für das binäre BA-Protokoll bi \(\triangleq\)0 festlegen sollte, aber bi wird in diesem Fall ohnehin nicht benötigt. Ähnliches gilt für alle zukünftigen Anweisungen. cIn diesem Fall spielt es keine Rolle, um welche VJs es sich handelt.Schritt s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Ein Coin-Fixed-To-1-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,s oder nicht. • Wenn i /\(\in\)SV r,s, stoppt i sofort seine eigene Ausführung von Schritt s. • Wenn i \(\in\)SV r,s, dann macht er Folgendes. – Er wartet, bis eine Zeitspanne ts \(\triangleq\)(2s −3)\(\lambda\) + Λ verstrichen ist. – Endbedingung 0: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Endbedingung 1: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er setzt vi als Mehrheitsvotum der vjs in den zweiten Komponenten aller gültigen Stimmen mr,s−1 j ’s hat er erhalten. Er berechnet bi wie folgt. Wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)0. Andernfalls, wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)1. Andernfalls setzt er bi \(\triangleq\)1. Er berechnet die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), zerstört sein Vergängliches geheimer Schlüssel skr,s i , und dann propagiert mr,s ich .
Schritt s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Ein münzecht umgedrehter Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,s oder nicht. • Wenn i /\(\in\)SV r,s, stoppt i sofort seine eigene Ausführung von Schritt s. • Wenn i \(\in\)SV r,s, dann macht er Folgendes. – Er wartet, bis eine Zeitspanne ts \(\triangleq\)(2s −3)\(\lambda\) + Λ verstrichen ist. – Endbedingung 0: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Endbedingung 1: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er setzt vi als Mehrheitsvotum der vjs in den zweiten Komponenten aller gültigen Stimmen mr,s−1 j ’s hat er erhalten. Er berechnet bi wie folgt. Wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)0. Andernfalls, wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)1. Ansonsten sei SV r,s−1 ich sei die Menge der (r, s −1)-Verifizierer, von denen er ein gültiges erhalten hat Nachricht mr,s−1 j . Er setzt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 ich H(\(\sigma\)r,s−1 j )). Er berechnet die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), zerstört sein Vergängliches geheimer Schlüssel skr,s i , und dann propagiert mr,s ich .
Schritt m + 3: Der letzte Schritt von BBA⋆a Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt m + 3 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,m+3 oder nicht. • Wenn i /\(\in\)SV r,m+3, dann stoppt i sofort seine eigene Ausführung von Schritt m + 3. • Wenn i \(\in\)SV r,m+3, dann macht er Folgendes. – Er wartet, bis eine Zeitspanne tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ vergangen ist. – Endbedingung 0: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Endbedingung 1: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er stellt i \(\triangleq\)1 und Br \(\triangleq\)Br dar ǫ. Er berechnet die Nachricht mr,m+3 ich = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 ich ), zerstört seine Vergänglicher geheimer Schlüssel skr,m+3 ich , und propagiert dann mr,m+3 ich Br.b. zertifizieren aMit überwältigender Wahrscheinlichkeit ist BBA⋆vor diesem Schritt beendet, und wir geben diesen Schritt der Vollständigkeit halber an. Ein BA-Zertifikat aus Schritt m + 3 muss ESIGi(outi) nicht enthalten. Wir schließen es nur aus Gründen der Einheitlichkeit ein: das Zertifikate haben nun ein einheitliches Format, unabhängig davon, in welchem Schritt sie generiert werden.Rekonstruktion des Round-r-Blocks durch Nicht-Verifizierer Anleitung für jeden Benutzer i im System: Benutzer i startet seine eigene Runde, sobald er es weiß Br−1 und wartet wie folgt auf Blockinformationen. – Wenn während dieses Wartens und zu irgendeinem Zeitpunkt eine Zeichenfolge v und ein Schritt s′ wie z das (a) 5 \(\leq\)s′ \(\leq\)m + 3 mit s′ −2 ≡0 mod 3, (b) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), und (c) Ich habe eine gültige Nachricht mr,1 erhalten j = (Br j , esigj(H(Br j )), \(\sigma\)r,1 j ) mit v = H(Br j), dann stoppt i sofort seine eigene Ausführung von Runde r; setzt Br = Br j; und legt sein eigenes CERT r fest die Menge der Nachrichten mr,s′−1 sein j des Unterschritts (b). – Wenn während dieses Wartens und zu irgendeinem Zeitpunkt ein Schritt s′ existiert, so dass (a’) 6 \(\leq\)s′ \(\leq\)m + 3 mit s′ −2 ≡1 mod 3, und (b’) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), dann stoppt i sofort seine eigene Ausführung von Runde r; setzt Br = Br ǫ; und legt sein eigenes CERT r fest die Menge der Nachrichten mr,s′−1 sein j des Teilschritts (b‘). – Wenn ich während dieser Wartezeit und zu irgendeinem Zeitpunkt mindestens die gültigen Nachrichten erhalten habe Herr,m+3 j = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 j ), dann stoppt i seine eigene Ausführung der Runde r setzt sofort Br = Br ǫ und setzt sein eigenes CERT r auf die Menge der Nachrichten mr,m+3 j für 1 und H(Br ǫ ). 5.5 Analyse von Algorand ′ 1 Wir führen die folgenden Notationen für jede Runde r \(\geq\)0 ein, die in der Analyse verwendet wird. • Sei T r der Zeitpunkt, zu dem der erste ehrliche Benutzer Br−1 kennt. • Sei Ir+1 das Intervall [T r+1, T r+1 + \(\lambda\)]. Beachten Sie, dass T 0 = 0 durch die Initialisierung des Protokolls. Erinnern Sie sich daran für jedes s \(\geq\)1 und i \(\in\)SV r,s \(\alpha\)r,s ich und \(\beta\)r,s ich sind jeweils die Startzeit und die Endzeit der Schritte s von Spieler i. Darüber hinaus Denken Sie daran, dass ts = (2s −3)\(\lambda\) + Λ für jedes 2 \(\leq\)s \(\leq\)m + 3. Außerdem seien I0 \(\triangleq\){0} und t1 \(\triangleq\)0. Denken Sie abschließend daran, dass Lr \(\leq\)m/3 eine Zufallsvariable ist, die die Anzahl der Bernoulli-Versuche darstellt benötigt, um eine 1 zu sehen, wenn jeder Versuch 1 mit der Wahrscheinlichkeit ph ist 2 und es gibt höchstens m/3-Versuche. Wenn alle Versuche scheitern, dann ist Lr \(\triangleq\)m/3. Bei der Analyse ignorieren wir die Rechenzeit, da sie im Verhältnis zur benötigten Zeit tatsächlich vernachlässigbar ist um Nachrichten zu verbreiten. In jedem Fall kann die Berechnungszeit durch die Verwendung etwas größerer \(\lambda\) und Λ verkürzt werden direkt in die Analyse einfließen. Die meisten der folgenden Aussagen treffen „mit überwältigender Mehrheit“ zu Wahrscheinlichkeit“, und wir betonen diese Tatsache möglicherweise nicht wiederholt in der Analyse.5.6 Hauptsatz Satz 5.1. Die folgenden Eigenschaften gelten mit überwältigender Wahrscheinlichkeit für jede Runde r \(\geq\)0: 1. Alle ehrlichen Benutzer stimmen dem gleichen Block zu, Br. 2. Wenn der Anführer \(\ell\)r ehrlich ist, wird der Block Br von \(\ell\)r erzeugt, Br enthält einen maximalen Payset empfangen von \(\ell\)r bis zur Zeit \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br in der Zeit Intervall Ir+1. 3. Wenn der Anführer \(\ell\)r böswillig ist, gilt T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. 4. ph = h2(1 + h −h2) für Lr, und der Anführer \(\ell\)r ist mit einer Wahrscheinlichkeit von mindestens ph ehrlich. Bevor wir unseren Hauptsatz beweisen, machen wir zwei Bemerkungen. Bemerkungen. • Blockgenerierung und echte Latenz. Die Zeit zum Erzeugen des Blocks Br ist als T r+1 − T r definiert. Das heißt, es ist definiert als der Unterschied zwischen dem ersten Mal, wenn ein ehrlicher Benutzer Br lernt, und Das erste Mal lernt ein ehrlicher Benutzer Br−1. Wenn der Round-R-Anführer ehrlich ist, ist Eigentum 2 unser Der Hauptsatz garantiert, dass die genaue Zeit zur Erzeugung von Br 8\(\lambda\) + Λ Zeit beträgt, egal was passiert Der genaue Wert von h > 2/3 kann sein. Wenn der Anführer böswillig ist, impliziert Eigenschaft 3, dass der Die erwartete Zeit zur Erzeugung von Br ist durch ( 12) begrenzt ph + 10)\(\lambda\) + Λ, wiederum unabhängig von der Genauigkeit Wert von h.18 Allerdings hängt die erwartete Zeit zur Erzeugung von Br vom genauen Wert von h ab. Tatsächlich ist nach Eigenschaft 4 ph = h2(1 + h − h2) und der Anführer ist zumindest in Bezug auf die Wahrscheinlichkeit ehrlich ph, also E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ). Wenn beispielsweise h = 80 %, dann ist E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) vs. Λ. Beachten Sie, dass die Größe der von den Verifizierern in einem Schritt gesendeten Nachrichten Algorand ′ dominiert durch die Länge der digitalen Signaturschlüssel, die auch bei der Anzahl der Schlüssel fest bleiben kann Benutzer ist enorm. Beachten Sie außerdem, dass in jedem Schritt s > 1 die gleiche erwartete Anzahl n von Verifizierern erwartet wird kann unabhängig davon verwendet werden, ob die Anzahl der Benutzer 100.000, 100 Millionen oder 100 Millionen beträgt. Das liegt daran, dass n allein hängt von h und F ab. Zusammenfassend lässt sich sagen, dass, sofern nicht plötzlich die Notwendigkeit besteht, die Länge des geheimen Schlüssels zu erhöhen, Der Wert von \(\lambda\) sollte derselbe bleiben, egal wie groß die Anzahl der Benutzer ist absehbare Zukunft. Im Gegensatz dazu wächst bei jeder Transaktionsrate die Anzahl der Transaktionen mit der Anzahl der Transaktionen Benutzer. Um alle neuen Transaktionen zeitnah verarbeiten zu können, sollte daher die Größe eines Blocks erforderlich sein wachsen auch mit der Anzahl der Benutzer, wodurch auch Λ wächst. Auf lange Sicht hätten wir das also tun sollen \(\lambda\) << Λ. Dementsprechend ist es angemessen, einen größeren Koeffizienten für \(\lambda\) zu haben, und zwar tatsächlich einen Koeffizienten von 1 für Λ. Beweis von Satz 5.1. Wir beweisen die Eigenschaften 1–3 durch Induktion: unter der Annahme, dass sie für die Runde r −1 gelten (Ohne Beschränkung der Allgemeinheit gelten sie automatisch für „Runde -1“, wenn r = 0), wir beweisen sie für rund r. 18Tatsächlich ist E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Da Br−1 durch die Induktionshypothese eindeutig definiert ist, ist auch die Menge SV r,s eindeutig definiert für jeden Schritt s der Runde r. Durch die Wahl von n1 ist SV r,1 ̸= \(\emptyset\)mit überwältigender Wahrscheinlichkeit. Wir jetzt Geben Sie die folgenden zwei Lemmata an, die in den Abschnitten 5.7 und 5.8 bewiesen wurden. Während der Induktion und in die Beweise der beiden Lemmata, die Analyse für Runde 0 ist fast die gleiche wie der Induktionsschritt, und wir werden die Unterschiede hervorheben, wenn sie auftreten. Lemma 5.2. [Vollständigkeitslemma] Angenommen, die Eigenschaften 1–3 gelten für Runde r−1, wenn der Anführer \(\ell\)r ist ehrlich, mit überwältigender Wahrscheinlichkeit, • Alle ehrlichen Benutzer stimmen dem gleichen Block Br zu, der von \(\ell\)r erzeugt wird und ein Maximum enthält Gehaltssatz, den \(\ell\)r zum Zeitpunkt \(\alpha\)r,1 erhalten hat \(\ell\)r \(\in\)Ir; und • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Lemma 5.3. [Gesundheits-Lemma] Angenommen, die Eigenschaften 1–3 gelten für Runde r −1, wenn der Anführer \(\ell\)r ist bösartig, mit überwältigender Wahrscheinlichkeit sind sich alle ehrlichen Benutzer auf denselben Block Br, T r+1 \(\leq\) einig T r + (6Lr + 10)\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Die Eigenschaften 1–3 gelten durch Anwendung der Lemmata 5.2 und 5.3 auf r = 0 und auf den Induktionsschritt. Schließlich, Wir formulieren Eigenschaft 4 als das folgende Lemma, das in Abschnitt 5.9 bewiesen wurde. Lemma 5.4. Gegeben sind die Eigenschaften 1–3 für jede Runde vor r, ph = h2(1 + h −h2) für Lr und die Anführer \(\ell\)r ist mit Wahrscheinlichkeit mindestens ph ehrlich. Kombiniert man die oben genannten drei Lemmata miteinander, gilt Satz 5.1. ■ Das folgende Lemma gibt mehrere wichtige Eigenschaften der Runde r bei gegebener Induktivität an Hypothese und wird in den Beweisen der oben genannten drei Lemmata verwendet. Lemma 5.5. Gehen Sie davon aus, dass die Eigenschaften 1–3 für Runde r −1 gelten. Für jeden Schritt s \(\geq\)1 der Runde r und Jeder ehrliche Verifizierer i \(\in\)HSV r,s, das haben wir (a) \(\alpha\)r,s ich \(\in\)Ir; (b) wenn Spieler i eine Zeitspanne ts gewartet hat, dann \(\beta\)r,s ich \(\in\)[T r + ts, T r + \(\lambda\) + ts] für r > 0 und \(\beta\)r,s ich = ts für r = 0; und (c) Wenn Spieler i eine Zeitspanne ts gewartet hat, dann nach der Zeit \(\beta\)r,s i , er hat alle Nachrichten erhalten gesendet von allen ehrlichen Verifizierern j \(\in\)HSV r,s′ für alle Schritte s′ < s. Darüber hinaus haben wir das für jeden Schritt s \(\geq\)3 (d) es gibt keine zwei verschiedenen Spieler i, i′ \(\in\)SV r,s und zwei verschiedene Werte v, v′ derselben Länge, so dass beide Spieler eine Zeitspanne ts gewartet haben, mehr als 2/3 aller gültige Nachrichten mr,s−1 j Spieler, den ich erhalte, haben für v unterschrieben, und mehr als 2/3 aller gültigen Nachrichten mr,s−1 j Spieler i′ erhält, hat für v′ unterschrieben. Nachweisen. Eigenschaft (a) folgt direkt aus der Induktionshypothese, da Spieler i Br−1 im kennt Zeitintervall Ir und beginnt sofort mit seinen eigenen Schritten. Eigenschaft (b) folgt direkt aus (a): da Spieler i hat eine gewisse Zeit ts gewartet, bevor er gehandelt hat, \(\beta\)r,s ich = \(\alpha\)r,s ich + ts. Beachten Sie, dass \(\alpha\)r,s ich = 0 für r = 0. Wir beweisen nun Eigenschaft (c). Wenn s = 2, dann gilt nach Eigenschaft (b) für alle Verifizierer j \(\in\)HSV r,1 \(\beta\)r,s ich = \(\alpha\)r,s ich + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Da jeder Prüfer j \(\in\)HSV r,1 seine Nachricht zum Zeitpunkt \(\beta\)r,1 sendet j und die Botschaft erreicht alle ehrlich Benutzer in höchstens Λ Zeit, nach Zeit \(\beta\)r,s ich Player Ich habe die von allen Verifizierern gesendeten Nachrichten erhalten HSV r,1 nach Wunsch. Wenn s > 2, dann ist ts = ts−1 + 2\(\lambda\). Nach Eigenschaft (b) gilt für alle Schritte s′ < s und alle Verifizierer j \(\in\)HSV r,s′, \(\beta\)r,s ich = \(\alpha\)r,s ich + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ j + \(\lambda\). Da jeder Prüfer j \(\in\)HSV r,s′ seine Nachricht zum Zeitpunkt \(\beta\)r,s′ sendet j und die Botschaft erreicht alle ehrlich Benutzer in höchstens \(\lambda\) Zeit, nach Zeit \(\beta\)r,s ich Spieler, ich habe alle Nachrichten erhalten, die von allen ehrlichen Prüfern gesendet wurden im HSV r,s′ für alle s′ < s. Somit gilt Eigenschaft (c). Abschließend beweisen wir Eigenschaft (d). Beachten Sie, dass die Verifizierer j \(\in\)SV r,s−1 höchstens zwei Dinge unterschreiben Schritt s −1 unter Verwendung ihrer ephemeren geheimen Schlüssel: ein Wert vj mit der gleichen Länge wie die Ausgabe des hash-Funktion und auch ein Bit bj \(\in\){0, 1}, wenn s −1 \(\geq\)4. Deshalb in der Aussage des Lemmas wir erfordern, dass v und v′ die gleiche Länge haben: Viele Prüfer haben möglicherweise beide einen hash-Wert signiert v und ein Bit b, also überschreiten beide die 2/3-Schwelle. Nehmen Sie aus Gründen der Widersprüchlichkeit an, dass es die gewünschten Verifizierer i, i′ und die Werte v, v′ gibt. Beachten Sie, dass einige böswillige Verifizierer in MSV r,s−1 möglicherweise sowohl v als auch v′ signiert haben, aber alle ehrlich Prüfer im HSV r,s−1 hat höchstens einen davon unterzeichnet. Nach Eigenschaft (c) haben sowohl i als auch i′ erhalten Alle Nachrichten, die von allen ehrlichen Verifizierern im HSV r,s−1 gesendet werden. Sei HSV r,s−1(v) die Menge der ehrlichen (r, s −1)-Verifizierer, die v signiert haben, MSV r,s−1 ich das Set von böswilligen (r, s −1)-Verifizierern, von denen ich eine gültige Nachricht erhalten habe, und MSV r,s−1 ich (v) die Teilmenge von MSV r,s−1 ich Von wem ich eine gültige Nachrichtensignatur erhalten habe v. Durch die Anforderungen für i und v, wir haben Verhältnis \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 ich (v)| |HSV r,s−1| + |MSV r,s−1 ich |
2 3. (1) Wir zeigen zuerst |MSV r,s−1 ich (v)| \(\leq\)|HSV r,s−1(v)|. (2) Wenn man aufgrund der Beziehungen zwischen den Parametern mit überwältigender Wahrscheinlichkeit etwas anderes annimmt |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 ich |, also Verhältnis < |HSV r,s−1(v)| + |MSV r,s−1 ich (v)| 3|MSV r,s−1 ich | < 2|MSV r,s−1 ich (v)| 3|MSV r,s−1 ich | \(\leq\)2 3, widersprüchliche Ungleichung 1. Als nächstes haben wir nach Ungleichung 1 2|HSV r,s−1| + 2|MSV r,s−1 ich | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 ich (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 ich | + |MSV r,s−1 ich (v)|. In Kombination mit Ungleichung 2, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 ich (v)| \(\leq\)4|HSV r,s−1(v)|, was impliziert |HSV r,s−1(v)| > 1 2|HSV r,s−1|.In ähnlicher Weise gilt aufgrund der Anforderungen für i′ und v′ |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. Da ein ehrlicher Verifizierer j \(\in\)HSV r,s−1 seinen ephemeren geheimen Schlüssel skr,s−1 zerstört j vor der Vermehrung In seiner Botschaft kann der Gegner die Signatur von j nicht für einen Wert fälschen, den j nicht signiert hat lernen, dass j ein Verifizierer ist. Somit implizieren die beiden obigen Ungleichungen |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|, ein Widerspruch. Dementsprechend existieren die gewünschten i, i′, v, v′ nicht, und Eigenschaft (d) gilt. ■ 5.7 Das Vollständigkeitslemma Lemma 5.2. [Vollständigkeitslemma, angepasst] Unter der Annahme, dass die Eigenschaften 1–3 für Runde r−1 gelten, wenn der Anführer ist mit überwältigender Wahrscheinlichkeit ehrlich, • Alle ehrlichen Benutzer stimmen dem gleichen Block Br zu, der von \(\ell\)r erzeugt wird und ein Maximum enthält Gehaltssatz, den \(\ell\)r zum Zeitpunkt \(\alpha\)r,1 erhalten hat \(\ell\)r \(\in\)Ir; und • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Nachweisen. Nach der Induktionshypothese und Lemma 5.5 gilt für jeden Schritt s und Verifizierer i \(\in\)HSV r,s, \(\alpha\)r,s ich \(\in\)Ir. Nachfolgend analysieren wir das Protokoll Schritt für Schritt. Schritt 1. Per Definition verbreitet jeder ehrliche Verifizierer i \(\in\)HSV r,1 die gewünschte Nachricht mr,1 ich bei Zeit \(\beta\)r,1 ich = \(\alpha\)r,1 ich, wo Herr,1 ich = (Br ich, esigi(H(Br i )), \(\sigma\)r,1 ich), Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)), und ZAHLEN r i ist eine maximale Auszahlungsmenge aller Zahlungen, die ich bis zum Zeitpunkt \(\alpha\)r,1 gesehen habe ich . Schritt 2. Legen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,2 fest. Nach Lemma 5.5, wenn Spieler i fertig ist Warten zum Zeitpunkt \(\beta\)r,2 ich = \(\alpha\)r,2 ich + t2 hat er alle von Verifizierern in HSV r,1 gesendeten Nachrichten erhalten, einschließlich Herr,1 \(\ell\)r . Nach der Definition von \(\ell\)r gibt es in PKr−k keinen anderen Spieler, dessen Anmeldeinformationen hash sind. Wert ist kleiner als H(\(\sigma\)r,1 \(\ell\)r ). Natürlich kann der Gegner \(\ell\)r korrumpieren, nachdem er gesehen hat, dass H(\(\sigma\)r,1 \(\ell\)r ) ist sehr klein, aber zu diesem Zeitpunkt hat Spieler \(\ell\)r seinen kurzlebigen Schlüssel und die Nachricht mr,1 zerstört \(\ell\)r wurde propagiert. Daher setzt der Verifizierer seinen eigenen Anführer als Spieler \(\ell\)r. Dementsprechend zum Zeitpunkt \(\beta\)r,2 ich, Verifizierer propagiert mr,2 ich = (ESIGi(v′ i), \(\sigma\)r,2 i), wobei v′ i = H(Br \(\ell\)r). Wenn r = 0, der einzige Unterschied ist das \(\beta\)r,2 ich = t2 anstatt in einem Bereich zu liegen. Ähnliches lässt sich für zukünftige Schritte und uns sagen Ich werde sie nicht noch einmal betonen. Schritt 3. Legen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,3 fest. Nach Lemma 5.5, wenn Spieler i fertig ist Warten zum Zeitpunkt \(\beta\)r,3 ich = \(\alpha\)r,3 ich + t3 hat er alle von Verifizierern in HSV r,2 gesendeten Nachrichten erhalten. Aufgrund der Beziehungen zwischen den Parametern mit überwältigender Wahrscheinlichkeit |HSV r,2| > 2|MSV r,2|. Darüber hinaus würde kein ehrlicher Prüfer widersprüchliche Botschaften unterzeichnen, und zwar den Widersacher Die Unterschrift eines ehrlichen Prüfers kann nicht gefälscht werden, nachdem dieser seine Korrespondenz vernichtet hat vergänglicher geheimer Schlüssel. Somit stammen mehr als 2/3 aller gültigen (r, 2)-Nachrichten, die ich erhalten habe, von ehrliche Prüfer und der Form mr,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), ohne Widerspruch. Dementsprechend zum Zeitpunkt \(\beta\)r,3 ich Spieler, den ich mr,3 propagiere ich = (ESIGi(v′), \(\sigma\)r,3 i ), wobei v′ = H(Br \(\ell\)r).Schritt 4. Bestimmen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,4. Nach Lemma 5.5 hat Spieler i alles erhalten Nachrichten, die von Verifizierern in HSV r,3 gesendet werden, wenn er zum Zeitpunkt \(\beta\)r,4 mit dem Warten fertig ist ich = \(\alpha\)r,4 ich + t4. Ähnlich wie Schritt 3: Mehr als 2/3 aller gültigen (r, 3)-Nachrichten, die ich erhalten habe, stammen von ehrlichen Verifizierern und der Form mr,3 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j). Dementsprechend setzt Spieler i vi = H(Br \(\ell\)r), gi = 2 und bi = 0. Zum Zeitpunkt \(\beta\)r,4 ich = \(\alpha\)r,4 ich +t4 propagiert er Herr,4 ich = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 ich). Schritt 5. Legen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,5 fest. Nach Lemma 5.5 hätte Spieler ich hat alle von den Verifizierern in HSV r,4 gesendeten Nachrichten erhalten, wenn er bis zum Zeitpunkt \(\alpha\)r,5 gewartet hat ich + t5. Beachten Sie das |HSV r,4| \(\geq\)tH.19 Beachten Sie außerdem, dass alle Prüfer in HSV r,4 für H(Br.) unterschrieben haben \(\ell\)r). Als |MSV r,4| < tH, es existiert kein v′ ̸= H(Br \(\ell\)r), die von tH hätte unterzeichnet werden können Verifizierer in SV r,4 (die notwendigerweise böswillig wären), sodass Spieler i nicht aufhört, bevor er es getan hat Ich habe die gültigen Nachrichten erhalten, Herr,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j). Sei T die Zeit, wann Letzteres geschieht. Einige dieser Nachrichten stammen möglicherweise von böswilligen Spielern, aber weil |MSV r,4| < tH, mindestens einer davon stammt von einem ehrlichen Prüfer im HSV r,4 und wird nach einiger Zeit gesendet T r + t4. Dementsprechend ist T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, und bis zur Zeit T hat Spieler i auch erhalten die Nachricht Herr,1 \(\ell\)r . Aufgrund der Konstruktion des Protokolls stoppt Spieler i zum Zeitpunkt \(\beta\)r,5 ich = T ohne irgendetwas verbreiten; setzt Br = Br \(\ell\)r; und setzt sein eigenes CERT r auf die Menge der (r, 4)-Nachrichten für 0 und H(Br \(\ell\)r), die er erhalten hat. Schritt s > 5. In ähnlicher Weise hätte ich für jeden Schritt s > 5 und jeden Verifizierer i \(\in\)HSV r,s den Spieler i alle von den Verifizierern in HSV r,4 gesendeten Nachrichten erhalten, wenn er bis zum Zeitpunkt \(\alpha\)r,s gewartet hat ich + ts. Durch die Dieselbe Analyse, Spieler i stoppt, ohne etwas zu verbreiten, und setzt Br = Br \(\ell\)r (und seine eigenen einstellen CERT r ordnungsgemäß). Natürlich dürfen die böswilligen Verifizierer nicht aufhören und sich willkürlich verbreiten Nachrichten, sondern weil |MSV r,s| < tH, durch Induktion konnte kein anderes v′ von den Verifizierern signiert werden in jedem Schritt 4 \(\leq\)s′ < s, die ehrlichen Verifizierer hören also nur auf, weil sie das Gültige erhalten haben (r, 4)-Nachrichten für 0 und H(Br \(\ell\)r). Rekonstruktion des Round-r-Blocks. Die Analyse von Schritt 5 gilt für eine generische Ehrlichkeit Benutzer i fast ohne Änderung. Tatsächlich beginnt Spieler i seine eigene Runde r im Intervall Ir und stoppt erst zu einem Zeitpunkt T, wenn er tH gültige (r, 4)-Nachrichten für H(Br.) erhalten hat \(\ell\)r). Wieder weil Mindestens eine dieser Nachrichten stammt von ehrlichen Prüfern und wird nach der Zeit T r + t4 gesendet, die Spieler i hat erhielt auch mr,1 \(\ell\)r durch die Zeit T. Somit setzt er Br = Br \(\ell\)r mit dem richtigen CERT r. Es bleibt nur noch zu zeigen, dass alle ehrlichen Benutzer ihre Runde r innerhalb des Zeitintervalls Ir+1 beenden. Durch die Analyse von Schritt 5 kennt jeder ehrliche Verifizierer i \(\in\)HSV r,5 Br am oder vor \(\alpha\)r,5 ich + t5 \(\leq\) T r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. Da T r+1 der Zeitpunkt ist, zu dem der erste ehrliche Benutzer ir Br kennt, haben wir T r+1 \(\leq\)T r + 8\(\lambda\) + Λ wie gewünscht. Darüber hinaus hat der Spieler, wenn er Br kennt, bereits dabei geholfen, die Nachrichten zu verbreiten sein CERT r. Beachten Sie, dass alle diese Nachrichten innerhalb der Zeit \(\lambda\) von allen ehrlichen Benutzern empfangen werden, auch wenn 19 Streng genommen geschieht dies mit sehr hoher Wahrscheinlichkeit, aber nicht unbedingt mit überwältigender Wahrscheinlichkeit. Allerdings ist dies Die Wahrscheinlichkeit wirkt sich geringfügig auf die Laufzeit des Protokolls aus, hat jedoch keinen Einfluss auf seine Richtigkeit. Wenn h = 80 %, dann |HSV r,4| \(\geq\)tH mit Wahrscheinlichkeit 1 −10−8. Wenn dieses Ereignis nicht eintritt, wird das Protokoll für ein anderes fortgesetzt 3 Schritte. Da die Wahrscheinlichkeit, dass dies nicht in zwei Schritten geschieht, vernachlässigbar ist, endet das Protokoll bei Schritt 8 Erwartungsgemäß beträgt die Anzahl der erforderlichen Schritte also fast 5.Spieler ir waren der erste Spieler, der sie propagierte. Darüber hinaus haben wir nach der obigen Analyse T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, also haben alle ehrlichen Benutzer mr,1 erhalten \(\ell\)r durch die Zeit T r+1 + \(\lambda\). Dementsprechend Alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Schließlich gilt für r = 0 tatsächlich T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ. Alles zusammen kombinieren, Es gilt Lemma 5.2. ■ 5.8 Das Soliditäts-Lemma Lemma 5.3. [Gesundheits-Lemma, angepasst] Unter der Annahme, dass die Eigenschaften 1–3 für Runde r −1 gelten, wenn Der Anführer \(\ell\) ist böswillig, mit überwältigender Wahrscheinlichkeit stimmen alle ehrlichen Benutzer dem gleichen Block zu Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Nachweisen. Wir betrachten die beiden Teile des Protokolls, GC und BBA⋆, getrennt. GC. Nach der induktiven Hypothese und nach Lemma 5.5, für jeden Schritt s \(\in\){2, 3, 4} und jeden ehrlichen Verifizierer i \(\in\)HSV r,s, wenn Spieler i zum Zeitpunkt \(\beta\)r,s agiert ich = \(\alpha\)r,s ich + ts, er hat alle gesendeten Nachrichten erhalten von allen ehrlichen Prüfern in den Schritten s′ < s. Für Schritt 4 unterscheiden wir zwei mögliche Fälle. Fall 1. Kein Verifizierer i \(\in\)HSV r,4 setzt gi = 2. In diesem Fall gilt per Definition bi = 1 für alle Verifizierer i \(\in\)HSV r,4. Das heißt, sie beginnen mit einem Vereinbarung über 1 im binären BA-Protokoll. Sie haben möglicherweise keine Einigung über ihre Vis, aber das spielt keine Rolle, wie wir im binären BA sehen werden. Fall 2. Es gibt einen Verifizierer ˆi \(\in\)HSV r,4 mit gˆi = 2. In diesem Fall zeigen wir das (1) gi \(\geq\)1 für alle i \(\in\)HSV r,4, (2) Es gibt einen Wert v′ mit vi = v′ für alle i \(\in\)HSV r,4 und (3) Es existiert eine gültige Nachricht mr,1 \(\ell\) von einem Verifizierer \(\ell\) \(\in\)SV r,1 mit v′ = H(Br \(\ell\)). Da Spieler ˆi ehrlich ist und gˆi = 2 setzt, sind tatsächlich mehr als 2/3 aller gültigen Nachrichten mr,3 j er hat are für den gleichen Wert v′ ̸= \(\bot\) erhalten, und er hat vˆi = v′ gesetzt. Nach Eigenschaft (d) in Lemma 5.5 kann es für jeden anderen ehrlichen (r, 4)-Verifizierer i nicht mehr sein als 2/3 aller gültigen Nachrichten mr,3 j die i′ erhalten hat, sind für den gleichen Wert v′′ ̸= v′. Wenn i dementsprechend gi = 2 setzt, muss es sein, dass ich auch > 2/3 Mehrheit für v′ gesehen und gesetzt habe vi = v′, wie gewünscht. Betrachten Sie nun einen beliebigen Verifizierer i \(\in\)HSV r,4 mit gi < 2. Ähnlich wie bei der Analyse von Property (d) in Lemma 5.5, weil Spieler ˆi > 2/3 Mehrheit für v′ gesehen hat, mehr als 1 2|HSV r,3| ehrlich (r, 3)-Verifizierer haben v′ signiert. Weil ich alle Nachrichten von ehrlichen (r, 3)-Verifizierern von erhalten habe Zeit \(\beta\)r,4 ich = \(\alpha\)r,4 ich + t4, er hat insbesondere mehr als 1 erhalten 2|HSV r,3| Nachrichten von ihnen für v′. Weil |HSV r,3| > 2|MSV r,3|, i hat > 1/3 Mehrheit für v′ gesehen. Dementsprechend, Spieler i setzt gi = 1 und Eigenschaft (1) gilt. Setzt Spieler i unbedingt vi = v′? Angenommen, es gibt einen anderen Wert v′′ ̸= \(\bot\)so dass Spieler i hat auch > 1/3 Mehrheit für v'' gesehen. Einige dieser Nachrichten könnten von böswilligen Absendern stammen Prüfer, aber mindestens einer von ihnen stammt von einem ehrlichen Prüfer j \(\in\)HSV r,3: tatsächlich, weil |HSV r,3| > 2|MSV r,3| und ich habe alle Nachrichten von HSV r,3 erhalten, der Schadsoftware Verifizierer, von denen ich eine gültige (r, 3)-Nachricht erhalten habe, zählen < 1/3 aller gültigen Nachrichten, die er erhalten hat.Per Definition muss Spieler j > 2/3 Mehrheit für v'' unter allen gültigen (r, 2)-Nachrichten gesehen haben er hat erhalten. Wir haben jedoch bereits festgestellt, dass einige andere ehrliche (r, 3)-Verifizierer dies gesehen haben 2/3 Mehrheit für v′ (weil sie v′ unterzeichnet haben). Aufgrund der Eigenschaft (d) von Lemma 5.5 ist dies nicht möglich passieren und ein solcher Wert v'' existiert nicht. Somit muss Spieler i wie gewünscht vi = v′ gesetzt haben, und Eigenschaft (2) gilt. Angesichts der Tatsache, dass einige ehrliche (r, 3)-Prüfer eine Mehrheit von > 2/3 für v′ gesehen haben, sind einige (eigentlich) Mehr als die Hälfte der ehrlichen (r, 2)-Verifizierer haben für v′ unterschrieben und ihre Botschaften verbreitet. Durch die Konstruktion des Protokolls müssen diese ehrlichen (r, 2)-Verifizierer eine gültige Gültigkeit erhalten haben Nachricht an Herrn,1 \(\ell\) von irgendeinem Spieler \(\ell\) \(\in\)SV r,1 mit v′ = H(Br \(\ell\)), daher gilt Eigenschaft (3). BBA⋆. Wir unterscheiden wieder zwei Fälle. Fall 1. Alle Verifizierer i \(\in\)HSV r,4 haben bi = 1. Dies geschieht nach Fall 1 von GC. Als |MSV r,4| < tH, in diesem Fall kein Prüfer im SV r,5 könnte die gültigen (r, 4)-Nachrichten für Bit 0 sammeln oder generieren. Daher kein ehrlicher Verifizierer im HSV r,5 würde aufhören, weil er einen nicht leeren Block Br kennt. Darüber hinaus erfüllt s′ = 5 nicht, obwohl es mindestens tH gültige (r, 4)-Nachrichten für Bit 1 gibt s′ −2 ≡1 mod 3, daher würde kein ehrlicher Verifizierer im HSV r,5 aufhören, weil er Br = Br weiß ǫ. Stattdessen agiert jeder Prüfer i \(\in\)HSV r,5 zum Zeitpunkt \(\beta\)r,5 ich = \(\alpha\)r,5 ich + t5, bis er alles erhalten hat Von HSV r,4 gesendete Nachrichten gemäß Lemma 5.5. Somit hat Spieler, den ich gesehen habe, > 2/3 Mehrheit für 1 und setzt bi = 1. In Schritt 6, der ein Coin-Fixed-To-1-Schritt ist, erfüllt dort s′ −2 ≡0 mod 3, obwohl s′ = 5 Es existieren keine gültigen (r, 4)-Nachrichten für Bit 0, daher würde kein Verifizierer im HSV r,6 anhalten, weil er kennt einen nicht leeren Block Br. Mit s′ = 6 ist jedoch s′ −2 ≡1 mod 3 und es existiert |HSV r,5| \(\geq\)tH gültige (r, 5)-Nachrichten für Bit 1 von HSV r,5. Für jeden Verifizierer i \(\in\)HSV r,6, gemäß Lemma 5.5, zum oder vor dem Zeitpunkt \(\alpha\)r,6 ich + t6 Spieler i hat alle Nachrichten von HSV r,5 erhalten, daher stoppt i, ohne etwas weiterzugeben, und setzt Br = Br ǫ. Sein CERT r ist die Menge der gültigen (r, 5)-Nachrichten mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) von ihm empfangen, wenn er anhält. Lassen Sie den Spieler als Nächstes entweder ein ehrlicher Prüfer in einem Schritt s > 6 oder ein allgemeiner ehrlicher Benutzer sein (d. h. Nichtprüfer). Ähnlich wie beim Beweis von Lemma 5.2 setzt Spieler i Br = Br ǫ und legt sein eigenes fest CERT r soll die Menge der gültigen (r, 5)-Nachrichten mr,5 sein j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) er hat erhalten. Schließlich, ähnlich wie in Lemma 5.2, T r+1 \(\leq\) min i\(\in\)HSV r,6 \(\alpha\)r,6 ich + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1, denn der erste ehrliche Benutzer ist wer weiß, dass Br dabei geholfen hat, die (r, 5)-Nachrichten in seinem CERT r zu verbreiten. Fall 2. Es existiert ein Verifizierer ˆi \(\in\)HSV r,4 mit bˆi = 0. Dies geschieht im Anschluss an Fall 2 von GC und ist der komplexere Fall. Durch die Analyse von GC, in diesem Fall liegt eine gültige Nachricht mr,1 vor \(\ell\) so dass vi = H(Br \(\ell\)) für alle i \(\in\)HSV r,4. Hinweis dass die Prüfer im HSV r,4 möglicherweise keine Einigung über ihre Bi’s haben. Für jeden Schritt s \(\in\){5, . . . , m + 3} und Verifier i \(\in\)HSV r,s, nach Lemma 5.5 Spieler hätte ich hat alle von allen ehrlichen Verifizierern in HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 gesendeten Nachrichten erhalten, wenn er gewartet hat für die Zeit ts.Wir betrachten nun das folgende Ereignis E: Es gibt einen Schritt s∗\(\geq\)5, so dass zum ersten Mal Zeit in der binären BA sollte ein Spieler i∗\(\in\)SV r,s∗ (egal ob böswillig oder ehrlich) aufhören ohne etwas zu verbreiten. Wir verwenden „sollte aufhören“, um die Tatsache hervorzuheben, dass, wenn Spieler i∗ böswillig ist, dann darf er so tun, als ob er nicht protokollarisch aufhören dürfe und Botschaften nach Wahl des Gegners verbreiten. Darüber hinaus auch durch die Konstruktion des Protokolls (E.a) i∗ist in der Lage, mindestens die gültigen Nachrichten mr,s′−1 zu sammeln oder zu generieren j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) für dasselbe v und s′, mit 5 \(\leq\)s′ \(\leq\)s∗und s′ −2 ≡0 mod 3; oder (E.b) i∗ist in der Lage, mindestens die gültigen Nachrichten mr,s′−1 zu sammeln oder zu generieren j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) für dasselbe s′, mit 6 \(\leq\)s′ \(\leq\)s∗und s′ −2 ≡1 mod 3. Denn die ehrlichen (r, s′ −1)-Nachrichten werden von allen ehrlichen (r, s′)-Verifizierern vor ihnen empfangen sind mit dem Warten in Schritt s′ fertig, und weil der Gegner alles spätestens am erhält Ehrliche Benutzer, ohne Beschränkung der Allgemeinheit gilt s′ = s∗und Spieler i∗ ist bösartig. Beachten Sie das wir brauchten nicht, dass der Wert v in E.a der hash eines gültigen Blocks ist: wie noch deutlich wird in der Analyse ist v = H(Br \(\ell\)) in diesem Unterereignis. Im Folgenden analysieren wir zunächst Fall 2 nach Ereignis E und zeigen dann, dass der Wert von s∗ im Wesentlichen ist entsprechend auf Lr verteilt (also geschieht Ereignis E vor Schritt m + 3 mit Überwältigung). Wahrscheinlichkeit angesichts der Beziehungen für Parameter). Zunächst gilt für jeden Schritt 5 \(\leq\)s < s∗: Jeder ehrliche Verifizierer i \(\in\)HSV r,s hat die Zeit ts abgewartet und vi als Mehrheitsvotum der gesetzt gültige (r, s−1)-Nachrichten, die er erhalten hat. Seit Spieler i habe ich alle ehrlichen (r, s−1)-Nachrichten erhalten nach Lemma 5.5, da alle ehrlichen Verifizierer in HSV r,4 H(Br.) unterzeichnet haben \(\ell\)) folgenden Fall 2 von GC, und da |HSV r,s−1| > 2|MSV r,s−1| für jedes s haben wir per Induktion diesen Spieler i eingestellt hat vi = H(Br \(\ell\)). Das Gleiche gilt für jeden ehrlichen Verifizierer i \(\in\)HSV r,s∗, der nicht aufhört, ohne zu propagieren irgendetwas. Nun betrachten wir Schritt s∗ und unterscheiden vier Unterfälle. Fall 2.1.a. Das Ereignis E.a tritt ein und es gibt einen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗, der das tun sollte auch aufhören, ohne etwas zu verbreiten. In diesem Fall gilt s∗−2 ≡0 mod 3 und Schritt s∗ ist ein Coin-Fixed-To-0-Schritt. Von Definition: Spieler i′ hat mindestens tH gültige (r, s∗−1)-Nachrichten der Form erhalten (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). Da alle Verifizierer in HSV r,s∗−1 H(Br.) signiert haben \(\ell\)) und |MSV r,s∗−1| < tH, wir haben v = H(Br \(\ell\)). Da mindestens tH −|MSV r,s∗−1| \(\geq\)1 der von i′ empfangenen (r, s∗−1)-Nachrichten für 0 und v werden von Verifizierern in HSV r,s∗−1 nach der Zeit T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 gesendet \(\ell\) +Λ, Spieler i′ hat mr,1 erhalten \(\ell\) bis er diese (r, s∗−1)-Nachrichten erhält. Also Spieler i′ bleibt stehen, ohne etwas zu verbreiten; setzt Br = Br \(\ell\); und setzt sein eigenes CERT r auf das Menge gültiger (r, s∗−1)-Nachrichten für 0 und v, die er empfangen hat. Als nächstes zeigen wir, dass jeder andere Verifizierer i \(\in\)HSV r,s∗ entweder mit Br = Br gestoppt hat \(\ell\), oder hat bi = 0 gesetzt und propagiert (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s ich). In der Tat, weil Schritt s∗ Es ist das erste Mal, dass ein Verifizierer anhält, ohne etwas zu verbreiten, aber das ist nicht der Fall Es gibt einen Schritt s′ < s∗mit s′ −2 ≡1 mod 3, sodass tH (r, s′ −1)-Verifizierer das Vorzeichen 1 haben. Dementsprechend stoppt kein Verifizierer im HSV r,s∗mit Br = Br ǫ.Darüber hinaus gilt, dass alle ehrlichen Prüfer in den Schritten {4, 5, . . . , s∗−1} haben das Vorzeichen H(Br \(\ell\)) gibt es Es gibt keinen Schritt s′ \(\leq\)s∗mit s′ −2 ≡0 mod 3, sodass tH (r, s′ −1)-Verifizierer vorzeichenbehaftet sind einige v′′ ̸= H(Br \(\ell\)) – tatsächlich |MSV r,s′−1| < tH. Dementsprechend stoppt kein Verifizierer im HSV r,s∗ mit Br ̸= Br ǫ und Br ̸= Br \(\ell\). Das heißt, wenn ein Spieler i \(\in\)HSV r,s∗ ohne angehalten hat Wenn er etwas propagiert, muss er Br = Br gesetzt haben \(\ell\). Wenn ein Spieler i \(\in\)HSV r,s∗die Zeit ts∗abgewartet und zur Zeit eine Nachricht verbreitet hat \(\beta\)r,s∗ ich = \(\alpha\)r,s∗ ich + ts∗, er hat alle Nachrichten vom HSV r,s∗−1 erhalten, darunter mindestens tH −|MSV r,s∗−1| davon für 0 und v. Wenn ich > 2/3 Mehrheit für 1 gesehen habe, dann er hat mehr als 2(tH −|MSV r,s∗−1|) gültige (r, s∗−1)-Nachrichten für 1 gesehen, mit mehr als 2tH −3|MSV r,s∗−1| davon von ehrlichen (r, s∗−1)-Verifizierern. Dies impliziert jedoch |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, widersprüchlich die Tatsache, dass |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n, was sich aus den Beziehungen für die Parameter ergibt. Dementsprechend sehe ich nicht > 2/3 Mehrheit für 1, und er setzt bi = 0, weil Schritt s∗ ein Coin-Fixed-To-0-Schritt ist. So wie wir es getan haben gesehen, vi = H(Br \(\ell\)). Somit propagiert i (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) wie wir es wollten zeigen. Für Schritt s∗+ 1, da Spieler i′ dabei geholfen hat, die Nachrichten in seinem CERT r zu verbreiten am oder vor der Zeit \(\alpha\)r,s∗ ich‘ + ts∗, alle ehrlichen Prüfer im HSV r,s∗+1 haben mindestens erhalten tH gültige (r, s∗−1)-Nachrichten für Bit 0 und Wert H(Br \(\ell\)) am oder bevor sie fertig sind warten. Darüber hinaus werden Verifizierer in HSV r,s∗+1 nicht aufhören, bevor sie diese (r, s∗−1)- erhalten. Nachrichten, da keine anderen gültigen (r, s′ −1)-Nachrichten für Bit 1 mit existieren s′ −2 ≡1 mod 3 und 6 \(\leq\)s′ \(\leq\)s∗+ 1, nach der Definition von Schritt s∗. Insbesondere Step s∗+ 1 selbst ist ein Coin-Fixed-To-1-Schritt, aber kein ehrlicher Verifizierer im HSV r,s∗hat sich verbreitet eine Nachricht für 1 und |MSV r,s∗| < tH. Somit stoppen alle ehrlichen Verifizierer im HSV r,s∗+1, ohne etwas zu propagieren, und setzen Br = Br \(\ell\): wie zuvor haben sie mr,1 erhalten \(\ell\) bevor sie die gewünschten (r, s∗−1)-Nachrichten erhalten.20 Das Gleiche gilt für alle ehrlichen Prüfer in zukünftigen Schritten und alle ehrlichen Benutzer im Allgemeinen. Insbesondere wissen sie alle, dass Br = Br ist \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\) \(\alpha\)r,s∗ ich‘ + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Fall 2.1.b. Das Ereignis E.b tritt ein und es gibt einen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗, der das tun sollte auch aufhören, ohne etwas zu verbreiten. In diesem Fall haben wir s∗−2 ≡1 mod 3 und Schritt s∗ ist ein Coin-Fixed-To-1-Schritt. Die Analyse ähnelt Fall 2.1.a und viele Details wurden weggelassen. 20Wenn er böswillig ist, könnte er Herrn1 aussenden \(\ell\) zu spät, in der Hoffnung, dass einige ehrliche Benutzer/Prüfer mr,1 nicht erhalten haben \(\ell\) noch wenn sie dafür das gewünschte Zertifikat erhalten. Da der Verifizierer ˆi \(\in\)HSV r,4 jedoch bˆi = 0 und vˆi = H(Br \(\ell\)), wie bevor wir wissen, dass mehr als die Hälfte der ehrlichen Verifizierer i \(\in\)HSV r,3 vi = H(Br \(\ell\)). Dies impliziert noch mehr mehr als die Hälfte der ehrlichen Verifizierer i \(\in\)HSV r,2 haben vi = H(Br \(\ell\)), und diese (r, 2)-Verifizierer haben alle mr,1 erhalten \(\ell\). Als die Der Gegner kann einen Verifizierer nicht von einem Nichtverifizierer unterscheiden, er kann die Ausbreitung von mr,1 nicht ins Visier nehmen \(\ell\) zu (r, 2)-Verifizierern ohne dass die Nichtprüfer es sehen. Tatsächlich ist mit hoher Wahrscheinlichkeit mehr als die Hälfte (oder ein guter konstanter Bruchteil) aller ehrlichen Benutzer haben mr,1 gesehen \(\ell\) nachdem sie vom Beginn ihrer eigenen Runde r an auf t2 gewartet haben. Von hier an ist die Zeit \(\lambda\)′, die für mr,1 benötigt wird \(\ell\) um die verbleibenden ehrlichen Benutzer zu erreichen, ist viel kleiner als Λ, und der Einfachheit halber tun wir dies nicht Schreiben Sie es in der Analyse auf. Wenn 4\(\lambda\) \(\geq\) \(\lambda\)′, dann wird die Analyse ohne jegliche Änderung durchgeführt: am Ende von Schritt 4 alle Ehrliche Benutzer hätten mr,1 erhalten \(\ell\). Wenn die Größe des Blocks enorm wird und 4\(\lambda\) < \(\lambda\)′, dann in den Schritten 3 und 4: Das Protokoll könnte jeden Prüfer auffordern, auf \(\lambda\)′/2 statt auf 2\(\lambda\) zu warten, und die Analyse bleibt bestehen.Wie zuvor muss Spieler i′ mindestens tH gültige (r, s∗−1)-Nachrichten der Form erhalten haben (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Auch hier gibt es aufgrund der Definition von s∗ keine Stufe 5 \(\leq\)s′ < s∗mit s′ −2 ≡0 mod 3, wobei mindestens tH (r, s′ −1)-Verifizierer 0 vorzeichenbehaftet haben und das gleiche v. Somit stoppt Spieler i′, ohne etwas zu propagieren; setzt Br = Br ǫ; und Sets sein eigenes CERT r sei die Menge der gültigen (r, s∗−1)-Nachrichten für Bit 1, die er empfangen hat. Darüber hinaus hat jeder andere Verifizierer i \(\in\)HSV r,s∗ entweder mit Br = Br aufgehört ǫ , oder hat bi = gesetzt 1 und propagiert (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ ich ). Seit Spieler i′ bei der Verbreitung mitgeholfen hat die (r, s∗−1)-Nachrichten in seinem CERT r nach Zeit \(\alpha\)r,s∗ ich‘ + ts∗, wieder alle ehrlichen Prüfer drin HSV r,s∗+1 stoppt, ohne etwas zu propagieren, und setzt Br = Br ǫ . Ebenso alles ehrlich Benutzer wissen, dass Br = Br ist ǫ innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\) \(\alpha\)r,s∗ ich‘ + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Fall 2.2.a. Das Ereignis E.a tritt ein und es gibt keinen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗who sollte auch aufhören, ohne etwas zu verbreiten. Beachten Sie in diesem Fall, dass Spieler i∗ über ein gültiges CERT r verfügen könnte i∗bestehend aus dem gewünschten tH (r, s∗−1)-Nachrichten, die der Gegner sammeln oder generieren kann. Allerdings ist das böswillig Prüfer helfen möglicherweise nicht dabei, diese Botschaften zu verbreiten, daher können wir nicht zu dem Schluss kommen, dass dies ehrlich ist Benutzer erhalten sie rechtzeitig \(\lambda\). Tatsächlich ist |MSV r,s∗−1| dieser Nachrichten stammen möglicherweise von böswillige (r, s∗−1)-Verifizierer, die ihre Nachrichten überhaupt nicht verbreiteten, sondern nur verschickten sie an die böswilligen Verifizierer in Schritt s∗ weiter. Ähnlich wie in Fall 2.1.a gilt hier s∗−2 ≡0 mod 3, Schritt s∗ist ein Coin-Fixed-To-0-Schritt, und die (r, s∗−1)-Nachrichten in CERT r i∗are für Bit 0 und v = H(Br \(\ell\)). In der Tat, alles ehrlich (r, s∗−1)-Verifizierer signieren v, daher kann der Gegner keine gültigen (r, s∗−1)-Nachrichten generieren für ein anderes v′. Darüber hinaus haben alle ehrlichen (r, s∗)-Verifizierer die Zeit ts∗ abgewartet und sehen keine > 2/3 Mehrheit für Bit 1, wiederum weil |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Also jeder ehrliche Prüfer i \(\in\)HSV r,s∗sets bi = 0, vi = H(Br \(\ell\)) mit Stimmenmehrheit und propagiert mr,s∗ ich = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ ich ) zum Zeitpunkt \(\alpha\)r,s∗ ich + ts∗. Betrachten Sie nun die ehrlichen Verifizierer in Schritt s∗+ 1 (was ein Coin-Fixed-To-1-Schritt ist). Wenn die Der Gegner sendet die Nachrichten tatsächlich in CERT r i∗zu einigen von ihnen und veranlasst sie dazu Stopp, dann ähnlich wie in Fall 2.1.a, alle ehrlichen Benutzer wissen Br = Br \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. Ansonsten haben alle ehrlichen Verifizierer in Schritt s∗+1 alle (r, s∗)-Nachrichten für 0 und erhalten H(Br \(\ell\)) aus HSV r,s∗nach Wartezeit ts∗+1, was zu > 2/3 Mehrheit führt, weil |HSV r,s∗| > 2|MSV r,s∗|. Somit verbreiten alle Verifizierer im HSV r,s∗+1 ihre Nachrichten für 0 und H(Br \(\ell\)) entsprechend. Beachten Sie, dass die Verifizierer in HSV r,s∗+1 nicht mit Br = Br aufhören \(\ell\), weil Schritt s∗+ 1 kein Coin-Fixed-To-0-Schritt ist. Betrachten Sie nun die ehrlichen Verifizierer in Schritt s∗+2 (bei dem es sich um einen Coin-Echt-Flipped-Schritt handelt). Wenn der Gegner die Nachrichten in CERT r sendet i∗zu einigen von ihnen und bringt sie zum Anhalten, Andererseits wissen alle ehrlichen Benutzer, dass Br = Br ist \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.Ansonsten haben alle ehrlichen Prüfer in Schritt s∗+ 2 alle (r, s∗+ 1)-Nachrichten für erhalten 0 und H(Br \(\ell\)) aus HSV r,s∗+1 nach Wartezeit ts∗+2, was zu > 2/3 Mehrheit führt. Somit verbreiten sie alle ihre Botschaften für 0 und H(Br \(\ell\)) dementsprechend: das tun sie in diesem Fall nicht „eine Münze werfen“. Beachten Sie erneut, dass sie nicht aufhören, ohne sich zu verbreiten. weil Schritt s∗+ 2 kein Coin-Fixed-To-0-Schritt ist. Schließlich für die ehrlichen Verifizierer in Schritt s∗+3 (was ein weiterer Coin-Fixed-To-0-Schritt ist): alle von ihnen hätten mindestens die gültigen Nachrichten für 0 und H(Br.) erhalten \(\ell\)) aus HSV s∗+2, wenn sie wirklich die Zeit ts∗+3 warten. Also, ob der Gegner die Nachrichten sendet oder nicht in CERT r i∗zu jedem von ihnen stoppen alle Verifizierer in HSV r,s∗+3 mit Br = Br \(\ell\), ohne irgendetwas verbreiten. Abhängig davon, wie sich der Gegner verhält, kann es sein, dass einige von ihnen dies tun ihr eigenes CERT r bestehend aus diesen (r, s∗−1)-Nachrichten in CERT r i∗, und die anderen haben ihr eigenes CERT r bestehend aus diesen (r, s∗+ 2)-Nachrichten. Auf jeden Fall alle ehrlichen Nutzer weiß Br = Br \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Fall 2.2.b. Ereignis E.b tritt ein und es gibt keinen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗who sollte auch aufhören, ohne etwas zu verbreiten. Die Analyse in diesem Fall ähnelt der in Fall 2.1.b und Fall 2.2.a, daher viele Details wurden weggelassen. Insbesondere CERT r i∗besteht aus den tH gewünschten (r, s∗−1)-Nachrichten für Bit 1, das der Gegner sammeln oder erzeugen kann, s∗−2 ≡1 mod 3, Schritt s∗ist a Coin-Fixed-To-1-Schritt, und kein ehrlicher (r, s∗)-Verifizierer hätte > 2/3 Mehrheit für 0 sehen können. Somit setzt jeder Verifizierer i \(\in\)HSV r,s∗ bi = 1 und propagiert mr,s∗ ich = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ ich ) zum Zeitpunkt \(\alpha\)r,s∗ ich + ts∗. Ähnlich wie in Fall 2.2.a, in höchstens 3 weiteren Schritten (d. h. dem Protokoll erreicht Schritt s∗+3, was ein weiterer Coin-Fixed-To-1-Schritt ist), wissen alle ehrlichen Benutzer, dass Br = Br ist ǫ innerhalb des Zeitintervalls Ir+1. Darüber hinaus kann T r+1 \(\leq\)T r+\(\lambda\)+ts∗+1 oder \(\leq\)T r+\(\lambda\)+ts∗+2 sein, oder \(\leq\)T r + \(\lambda\) + ts∗+3, je nachdem, wann ein ehrlicher Prüfer zum ersten Mal in der Lage ist, aufzuhören ohne sich zu verbreiten. Durch die Kombination der vier Unterfälle haben wir festgestellt, dass alle ehrlichen Benutzer Br innerhalb des Zeitintervalls kennen Ir+1, mit T r+1 \(\leq\)T r + \(\lambda\) + ts∗in den Fällen 2.1.a und 2.1.b, und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 in den Fällen 2.2.a und 2.2.b. Es bleibt die Obergrenze von s∗ und damit T r+1 für Fall 2, und wir tun dies, indem wir überlegen, wie Oftmals werden die Coin-Genuinely-Flipped-Schritte tatsächlich im Protokoll ausgeführt: das heißt, Einige ehrliche Prüfer haben tatsächlich eine Münze geworfen. Legen Sie insbesondere willkürlich einen Coin-Echt-umgedrehten Schritt s′ fest (d. h. 7 \(\leq\) s′ \(\leq\) m + 2 und s′ −2 ≡2 mod 3) und sei \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j ). Nehmen wir zunächst an, dass s′ < s∗, denn sonst wirft kein ehrlicher Verifizierer in Schritt s′ tatsächlich eine Münze, heißt es weiter oben Diskussionen. Nach der Definition von SV r,s′−1 ist der hash-Wert des Berechtigungsnachweises von \(\ell\)′ auch der kleinste unter ihnen alle Benutzer in PKr−k. Da es sich bei der Funktion hash um eine zufällige Funktion oracle handelt, ist Spieler \(\ell\)′ im Idealfall ehrlich Wahrscheinlichkeit mindestens h. Wie wir später zeigen werden, auch wenn der Gegner sein Bestes versucht, das vorherzusagen Ausgabe des Zufalls oracle und Neigung der Wahrscheinlichkeit, Spieler \(\ell\)′ ist immer noch ehrlich mit der Wahrscheinlichkeitmindestens ph = h2(1 + h −h2). Im Folgenden betrachten wir den Fall, in dem dies tatsächlich geschieht: Das heißt, \(\ell\)′ \(\in\)HSV r,s′−1. Beachten Sie, dass jeder ehrliche Verifizierer i \(\in\)HSV r,s′ alle Nachrichten von HSV r,s′−1 bis erhalten hat Zeit \(\alpha\)r,s′ ich + ts′. Wenn Spieler i eine Münze werfen muss (d. h. er hat nicht mehr als 2/3 Mehrheit dafür gesehen). das gleiche Bit b \(\in\){0, 1}), dann setzt er bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). Wenn es einen anderen Ehrlichen gibt Verifizierer i′ \(\in\)HSV r,s′, der > 2/3 Mehrheit für ein Bit b \(\in\){0, 1} gesehen hat, dann durch Eigenschaft (d) von Lemma 5.5 hätte kein ehrlicher Verifizierer im HSV r,s′ eine Zeit lang eine Mehrheit von > 2/3 gesehen b′ ̸= b. Da lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b mit Wahrscheinlichkeit 1/2, alle ehrlichen Prüfer im HSV r,s′ erreichen eine Übereinstimmung über b mit Wahrscheinlichkeit 1/2. Wenn ein solcher Verifizierer i′ nicht existiert, dann natürlich alle Ehrliche Verifizierer in HSV r,s′ sind sich über das Bit lsb(H(\(\sigma\)r,s′−1) einig \(\ell\)′ )) mit Wahrscheinlichkeit 1. Wenn wir die Wahrscheinlichkeit für \(\ell\)′ \(\in\)HSV r,s′−1 kombinieren, erhalten wir, dass die ehrlichen Verifizierer in HSV r,s′ eine Einigung über ein Bit b \(\in\){0, 1} mit einer Wahrscheinlichkeit von mindestens ph erzielen 2 = h2(1+h−h2) 2 . Darüber hinaus durch Induktion auf der Mehrheitsabstimmung wie zuvor haben alle ehrlichen Verifizierer im HSV r,s′ ihre vi’s festgelegt sein H(Br \(\ell\)). Sobald also in Schritt s′ eine Einigung über b erzielt wird, ist T r+1 entweder \(\leq\)T r + \(\lambda\) + ts′+1 oder \(\leq\)T r + \(\lambda\) + ts′+2, abhängig davon, ob b = 0 oder b = 1, entsprechend der Analyse der Fälle 2.1.a und 2.1.b. In Insbesondere wird kein weiterer Coin-Genuinely-Flipped-Schritt ausgeführt: das heißt, die Verifizierer in Solche Schritte überprüfen immer noch, ob sie die Verifizierer sind, und warten daher, aber ohne sie werden sie alle aufhören irgendetwas verbreiten. Dementsprechend wird vor Schritt s∗ die Anzahl der Ausführungen der Coin-GenuinelyFlipped-Schritte entsprechend der Zufallsvariablen Lr verteilt. Schritt s′ vermieten laut Lr der letzte Coin-Echt-Flipped-Schritt bei der Konstruktion des Protokolls sein wir haben s′ = 4 + 3Lr. Wann sollte der Gegner den Schritt durchführen, wenn er T r+1 so lange verzögern möchte möglich? Wir können sogar davon ausgehen, dass der Gegner die Verwirklichung von Lr im Voraus kennt. Wenn s∗> s′, dann ist es nutzlos, weil sich die ehrlichen Prüfer bereits geeinigt haben Schritt s′. Natürlich wäre s∗ in diesem Fall s′ +1 oder s′ +2, wiederum abhängig davon, ob b = 0 oder b = 1. Dies trifft jedoch tatsächlich auf die Fälle 2.1.a und 2.1.b zu, und das resultierende T r+1 ist genau das das Gleiche wie in diesem Fall. Genauer gesagt, T r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. Wenn s∗< s′ −3 – das heißt, s∗ liegt vor dem vorletzten Coin-Echt-Flipped-Schritt – dann durch die Analyse der Fälle 2.2.a und 2.2.b, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. Das heißt, der Gegner sorgt tatsächlich dafür, dass die Vereinbarung über Br schneller zustande kommt. Wenn s∗= s′ −2 oder s′ −1 – also der Coin-Fixed-To-0-Schritt oder der Coin-Fixed-To-1-Schritt unmittelbar vor Schritt s′ – dann durch die Analyse der vier Unterfälle die ehrlichen Prüfer in Schritte s′ können keine Münzen mehr werfen, weil sie entweder angehalten haben, ohne sich fortzupflanzen, oder > 2/3 Mehrheit für das gleiche Bit gesehen haben b. Deshalb haben wir T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.Zusammenfassend lässt sich sagen, dass wir, egal was s∗ ist, haben T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = T r + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = T r + (6Lr + 10)\(\lambda\) + Λ, wie wir zeigen wollten. Der schlimmste Fall ist, wenn s∗= s′ −1 und Fall 2.2.b eintritt. Durch die Kombination der Fälle 1 und 2 des binären BA-Protokolls gilt Lemma 5.3. ■ 5.9 Sicherheit des Seed Qr und Wahrscheinlichkeit eines ehrlichen Führers Es bleibt Lemma 5.4 zu beweisen. Denken Sie daran, dass die Verifizierer in Runde r aus PKr−k und stammen werden entsprechend der Größe Qr−1 gewählt. Der Grund für die Einführung des Lookback-Parameters k Ziel ist es, sicherzustellen, dass der Gegner in der Runde r −k in der Lage ist, neue böswillige Benutzer hinzuzufügen zu PKr−k kann er die Größe Qr−1 nur mit vernachlässigbarer Wahrscheinlichkeit vorhersagen. Beachten Sie, dass die Die Funktion hash ist eine zufällige Funktion oracle und Qr−1 ist eine ihrer Eingaben bei der Auswahl von Verifizierern für Runde r. Unabhängig davon, wie böswillig Benutzer zu PKr-k hinzugefügt werden, gilt dies aus Sicht des Gegners für jeden Einer von ihnen wird immer noch als Verifizierer in einem Schritt der Runde r mit der erforderlichen Wahrscheinlichkeit p (oder) ausgewählt p1 für Schritt 1). Genauer gesagt haben wir das folgende Lemma. Lemma 5.6. Mit k = O(log1/2 F), für jede Runde r, mit überwältigender Wahrscheinlichkeit der Gegner hat Qr−1 in der Runde r −k nicht an den Zufallsgenerator oracle abgefragt. Nachweisen. Wir gehen per Induktion vor. Nehmen Sie an, dass der Gegner für jede Runde \(\gamma\) < r keine Abfrage durchgeführt hat Q\(\gamma\)−1 zum zufälligen oracle zurück in Runde \(\gamma\) −k.21 Betrachten Sie das folgende mentale Spiel, das von gespielt wird der Gegner in Runde r −k, der versucht, Qr−1 vorherzusagen. In Schritt 1 jeder Runde \(\gamma\) = r −k, . . . , r −1, gegeben ein spezifisches Q\(\gamma\)−1, das nicht an den Zufallsgenerator abgefragt wird oracle, indem die Spieler i \(\in\)PK\(\gamma\)−k gemäß den hash Werten H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) geordnet werden zunehmend erhalten wir eine zufällige Permutation über PK\(\gamma\)−k. Per Definition ist der Anführer \(\ell\) \(\gamma\) der erster Benutzer in der Permutation und ist ehrlich mit der Wahrscheinlichkeit h. Darüber hinaus, wenn PK\(\gamma\)−k groß ist Genug, für jede ganze Zahl x \(\geq\) 1, die Wahrscheinlichkeit, dass die ersten x Benutzer in der Permutation alle sind bösartig, aber der (x + 1)st ist ehrlich, ist (1 −h)xh. Wenn \(\ell\) \(\gamma\) ehrlich ist, dann ist Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Da der Gegner die Signatur nicht fälschen kann von \(\ell\) \(\gamma\) ist Q\(\gamma\) aus der Sicht des Gegners gleichmäßig und zufällig verteilt und, außer mit exponentiell kleiner Wahrscheinlichkeit22 wurde bei Runde r −k nicht nach H abgefragt. Da jeder Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 ist jeweils die Ausgabe von H mit Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 als einer der Eingänge, Für den Gegner sehen sie alle zufällig aus und der Gegner hätte Qr−1 nicht an H abfragen können rund r −k. Dementsprechend ist dies der einzige Fall, in dem der Gegner Qr−1 mit guter Wahrscheinlichkeit in der Runde vorhersagen kann r−k ist, wenn alle Anführer \(\ell\)r−k, . . . , \(\ell\)r−1 sind bösartig. Betrachten Sie erneut eine Runde \(\gamma\) \(\in\){r−k . . . , r−1} und die zufällige Permutation über PK\(\gamma\)−k, die durch die entsprechenden hash-Werte induziert wird. Wenn für einige x \(\geq\)2, die ersten x −1 Benutzer in der Permutation sind alle böswillig und der x-te ist ehrlich, dann ist der Der Gegner hat x mögliche Auswahlmöglichkeiten für Q\(\gamma\): entweder in der Form H(SIGi(Q\(\gamma\)−1, \(\gamma\))), wobei i eine davon ist 21Da k eine kleine ganze Zahl ist, kann man ohne Beschränkung der Allgemeinheit davon ausgehen, dass die ersten k Runden des Protokolls ausgeführt werden in einer sicheren Umgebung und die induktive Hypothese gilt für diese Runden. 22Das heißt, exponentiell in der Länge der Ausgabe von H. Beachten Sie, dass diese Wahrscheinlichkeit viel kleiner als F ist.die ersten x−1 böswilligen Benutzer, indem Spieler i zum eigentlichen Anführer der Runde \(\gamma\) gemacht wird; oder H(Q\(\gamma\)−1, \(\gamma\)), durch erzwingt B\(\gamma\) = B\(\gamma\) ǫ . Andernfalls ist der Anführer der Runde \(\gamma\) der erste ehrliche Benutzer in der Permutation und Qr−1 wird für den Gegner unvorhersehbar. Welche der oben genannten x Optionen von Q\(\gamma\) sollte der Gegner verfolgen? Um dem Gegner zu helfen Um diese Frage zu beantworten, machen wir ihn im mentalen Spiel tatsächlich mächtiger als er tatsächlich ist wie folgt. Erstens kann der Gegner in Wirklichkeit nicht den hash eines ehrlichen Benutzers berechnen Signatur, kann daher nicht für jedes Q\(\gamma\) die Anzahl x(Q\(\gamma\)) der böswilligen Benutzer zu Beginn bestimmen der zufälligen Permutation in Runde \(\gamma\) + 1, die durch Q\(\gamma\) induziert wird. Im mentalen Spiel geben wir ihm das Zahlen x(Q\(\gamma\)) kostenlos. Zweitens: In der Realität sind es alle ersten x Benutzer in der Permutation Böswillig zu sein bedeutet nicht unbedingt, dass sie alle zum Anführer gemacht werden können, denn die hash Werte ihrer Signaturen müssen ebenfalls kleiner als p1 sein. Wir haben diese Einschränkung im Mentalen ignoriert Spiel, was dem Gegner noch mehr Vorteile verschafft. Es ist leicht zu erkennen, dass im mentalen Spiel die optimale Option für den Gegner, bezeichnet mit ˆQ\(\gamma\), ist derjenige, der zu Beginn des Zufalls die längste Folge böswilliger Benutzer erzeugt Permutation in Runde \(\gamma\) + 1. Tatsächlich hängt das Protokoll bei einem bestimmten Q\(\gamma\) nicht von Q\(\gamma\)−1 ab mehr und der Gegner kann sich ausschließlich auf die neue Permutation in Runde \(\gamma\) + 1 konzentrieren, die das hat gleiche Verteilung für die Anzahl böswilliger Benutzer zu Beginn. Dementsprechend in jeder Runde \(\gamma\), das oben erwähnte ˆQ\(\gamma\) gibt ihm die größte Anzahl an Optionen für Q\(\gamma\)+1 und maximiert somit die Wahrscheinlichkeit, dass die aufeinanderfolgenden Anführer alle böswillig sind. Daher folgt der Gegner im mentalen Spiel einer Markov-Kette aus Runde r − k um r −1 zu runden, wobei der Zustandsraum {0} \(\cup\){x : x \(\geq\)2} ist. Zustand 0 stellt die Tatsache dar, dass die Der erste Benutzer in der zufälligen Permutation in der aktuellen Runde \(\gamma\) ist ehrlich, daher scheitert der Gegner Spiel zur Vorhersage von Qr−1; und jeder Zustand x \(\geq\)2 stellt die Tatsache dar, dass die ersten x −1 Benutzer im Permutationen sind bösartig und das x-te ist ehrlich, daher hat der Gegner x Optionen für Q\(\gamma\). Die Übergangswahrscheinlichkeiten P(x, y) sind wie folgt. • P(0, 0) = 1 und P(0, y) = 0 für jedes y \(\geq\)2. Das heißt, der Gegner scheitert beim ersten Mal am Spiel Der Benutzer in der Permutation wird ehrlich. • P(x, 0) = hx für jedes x \(\geq\)2. Das heißt, mit der Wahrscheinlichkeit hx haben alle x zufälligen Permutationen Da ihre ersten Benutzer ehrlich sind, scheitert der Gegner in der nächsten Runde am Spiel. • Für jedes x \(\geq\)2 und y \(\geq\)2 ist P(x, y) die Wahrscheinlichkeit, dass unter den x zufälligen Permutationen Induziert durch die x-Optionen von Q\(\gamma\), der längsten Sequenz böswilliger Benutzer zu Beginn einige davon sind y −1, daher hat der Gegner in der nächsten Runde y Optionen für Q\(\gamma\)+1. Das heißt, P(x, y) = y−1 X i=0 (1 −h)ih !x − y−2 X i=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Beachten Sie, dass Zustand 0 der einzige absorbierende Zustand in der Übergangsmatrix P und in jedem anderen Zustand ist x hat eine positive Wahrscheinlichkeit, gegen 0 zu gehen. Wir sind daran interessiert, die Zahl k von nach oben zu begrenzen Runden, die benötigt werden, damit die Markov-Kette mit überwältigender Wahrscheinlichkeit gegen 0 konvergiert: das heißt, nein Egal in welchem Zustand die Kette beginnt, mit überwältigender Wahrscheinlichkeit verliert der Gegner das Spiel und kann Qr−1 in der Runde r −k nicht vorhersagen. Betrachten Sie die Übergangsmatrix P (2) \(\triangleq\)P \(\cdot\) P nach zwei Runden. Es ist leicht zu erkennen, dass P (2)(0, 0) = 1 und P (2)(0, x) = 0 für jedes x \(\geq\)2. Für jedes x \(\geq\)2 und y \(\geq\)2 gilt, da P(0, y) = 0 P (2)(x, y) = P(x, 0)P(0, y) + X z\(\geq\)2 P(x, z)P(z, y) = X z\(\geq\)2 P(x, z)P(z, y).Wenn ¯h \(\triangleq\)1 −h gilt, gilt P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x und P (2)(x, y) = X z\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. Nachfolgend berechnen wir den Grenzwert von P (2)(x,y) P (x,y) wenn h auf 1 geht – das heißt, ¯h geht auf 0. Beachten Sie, dass die höchste Ordnung von ¯h in P(x, y) ist ¯hy−1, mit Koeffizient x. Dementsprechend lim h \(\to\) 1 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 P z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy x¯hy−1 = lim ¯h \(\to\) 0 2¯h = 0. Wenn h hinreichend nahe bei 1,23 liegt, haben wir P (2)(x, y) P(x, y) \(\leq\)1 2 für jedes x \(\geq\)2 und y \(\geq\)2. Nach Induktion gilt für jedes k > 2 P (k) \(\triangleq\)P k, so dass • P (k)(0, 0) = 1, P (k)(0, x) = 0 für jedes x \(\geq\)2 und • für jedes x \(\geq\)2 und y \(\geq\)2, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + X z\(\geq\)2 P (k−1)(x, z)P(z, y) = X z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) X z\(\geq\)2 P(x, z) 2k−2 \(\cdot\) P(z, y) = P (2)(x, y) 2k−2 \(\leq\)P(x, y) 2k−1 . Da P(x, y) \(\leq\)1 ist, ist die Übergangswahrscheinlichkeit in einen beliebigen Zustand y \(\geq\)2 nach 1−log2 F-Runden vernachlässigbar, beginnend mit einem beliebigen Zustand x \(\geq\)2. Obwohl es viele solcher Zustände gibt, ist das leicht zu erkennen lim y→+∞ P(x, y) P(x, y + 1) = lim y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = lim y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1 − Std. Daher nimmt jede Zeile x der Übergangsmatrix P als geometrische Folge mit der Rate ab 1 1−h > 2 wenn y groß genug ist, und das Gleiche gilt für P (k). Dementsprechend ist k aber immer noch groß genug in der Größenordnung von log1/2 F, P y\(\geq\)2 P (k)(x, y) < F für jedes x \(\geq\)2. Das heißt, mit überwältigender Wahrscheinlichkeit Der Gegner verliert das Spiel und kann Qr−1 in Runde r −k nicht vorhersagen. Für h \(\in\)(2/3, 1], ein mehr Eine komplexe Analyse zeigt, dass es eine Konstante C gibt, die etwas größer als 1/2 ist, sodass sie ausreicht um k = O(logC F) zu nehmen. Somit gilt Lemma 5.6. ■ Lemma 5.4. (angepasst) Gegebene Eigenschaften 1–3 für jede Runde vor r, ph = h2(1 + h −h2) für Lr, und der Anführer \(\ell\)r ist mit Wahrscheinlichkeit mindestens ph ehrlich. 23Zum Beispiel ist h = 80 %, wie aus der spezifischen Auswahl der Parameter hervorgeht.
Beweis. Nach Lemma 5.6 kann der Gegner Qr−1 nicht zurück zur Runde r −k vorhersagen, außer mit vernachlässigbare Wahrscheinlichkeit. Beachten Sie, dass dies nicht bedeutet, dass die Wahrscheinlichkeit eines ehrlichen Anführers h ist jede Runde. In der Tat, angesichts von Qr-1, abhängig davon, wie viele böswillige Benutzer zu Beginn vorhanden sind Durch die zufällige Permutation von PKr−k kann der Gegner mehr als eine Option für Qr und haben Dadurch kann die Wahrscheinlichkeit eines böswilligen Anführers in Runde r + 1 erhöht werden – wir geben ihn wiederum an einige unrealistische Vorteile wie in Lemma 5.6, um die Analyse zu vereinfachen. Allerdings gilt für jedes Qr−1, das vom Gegner in der Runde r −k nicht an H abgefragt wurde, für Jedes x \(\geq\)1, mit der Wahrscheinlichkeit (1 −h)x−1h, tritt der erste ehrliche Benutzer an Position x im Ergebnis auf zufällige Permutation von PKr−k. Wenn x = 1, beträgt die Wahrscheinlichkeit eines ehrlichen Anführers in Runde r + 1 tatsächlich h; Wenn hingegen x = 2, hat der Gegner zwei Optionen für Qr und die resultierende Wahrscheinlichkeit ist h2. Nur wenn wir diese beiden Fälle berücksichtigen, haben wir die Wahrscheinlichkeit eines ehrlichen Anführers in der Runde r + 1 ist mindestens h \(\cdot\) h + (1 − h)h \(\cdot\) h2 = h2(1 + h − h2) wie gewünscht. Beachten Sie, dass die obige Wahrscheinlichkeit nur die Zufälligkeit im Protokoll ab Runde r − k berücksichtigt r runden. Wenn die gesamte Zufälligkeit von Runde 0 bis Runde r berücksichtigt wird, ist Qr−1 noch weniger vorhersehbar für den Gegner und die Wahrscheinlichkeit eines ehrlichen Anführers in Runde r + 1 liegt bei mindestens h2(1 + h −h2). Ersetzt man r + 1 durch r und verschiebt alles um eine Runde zurück, den Anführer \(\ell\)r ist ehrlich mit einer Wahrscheinlichkeit von mindestens h2(1 + h − h2), wie gewünscht. In ähnlicher Weise ist in jedem Coin-Echt-Flipped-Schritt s der „Anführer“ dieses Schritts – das ist der Verifizierer in SV r,s, dessen Credential den kleinsten hash-Wert hat, ist mit einer Wahrscheinlichkeit von mindestens h2(1 +) ehrlich h − h2). Somit ist ph = h2(1 + h −h2) für Lr und es gilt Lemma 5.4. ■
Algorand ′
1 Bu bölümde, aşağıdaki varsayıma göre çalışan Algorand ′ versiyonunu oluşturuyoruz. Kullanıcıların Dürüst Çoğunluğu Varsayım: Her PKr'daki kullanıcıların 2/3'ünden fazlası dürüsttür. Bölüm 8'de yukarıdaki varsayımın istenen Dürüst Çoğunluk ile nasıl değiştirileceğini gösteriyoruz. Para varsayımı. 5.1 Ek Gösterimler ve Parametreler Gösterimler • m \(\in\)Z+: ikili BA protokolündeki maksimum adım sayısı, 3'ün katı. • Lr \(\leq\)m/3: 1'i görmek için gereken Bernoulli denemelerinin sayısını temsil eden rastgele bir değişken, her deneme ph olasılıkla 1 olduğunda 2 ve en fazla m/3 deneme var. Tüm denemeler başarısız olursa o zaman Lr \(\triangleq\)m/3. Lr, Br bloğunu oluşturmak için gereken sürenin üst sınırını belirlemek için kullanılacaktır. • tH = 2n 3+1: Protokolün bitiş koşullarında ihtiyaç duyulan imza sayısı. • CERT r: Br. sertifikası. Bu, H(Br)'nin uygun doğrulayıcılardan aldığı bir dizi imzadır. yuvarlak r. Parametreler • Çeşitli parametreler arasındaki ilişkiler. — r turundaki her adım için s > 1, n öyle seçilir ki, büyük bir olasılıkla, |HSV r,s| > 2|MSV r,s| ve |HSV r,s| + 4|MSV r,s| < 2n. h'nin değeri 1'e ne kadar yakınsa, n'nin o kadar küçük olması gerekir. Özellikle (varyantları) kullanıyoruz of) Chernoffistenen koşulların çok büyük bir olasılıkla gerçekleşmesini sağlamakla yükümlüdür. — m, ezici bir olasılıkla Lr < m/3 olacak şekilde seçilir. • Önemli parametrelerin örnek seçimleri. — F = 10−12. — n \(\approx\)1500, k = 40 ve m = 180.5.2 Algorand ′'de Geçici Anahtarların Uygulanması 1 Daha önce de belirtildiği gibi, bir i \(\in\)SV r,s doğrulayıcısının mesajını mr,s olarak dijital olarak imzalamasını dileriz. ben adımın r turunda, geçici bir genel anahtar pkr,s'ye göre i, geçici bir salgı anahtarı kullanarak skr,s ben bu kullandıktan hemen sonra yok eder. Bu nedenle, her kullanıcının bunu yapabilmesini sağlamak için etkili bir yönteme ihtiyacımız var. pkr,s'yi doğrulayın ben gerçekten de Bay'ın imzasını doğrulamak için kullanılacak anahtar ben. Bunu (en iyisine kadar) yapıyoruz bilgimiz dahilinde) kimlik tabanlı imza şemalarının yeni kullanımı. Yüksek düzeyde, böyle bir şemada, merkezi bir otorite A, genel bir ana anahtar olan PMK'yı üretir, ve karşılık gelen gizli ana anahtar SMK. U oyuncusunun kimliği verildiğinde, A şunu hesaplar: SMK aracılığıyla, U genel anahtarına göre gizli bir imza anahtarı skU'dur ve skU'yu özel olarak U. (Aslında kimlik tabanlı bir dijital imza şemasında, U kullanıcısının genel anahtarı U'nun kendisidir!) Bu şekilde A, etkinleştirmek istediği kullanıcıların gizli anahtarlarını hesapladıktan sonra SMK'yı yok ederse dijital imzalar üretiyorsa ve herhangi bir hesaplanmış gizli anahtarı tutmuyorsa, bu durumda bunu yapabilecek tek kişi U'dur. U genel anahtarına göre mesajları dijital olarak imzalayabilir. Böylece, "U'nun adını" bilen herkes, U'nun genel anahtarını otomatik olarak bilir ve böylece U'nun imzalarını doğrulayabilir (muhtemelen aynı zamanda genel ana anahtar PMK). Uygulamamızda, A otoritesi i kullanıcısıdır ve tüm olası kullanıcılar U kümesi, aşağıdakilerle çakışmaktadır: —diyelim— S = {i}\(\times\){r′, .'deki yuvarlak adım çifti (r, s). . . , r' +106}\(\times\){1, . . . , m+3}, burada r' belirli bir değerdir tur ve m + 3 bir turda gerçekleşebilecek adım sayısının üst sınırıdır. Bu yol, pkr,s ben \(\triangleq\)(i, r, s), böylece herkes i imzasını görür SIGr,s pkr,s ben (bay, s i) ezici bir şekilde yapabilirim olasılık, r'den sonraki ilk milyon tur için bunu hemen doğrulayın. Başka bir deyişle i ilk önce PMK ve SMK'yı üretir. Daha sonra PMK'nın benim efendim olduğunu duyurur herhangi bir r \(\in\)[r′, r′ + 106] turu için genel anahtardır ve sırrı özel olarak üretmek ve saklamak için SMK'yı kullanır anahtar skr,s ben her üçlü (i, r, s) \(\in\)S için. Bu yapıldıktan sonra SMK'yı yok eder. Eğer öyle olmadığına karar verirse SV r,s'nin bir kısmı, o zaman skr,s'yi bırakabilirim ben tek başına (protokol kimlik doğrulamasını gerektirmediğinden r) turunun Adım s'sindeki herhangi bir mesaj. Yoksa ilk önce skr,s kullanıyorum ben mesajını dijital olarak imzalamak için bay,s ben ve sonra skr,s'yi yok eder ben. Sisteme ilk girdiğinde onun ilk genel ana anahtarını açıklayabileceğimi unutmayın. Yani, i'yi sisteme getiren aynı ödeme \(\wp\) (r' turunda veya r'ye yakın bir turda), aynı zamanda i'nin isteği üzerine, herhangi bir r \(\in\)[r′, r′ + 106] turu için i'nin genel ana anahtarının PMK olduğunu belirtin — örneğin, ile (PMK, [r′, r′ + 106]) formunun bir çiftini içerir. Ayrıca m + 3 bir turdaki maksimum adım sayısı olduğundan, bir turun Bir dakikanızı alırsa, bu şekilde üretilen geçici anahtarların saklanması neredeyse iki yıl dayanacaktır. aynı zamanda Zamanla bu geçici gizli anahtarların üretilmesi çok uzun sürmeyecek. Eliptik eğri tabanlı bir yöntem kullanma 32B anahtarlı sistemde her gizli anahtar birkaç mikrosaniyede hesaplanır. Böylece m + 3 = 180 ise, daha sonra 180 milyon gizli anahtarın tümü bir saatten daha kısa bir sürede hesaplanabilir. Mevcut tur r′ + 106'ya yaklaştığında, sonraki milyon turu idare etmek için, i yeni bir (PMK′, SMK′) çifti oluşturur ve bir sonraki geçici anahtar zulasının ne olduğunu şu şekilde bildirir: —örneğin— SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1])'e sahip olmak yeni bir blok girer; ayrı bir "işlem" olarak veya bir ödemenin parçası olan bazı ek bilgiler olarak. Bunu yaparak, herkese i'nin geçici imzalarını doğrulamak için PMK′ kullanması gerektiğini bildiririm milyon tur. Ve benzeri. (Bu temel yaklaşımı takip ederek geçici anahtarları uygulamanın diğer yollarının kimlik tabanlı imzaların kullanılması kesinlikle mümkündür. Örneğin, Merkle trees.16 aracılığıyla) 16Bu yöntemde, genel-gizli bir anahtar çifti (pkr,s) oluşturuyorum ben, skr,s ben ) —diyelim— içindeki her yuvarlak adım çifti (r, s) içinGeçici anahtarları uygulamanın başka yolları da kesinlikle mümkündür; örneğin, Merkle trees yoluyla. 5.3 Algorand ′ Adımlarını Eşleştirme 1 BA'nınkilerle⋆ Söylediğimiz gibi Algorand ′'da bir tur 1'in en fazla m + 3 adımı vardır. Adım 1. Bu adımda, her potansiyel lider i kendi aday bloğu Br'yi hesaplar ve yayar. ben, kendi kimlik bilgisi ile birlikte, \(\sigma\)r,1 ben. Bu kimlik bilgilerinin açıkça i'yi tanımladığını hatırlayın. Bu böyledir çünkü \(\sigma\)r,1 ben \(\triangleq\)SIGi(r, 1, Qr−1). Potansiyel doğrulayıcı i aynı zamanda mesajının bir parçası olarak H(Br) dijital imzasını da yayar. ben). Bir ödeme veya kimlik bilgisi ile ilgili olmayan bu i imzası, onun geçici kamuya ilişkindir anahtar pkr,1 i: yani sigpkr'yi yayıyor,1 ben (H(Br ben)) Br'yi yaymak yerine geleneklerimiz göz önüne alındığında ben ve sigpkr,1 ben (H(Br ben )) o olabilirdi yayılan SIGpkr,1 ben (H(Br ben)) Ancak analizimizde açık erişime sahip olmamız gerekiyor. sigpkr,1 ben (H(Br ben)) Adım 2. Bu adımda her doğrulayıcı i, \(\ell\)r değerini ayarlar. hashed kimlik bilgilerine sahip potansiyel lider olacağım en küçüğüdür ve Br i \(\ell\)r tarafından önerilen blok olacağım ben. Verimlilik adına, Doğrudan Br üzerinde anlaşmak yerine H(Br) üzerinde anlaşmak istersem, onun vereceği mesajı yayarım BA⋆'nın ilk adımında v′ başlangıç değeriyle yayılır ben = H(Br ben). Yani v'yi yayıyor ben, tabii ki geçici olarak imzaladıktan sonra. (Yani, sağ geçici yasaya göre imzaladıktan sonra genel anahtar, bu durumda pkr,2 i.) Tabii ben de kendi kimlik bilgilerini aktarıyorum. BA⋆'ın ilk adımı dereceli konsensüs protokolü GC'nin ilk adımını oluşturduğundan, Adım Algorand ′'nin 2'si GC'nin ilk adımına karşılık gelir. Adımlar 3. Bu adımda, her i \(\in\)SV r,2 doğrulayıcısı BA⋆'nın ikinci adımını yürütür. Yani gönderiyor GC'nin ikinci adımında göndereceği mesajın aynısı. Tekrar ediyorum, i'nin mesajı geçicidir imzalı ve kimlik bilgilerim eşlik ediyor. (Bundan sonra, bir doğrulayıcının mesajını geçici olarak imzalar ve ayrıca kimliğini yayar.) Adım 4. Bu adımda, her i \(\in\)SV r,4 doğrulayıcısı GC (vi, gi) çıktısını hesaplar ve geçici olarak BA⋆'ın üçüncü adımında göndereceği mesajın aynısını imzalar ve gönderir. BBA⋆'nin ilk adımı; gi = 2 ise başlangıç biti 0, aksi halde 1'dir. Adım s = 5, . . . , m + 2. Böyle bir adıma ulaşılırsa, BA⋆'nın s −1 adımına karşılık gelir ve dolayısıyla BBA⋆'nın s −3 adımı. Yayılma modelimiz yeterince eşzamansız olduğundan, olasılığı hesaba katmalıyız. Böyle bir s adımının ortasında, onu kanıtlayan bilgi ile bir i \(\in\)SV r,s doğrulayıcısına ulaşılır. bu Br bloğu zaten seçilmiştir. Bu durumda, r turunun kendi yürütülmesini durdururum Algorand ′ ve yuvarlak (r + 1) talimatlarını yürütmeye başlar. {R', . . . , r' + 106} \(\times\) {1, . . . , m + 3}. Daha sonra bu genel anahtarları kanonik bir şekilde sipariş eder ve j'inci genel anahtarı saklar. Merkle tree'nin j'inci yaprağını anahtarlar ve halka açıkladığı Ri kök değerini hesaplar. İmzalamak istediğinde anahtar pkr,s ile ilgili bir mesaj ben i yalnızca gerçek imzayı sağlamakla kalmıyor, aynı zamanda pkr,s için kimlik doğrulama yolunu da sağlıyor ben Ri'ye göre. Bu kimlik doğrulama yolunun aynı zamanda pkr,s olduğunu da kanıtladığına dikkat edin. ben j'inci yaprakta saklanır. Geri kalanı Ayrıntılar kolayca doldurulabilir.Buna göre, bir doğrulayıcı i \(\in\)SV r,s'nin talimatları, karşılık gelen talimatlara ek olarak BBA⋆ Adım s −3'e, BBA⋆ uygulamasının daha önce durdurulup durdurulmadığının kontrol edilmesini içerir. Adım s'. BBA⋆ yalnızca 0'a Sabitlenmiş Para Adımı veya 1'e Sabitlenmiş Para Adımı olduğu için, talimatlar olup olmadığını ayırt eder A (Bitiş Durumu 0): s′ −2 ≡0 mod 3 veya B (Bitiş Durumu 1): s′ −2 ≡1 mod 3. Aslında A durumunda Br bloğu boş değildir ve dolayısıyla ek komutlar gereklidir. Br'yi uygun CERT r sertifikasıyla birlikte uygun şekilde yeniden yapılandırdığımdan emin olun. B durumunda, Br bloğu boştur ve bu nedenle i'ye Br = Br'yi ayarlaması talimatı verilir \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), ve CERT r'yi hesaplamak için. Adım s'nin yürütülmesi sırasında Br bloğunun zaten mevcut olduğuna dair herhangi bir kanıt göremezsem oluşturulduysa, BBA⋆ adım s −3'te göndereceği mesajın aynısını gönderir. Adım m + 3. Adım m + 3 sırasında i \(\in\)SV r,m+3, Br bloğunun zaten Bir önceki adımı attıktan sonra yukarıda açıklandığı gibi ilerler. Aksi takdirde, BBA⋆ adımında göndereceği mesajın aynısını göndermek yerine, i: elindeki bilgilere dayanarak Br'yi ve karşılık gelenini hesaplaması talimatı verildi CERT sertifikası r. Aslında bir turun toplam adım sayısını m + 3 artırdığımızı hatırlayın. 5.4 Gerçek Protokol Bir r turunun her s adımında, i \(\in\)SV r,s doğrulayıcısının uzun vadeli kamu-gizli anahtar çiftini kullandığını hatırlayın. kimlik bilgisini vermek için, \(\sigma\)r,s ben \(\triangleq\)SIGi(r, s, Qr−1) ve ayrıca SIGi Qr−1 s = 1 durumunda. Doğrulayıcı i geçici gizli anahtarı skr,s'yi kullanır ben (r, s) mesajını imzalamak için mr,s ben. Basitlik açısından, r ve s olduğunda açık, sigpkr,s yerine esigi(x) yazıyoruz i (x) i'nin bir değerin uygun geçici imzasını belirtmek için r turunun s adımında x'i yazın ve SIGpkr,s yerine ESIGi(x) yazın i(x) (i, x, esigi(x))'i belirtmek için. 1. Adım: Teklifi Engelleyin Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi Adım 1'ine başlar başlamaz başlar. Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i \(\in\)SV r,1 veya olup olmadığını kontrol eder. hayır. • Eğer i /\(\in\)SV r,1 ise, o zaman i, Adım 1'in kendi uygulamasını hemen durdurur. • Eğer i \(\in\)SV r,1 ise, yani i potansiyel bir liderse, o zaman yuvarlak r ödemelerini toplar. şu ana kadar kendisine dağıtılmıştır ve maksimum ödeme kümesi PAY r'yi hesaplar ben onlardanım. Sonra o “aday bloğunu” Br hesaplıyor i = (r, ÖDEME r i , SIGi(Qr−1), H(Br−1)). Sonunda hesap yapıyor mesaj bay1 ben = (Br ben , esigi(H(Br i)), \(\sigma\)r,1 i ), geçici gizli anahtarı skr'yi yok eder,1 ben ve sonra Bay,1'i yayıyor ben.Açıklama. Uygulamada, Adım 1'in genel uygulamasını kısaltmak için (r, 1)- önemlidir. Mesajlar seçici olarak yayılır. Yani sistemdeki her i kullanıcısı için ilk (r, 1)- Oyuncu i, aldığı ve başarıyla doğruladığı mesajı17 her zamanki gibi yayar. hepsi için i oyuncusunun aldığı ve başarılı bir şekilde doğruladığı diğer (r, 1)-mesajlarını yalnızca hash olması durumunda yayar içerdiği kimlik bilgilerinin değeri, içerdiği kimlik bilgilerinin hash değerleri arasında en küçüğüdür şu ana kadar aldığı ve başarıyla doğruladığı tüm (r, 1) mesajlarında. Ayrıca önerildiği gibi Georgios Vlachos'a göre, her potansiyel liderin aynı zamanda kendi itibarını \(\sigma\)r,1 yayması faydalıdır. ben ayrı ayrı: bu küçük mesajlar bloklardan daha hızlı yayılır, mr'nin zamanında yayılmasını sağlar1 j'nin içerilen kimlik bilgilerinin küçük hash değerlerine sahip olduğu, büyük hash değerlerine sahip olanların ise hızla kaybolur. Adım 2: Kademeli Konsensüs Protokolü GC'nin İlk Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi 2. Adımına başlar başlamaz Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i \(\in\)SV r,2 veya \(\in\)SV r,2 olup olmadığını kontrol eder. hayır. • Eğer i /\(\in\)SV r,2 ise o zaman i, Adım 2'nin kendi uygulamasını hemen durdurur. • Eğer i \(\in\)SV r,2 ise, t2 \(\triangleq\) \(\lambda\) + Λ kadar bir süre bekledikten sonra i aşağıdaki gibi hareket eder. 1. H(\(\sigma\)r,1) olacak şekilde \(\ell\) kullanıcısını bulur. \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) tüm kimlik bilgileri için \(\sigma\)r,1 j bunların bir parçası şu ana kadar aldığı başarıyla doğrulanmış (r, 1) mesajları.a 2. Eğer \(\ell\)'den geçerli bir mesaj almışsa mr,1 \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b sonra i ayarlıyorum v′ i \(\triangleq\)H(Br \(\ell\)); aksi takdirde v′'yi kurarım ben \(\triangleq\) \(\bot\). 3. mr,2 mesajını hesaplıyorum ben \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c geçici gizli anahtarını yok eder skr,2 i ve ardından mr,2'yi yayar ben. a Esasen, i kullanıcısı r. turun liderinin \(\ell\) kullanıcısı olduğuna özel olarak karar verir. bYine, oyuncu \(\ell\)'nin imzaları ve hashes başarıyla doğrulandı ve PAY r \(\ell\)Br'de \(\ell\) geçerli bir ödeme setidir yuvarlak r —ÖDEME r olup olmadığını kontrol etmeme rağmen \(\ell\), \(\ell\)veya değil için maksimumdur. cMesaj bay,2 ben v'yi düşündüğüm oyuncunun sinyalleri i sonraki bloğun hash'si olacağım veya sonraki bloğu dikkate alacağım bloğun boş olması. 17Yani, tüm imzalar doğru ve hem blok hem de bloğun hash geçerli —her ne kadar kontrol etmesem de Dahil edilen ödeme setinin teklif sahibi için maksimum olup olmadığı.
Adım 3: GC'nin İkinci Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi 3. Adımına başlar başlamaz Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i'nin \(\in\)SV r,3 veya olup olmadığını kontrol eder. hayır. • Eğer i /\(\in\)SV r,3 ise, o zaman i, Adım 3'ün kendi uygulamasını hemen durdurur. • Eğer i \(\in\)SV r,3 ise, t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ kadar bir süre bekledikten sonra i aşağıdaki gibi hareket eder. 1. Geçerli tüm mesajlar arasında mr,2 şeklinde bir v′ ̸= \(\bot\) değeri varsa j o aldı, bunların 2/3'ünden fazlası (ESIGj(v'), \(\sigma\)r,2 formundadır. j), herhangi bir çelişki olmaksızın,a sonra mesajı hesaplar bay,3 ben \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 ben). Aksi takdirde Bay,3'ü hesaplar. ben \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 ben). 2. Onun geçici gizli anahtarı olan skr'yi yok ediyorum,3 i ve ardından mr,3'ü yayar ben. aYani, sırasıyla ESIGj(v′) ve farklı bir ESIGj(v′′) içeren iki geçerli mesaj almamıştır, j oyuncusundan. Burada ve bundan sonra, daha sonra tanımlanacak Bitiş Koşulları dışında, dürüst bir oyuncunun Belirli bir formdaki mesajları istiyorsa, birbiriyle çelişen mesajlar asla sayılmaz veya geçerli sayılmaz.Adım 4: GC Çıktısı ve BBA'nın İlk Adımı⋆ Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi 4. Adımına başlar başlamaz başlar. Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i \(\in\)SV r,4 veya 4 olup olmadığını kontrol eder. hayır. • Eğer i /\(\in\)SV r,4 ise, o zaman i, 4. Adımın uygulanmasını hemen durdurur. • Eğer i \(\in\)SV r,4 ise, t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ kadar bir süre bekledikten sonra i aşağıdaki gibi hareket eder. 1. GC çıktısı olan vi ve gi'yi aşağıdaki gibi hesaplar. (a) Tüm geçerli mesajlar arasında mr,3 şeklinde bir v′ ̸= \(\bot\) değeri varsa j o var alınanların 2/3'ünden fazlası (ESIGj(v′), \(\sigma\)r,3 formundadır. j ), sonra ayarlar vi \(\triangleq\)v' ve gi \(\triangleq\)2. (b) Aksi takdirde, tüm geçerli mesajlar arasında v′ ̸= \(\bot\) değeri varsa bay,3 j aldığında bunların 1/3'ünden fazlası (ESIGj(v′), \(\sigma\)r,3 formundadır. o zaman vi \(\triangleq\)v′ ve gi \(\triangleq\)1.a'yı ayarlar (c) Aksi taktirde vi \(\triangleq\)H(Br) değerini verir. ϫ ) ve gi \(\triangleq\)0. 2. BBA⋆ girdisi olan bi'yi şu şekilde hesaplar: gi = 2 ise bi \(\triangleq\)0, aksi halde bi \(\triangleq\)1. 3. Mr,4 mesajını hesaplar ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), geçiciliğini yok eder gizli anahtar skr,4 i ve ardından mr,4'ü yayar ben. a(b) durumundaki v'nin, eğer varsa, benzersiz olması gerektiği kanıtlanabilir.
Adım s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: BBA⋆'nın 0'a Sabitlenmiş Madeni Para Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: i kullanıcısı r turunun kendi Adım s'sini başlatır Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i \(\in\)SV r,s olup olmadığını kontrol eder. • Eğer i /\(\in\)SV r,s ise, o zaman i, Adım s'yi kendi yürütmesini hemen durdurur. • Eğer i \(\in\)SV r,s ise aşağıdaki gibi hareket eder. – ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ süresi geçene kadar bekler. – Bitiş Koşulu 0: Böyle bir bekleme sırasında ve herhangi bir zamanda, dize v ̸= \(\bot\)ve bir adım s′ öyle ki (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 — yani Adım s', Paraya Sabitlenmiş 0 adımıdır, (b) en azından tH aldım = 2n 3 + 1 geçerli mesaj mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),a ve (c) geçerli bir mesaj aldım bay,1 j = (Br j , esigj(H(Br j)), \(\sigma\)r,1 j ) v = H(Br) ile ), daha sonra i, Adım s'yi (ve aslında r turunu) kendi yürütmesini hemen durdurur. herhangi bir şeyi yaymak; Br = Br'yi ayarlar j; ve kendi CERT r'sini mesaj kümesi olarak ayarlar bay,s'−1 j (b) alt adımının – Bitiş Koşulu 1: Bu tür bir bekleme sırasında ve herhangi bir zamanda, adım öyle ki (a') 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 — yani Adım s', Paraya Sabitlenmiş 1 adımıdır ve (b') i en azından geçerli mesajları aldım mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s'−1 j ),c daha sonra i, Adım s'yi (ve aslında r turunu) kendi yürütmesini hemen durdurur. herhangi bir şeyi yaymak; Br = Br'yi ayarlar ǫ ; ve kendi CERT r'sini mesaj kümesi olarak ayarlar bay,s'−1 j (b') alt adımının. – Aksi takdirde bekleme sonunda i kullanıcısı aşağıdaki işlemleri yapar. Tüm geçerli kararların ikinci bileşenlerinde vj'lerin çoğunluk oyu olarak vi'yi belirler. bay,s−1 j o aldı. Bi'yi aşağıdaki gibi hesaplıyor. Geçerli mr,s−1 sayısının 2/3'ünden fazlası ise j Aldığı formdadır (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra bi \(\triangleq\)0 değerini ayarlar. Aksi halde, geçerli mr,s−1 sayısının 2/3'ünden fazlası varsa j Aldığı formdadır (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra bi \(\triangleq\)1 değerini ayarlar. Aksi halde bi'yi \(\triangleq\)0 olarak belirler. Bay'ın mesajını hesaplıyor ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), geçiciliğini yok eder gizli anahtar skr,s i ve ardından mr,s'yi yayar ben. aJ oyuncusundan gelen böyle bir mesaj, i oyuncusu j imzasından da 1 için bir mesaj almış olsa bile sayılır. Bitiş Durumu 1 için de benzer şeyler. Analizde gösterildiği gibi bu, tüm dürüst kullanıcıların bilmesini sağlamak için yapılır. Br birbirinden \(\lambda\) süresi içinde. buser i artık Br'yi ve kendi yuvarlak r kaplamalarını biliyor. Genel bir kullanıcı olarak hâlâ mesajların yayılmasına yardımcı oluyor, ancak (r, s)-doğrulayıcısı olarak herhangi bir yayılımı başlatmaz. Özellikle, tüm mesajların kendi sitesinde yayılmasına yardımcı oldu. Protokolümüz için yeterli olan CERT r. Ayrıca ikili BA protokolü için bi \(\triangleq\)0 ayarlaması gerektiğini unutmayın, ancak bi bu durumda zaten gerekli değildir. Gelecekteki tüm talimatlar için benzer şeyler. cBu durumda vj'lerin ne olduğu önemli değildir.Adım s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: BBA⋆'nın 1'e Sabitlenmiş Madeni Para Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: i kullanıcısı r turunun kendi Adım s'sini başlatır Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i \(\in\)SV r,s veya olup olmadığını kontrol eder. hayır. • Eğer i /\(\in\)SV r,s ise, o zaman i, Adım s'yi kendi yürütmesini hemen durdurur. • Eğer i \(\in\)SV r,s ise aşağıdakileri yapar. – ts \(\triangleq\)(2s −3)\(\lambda\) + Λ süresi geçene kadar bekler. – Bitiş Koşulu 0: Coin-Fixed-To-0 adımlarıyla aynı talimatlar. – Bitiş Koşulu 1: Coin-Fixed-To-0 adımlarıyla aynı talimatlar. – Aksi takdirde bekleme sonunda i kullanıcısı aşağıdaki işlemleri yapar. Tüm geçerli kararların ikinci bileşenlerinde vj'lerin çoğunluk oyu olarak vi'yi belirler. bay,s−1 j o aldı. Bi'yi aşağıdaki gibi hesaplıyor. Geçerli mr,s−1 sayısının 2/3'ünden fazlası ise j Aldığı formdadır (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra bi \(\triangleq\)0 değerini ayarlar. Aksi halde, geçerli mr,s−1 sayısının 2/3'ünden fazlası varsa j Aldığı formdadır (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra bi \(\triangleq\)1 değerini ayarlar. Aksi takdirde bi \(\triangleq\)1 değerini alır. Bay'ın mesajını hesaplıyor ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), geçiciliğini yok eder gizli anahtar skr,s i ve ardından mr,s'yi yayar ben.
Adım s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: BBA⋆'nın Gerçekten Yazı-Para Çevirilmiş Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: i kullanıcısı r turunun kendi Adım s'sini başlatır Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i \(\in\)SV r,s veya olup olmadığını kontrol eder. hayır. • Eğer i /\(\in\)SV r,s ise, o zaman i, Adım s'yi kendi yürütmesini hemen durdurur. • Eğer i \(\in\)SV r,s ise aşağıdakileri yapar. – ts \(\triangleq\)(2s −3)\(\lambda\) + Λ süresi geçene kadar bekler. – Bitiş Koşulu 0: Coin-Fixed-To-0 adımlarıyla aynı talimatlar. – Bitiş Koşulu 1: Coin-Fixed-To-0 adımlarıyla aynı talimatlar. – Aksi takdirde bekleme sonunda i kullanıcısı aşağıdaki işlemleri yapar. Tüm geçerli kararların ikinci bileşenlerinde vj'lerin çoğunluk oyu olarak vi'yi belirler. bay,s−1 j o aldı. Bi'yi aşağıdaki gibi hesaplıyor. Geçerli mr,s−1 sayısının 2/3'ünden fazlası ise j Aldığı formdadır (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra bi \(\triangleq\)0 değerini ayarlar. Aksi halde, geçerli mr,s−1 sayısının 2/3'ünden fazlası varsa j Aldığı formdadır (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra bi \(\triangleq\)1 değerini ayarlar. Aksi halde SV r,s−1 olsun ben geçerli bir test aldığı (r, s −1) doğrulayıcıların kümesi olsun mesaj bay,s−1 j . bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1) değerini belirler. ben H(\(\sigma\)r,s−1 j )). Bay'ın mesajını hesaplıyor ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), geçiciliğini yok eder gizli anahtar skr,s i ve ardından mr,s'yi yayar ben.
Adım m + 3: BBA⋆a'nın Son Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi m + 3 Adımına başlar başlamaz başlar. Br−1'i biliyor. • Kullanıcı i, Br−1'in üçüncü bileşeninden Qr−1'i hesaplar ve i \(\in\)SV r,m+3 veya olup olmadığını kontrol eder. hayır. • Eğer i /\(\in\)SV r,m+3 ise, o zaman i, m + 3 Adımını kendi yürütmesini hemen durdurur. • Eğer i \(\in\)SV r,m+3 ise aşağıdakileri yapar. – tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ süresi geçene kadar bekler. – Bitiş Koşulu 0: Coin-Fixed-To-0 adımlarıyla aynı talimatlar. – Bitiş Koşulu 1: Coin-Fixed-To-0 adımlarıyla aynı talimatlar. – Aksi takdirde bekleme sonunda i kullanıcısı aşağıdaki işlemleri yapar. i \(\triangleq\)1 ve Br \(\triangleq\)Br'yi belirler ǫ. Bay,m+3 mesajını hesaplıyor ben = (ESIGi(outi), ESIGi(H(Br))), \(\sigma\)r,m+3 ben ), onu yok eder geçici gizli anahtar skr,m+3 ben , ve sonra mr,m+3'ü yayar ben Br.b'yi onaylamak için aÇok büyük olasılıkla BBA⋆ bu adımdan önce sona ermiştir ve bu adımı tamlık için belirledik. Adım m + 3'teki b sertifikasının ESIGi(outi) içermesi zorunlu değildir. Bunu yalnızca tekdüzelik amacıyla dahil ettik: Sertifikalar artık hangi adımda oluşturulduklarına bakılmaksızın tek tip bir formata sahip.Round-r Bloğunun Doğrulayıcı Olmayanlar Tarafından Yeniden İnşası Sistemdeki her i kullanıcısı için talimatlar: i kullanıcısı öğrenir öğrenmez kendi r turuna başlar Br−1 ve aşağıdaki gibi blok bilgisini bekler. – Eğer böyle bir bekleme sırasında ve herhangi bir zamanda bir v dizisi ve böyle bir s' adımı varsa bu (a) 5 \(\leq\)s′ \(\leq\)m + 3 ve s′ −2 ≡0 mod 3, (b) i en azından geçerli mesajları aldım mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) ve (c) geçerli bir mesaj aldım bay,1 j = (Br j , esigj(H(Br j)), \(\sigma\)r,1 j ) v = H(Br) ile ), daha sonra, r'yi kendi yürütmesini hemen durdururum; Br = Br'yi ayarlar j; ve kendi CERT r'sini ayarlar mesajların kümesi olacak mr,s′−1 j (b) alt adımının. – Böyle bir bekleme sırasında ve herhangi bir zamanda, şöyle bir s' adımı mevcutsa: (a’) 6 \(\leq\)s′ \(\leq\)m + 3 ile s′ −2 ≡1 mod 3 ve (b') i en azından geçerli mesajları aldım mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), daha sonra, r'yi kendi yürütmesini hemen durdururum; Br = Br'yi ayarlar ǫ; ve kendi CERT r'sini ayarlar mesajların kümesi olacak mr,s′−1 j (b') alt adımının. – Böyle bir bekleme sırasında veya herhangi bir zamanda en azından geçerli mesajları almışsam bay, e+3 j = (ESIGj(1), ESIGj(H(Br) ǫ )), \(\sigma\)r,m+3 j ), sonra r turunu kendi yürütmesini durduruyorum hemen Br = Br'yi ayarlar ǫ ve kendi CERT r'sini mr,m+3 mesaj kümesi olarak ayarlar j 1 için ve H(Br ǫ ). 5.5 Algorand ′ Analizi 1 Analizde kullanılan her r \(\geq\)0 turu için aşağıdaki gösterimleri sunuyoruz. • İlk dürüst kullanıcının Br−1'i bildiği zaman T r olsun. • Ir+1 [T r+1, T r+1 + \(\lambda\)] aralığı olsun. Protokolün başlatılmasıyla T 0 = 0 olduğuna dikkat edin. Her s \(\geq\)1 ve i \(\in\)SV r,s için şunu hatırlayın: \(\alpha\)r,s ben ve \(\beta\)r,s ben sırasıyla oyuncunun i adımının başlangıç zamanı ve bitiş zamanıdır. Üstelik, her 2 \(\leq\)s \(\leq\)m + 3 için ts = (2s −3)\(\lambda\) + Λ olduğunu hatırlayın. Ayrıca I0 \(\triangleq\){0} ve t1 \(\triangleq\)0 olsun. Son olarak, Lr \(\leq\)m/3'ün Bernoulli denemelerinin sayısını temsil eden rastgele bir değişken olduğunu hatırlayın. Her deneme ph olasılığıyla 1 olduğunda 1'i görmek gerekir 2 ve en fazla m/3 deneme var. Eğer hepsi denemeler başarısız olursa Lr \(\triangleq\)m/3 olur. Analizde hesaplama süresini göz ardı ediyoruz, çünkü aslında ihtiyaç duyulan zamana göre ihmal edilebilir düzeydedir. mesajları yaymak için. Her durumda, biraz daha büyük \(\lambda\) ve Λ kullanılarak hesaplama süresi doğrudan analize dahil edilmelidir. Aşağıdaki ifadelerin çoğu “ezici bir şekilde olasılık”tır ve bu gerçeği analizde tekrar tekrar vurgulayamayabiliriz.5.6 Ana Teorem Teorem 5.1. Aşağıdaki özellikler her r \(\geq\)0 turu için büyük olasılıkla geçerlidir: 1. Tüm dürüst kullanıcılar aynı blokta hemfikirdir Br. 2. Lider \(\ell\)r dürüst olduğunda, Br bloğu \(\ell\)r tarafından oluşturulur, Br bir maksimum kazanç seti içerir \(\ell\)r tarafından \(\alpha\)r,1 zamanına kadar alındı \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ ve tüm dürüst kullanıcılar zamanında Br'yi biliyor aralık Ir+1. 3. Lider \(\ell\)r kötü niyetli olduğunda T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ ve tüm dürüst kullanıcılar Br'yi bilir Ir+1 zaman aralığında. 4. Lr için ph = h2(1 + h −h2) ve lider \(\ell\)r en azından ph olasılığı konusunda dürüsttür. Ana teoremimizi kanıtlamadan önce iki açıklama yapalım. Notlar. • Blok Oluşturma ve Gerçek Gecikme. Br bloğunu oluşturma zamanı T r+1 −T r olarak tanımlanır. Yani, dürüst bir kullanıcının Br'yi ilk kez öğrenmesi ile Br'yi ilk kez öğrenmesi arasındaki fark olarak tanımlanır. İlk kez dürüst bir kullanıcı Br−1'i öğreniyor. Round-r lideri dürüst olduğunda, Mülk 2 bizim ana teorem, ne olursa olsun, Br'yi oluşturmak için tam zamanın 8\(\lambda\) + Λ zaman olduğunu garanti eder h'nin kesin değeri > 2/3 olabilir. Lider kötü niyetli olduğunda Özellik 3 şunu ima eder: Br'nin üretilmesi için beklenen süre ( 12) kadar üst sınıra tabidir ph + 10)\(\lambda\) + Λ, yine kesinlik ne olursa olsun h.18 değeri Ancak Br'nin üretilmesi için beklenen süre, h'nin kesin değerine bağlıdır. Aslında Özellik 4'e göre ph = h2(1 + h −h2) ve lider en azından olasılık konusunda dürüsttür ph, böylece E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ). Örneğin, eğer h = %80 ise E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) ve Λ. Doğrulayıcılar tarafından Algorand ′ adımında gönderilen mesajların boyutunun baskın olduğunu unutmayın sayısı olsa bile sabit kalabilen dijital imza anahtarlarının uzunluğuna göre kullanıcılar çok büyük. Ayrıca, s > 1 olan herhangi bir adımda, aynı beklenen sayıda doğrulayıcının n olduğunu unutmayın. Kullanıcı sayısı 100K, 100M veya 100M olsun kullanılabilir. Bunun nedeni yalnızca n h ve F'ye bağlıdır. Özet olarak, gizli anahtar uzunluğunu artırmaya yönelik ani bir ihtiyaç dışında, Kullanıcı sayısı ne kadar büyük olursa olsun \(\lambda\) değeri aynı kalmalıdır. öngörülebilir gelecek. Bunun tersine, herhangi bir işlem oranı için işlem sayısı, işlem sayısıyla birlikte artar. kullanıcılar. Bu nedenle, tüm yeni işlemlerin zamanında işlenmesi için bloğun boyutunun şu şekilde olması gerekir: aynı zamanda kullanıcı sayısıyla birlikte büyür, bu da Λ'nin de büyümesine neden olur. Bu nedenle, uzun vadede şunları yapmalıyız: \(\lambda\) << Λ. Buna göre \(\lambda\) için daha büyük bir katsayıya sahip olmak uygundur ve aslında bir katsayı Λ için 1'in. Teorem 5.1'in Kanıtı. Özellikler 1-3'ü tümevarımla kanıtlıyoruz: r −1 turu için geçerli olduklarını varsayarak (genelliği kaybetmeden, r = 0 olduğunda otomatik olarak "-1" turu için geçerli olurlar), bunları kanıtlıyoruz yuvarlak r. 18Gerçekte, E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Br-1 tümevarım hipotezi tarafından benzersiz bir şekilde tanımlandığından, SV r,s kümesi benzersiz bir şekilde tanımlanır. r turunun her adımı için. n1'in seçimiyle, SV r,1 ̸= \(\emptyset\)çok büyük olasılıkla. biz şimdi Bölüm 5.7 ve 5.8'de kanıtlanan aşağıdaki iki lemmayı belirtin. İndüksiyon boyunca ve iki lemmanın ispatları, 0. tur için analiz tümevarım adımıyla hemen hemen aynıdır, ve ortaya çıktıklarında farklılıkları vurgulayacağız. Lemma 5.2. [Tamlık Lemması] Özellikler 1-3'ün r−1 turu için geçerli olduğu varsayılırsa, lider \(\ell\)r dürüsttür, büyük olasılıkla, • Tüm dürüst kullanıcılar, \(\ell\)r tarafından oluşturulan ve bir maksimum içeren aynı Br bloğu üzerinde anlaşırlar. \(\alpha\)r,1 zamanına göre \(\ell\)r tarafından alınan ödeme seti \(\ell\)r \(\in\)Ir; ve • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ ve tüm dürüst kullanıcılar Br'yi Ir+1 zaman aralığında bilir. Lemma 5.3. [Sağlık Önermesi] 1-3 Özelliklerinin r −1 turu için geçerli olduğu varsayılırsa, lider \(\ell\)r kötü niyetlidir, büyük olasılıkla tüm dürüst kullanıcılar aynı blokta hemfikirdir Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ ve tüm dürüst kullanıcılar Br'yi Ir+1 zaman aralığında bilir. 1-3 arasındaki özellikler, Lemmas 5.2 ve 5.3'ün r = 0'a ve endüktif adıma uygulanmasıyla sağlanır. Son olarak, Özellik 4'ü Bölüm 5.9'da kanıtlanan aşağıdaki lemma olarak yeniden ifade ediyoruz. Lemma 5.4. r'den önceki her tur için Özellikler 1-3 verildiğinde, Lr için ph = h2(1 + h −h2) ve lider \(\ell\)r en azından ph olasılığı konusunda dürüsttür. Yukarıdaki üç lemmayı bir araya getirdiğimizde Teorem 5.1 geçerlidir. ■ Aşağıdaki lemma, tümevarım göz önüne alındığında yuvarlak r ile ilgili birkaç önemli özelliği belirtmektedir. hipotezdir ve yukarıdaki üç lemmanın ispatlarında kullanılacaktır. Lemma 5.5. r −1 turu için Özellikler 1-3'ün geçerli olduğunu varsayalım. r turundaki her adım için s \(\geq\)1 ve her dürüst doğrulayıcı i \(\in\)HSV r,s, elimizde bu var (a) \(\alpha\)r,s ben \(\in\)Ir; (b) eğer i oyuncusu ts kadar beklemişse, o zaman \(\beta\)r,s ben r > 0 için \(\in\)[T r + ts, T r + \(\lambda\) + ts] ve \(\beta\)r,s ben r = 0 için = ts; ve (c) eğer i oyuncusu ts süresi kadar beklemişse, o zaman \(\beta\)r,s süresine göre ben, o tüm mesajları aldı tüm dürüst doğrulayıcılar tarafından j \(\in\)HSV r,s′ tüm s′ < s adımları için gönderilir. Ayrıca, s\(\geq\)3 olan her adım için şunu elde ederiz: (d) iki farklı oyuncu i, i′ \(\in\)SV r,s ve aynı şeyin iki farklı v, v′ değeri yoktur uzunluk, öyle ki her iki oyuncu da tüm sürenin 2/3'ünden daha fazla bir ts süresi bekledi. geçerli mesajlar bay,s−1 j aldığım oyuncu v için imza attı ve tüm geçerli sözleşmelerin 2/3'ünden fazlası mesajlar bay,s−1 j i'nin aldığı oyuncu v' için imza attı. Kanıt. (a) özelliği doğrudan tümevarımsal hipotezden kaynaklanır, çünkü i oyuncusu Br-1'i bilir. Ir zaman aralığını alır ve hemen kendi adımına başlar. (b) özelliği doğrudan (a)'dan gelir: çünkü oyuncu i harekete geçmeden önce belirli bir süre ts bekledi, \(\beta\)r,s ben = \(\alpha\)r,s ben + ts. \(\alpha\)r,s'ye dikkat edin ben = 0 için r = 0. Şimdi Özellik (c)'yi kanıtlıyoruz. Eğer s = 2 ise, Özellik (b) uyarınca, tüm j \(\in\)HSV r,1 doğrulayıcıları için şunu elde ederiz: \(\beta\)r,s ben = \(\alpha\)r,s ben + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Her j \(\in\)HSV r,1 doğrulayıcısı mesajını \(\beta\)r,1 zamanında gönderdiğinden j ve mesaj dürüst olan herkese ulaşıyor kullanıcılar en fazla Λ zamanda, \(\beta\)r,s zamanına göre ben oyuncu i'deki tüm doğrulayıcılar tarafından gönderilen mesajları aldım HSV r,1 istenildiği gibi. Eğer s > 2 ise ts = ts−1 + 2\(\lambda\) olur. (b) Özelliğine göre, tüm s′ < s adımları ve tüm j \(\in\)HSV r,s′ doğrulayıcıları için, \(\beta\)r,s ben = \(\alpha\)r,s ben + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ j + \(\lambda\). Her doğrulayıcı j \(\in\)HSV r,s′ mesajını \(\beta\)r,s′ zamanında gönderdiğinden j ve mesaj dürüst olan herkese ulaşıyor kullanıcılar en fazla \(\lambda\) zamanda, \(\beta\)r,s zamanına göre ben Oyuncu i, tüm dürüst doğrulayıcıların gönderdiği tüm mesajları aldı HSV'de tüm s′ < s için r,s′. Dolayısıyla Özellik (c) geçerlidir. Son olarak Özellik (d)'yi kanıtlıyoruz. j \(\in\)SV r,s−1 doğrulayıcılarının en fazla iki şeyi imzaladığını unutmayın. Geçici gizli anahtarlarını kullanarak s −1 adımı: çıktıyla aynı uzunlukta bir vj değeri hash işlevi ve ayrıca s −1 \(\geq\)4 ise bj \(\in\){0, 1} biti. Bu nedenle lemmanın ifadesinde v ve v′'nin aynı uzunluğa sahip olmasını istiyoruz: birçok doğrulayıcı hem hash değerini imzalamış olabilir v ve bir bit b, dolayısıyla her ikisi de 2/3 eşiğini geçiyor. Çelişki olsun diye, istenen doğrulayıcılar i, i' ve v, v' değerlerinin var olduğunu varsayalım. MSV r,s−1'deki bazı kötü niyetli doğrulayıcıların hem v'yi hem de v'yi imzalamış olabileceğini ancak her birinin dürüst olduğunu unutmayın. HSV r,s−1'deki doğrulayıcı bunlardan en fazla birini imzalamıştır. (c) Özelliğine göre, hem i hem de i' almış HSV r,s−1'deki tüm dürüst doğrulayıcılar tarafından gönderilen tüm mesajlar. HSV r,s−1(v), v, MSV r,s−1 imzasını atan dürüst (r, s −1) doğrulayıcıların kümesi olsun. ben set geçerli bir mesaj aldığım kötü niyetli (r, s −1) doğrulayıcıların ve MSV r,s−1 ben (v) MSV'nin alt kümesi r,s−1 ben Geçerli bir imza mesajı aldığım kişiden v. Gereksinimlere göre i ve v, elimizde oran \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 ben (v)| |HSV r,s−1| + |MSV r,s−1 ben |
2 3. (1) İlk önce gösteriyoruz |MSV r,s−1 ben (v)| \(\leq\)|HSV r,s−1(v)|. (2) Aksini varsayarsak, parametreler arasındaki ilişkilere göre çok büyük olasılıkla |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 ben |, dolayısıyla oran < |HSV r,s−1(v)| + |MSV r,s−1 ben (v)| 3|MSV r,s−1 ben | < 2|MSV r,s−1 ben (v)| 3|MSV r,s−1 ben | \(\leq\)2 3, Eşitsizlikle çelişen 1. Sonra, Eşitsizlik 1'e göre elimizde 2|HSV r,s−1| + 2|MSV r,s−1 ben | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 ben (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 ben | + |MSV r,s−1 ben (v)|. Eşitsizlik 2 ile birleştirildiğinde, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 ben (v)| \(\leq\)4|HSV r,s−1(v)|, bu ima ediyor |HSV r,s−1(v)| > 1 2|HSV r,s−1|.Benzer şekilde, i' ve v' gereksinimlerine göre, elimizde |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. Dürüst bir doğrulayıcı j \(\in\)HSV r,s−1, geçici gizli anahtarı skr,s−1'i yok ettiğinden j yayılmadan önce mesajından sonra, Düşman, j'nin imzalamadığı bir değer için j'nin imzasını taklit edemez. j'nin bir doğrulayıcı olduğunu öğrenmek. Dolayısıyla yukarıdaki iki eşitsizlik |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|, bir çelişki. Buna göre istenen i, i', v, v' mevcut değildir ve Özellik (d) geçerlidir. ■ 5.7 Tamlık Lemması Lemma 5.2. [Tamlık Lemması, yeniden ifade edilmiş] Özellikler 1-3'ün r−1 turu için geçerli olduğu varsayılırsa, Lider dürüsttür ve büyük bir olasılıkla, • Tüm dürüst kullanıcılar, \(\ell\)r tarafından oluşturulan ve bir maksimum içeren aynı Br bloğu üzerinde anlaşırlar. \(\alpha\)r,1 zamanına göre \(\ell\)r tarafından alınan ödeme seti \(\ell\)r \(\in\)Ir; ve • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ ve tüm dürüst kullanıcılar Br'yi Ir+1 zaman aralığında bilir. Kanıt. Tümevarım hipotezi ve Lemma 5.5'e göre, her adım s ve doğrulayıcı i \(\in\)HSV r,s için, \(\alpha\)r,s ben \(\in\)Ir. Aşağıda protokolü adım adım analiz ediyoruz. Adım 1. Tanım gereği, her dürüst doğrulayıcı i \(\in\)HSV r,1 istenen mesajı mr,1 yayar. ben en zaman \(\beta\)r,1 ben = \(\alpha\)r,1 ben, nerede bay,1 ben = (Br ben , esigi(H(Br i)), \(\sigma\)r,1 ben), br i = (r, ÖDEME r i , SIGi(Qr−1), H(Br−1)), ve PAY r i, \(\alpha\)r,1 zamanına kadar gördüğüm tüm ödemeler arasında maksimum ödeme kümesidir ben. Adım 2. Dürüst bir doğrulayıcıyı keyfi olarak i \(\in\)HSV r,2 olarak belirleyin. Lemma 5.5'e göre, i oyuncusunun işi bittiğinde \(\beta\)r,2 zamanında beklemek ben = \(\alpha\)r,2 ben + t2, HSV r,1'deki doğrulayıcılar tarafından gönderilen tüm mesajları almıştır. bay,1 \(\ell\)r . \(\ell\)r tanımına göre PKr−k'de kimlik bilgisi hash olan başka bir oyuncu yoktur. değer H(\(\sigma\)r,1) değerinden küçüktür \(\ell\)r ). Tabii ki, Düşman H(\(\sigma\)r,1) değerini gördükten sonra \(\ell\)r'yi bozabilir. \(\ell\)r ) çok küçüktür, ancak o zamana kadar \(\ell\)r oyuncusu geçici anahtarını yok etmiş ve Bay,1 mesajını görmüştür. \(\ell\)r yayılmıştır. Böylece doğrulayıcı kendi liderini oyuncu \(\ell\)r olarak belirler. Buna göre \(\beta\)r,2 zamanında ben, doğrulayıcı bay,2'yi yayıyorum ben = (ESIGi(v′ i), \(\sigma\)r,2 i ), nerede v' ben = H(Br \(\ell\)r). r = 0 olduğunda tek fark bu \(\beta\)r,2 mi ben = t2 bir aralıkta olmak yerine. Bundan sonraki adımlar için de benzer şeyler söylenebilir. onları bir daha vurgulamayacağım. Adım 3. Dürüst bir doğrulayıcıyı keyfi olarak i \(\in\)HSV r,3 olarak belirleyin. Lemma 5.5'e göre, i oyuncusunun işi bittiğinde \(\beta\)r,3 zamanında beklemek ben = \(\alpha\)r,3 ben + t3, HSV r,2'deki doğrulayıcılar tarafından gönderilen tüm mesajları aldı. Parametreler arasındaki ilişkilere göre, büyük olasılıkla |HSV r,2| > 2|MSV r,2|. Üstelik hiçbir dürüst doğrulayıcı çelişkili mesajlara imza atmaz ve Düşman Dürüst bir doğrulayıcının imzasını, kendisi ilgili kişisini yok ettikten sonra taklit edemez. geçici gizli anahtar. Dolayısıyla aldığım tüm geçerli (r, 2) mesajlarının 2/3'ünden fazlası şu adresten geliyor: dürüst doğrulayıcılar ve bay2 şeklinde j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), hiçbir çelişki olmadan. Buna göre \(\beta\)r,3 zamanında ben Bay,3'ün propagandasını yaptığım oyuncu ben = (ESIGi(v′), \(\sigma\)r,3 i ), burada v′ = H(Br \(\ell\)r).Adım 4. Dürüst bir doğrulayıcıyı keyfi olarak i \(\in\)HSV r,4 olarak belirleyin. Lemma 5.5'e göre, oyuncu i hepsini aldı \(\beta\)r,4 zamanında beklemesi bittiğinde HSV r,3'teki doğrulayıcılar tarafından gönderilen mesajlar ben = \(\alpha\)r,4 ben + t4. benzer Adım 3, aldığım tüm geçerli (r, 3) mesajların 2/3'ünden fazlası dürüst doğrulayıcılardan geliyor ve Bay,3 formunda j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j) Buna göre, i oyuncusu vi = H(Br) değerini belirler. \(\ell\)r), gi = 2 ve bi = 0. \(\beta\)r,4 zamanında ben = \(\alpha\)r,4 ben +t4 çoğalır bay,4 ben = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 ben). Adım 5. Dürüst bir doğrulayıcıyı keyfi olarak i \(\in\)HSV r,5 olarak belirleyin. Lemma 5.5'e göre sahip olacağım oyuncu \(\alpha\)r,5 zamanına kadar beklemişse, HSV r,4'teki doğrulayıcılar tarafından gönderilen tüm mesajları aldı ben + t5. şunu unutmayın |HSV r,4| \(\geq\)tH.19 Ayrıca HSV r,4'teki tüm doğrulayıcıların H(Br) için imza attığına dikkat edin. \(\ell\)r). |MSV r,4| olarak < tH, v′ ̸= H(Br) yoktur \(\ell\)r) TH tarafından imzalanmış olabilir SV r,4'teki doğrulayıcılar (bunların mutlaka kötü niyetli olması gerekir), dolayısıyla oyuncu i, o olmadan durmaz. geçerli mesajlar alındı bay,4 j = (ESIGj(0), ESIGj(H(Br) \(\ell\)r)), \(\sigma\)r,4 j) O zaman T olsun ikinci olay gerçekleşir. Bu mesajlardan bazıları kötü niyetli oyunculardan gelebilir, ancak |MSV r,4| < Bu, bunlardan en az birinin HSV r,4'teki dürüst bir doğrulayıcıdan geldiği ve belirli bir süre sonra gönderildiği anlamına gelir T r +t4. Buna göre T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ ve zamanla T oyuncusu i de aldı mesaj bay1 \(\ell\)r . Protokolün oluşturulmasıyla, oyuncu i \(\beta\)r,5 zamanında durur ben = T olmadan herhangi bir şeyi yaymak; Br = Br'yi ayarlar \(\ell\)r; ve kendi CERT r'sini (r, 4) mesajlarının kümesi olacak şekilde ayarlar. 0 ve H(Br \(\ell\)r) aldığı. Adımlar > 5. Benzer şekilde, herhangi bir s > 5 adımı ve herhangi bir doğrulayıcı i \(\in\)HSV r,s için, oyuncu i \(\alpha\)r,s zamanına kadar beklemişse, HSV r,4'teki doğrulayıcılar tarafından gönderilen tüm mesajları aldı ben + ts. Tarafından aynı analizde, i oyuncusu hiçbir şey yaymadan durur, Br = Br ayarını yapar \(\ell\)r (ve kendi ayarını yaparak CERT r uygun şekilde). Elbette kötü niyetli doğrulayıcılar durmayabilir ve keyfi yayılım yapabilirler. mesajlar, ancak |MSV r,s| < tH, tümevarım yoluyla tH doğrulayıcıları tarafından başka hiçbir v' imzalanamaz herhangi bir adımda 4 \(\leq\)s′ < s, dolayısıyla dürüst doğrulayıcılar yalnızca geçerli olanı aldıkları için dururlar 0 ve H(Br) için (r, 4)-mesajları \(\ell\)r). Round-r Blokunun Yeniden İnşası. 5. Adımın analizi genel bir dürüstlük için geçerlidir. kullanıcı i neredeyse hiçbir değişiklik olmadan. Gerçekte, oyuncu i kendi r turuna Ir aralığında başlar ve yalnızca H(Br) için geçerli (r, 4) mesajlarını aldığında T zamanında duracaktır. \(\ell\)r). Tekrar çünkü bu mesajlardan en az biri dürüst doğrulayıcılardan geliyor ve T r + t4 zamanından sonra gönderiliyor, i oyuncusu ayrıca bay1'i de kabul ettim T zamanına göre \(\ell\)r. Böylece Br = Br'yi belirler. \(\ell\)r uygun CERT r ile. Geriye sadece tüm dürüst kullanıcıların r turunu Ir+1 zaman aralığında tamamladığını göstermek kalıyor. Adım 5'in analizine göre, her dürüst i \(\in\)HSV r,5 doğrulayıcısı, Br'yi \(\alpha\)r,5 üzerinde veya öncesinde bilir. ben + t5 \(\leq\) T r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. T r+1 ilk dürüst kullanıcının Br'yi tanıdığı zaman olduğundan, T r+1 \(\leq\)T r + 8\(\lambda\) + Λ İstenildiği gibi. Dahası, oyuncu Br'yi tanıdığında mesajların yayılmasına zaten yardımcı olmuştur. onun CERT r. Tüm bu mesajların tüm dürüst kullanıcılar tarafından \(\lambda\) süresi içerisinde alınacağını unutmayın. 19Aslında bu çok yüksek bir olasılıkla gerçekleşir, ancak çok da zorlayıcı bir durum değildir. Ancak bu olasılık protokolün çalışma süresini biraz etkiler ancak doğruluğunu etkilemez. h = %80 olduğunda, o zaman |HSV r,4| \(\geq\)tH 1 −10−8 olasılıkla. Bu olay gerçekleşmezse protokol başka bir süre daha devam edecek 3 adım. Bunun iki adımda gerçekleşmeme olasılığı ihmal edilebilir olduğundan protokol 8. Adımda tamamlanacaktır. O halde beklenti, ihtiyaç duyulan adım sayısının neredeyse 5 olmasıdır.Oyuncu ir bunları yayan ilk oyuncuydu. Üstelik yukarıdaki analizin ardından elimizde T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, böylece tüm dürüst kullanıcılar mr,1 almıştır \(\ell\)r, T r+1 + \(\lambda\) zamanına göre. Buna göre, tüm dürüst kullanıcılar Br'yi Ir+1 = [T r+1, T r+1 + \(\lambda\)] zaman aralığında bilirler. Son olarak r = 0 için aslında T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ elde ederiz. Herşeyi bir araya getiren, Lemma 5.2 geçerlidir. ■ 5.8 Sağlamlık Lemması Lemma 5.3. [Sağlık Önermesi, yeniden ifade edilmiş] Özellikler 1-3'ün r −1 turu için geçerli olduğu varsayılırsa, lider kötü niyetlidir ve büyük olasılıkla tüm dürüst kullanıcılar aynı fikirdedir Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ ve tüm dürüst kullanıcılar Br'yi Ir+1 zaman aralığında bilir. Kanıt. Protokolün iki bölümünü (GC ve BBA⋆) ayrı ayrı ele alıyoruz. GC. Tümevarım hipotezine ve Lemma 5.5'e göre, herhangi bir s \(\in\){2, 3, 4} adımı ve herhangi bir dürüst adım için i \(\in\)HSV r,s doğrulayıcısı, i oyuncusu \(\beta\)r,s zamanında hareket ettiğinde ben = \(\alpha\)r,s ben +ts, gönderilen tüm mesajları aldı tüm dürüst doğrulayıcılar tarafından s′ < s adımlarında. 4. adım için iki olası durumu ayırıyoruz. Durum 1. Doğrulayıcı yok i \(\in\)HSV r,4 gi = 2'yi ayarlar. Bu durumda tanım gereği tüm doğrulayıcılar için bi = 1 i \(\in\)HSV r,4. Yani bir ile başlıyorlar ikili BA protokolünde 1 üzerinde anlaşma. Vi'leri konusunda bir anlaşmaları olmayabilir, ancak ikili BA'da göreceğimiz gibi bu önemli değil. Durum 2. gˆi = 2 olacak şekilde bir ˆi \(\in\)HSV r,4 doğrulayıcısı vardır. Bu durumda şunu gösteriyoruz (1) tüm i \(\in\)HSV r,4 için gi \(\geq\)1, (2) tüm i \(\in\)HSV r,4 için vi = v′ olacak şekilde bir v′ değeri vardır ve (3) geçerli bir mesaj var bay,1 \(\ell\) bazı doğrulayıcılardan \(\ell\) \(\in\)SV r,1 öyle ki v′ = H(Br \(\ell\)). Aslında, oyuncu ˆi dürüst olduğundan ve gˆi = 2 olarak belirlediğinden, tüm geçerli mesajların 2/3'ünden fazlası mr,3 j aynı v′ ̸= \(\bot\) değeri için are aldı ve vˆi = v′'yi belirledi. Lemma 5.5'teki Özellik (d)'ye göre, diğer herhangi bir dürüst (r, 4)-doğrulayıcı i için, bundan daha fazlası olamaz tüm geçerli mesajların 2/3'ünden fazlası bay,3 j i′'nin aldığı değerler aynı v′′ ̸= v′ değeri içindir. Buna göre i, gi = 2 ise, v′ için de > 2/3 çoğunluk görmüş olmalı ve vi = v′, istendiği gibi. Şimdi gi < 2 olan keyfi bir doğrulayıcı i \(\in\)HSV r,4'ü düşünün. Özellik analizine benzer (d) Lemma 5.5'te, çünkü ˆi oyuncusu v' için > 2/3 çoğunluk gördü, 1'den fazla 2|HSV r,3| dürüst (r, 3) -doğrulayıcılar v'yi imzaladılar. Çünkü tüm mesajları dürüst (r, 3) doğrulayıcılardan aldım. zaman \(\beta\)r,4 ben = \(\alpha\)r,4 ben + t4, özellikle 1'den fazlasını aldı 2|HSV r,3| onlardan gelen mesajlar v′ için. Çünkü |HSV r,3| > 2|MSV r,3|, i v′ için > 1/3 çoğunluk gördü. Buna göre oyuncu i, gi = 1'i ayarlar ve Özellik (1) geçerlidir. Oyuncu i mutlaka vi = v′'yi mi ayarlıyor? Öyle farklı bir v′′ ̸= \(\bot\) değerinin var olduğunu varsayalım: oyuncu i ayrıca v′′ için > 1/3 çoğunluk gördü. Bu mesajlardan bazıları kötü niyetli olabilir doğrulayıcılar, ancak bunlardan en az biri dürüst bir doğrulayıcıdan geliyor j \(\in\)HSV r,3: gerçekten, çünkü |HSV r,3| > 2|MSV r,3| ve kötü amaçlı yazılımlar grubu olan HSV r,3'ten tüm mesajları aldım Kendilerinden geçerli bir (r, 3) mesajı aldığım doğrulayıcıların sayısı tüm geçerli mesajların < 1/3'üdür aldığı mesajlar.Tanım gereği, j oyuncusu tüm geçerli (r, 2) mesajları arasında v'' için > 2/3 çoğunluk görmüş olmalıdır. o aldı. Ancak, diğer bazı dürüst (r, 3) doğrulayıcıların da görmüş olduklarına zaten sahibiz v' için 2/3 çoğunluk (çünkü v'yi imzaladılar). Lemma 5.5'in Özelliği (d)'ye göre bu, olur ve böyle bir v′′ değeri mevcut değildir. Dolayısıyla i oyuncusu vi = v′'yi istendiği gibi ayarlamış olmalıdır, ve Özellik (2) tutar. Son olarak, bazı dürüst (r, 3) doğrulayıcılarının v′ için > 2/3 çoğunluk gördüğü göz önüne alındığında, bazılarının (aslında, dürüst (r, 2) doğrulayıcıların yarısından fazlası v'yi imzalamış ve mesajlarını yaymıştır. Protokolün oluşturulmasıyla, bu dürüst (r, 2) doğrulayıcıların geçerli bir sertifika almış olmaları gerekir. mesaj bay1 \(\ell\) v′ = H(Br) olan bir \(\ell\) \(\in\)SV r,1 oyuncusundan \(\ell\)), dolayısıyla Özellik (3) geçerlidir. BBA⋆. Yine iki durumu ayırıyoruz. Durum 1. Tüm i \(\in\)HSV r,4 doğrulayıcıları bi = 1'e sahiptir. Bu, GC Durum 1'in ardından gerçekleşir. |MSV r,4| olarak < tH, bu durumda SV'de doğrulayıcı yok r,5 bit 0 için geçerli (r, 4) mesajlarını toplayabilir veya üretebilir. Dolayısıyla HSV r,5'te dürüst bir doğrulayıcı yoktur. boş olmayan bir blok Br bildiği için duracaktır. Ayrıca, bit 1 için en azından geçerli (r, 4) mesajları olmasına rağmen, s' = 5 tatmin edici değildir. s′ −2 ≡1 mod 3, dolayısıyla HSV r,5'teki hiçbir dürüst doğrulayıcı Br = Br'yi bildiği için durmaz ǫ. Bunun yerine, her i \(\in\)HSV r,5 doğrulayıcısı \(\beta\)r,5 zamanında hareket eder. ben = \(\alpha\)r,5 ben + t5, hepsini aldığında Lemma 5.5'i takip ederek HSV r,4 tarafından gönderilen mesajlar. Böylece oyuncu i 1 için > 2/3 çoğunluk gördü ve bi = 1'i ayarlar. Bir Paraya Sabitlenmiş 1 adımı olan Adım 6'da, s′ = 5, s′ −2 ≡0 mod 3'ü karşılasa da, bit 0 için geçerli (r, 4) mesajları mevcut olmadığından HSV r,6'daki hiçbir doğrulayıcı durmayacaktır çünkü boş olmayan bir blok biliyor Br. Bununla birlikte, s′ = 6 ile s′ −2 ≡1 mod 3 vardır ve mevcuttur |HSV r,5| \(\geq\)tH HSV r,5'ten bit 1 için geçerli (r, 5) mesajları. Lemma 5.5'i takip eden her i \(\in\)HSV r,6 doğrulayıcısı için, \(\alpha\)r,6 zamanında veya öncesinde ben + t6 oynatıcı ben HSV r,5'ten tüm mesajları aldı, dolayısıyla hiçbir şey yaymadan duruyorum ve ayarlıyorum Br = Br ǫ. Onun CERT r'si geçerli (r, 5) mesajları mr,5 kümesidir j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) durduğunda onun tarafından karşılanır. Daha sonra, oyuncu i'nin ya s>6 adımında dürüst bir doğrulayıcı ya da genel dürüst bir kullanıcı olmasına izin verin (ör. doğrulayıcı olmayan). Lemma 5.2'nin ispatına benzer şekilde, i oyuncusu Br = Br'yi belirler ǫ ve kendi ayarını yapıyor CERT r, geçerli (r, 5) mesajları mr,5 kümesi olacaktır. j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) o var alındı. Son olarak Lemma 5.2'ye benzer şekilde, Tr+1 \(\leq\) dk. i\(\in\)HSV r,6 \(\alpha\)r,6 ben + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, ve tüm dürüst kullanıcılar Br'yi Ir+1 zaman aralığında bilirler, çünkü ilk dürüst kullanıcı i Br'nin CERT r'sinde (r, 5) mesajlarının yayılmasına yardımcı olduğunu biliyor. Durum 2. bˆi = 0 olan bir ˆi \(\in\)HSV r,4 doğrulayıcısı vardır. Bu, GC'nin 2. Durumunu takiben gerçekleşir ve daha karmaşık bir durumdur. GC'nin analizine göre, bu durumda geçerli bir mesaj var mr,1 \(\ell\) öyle ki vi = H(Br \(\ell\)) tüm i \(\in\)HSV r,4 için. Not HSV r,4'teki doğrulayıcıların bi'leri konusunda bir anlaşması olmayabilir. Herhangi bir s \(\in\){5 adımı için, . . . , m + 3} ve i \(\in\)HSV r,s doğrulayıcısı, Lemma 5.5 oyuncusu tarafından i olurdu HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1'deki tüm dürüst doğrulayıcılar tarafından gönderilen tüm mesajları aldı, eğer beklediyse zaman için ts.Şimdi aşağıdaki E olayını ele alıyoruz: öyle bir s∗\(\geq\)5 adımı var ki, ilki için İkili BA'daki zaman, bazı i∗\(\in\)SV r,s∗ oyuncularının (kötü niyetli veya dürüst) durması gerekir hiçbir şeyin propagandasını yapmadan. Şunu vurgulamak için "durmalı" ifadesini kullanıyoruz: eğer oyuncu i∗ kötü niyetliyse, protokole göre durmaması gerekiyormuş gibi davranabilir ve Düşmanın seçtiği mesajları yaymak. Üstelik protokolün oluşturulmasıyla, (E.a) i∗en azından geçerli mesajları toplayabilir veya üretebilir mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s'−1 j ) aynı v ve s' için, 5 \(\leq\)s' \(\leq\)s∗ ve s' −2 ≡0 mod 3 ile; veya (E.b) i∗en azından geçerli mesajları toplayabilir veya üretebilir mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s'−1 j ) aynı s' için, 6 \(\leq\)s′ \(\leq\)s∗ ve s′ −2 ≡1 mod 3 ile. Çünkü dürüst (r, s′ −1) mesajları, tüm dürüst (r, s′) doğrulayıcılar tarafından, daha önce alınır. Adım s'de bekleme bitti ve Düşman her şeyi en geç dürüst kullanıcılar, genelliği bozmadan elimizde s′ = s∗ var ve i∗ oyuncusu kötü niyetli. şunu unutmayın E.a'daki v değerinin geçerli bir bloğun hash olması gerekmedi: daha sonra açıkça görülecektir analizde, v = H(Br \(\ell\)) bu alt etkinlikte. Aşağıda ilk olarak E olayının ardından Durum 2'yi analiz ediyoruz ve ardından s∗ değerinin esasen şu şekilde olduğunu gösteriyoruz: Lr'ye göre dağıtılır (böylece E olayı m + 3 adımından önce çok büyük bir yoğunlukla gerçekleşir) parametreler için ilişkiler verildiğinde olasılık). Başlangıç olarak, herhangi bir adım için 5 \(\leq\)s < s∗, her dürüst i \(\in\)HSV r,s doğrulayıcısı ts süresini beklemiş ve vi'yi oy çoğunluğu olarak belirlemiştir. aldığı geçerli (r, s−1)-mesajları. Oyuncu i tüm dürüst (r, s−1) mesajlarını aldığından beri Lemma 5.5'i takip ederek, HSV r,4'teki tüm dürüst doğrulayıcıların H(Br) imzasını taşıması nedeniyle \(\ell\)) aşağıdaki Vaka GC'nin 2'si ve |HSV r,s−1| > 2|MSV r,s−1| her bir s için, tümevarım yoluyla o oyuncu i'ye sahibiz ayarladı vi = H(Br \(\ell\)). Aynı şey, yayılmadan durmayan her dürüst doğrulayıcı i \(\in\)HSV r,s∗ için de geçerlidir. herhangi bir şey. Şimdi Adım s∗'yi ele alıyoruz ve dört alt durumu ayırt ediyoruz. Durum 2.1.a. E.a olayı gerçekleşir ve bunu yapması gereken dürüst bir i′ \(\in\)HSV r,s∗ doğrulayıcısı vardır. ayrıca hiçbir şeyin propagandasını yapmadan durun. Bu durumda elimizde s∗−2 ≡0 mod 3 var ve Adım s∗ bir Paraya Sabitlenmiş 0 adımıdır. Tarafından tanım, oyuncu i' formun en azından geçerli (r, s∗−1) mesajlarını almıştır (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). HSV r,s∗−1'deki tüm doğrulayıcılar H(Br)'yi imzaladığından \(\ell\)) ve |MSV r,s∗−1| < tH, v = H(Br) var \(\ell\)). En az tH −|MSV r,s∗−1| olduğundan 0 ve v için i′ tarafından alınan (r, s∗−1) mesajlarından \(\geq\)1 T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 zamanından sonra HSV r,s∗−1'deki doğrulayıcılar tarafından gönderilir \(\ell\) +Λ, oyuncu i' mr,1'i aldı \(\ell\) o (r, s∗−1) mesajlarını aldığında. Böylece oyuncu i′ hiçbir şey yaymadan durur; Br = Br'yi ayarlar \(\ell\); ve kendi CERT r'sini 0 ve v için aldığı geçerli (r, s∗−1) mesajları kümesi. Daha sonra, diğer herhangi bir i \(\in\)HSV r,s∗ doğrulayıcısının Br = Br ile durduğunu gösteririz. \(\ell\) veya bi = 0 olarak ayarlandı ve yayıldı (ESIGi(0), ESIGi(H(Br) \(\ell\))), \(\sigma\)r,s ben). Gerçekten, çünkü Adım s∗ İlk kez bir doğrulayıcının herhangi bir şey yaymadan durması gerekiyor; s′ −2 ≡1 mod 3 ile tH (r, s′ −1) doğrulayıcılarının 1'i imzaladığı bir s′ < s∗ adımı vardır. Buna göre, HSV r,s∗'de Br = Br ile durdurulan hiçbir doğrulayıcı yoktur. ǫ.Üstelik tüm dürüst doğrulayıcılar gibi, {4, 5, . . . , s∗−1} imzalı H(Br \(\ell\)), var s′ −2 ≡0 mod 3 ile tH (r, s′ −1)-doğrulayıcılarının imzaladığı bir s′ \(\leq\)s∗ adımı mevcut değil bazı v′′ ̸= H(Br \(\ell\)) —gerçekte, |MSV r,s′−1| < TH. Buna göre HSV r,s∗stops'ta doğrulayıcı yok Br̸= Br ile ǫ ve Br ̸= Br \(\ell\). Yani, eğer i \(\in\)HSV r,s∗ oyuncusu olmadan durursa herhangi bir şeyi yayıyorsa, Br = Br'yi ayarlamış olmalı \(\ell\). Eğer bir i \(\in\)HSV r,s∗ oyuncusu ts∗ kadar beklemişse ve bu zamanda bir mesaj yaymışsa \(\beta\)r,s∗ ben = \(\alpha\)r,s∗ ben + ts∗, HSV r,s∗−1'den gelen tüm mesajları aldı, en azından tH −|MSV r,s∗−1| bunlardan 0 ve v için. Eğer i 1 için >2/3 çoğunluk görmüşse, o zaman 1 için 2(tH −|MSV r,s∗−1|)'den fazla geçerli (r, s∗−1)-mesajı gördü ve daha fazlası 2tH −3|MSV r,s∗−1|'den bunların çoğu dürüst (r, s∗−1)-doğrulayıcılardan. Ancak bu şu anlama gelir: |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, çelişiyor gerçek şu ki |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n, parametrelere ilişkin ilişkilerden gelir. Buna göre > 2/3 göremiyorum çoğunluk 1'dir ve bi = 0'ı belirler çünkü Adım s∗, Paraya Sabitlenmiş bir 0 adımıdır. sahip olduğumuz gibi görüldü, vi = H(Br \(\ell\)). Böylece çoğalırım (ESIGi(0), ESIGi(H(Br) \(\ell\))), \(\sigma\)r,s i) istediğimiz gibi göster. Adım s∗+ 1 için, i' oyuncusu CERT r'sindeki mesajların yayılmasına yardımcı olduğundan \(\alpha\)r,s∗ zamanında veya öncesinde ben + ts∗, HSV r,s∗+1'deki tüm dürüst doğrulayıcılar en az bit 0 ve H(Br) değeri için geçerli (r, s∗−1)-mesajları \(\ell\)) bunlar bitmeden veya yapılmadan önce bekliyorum. Ayrıca, HSV r,s∗+1'deki doğrulayıcılar (r, s∗−1)-'yi almadan durmayacaklardır. çünkü bit 1 için geçerli başka (r, s′ −1) mesajı mevcut değildir. s∗ Adımının tanımına göre s′ −2 ≡1 mod 3 ve 6 \(\leq\)s′ \(\leq\)s∗+ 1. Özellikle Adım s∗+ 1'in kendisi 1'e Sabitlenmiş bir Coin adımıdır, ancak HSV r,s∗'de hiçbir dürüst doğrulayıcı yayılmamıştır 1 için bir mesaj ve |MSV r,s∗| < TH. Böylece HSV r,s∗+1'deki tüm dürüst doğrulayıcılar hiçbir şey yaymadan durur ve Br = değerini ayarlar. kardeşim \(\ell\): daha önce olduğu gibi, Bay,1'i aldılar \(\ell\) istenilen (r, s∗−1) mesajlarını almadan önce.20 Aynı şey gelecekteki adımlarda tüm dürüst doğrulayıcılar ve genel olarak tüm dürüst kullanıcılar için söylenebilir. Özellikle hepsi Br = Br'yi biliyor \(\ell\)Ir+1 zaman aralığı dahilinde ve T r+1 \(\leq\) \(\alpha\)r,s∗ ben + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Durum 2.1.b. E.b olayı gerçekleşir ve bunu yapması gereken dürüst bir i′ \(\in\)HSV r,s∗ doğrulayıcısı vardır. ayrıca hiçbir şeyin propagandasını yapmadan durun. Bu durumda elimizde s∗−2 ≡1 mod 3 var ve Adım s∗ bir Paraya Sabitlenmiş 1 adımıdır. Analiz Durum 2.1.a'ya benzer ve birçok ayrıntı atlanmıştır. 20Eğer \(\ell\)kötü niyetliyse, Bay'ı gönderebilir.1 \(\ell\) bazı dürüst kullanıcıların/doğrulayıcıların mr,1 almadığını umarak geç kaldık \(\ell\) henüz bunun için istenen sertifikayı aldıklarında. Ancak, ˆi \(\in\)HSV r,4 doğrulayıcısı bˆi = 0 ve vˆi = H(Br) olarak ayarlandığından \(\ell\)), olarak dürüst doğrulayıcıların yarısından fazlasının i \(\in\)HSV r,3'ü vi = H(Br) olarak belirlediğini bilmeden önce \(\ell\)). Bu ayrıca daha fazlasını ima eder i \(\in\)HSV r,2 dürüst doğrulayıcılarının yarısından fazlası vi = H(Br) değerini belirlemiştir \(\ell\)) ve bu (r, 2)-doğrulayıcıların hepsi mr,1 aldı \(\ell\). Olarak Düşman, doğrulayıcıyı doğrulayıcı olmayandan ayırt edemez, Bay'ın yayılmasını hedefleyemez1 \(\ell\) (r, 2)-doğrulayıcılara doğrulamayanların görmesine gerek kalmadan. Aslında, yüksek olasılıkla yarıdan fazlası (ya da iyi bir sabit kesir) tüm dürüst kullanıcılar arasında mr,1'in görüldüğü \(\ell\) kendi r turlarının başlangıcından itibaren t2'yi bekledikten sonra. Buradan itibaren, Bay,1 için gereken süre \(\lambda\)' \(\ell\) kalan dürüst kullanıcılara ulaşmak için Λ'dan çok daha küçüktür ve basitlik adına bunu yapmıyoruz. analizde bunu yazın. Eğer 4\(\lambda\) \(\geq\) \(\lambda\)' ise analiz herhangi bir değişiklik olmadan devam eder: Adım 4'ün sonunda tüm dürüst kullanıcılar mr,1 alırdı \(\ell\). Bloğun boyutu çok büyük olursa ve 4\(\lambda\) < \(\lambda\)' olursa, 3. ve 4. Adımlarda, protokol her doğrulayıcıdan 2\(\lambda\) yerine \(\lambda\)'/2'yi beklemesini isteyebilir ve analiz geçerli olmaya devam eder.Daha önce olduğu gibi, oyuncu i' en azından formdaki geçerli (r, s∗−1) mesajlarını almış olmalıdır. (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Yine s∗ tanımına göre bir adım yoktur. 5 \(\leq\)s′ < s∗ile s′ −2 ≡0 mod 3, burada en az tH (r, s′ −1) doğrulayıcıları 0'ı imzalamıştır ve aynı v. Böylece oyuncu i' hiçbir şey yaymadan durur; Br = Br'yi ayarlar ǫ; ve setler kendi CERT r'si, aldığı bit 1 için geçerli (r, s∗−1)-mesajlarının kümesi olacaktır. Ayrıca, diğer herhangi bir i \(\in\)HSV r,s∗ doğrulayıcısı ya Br = Br ile durmuştur ǫ , veya bi = ayarlamış 1 ve yayılan (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ ben ). Oyuncu i' yayılmaya yardımcı olduğundan \(\alpha\)r,s∗ zamanına göre CERT r'deki (r, s∗−1)-mesajları ben + ts∗, yine tüm dürüst doğrulayıcılar HSV r,s∗+1 hiçbir şeyi yaymadan durur ve Br = Br olarak ayarlanır ǫ . Aynı şekilde hepsi dürüst kullanıcılar Br = Br'yi biliyor ǫ Ir+1 zaman aralığı dahilinde ve T r+1 \(\leq\) \(\alpha\)r,s∗ ben + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Durum 2.2.a. E.a olayı gerçekleşir ve dürüst bir doğrulayıcı i′ \(\in\)HSV r,s∗ yoktur. ayrıca hiçbir şey yaymadan durmalıdır. Bu durumda, i∗ oyuncusunun geçerli bir CERT r'ye sahip olabileceğini unutmayın. i∗arzu edilen tH'den oluşur (r, s∗−1)-Düşmanın toplayabileceği veya oluşturabileceği mesajlar. Ancak kötü niyetli Doğrulayıcılar bu mesajların yayılmasına yardımcı olmayabilir, dolayısıyla dürüst olanın bu olduğu sonucuna varamayız. kullanıcılar bunları \(\lambda\) zamanında alacaklardır. Aslında |MSV r,s∗−1| bu mesajlardan biri şunlardan olabilir: mesajlarını hiç yaymayan ve yalnızca mesaj gönderen kötü niyetli (r, s∗−1) doğrulayıcılar bunları adım s∗'de kötü niyetli doğrulayıcılara gönderin. Durum 2.1.a'ya benzer şekilde, burada s∗−2 ≡0 mod 3 var, Adım s∗ bir Paraya Sabitlenmiş 0 adımıdır, ve CERT r'deki (r, s∗−1)-mesajları i∗bit 0 içindir ve v = H(Br \(\ell\)). Aslında hepsi dürüst (r, s∗−1)-doğrulayıcılar v işaretini verir, bu nedenle Rakip bu geçerli (r, s∗−1)-mesajlarını üretemez farklı bir v′ için. Ayrıca, tüm dürüst (r, s∗)-doğrulayıcılar ts∗ süresini beklemiş ve > 2/3 çoğunluk görmemişlerdir. bit 1 için, çünkü |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Bu nedenle her dürüst doğrulayıcı i \(\in\)HSV r,s∗sets bi = 0, vi = H(Br \(\ell\)) çoğunluk oyuyla ve mr,s∗'yi yayar ben = (ESIGi(0), ESIGi(H(Br) \(\ell\))), \(\sigma\)r,s∗ ben ) \(\alpha\)r,s∗ zamanında ben + t∗. Şimdi Adım s∗+ 1'deki dürüst doğrulayıcıları düşünün (bu, 1'e Sabitlenmiş Para adımıdır). Eğer Düşman aslında mesajları CERT r'de gönderir bazılarına ve onların dur, sonra Durum 2.1.a'ya benzer şekilde, tüm dürüst kullanıcılar Br = Br'yi biliyor \(\ell\)zaman aralığı içinde IR+1 ve T r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. Aksi halde, Adım s∗+1'deki tüm dürüst doğrulayıcılar, 0 ve s∗ için tüm (r, s∗) mesajlarını almıştır. H(Br \(\ell\)) HSV'den r,s∗ts∗+1 bekleme süresinden sonra, bu > 2/3 çoğunluğa yol açar, çünkü |HSV r,s∗| > 2|MSV r,s∗|. Böylece HSV r,s∗+1'deki tüm doğrulayıcılar mesajlarını 0 ve H(Br \(\ell\)) buna göre. HSV r,s∗+1'deki doğrulayıcıların Br = Br ile bitmediğine dikkat edin. \(\ell\), çünkü Adım s∗+ 1, Paraya Sabitlenmiş 0 adımı değildir. Şimdi Adım s∗+2'deki dürüst doğrulayıcıları düşünün (ki bu, Gerçekten Paraya Çevirilmiş bir adımdır). Düşman mesajları CERT r'de gönderirse bazılarına ve onların durmasına sebep olur, sonra yine tüm dürüst kullanıcılar Br = Br'yi biliyor \(\ell\)Ir+1 zaman aralığı dahilinde ve T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.Aksi takdirde, Adım s∗+ 2'deki tüm dürüst doğrulayıcılar aşağıdakiler için tüm (r, s∗+ 1) mesajlarını almıştır. 0 ve H(Br \(\ell\)) HSV r,s∗+1'den ts∗+2 bekleme süresinden sonra, bu da > 2/3 çoğunluğa yol açar. Böylece hepsi mesajlarını 0 ve H(Br) için yayıyor. \(\ell\)) buna göre: bunu yapıyorlar bu durumda “yazı tura atmayın”. Tekrar belirtmek isterim ki çoğalmadan durmazlar, çünkü Adım s∗+ 2, Paraya Sabitlenmiş bir 0 adımı değildir. Son olarak, Adım s∗+3'teki (başka bir Paraya Sabitlenmiş 0 adımı olan) dürüst doğrulayıcılar için, tüm içlerinden en azından 0 ve H(Br) için geçerli mesajlar almış olmalı \(\ell\)) HSV s∗+2'den, eğer gerçekten ts∗+3 süresini beklerlerse. Böylece, Düşmanın mesajları gönderip göndermediği CERT r'de i∗ bunlardan herhangi birine göre, HSV r,s∗+3'teki tüm doğrulayıcılar Br = Br ile durur \(\ell\), olmadan herhangi bir şeyin propagandasını yapmak. Düşmanın nasıl davrandığına bağlı olarak, bazıları CERT r'deki (r, s∗−1) mesajlarından oluşan kendi CERT r'leri i∗ ve diğerleri (r, s∗+ 2) mesajlarından oluşan kendi CERT r'leri. Her durumda, tüm dürüst kullanıcılar Br = Br'yi biliyorum \(\ell\)Ir+1 zaman aralığı dahilinde ve T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Durum 2.2.b. E.b olayı gerçekleşir ve i′ \(\in\)HSV r,s∗'yi doğrulayan dürüst bir doğrulayıcı yoktur. ayrıca hiçbir şey yaymadan durmalıdır. Bu vakadaki analiz Durum 2.1.b ve Durum 2.2.a'dakilere benzer, dolayısıyla pek çok ayrıntı vardır ihmal edilmiştir. Özellikle CERT r i∗istenen tH (r, s∗−1) mesajlarından oluşur Rakibin toplayabileceği veya oluşturabileceği bit 1 için, s∗−2 ≡1 mod 3, Adım s∗ a'dır 1'e Sabitlenmiş Para adımı ve hiçbir dürüst (r, s∗) doğrulayıcısı 0 için > 2/3 çoğunluk göremezdi. Böylece, her i \(\in\)HSV r,s∗ doğrulayıcısı bi = 1'i ayarlar ve mr,s∗'yi yayar ben = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ ben ) \(\alpha\)r,s∗ zamanında ben + t∗. Durum 2.2.a'ya benzer şekilde, en fazla 3 adımda daha (yani protokol Başka bir Paraya Sabitlenmiş adım olan s∗+3 Adımına ulaşır), tüm dürüst kullanıcılar Br = Br'yi bilir ǫ Ir+1 zaman aralığı içinde. Ayrıca T r+1, \(\leq\)T r+\(\lambda\)+ts∗+1 veya \(\leq\)T r+\(\lambda\)+ts∗+2 olabilir, veya \(\leq\)T r + \(\lambda\) + ts∗+3, dürüst bir doğrulayıcının ilk kez ne zaman durabileceğine bağlı olarak yayılmadan. Dört alt durumu birleştirerek, tüm dürüst kullanıcıların Br'yi zaman aralığı içinde tanıdığını elde ederiz. IR+1, ile Durum 2.1.a ve 2.1.b'de T r+1 \(\leq\)T r + \(\lambda\) + ts∗ ve Durum 2.2.a ve 2.2.b'de T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Durum 2 için s∗ üst sınırına ve dolayısıyla T r+1'e kalır ve bunu nasıl olduğunu dikkate alarak yaparız. Çoğu kez Coin-Genuinely-Flipped adımları aslında protokolde yürütülür: yani, bazı dürüst doğrulayıcılar aslında yazı tura attılar. Özellikle, Yazı-Para Çevirme adımını s′ (yani 7 \(\leq\)s′ \(\leq\)m + 2 ve s′ −2 ≡2 mod 3) ve \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1) olsun j ). Şimdilik s′ < s∗ olduğunu varsayalım, çünkü aksi halde hiçbir dürüst doğrulayıcı, önceki ifadeye göre Adım s'de yazı tura atmaz. tartışmalar. SV r,s′−1 tanımına göre, \(\ell\)′ kimlik bilgisinin hash değeri aynı zamanda aralarında en küçüğüdür. PKr−k'deki tüm kullanıcılar. hash işlevi rastgele bir oracle olduğundan, ideal olarak \(\ell\)′ oyuncusu dürüsttür olasılık en az h. Daha sonra göstereceğimiz gibi, Düşman geleceği tahmin etmek için elinden geleni yapsa bile Rastgele oracle çıktısını alın ve olasılığı yatırın, \(\ell\)′ oyuncusu hala olasılığa karşı dürüsten azından ph = h2(1 + h −h2). Aşağıda bunun gerçekten gerçekleştiği durumu ele alıyoruz: yani, \(\ell\)′ \(\in\)HSV r,s′−1. Her dürüst i \(\in\)HSV r,s′ doğrulayıcısının, HSV r,s′−1'den gelen tüm mesajları şu şekilde aldığını unutmayın: zaman \(\alpha\)r,s′ ben +ts'. Oyuncu i'nin yazı tura atması gerekiyorsa (yani, 2/3'ten fazla çoğunluk görmediyse) aynı bit b \(\in\){0, 1}), sonra bi = lsb(H(\(\sigma\)r,s′−1) değerini ayarlar. \(\ell\)' )). Başka bir dürüst varsa b \(\in\){0, 1} biti için > 2/3 çoğunluğu gören i′ \(\in\)HSV r,s′'yi doğrulayan, ardından Özelliğe göre (d) Lemma 5.5'e göre, HSV r,s'deki hiçbir dürüst doğrulayıcı bir süre için > 2/3 çoğunluk görmezdi b' ̸= b. lsb(H(\(\sigma\)r,s′−1) olduğundan \(\ell\)' )) = b, 1/2 olasılıkla, HSV r,s'deki tüm dürüst doğrulayıcılar erişebilir b üzerinde 1/2 olasılıkla bir anlaşma. Elbette eğer böyle bir doğrulayıcı i' mevcut değilse, o zaman tüm HSV r,s′'deki dürüst doğrulayıcılar lsb(H(\(\sigma\)r,s′−1) biti üzerinde hemfikirdir \(\ell\)' )) 1 olasılıkla. \(\ell\)′ \(\in\)HSV r,s′−1 olasılığını birleştirirsek, HSV r,s′'deki dürüst doğrulayıcıları elde ederiz. b \(\in\){0, 1} biti üzerinde en az ph olasılıkla bir anlaşmaya varmak 2 = h2(1+h−h2) 2 . Üstelik, Daha önce olduğu gibi çoğunluk oyu üzerinden tümevarım yoluyla, HSV r,s'deki tüm dürüst doğrulayıcıların vi'leri ayarlanmıştır H(Br) olmak \(\ell\)). Dolayısıyla, s' Adımında b üzerinde bir anlaşmaya varıldığında, T r+1 ya \(\leq\)T r + \(\lambda\) + ts′+1 ya da \(\leq\)T r + \(\lambda\) + ts′+2, Durum 2.1.a ve 2.1.b'nin analizi sonrasında b = 0 veya b = 1 olmasına bağlı olarak. içinde özellikle, başka bir Coin-Genuinely-Flipped adımı yürütülmeyecektir: yani, bu tür adımlar yine de kendilerinin doğrulayıcı olup olmadığını kontrol eder ve bu nedenle bekler, ancak hepsi durdurulmadan duracaktır. herhangi bir şeyin propagandasını yapmak. Buna göre, s∗ Adımından önce, Coin-GenuinelyFlipped adımlarının yürütülme sayısı Lr rastgele değişkenine göre dağıtılır. İzin Verme Adımı protokolün oluşturulmasıyla Lr'ye göre son Para-Gerçekten Çevirilmiş adım olacak bizde s' = 4 + 3Lr. Rakip T r+1'i olabildiğince geciktirmek istiyorsa Adım ∗'ı ne zaman gerçekleştirmelidir? mümkün mü? Hatta Düşmanın Lr'nin gerçekleşeceğini önceden bildiğini bile varsayabiliriz. Eğer s∗> s′ ise faydasız çünkü dürüst doğrulayıcılar zaten bir anlaşmaya varmışlardır. Adım s'. Elbette bu durumda s∗ yine b = 0 olmasına bağlı olarak s′ +1 veya s′ +2 olacaktır. veya b = 1. Ancak bu aslında Durum 2.1.a ve 2.1.b'dir ve elde edilen T r+1 tam olarak bu durumda olduğu gibi. Daha doğrusu, T r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. Eğer s∗< s′ −3 - yani s∗ sondan ikinci Para-Gerçekten Çevirme adımından önceyse - o zaman Durum 2.2.a ve 2.2.b'nin analizi, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts'. Yani Düşman aslında Br ile ilgili anlaşmanın daha hızlı gerçekleşmesini sağlıyor. Eğer s∗= s′ −2 veya s′ −1 ise — yani, Paraya Sabitlenmiş 0 adımı veya Paraya Sabitlenmiş 1 adımı Adım s'den hemen önce - ardından dört alt durumun analiziyle, dürüst doğrulayıcılar Adımlar artık para atamaz çünkü ya ilerlemeden durmuşlardır, veya aynı bit için > 2/3 çoğunluk görmüş olmak b. Bu nedenle elimizde T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.Özetle, ne olursa olsun, elimizde T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = T r + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = T r + (6Lr + 10)\(\lambda\) + Λ, göstermek istediğimiz gibi. En kötü durum s∗= s′ −1 olduğu ve Durum 2.2.b'nin gerçekleştiği durumdur. İkili BA protokolünün Durum 1 ve 2'sini birleştiren Lemma 5.3 geçerlidir. ■ 5.9 Tohum Qr'un Güvenliği ve Dürüst Bir Liderin Olasılığı Geriye Lemma 5.4'ü kanıtlamak kalıyor. r turundaki doğrulayıcıların PKr−k'den alındığını hatırlayın ve Qr−1 miktarına göre seçilir. Geriye bakma parametresi k'nin tanıtılmasının nedeni r −k turunda, Düşmanın yeni kötü niyetli kullanıcılar ekleyebildiğinden emin olmaktır. PKr−k'ye göre, ihmal edilebilir bir olasılık dışında Qr−1 miktarını tahmin edemez. Şunu unutmayın: hash işlevi rastgele bir oracle işlevidir ve r turu için doğrulayıcıları seçerken Qr−1 onun girdilerinden biridir. Böylece, PKr−k'ye ne kadar kötü niyetli kullanıcılar eklenirse eklensin, Düşmanın bakış açısından her biri içlerinden biri hala r turunun bir adımında gerekli p olasılığıyla doğrulayıcı olarak seçiliyor (veya Adım 1 için p1). Daha doğrusu aşağıdaki lemmaya sahibiz. Lemma 5.6. k = O(log1/2 F) durumunda, her r turu için, büyük olasılıkla Rakip r −k turunda Qr−1'i rastgele oracle'ye sorgulamadı. Kanıt. Tümevarımla ilerliyoruz. Her \(\gamma\) < r turu için Düşmanın sorgulama yapmadığını varsayalım. Q\(\gamma\)−1'den rastgele oracle'ye \(\gamma\) −k.21 turunda geriye doğru. Şunun oynadığı aşağıdaki zihinsel oyunu düşünün: Rakip r −k turunda Qr−1'i tahmin etmeye çalışıyor. Her turun 1. Adımında \(\gamma\) = r −k, . . . , r −1, rastgele olarak sorgulanmayan belirli bir Q\(\gamma\)−1 verildiğinde oracle, i \(\in\)PK\(\gamma\)−k oyuncularını hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) değerlerine göre sıralayarak giderek PK\(\gamma\)−k üzerinde rastgele bir permütasyon elde ediyoruz. Tanım gereği, lider \(\ell\) \(\gamma\) Permütasyondaki ilk kullanıcıdır ve olasılık konusunda dürüsttür h. Üstelik PK\(\gamma\)−k büyük olduğunda yeterli, herhangi bir x \(\geq\)1 tamsayısı için, permütasyondaki ilk x kullanıcıların hepsinin olma olasılığı kötü niyetli ama (x + 1)st dürüst (1 −h)xh'dir. Eğer \(\ell\) \(\gamma\) dürüstse, o zaman Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Düşman imzayı taklit edemediğinden \(\ell\) \(\gamma\), Q\(\gamma\) Rakibin bakış açısından rastgele ve eşit şekilde dağıtılır ve hariç üstel olarak küçük olasılıkla,22 r-k turunda H'ye sorgulanmadı. Her birinden beri Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 sırasıyla H'nin Q\(\gamma\), Q\(\gamma\)+1, ile çıkışıdır. . . , Qr−2 girdilerden biri olarak, hepsi Rakibe rastgele görünür ve Rakibin Qr−1'den H'ye kadar olan süreyi sorgulamış olması mümkün değildir. yuvarlak r −k. Buna göre, Rakibin turda iyi bir olasılıkla Qr−1'i tahmin edebileceği tek durum r−k, tüm liderlerin \(\ell\)r−k olduğu zamandır, . . . , \(\ell\)r−1 kötü niyetlidir. Yine yuvarlak bir \(\gamma\) \(\in\){r−k olduğunu düşünün. . . , r−1} ve karşılık gelen hash değerleri tarafından indüklenen PK\(\gamma\)−k üzerindeki rastgele permütasyon. Bazıları için ise x \(\geq\)2, permütasyondaki ilk x −1 kullanıcılarının hepsi kötü niyetli ve x'inci de dürüst, o zaman Rakibin Q\(\gamma\) için x olası seçeneği vardır: H(SIGi(Q\(\gamma\)−1, \(\gamma\))) formundan herhangi biri, burada i aşağıdakilerden biridir: 21k küçük bir tam sayı olduğundan, genelliği kaybetmeden protokolün ilk k turunun yürütüldüğü varsayılabilir. güvenli bir ortam altında ve tümevarım hipotezi bu turlar için geçerlidir. 22 Yani H'nin çıktısının uzunluğu üsteldir. Bu olasılığın F'den çok daha küçük olduğuna dikkat edin.oyuncu i'yi \(\gamma\) turunun fiilen lideri yaparak ilk x−1 kötü niyetli kullanıcı; veya H(Q\(\gamma\)−1, \(\gamma\)), ile zorlama B\(\gamma\) = B\(\gamma\) ǫ . Aksi takdirde, \(\gamma\) turunun lideri permütasyondaki ilk dürüst kullanıcı olacaktır. ve Qr−1 Düşman için tahmin edilemez hale gelir. Düşman yukarıdaki Q\(\gamma\) seçeneklerinden hangisini takip etmelidir? Düşmana yardım etmek için Bu soruyu cevaplayın, zihinsel oyunda onu gerçekte olduğundan daha güçlü kılıyoruz aşağıdaki gibidir. Her şeyden önce, gerçekte Düşman, dürüst bir kullanıcının hash değerini hesaplayamaz. imza, dolayısıyla her Q\(\gamma\) için başlangıçta kötü niyetli kullanıcıların x(Q\(\gamma\)) sayısına karar veremez Q\(\gamma\) tarafından indüklenen \(\gamma\) + 1 turundaki rastgele permütasyonun. Zihinsel oyunda ona şunu veriyoruz: x(Q\(\gamma\)) sayıları ücretsiz. İkincisi, gerçekte permütasyonda ilk x kullanıcıya sahip olmak Kötü niyetli olmaları mutlaka hepsinin lider olabileceği anlamına gelmez, çünkü hash imzalarının değerleri de p1'den küçük olmalıdır. Zihinsel anlamda bu kısıtlamayı göz ardı ettik. Düşmana daha da fazla avantaj sağlayan oyun. Zihinsel oyunda Rakip için en uygun seçeneğin ˆQ\(\gamma\) ile gösterildiğini görmek kolaydır, Rastgele sürecin başlangıcında en uzun kötü niyetli kullanıcı dizisini üretendir. \(\gamma\) + 1 turundaki permütasyon. Aslında, belirli bir Q\(\gamma\) verildiğinde, protokol Q\(\gamma\)−1'e bağlı değildir. artık ve Rakip yalnızca \(\gamma\) + 1 turundaki yeni permütasyona odaklanabilir; Başlangıçta kötü niyetli kullanıcı sayısı için aynı dağılım. Buna göre her turda \(\gamma\), yukarıda bahsedilen ˆQ\(\gamma\) ona Q\(\gamma\)+1 için en fazla sayıda seçeneği verir ve böylece maksimuma çıkar. ardışık liderlerin hepsinin kötü niyetli olma olasılığı. Bu nedenle, zihinsel oyunda Rakip r −k turundan itibaren Markov Zincirini takip ediyor durum uzayı {0} \(\cup\){x : x \(\geq\)2} olacak şekilde r −1'i yuvarlamak. Durum 0, şu gerçeği temsil eder: Mevcut \(\gamma\) turundaki rastgele permütasyondaki ilk kullanıcı dürüsttür, dolayısıyla Rakip başarısız olur Qr−1'i tahmin etme oyunu; ve her x \(\geq\)2 durumu, ilk x -1 kullanıcılarının permütasyon kötü niyetlidir ve x'inci dürüsttür, dolayısıyla Düşmanın Q\(\gamma\) için x seçeneği vardır. geçiş olasılıkları P(x, y) aşağıdaki gibidir. • Herhangi bir y \(\geq\)2 için P(0, 0) = 1 ve P(0, y) = 0. Yani, Rakip ilk hamlede oyunda başarısız olur permütasyondaki kullanıcı dürüst olur. • Herhangi bir x \(\geq\)2 için P(x, 0) = hx. Yani hx olasılıkla tüm x rastgele permütasyonlar ilk kullanıcıları dürüst olduğundan Rakip bir sonraki turda oyunda başarısız olur. • Herhangi bir x \(\geq\)2 ve y \(\geq\)2 için P(x, y), x rastgele permütasyonları arasında olma olasılığıdır. Başlangıçtaki kötü niyetli kullanıcıların en uzun dizisi olan Q\(\gamma\)'nun x seçenekleri tarafından tetiklenir. bunlardan bazıları y −1'dir, dolayısıyla Rakibin bir sonraki turda Q\(\gamma\)+1 için y seçeneği vardır. Yani, P(x, y) = y−1 X ben=0 (1 −h)ih !x − y−2 X ben=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. 0 durumunun, geçiş matrisi P'deki benzersiz soğurma durumu olduğuna ve diğer tüm durumların olduğuna dikkat edin. x'in 0'a gitme olasılığı pozitiftir. Biz k sayısının üst sınırıyla ilgileniyoruz. Markov Zincirinin 0'a yakınsaması için çok büyük bir olasılıkla turlara ihtiyaç var: yani hayır Zincirin hangi aşamada başladığı önemli değil, büyük olasılıkla Rakip oyunu kaybeder ve r −k turunda Qr−1'i tahmin edemiyor. İki turdan sonra P(2) \(\triangleq\)P \(\cdot\) P geçiş matrisini düşünün. P (2)(0, 0) = 1 olduğunu görmek kolaydır ve herhangi bir x \(\geq\)2 için P(2)(0, x) = 0. Herhangi bir x \(\geq\)2 ve y \(\geq\)2 için P(0, y) = 0 olduğundan şunu elde ederiz: P (2)(x, y) = P(x, 0)P(0, y) + X z\(\geq\)2 P(x, z)P(z, y) = X z\(\geq\)2 P(x, z)P(z, y).¯h \(\triangleq\)1 −h kabul edersek, P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x ve P(2)(x,y) = X z\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. Aşağıda P(2)(x,y)'nin limitini hesaplıyoruz. P(x,y) h 1'e giderken, yani ¯h 0'a gider. En yüksek değere dikkat edin. P(x, y)'de ¯h'nin sırası ¯hy−1'dir ve x katsayısıyla birlikte. Buna göre, lim sa \(\to\) 1 P (2)(x, y) P(x, y) = lim ¯sa \(\to\) 0 P (2)(x, y) P(x, y) = lim ¯sa \(\to\) 0 P (2)(x, y) x¯hy−1 + O(¯hy) = lim ¯sa \(\to\) 0 P z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = lim ¯sa \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = lim ¯sa \(\to\) 0 2x¯hy x¯hy−1 = lim ¯sa \(\to\) 0 2¯sa = 0. h 1,23'e yeterince yakın olduğunda P (2)(x, y) P(x, y) \(\leq\)1 2 herhangi bir x \(\geq\)2 ve y \(\geq\)2 için. Tümevarım yoluyla, herhangi bir k > 2 için P(k) \(\triangleq\)Pk öyledir ki • Herhangi bir x \(\geq\)2 için P (k)(0, 0) = 1, P (k)(0, x) = 0 ve • herhangi bir x \(\geq\)2 ve y \(\geq\)2 için, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + X z\(\geq\)2 P (k−1)(x, z)P(z, y) = X z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) X z\(\geq\)2 P(x, z) 2k−2 \(\cdot\) P(z, y) = P (2)(x, y) 2k−2 \(\leq\)P(x, y) 2k−1 . P(x, y) \(\leq\)1 olduğundan, 1−log2 F turundan sonra, herhangi bir y \(\geq\)2 durumuna geçiş olasılığı ihmal edilebilir düzeydedir, herhangi bir x \(\geq\)2 durumuyla başlayarak. Bu tür birçok y durumu olmasına rağmen, bunu görmek kolaydır. lim y→+∞ P(x, y) P(x, y + 1) = lim y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = lim y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1 − sa. Bu nedenle geçiş matrisi P'nin her x satırı, oran ile geometrik bir dizi olarak azalır. 1 1−sa > 2 y yeterince büyük olduğunda, aynı durum P(k) için de geçerlidir. Buna göre, k yeterince büyük olduğunda ancak yine de log1/2 sırasına göre F, P y\(\geq\)2 P (k)(x, y) < F herhangi bir x \(\geq\)2 için. Yani büyük olasılıkla Rakip oyunu kaybeder ve r −k turunda Qr−1'i tahmin edemez. h \(\in\)(2/3, 1] için bir tane daha Karmaşık analiz, 1/2'den biraz daha büyük bir C sabitinin var olduğunu göstermektedir, öyle ki k = O(logC F) almak için. Böylece Lemma 5.6 geçerlidir. ■ Lemma 5.4. (yeniden ifade edilmiştir) r'den önceki her tur için Özellikler 1-3 verildiğinde, Lr için ph = h2(1 + h −h2), ve lider en azından ph konusunda dürüsttür. 23Örneğin, belirli parametre seçimlerinin önerdiği gibi h = %80.
Kanıt. Lemma 5.6'ya göre, Rakip, r −k turunda Qr−1'in geri geleceğini tahmin edemez, ancak şu durum geçerlidir: ihmal edilebilir olasılık. Bunun dürüst bir liderin olasılığının h olduğu anlamına gelmediğini unutmayın. her turda. Aslında Qr−1 verildiğinde, başlangıçta kaç kötü niyetli kullanıcının olduğuna bağlı olarak PKr−k'nin rastgele permütasyonu nedeniyle, Rakibin Qr için birden fazla seçeneği olabilir ve bu nedenle r + 1 turunda kötü niyetli bir liderin olasılığını artırabilir - yine ona veriyoruz Analizi basitleştirmek amacıyla Lemma 5.6'daki gibi bazı gerçekçi olmayan avantajlar. Bununla birlikte, Rakip tarafından r −k turunda H'ye sorgulanmayan her Qr−1 için, herhangi bir x \(\geq\)1, (1 −h)x−1h olasılıkla ilk dürüst kullanıcı sonuçta x konumunda olur PKr−k'nin rastgele permütasyonu. X = 1 olduğunda, r+1 turunda dürüst bir liderin olasılığı gerçekten h; x = 2 olduğunda, Rakibin Qr için iki seçeneği vardır ve ortaya çıkan olasılık şu şekildedir: h2. Sadece bu iki durumu göz önünde bulundurarak turda dürüst bir liderin olma olasılığını elde ederiz. r + 1 en azından istendiği gibi h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2)'dir. Yukarıdaki olasılığın yalnızca r −k turundan itibaren protokoldeki rastgeleliği dikkate aldığını unutmayın. r'yi yuvarlamak için. 0 turundan r turuna kadar tüm rastgelelik dikkate alındığında, Qr−1 Rakip için daha da az öngörülebilir ve r + 1 turunda dürüst bir liderin olasılığı şu şekildedir: en az h2(1 + h −h2). r + 1'i r ile değiştirirsek ve her şeyi bir tur geriye kaydırırsak lider \(\ell\)r olur istendiği gibi en azından h2(1 + h −h2) olasılığı açısından dürüsttür. Benzer şekilde, her bir Yazı-Gerçekten Çevirme adımında, o adımın "lideri", yani doğrulayıcıdır. Kimlik bilgisi en küçük hash değerine sahip olan SV r,s'de, en azından h2(1 +) olasılıkla dürüsttür. h −h2). Dolayısıyla Lr ve Lemma 5.4 için ph = h2(1 + h −h2) geçerlidir. ■
Algorand ′
2 In diesem Abschnitt erstellen wir eine Version von Algorand ′, die unter der folgenden Annahme arbeitet. Annahme: Ehrliche Mehrheit der Benutzer: Mehr als 2/3 der Benutzer in jedem PKr sind ehrlich. In Abschnitt 8 zeigen wir, wie man die obige Annahme durch die gewünschte ehrliche Mehrheit ersetzt Geldannahme. 6.1 Zusätzliche Notationen und Parameter für Algorand ′ 2 Notationen • \(\mu\) \(\in\)Z+: eine pragmatische Obergrenze für die Anzahl der Schritte, die mit überwältigender Wahrscheinlichkeit wird tatsächlich in einer Runde genommen. (Wie wir sehen werden, steuert der Parameter \(\mu\), wie viele ephemere Schlüssel, die ein Benutzer im Voraus für jede Runde vorbereitet.) • Lr: eine Zufallsvariable, die die Anzahl der Bernoulli-Versuche darstellt, die erforderlich sind, um jeweils eine 1 zu sehen Versuch ist 1 mit Wahrscheinlichkeit ph 2 . Lr wird verwendet, um die für die Generierung benötigte Zeit nach oben zu begrenzen Block Br. • tH: eine Untergrenze für die Anzahl ehrlicher Verifizierer in einem Schritt s > 1 der Runde r, so dass mit Überwältigende Wahrscheinlichkeit (vorausgesetzt n und p), es gibt > tH ehrliche Verifizierer in SV r,s. Parameter • Beziehungen zwischen verschiedenen Parametern. — Für jeden Schritt s > 1 der Runde r wird n so gewählt, dass mit überwältigender Wahrscheinlichkeit
|HSV r,s| > tH und |HSV r,s| + 2|MSV r,s| < 2tH. Beachten Sie, dass die beiden obigen Ungleichungen zusammen |HSV r,s| implizieren > 2|MSV r,s|: das heißt, dort ist eine 2/3 ehrliche Mehrheit unter den ausgewählten Prüfern. Je näher der Wert von h an 1 liegt, desto kleiner muss n sein. Insbesondere verwenden wir (Varianten von) Chernoff-Grenzen, um sicherzustellen, dass die gewünschten Bedingungen mit überwältigender Wahrscheinlichkeit eintreten. • Beispielhafte Auswahl wichtiger Parameter. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Implementierung kurzlebiger Schlüssel in Algorand ′ 2 Denken Sie daran, dass ein Verifizierer i \(\in\)SV r,s seine Nachricht mr,s digital signiert ich der Schritte s in Runde r, relativ zu ein kurzlebiger öffentlicher Schlüssel pkr,s i , unter Verwendung eines kurzlebigen geheimen Schlüssels skr,s ich dass er sofort zerstört nach der Verwendung. Wenn die Anzahl der möglichen Schritte, die eine Runde machen darf, durch eine bestimmte Grenze begrenzt ist Ganzzahl \(\mu\) haben wir bereits gesehen, wie man ephemere Schlüssel praktisch handhabt. Zum Beispiel, wie wir habe erklärt in Algorand ′ 1 (wobei \(\mu\) = m + 3), um alle seine möglichen kurzlebigen Schlüssel zu verarbeiten Eine Runde r′ zu einer Runde r′ + 106, i erzeugt ein Paar (PMK, SMK), wobei PMK öffentlicher Master ist Schlüssel eines identitätsbasierten Signaturschemas und SMK sein entsprechender geheimer Hauptschlüssel. Benutzer i veröffentlicht PMK und verwendet SMK, um den geheimen Schlüssel jedes möglichen kurzlebigen öffentlichen Schlüssels zu generieren (und zerstört danach SMK). Der Satz der kurzlebigen öffentlichen Schlüssel von i für das relevante Runden ist S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Wie besprochen, wenn sich die Runde r′ + 106 nähert, Ich „aktualisiere“ sein Paar (PMK, SMK).) In der Praxis ergibt sich, wenn \(\mu\) groß genug ist, eine Runde von Algorand ′ 2 dauert nicht mehr als \(\mu\)-Schritte. In Prinzipiell besteht jedoch die entfernte Möglichkeit, dass für einige Runden die Anzahl der Schritte r ist tatsächlich eingenommen wird \(\mu\) überschreiten. Wenn das passiert, könnte ich seine Nachricht nicht unterschreiben, Herr ich für jeder Schritt s > \(\mu\), da er im Voraus nur \(\mu\) geheime Schlüssel für Runde r vorbereitet hat. Außerdem, er konnte, wie bereits besprochen, keinen neuen Vorrat an kurzlebigen Schlüsseln vorbereiten und veröffentlichen. Tatsächlich zu tun Daher müsste er einen neuen öffentlichen Hauptschlüssel PMK′ in einen neuen Block einfügen. Aber sollte r runden Wenn Sie immer mehr Schritte ausführen, werden keine neuen Blöcke generiert. Es gibt jedoch Lösungen. Zum Beispiel kann ich den letzten kurzlebigen Schlüssel der Runde r, pkr,\(\mu\) verwenden ich , wie folgt. Er generiert einen weiteren Vorrat an Schlüsselpaaren für Runde r – z. B. indem er (1) ein weiteres generiert Hauptschlüsselpaar (PMK, SMK); (2) Verwenden dieses Paares, um weitere, sagen wir, 106 kurzlebige Schlüssel zu generieren, sk r,\(\mu\)+1 ich , . . . , sk r,\(\mu\)+106 ich , entsprechend den Schritten \(\mu\)+1, ..., \(\mu\)+106 der Runde r; (3) mit skr,\(\mu\) ich zu digital Vorzeichen PMK (und jede (r, \(\mu\))-Nachricht, wenn i \(\in\)SV r,\(\mu\)), relativ zu pkr,\(\mu\) ich ; und (4) Löschen von SMK und skr,\(\mu\) ich . Soll ich in einem Schritt \(\mu\) + s mit s \(\in\){1, . . . , 106}, dann unterschreibe ich digital seine (r, \(\mu\) + s)- Nachricht mr,\(\mu\)+s ich relativ zu seinem neuen Schlüssel pk r,\(\mu\)+s ich = (i, r, \(\mu\) + s). Natürlich, um diese Signatur zu überprüfen Von i müssen andere sicher sein, dass dieser öffentliche Schlüssel dem neuen öffentlichen Hauptschlüssel PMK von i entspricht. Somit übermittelt i zusätzlich zu dieser Signatur seine digitale Signatur von PMK relativ zu pkr,\(\mu\) ich . Natürlich kann dieser Ansatz so oft wie nötig wiederholt werden, falls die Runde fortgesetzt wird für immer mehr Schritte! Der letzte ephemere geheime Schlüssel wird zur Authentifizierung einer neuen Master-Öffentlichkeit verwendet Schlüssel und damit ein weiterer Vorrat an kurzlebigen Schlüsseln für Runde r. Und so weiter.6.3 Das eigentliche Protokoll Algorand ′ 2 Erinnern Sie sich noch einmal daran, dass in jedem Schritt s einer Runde r ein Verifizierer i \(\in\)SV r,s sein langfristiges öffentliches Geheimnis verwendet Schlüsselpaar, um seinen Ausweis zu erzeugen, \(\sigma\)r,s ich \(\triangleq\)SIGi(r, s, Qr−1) sowie SIGi Qr−1 im Fall s = 1. Verifier i verwendet sein kurzlebiges Schlüsselpaar (pkr,s ich, skr,s i ), um jede andere Nachricht zu signieren erforderlich. Der Einfachheit halber schreiben wir esigi(m) statt sigpkr,s i (m), um die eigentliche Vergänglichkeit von i zu bezeichnen Signatur von m in diesem Schritt und schreiben Sie ESIGi(m) anstelle von SIGpkr,s i (m) \(\triangleq\)(i, m, esigi(m)). Schritt 1: Vorschlag blockieren Anweisungen für jeden Benutzer i \(\in\)PKr−k: Benutzer i beginnt seinen eigenen Schritt 1 der Runde r, sobald er dies getan hat CERT r−1, was es i ermöglicht, H(Br−1) und Qr−1 eindeutig zu berechnen. • Benutzer i verwendet Qr−1, um zu prüfen, ob i \(\in\)SV r,1 oder nicht. Wenn i /\(\in\)SV r,1, tut er für Schritt 1 nichts. • Wenn i \(\in\)SV r,1, das heißt, wenn i ein potenzieller Anführer ist, dann tut er Folgendes. (a) Wenn ich B0 gesehen habe, . . . , Br−1 selbst (jedes Bj = Bj ǫ kann leicht aus seinem hash-Wert abgeleitet werden in CERT j und wird daher als „gesehen“ angenommen), dann sammelt er die Round-R-Zahlungen ein, die er erhalten hat wurde ihm bisher propagiert und berechnet einen maximalen Payset PAY r ich von ihnen. (b) Wenn ich nicht alle B0 gesehen habe, . . . , Br−1 noch, dann setzt er PAY r ich = \(\emptyset\). (c) Als nächstes berechne ich seinen „Kandidatenblock“ Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)). (c) Schließlich berechnet i die Nachricht mr,1 ich = (Br ich, esigi(H(Br i )), \(\sigma\)r,1 i ), zerstört sein Vergängliches geheimer Schlüssel skr,1 i und verbreitet dann zwei Nachrichten, mr,1 ich und (SIGi(Qr−1), \(\sigma\)r,1 ich), getrennt, aber gleichzeitig.a aWenn i der Anführer ist, ermöglicht SIGi(Qr−1) anderen die Berechnung von Qr = H(SIGi(Qr−1), r).
Selektive Vermehrung Um die globale Ausführung von Schritt 1 und der gesamten Runde zu verkürzen, ist es wichtig, dass die (r, 1)- Nachrichten werden selektiv verbreitet. Das heißt, für jeden Benutzer j im System • Für die erste (r, 1)-Nachricht, die er jemals empfängt und erfolgreich überprüft, ob sie Folgendes enthält ein Block oder nur ein Berechtigungsnachweis und eine Signatur von Qr−1 ist, propagiert Spieler j ihn wie gewohnt. • Für alle anderen (r, 1)-Nachrichten, die Spieler j empfängt und erfolgreich verifiziert, propagiert er Dies gilt nur, wenn der hash-Wert der darin enthaltenen Anmeldeinformationen der kleinste unter den hash-Werten ist der in allen (r, 1)-Nachrichten enthaltenen Anmeldeinformationen, die er erhalten hat, und hat dies erfolgreich überprüft weit. • Empfängt j jedoch zwei verschiedene Nachrichten der Form mr,1 ich vom selben Spieler i,b er verwirft den zweiten, unabhängig vom hash-Wert der Anmeldeinformationen von i. Beachten Sie, dass es bei der selektiven Propagierung nützlich ist, dass jeder potenzielle Anführer seinen eigenen propagiert Ausweis \(\sigma\)r,1 ich getrennt von Herrn,1 i :c Diese kleinen Nachrichten verbreiten sich schneller als Blöcke, stellen Sie sicher rechtzeitige Ausbreitung des Herrn,1 i ist dort, wo die enthaltenen Anmeldeinformationen kleine hash-Werte haben, während Lassen Sie solche mit großen hash-Werten schnell verschwinden. aDas heißt, alle Signaturen sind korrekt und wenn es sich um die Form mr,1 handelt i , sowohl der Block als auch sein hash sind gültig – obwohl j nicht prüft, ob der enthaltene Gehaltssatz für i maximal ist oder nicht. bWas bedeutet, dass ich böswillig bin. cWir danken Georgios Vlachos für diesen Vorschlag.Schritt 2: Der erste Schritt des Graded Consensus Protocol GC Anweisungen für jeden Benutzer i \(\in\)PKr−k: Benutzer i beginnt seinen eigenen Schritt 2 der Runde r, sobald er dies getan hat CERT r−1. • Benutzer i wartet maximal t2 \(\triangleq\) \(\lambda\) + Λ. Während ich warte, verhalte ich mich wie folgt. 1. Nachdem er die Zeit 2\(\lambda\) abgewartet hat, findet er den Benutzer \(\ell\)so dass H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j) für alle Referenzen \(\sigma\)r,1 j die Teil der erfolgreich verifizierten (r, 1)-Nachrichten sind, die er erhalten hat bisher.a 2. Wenn er hat erhalten a blockieren Br−1, welche Streichhölzer die hash Wert H(Br−1) im CERT r−1,b enthalten ist und ob er von \(\ell\)eine gültige Nachricht mr,1 erhalten hat \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c dann hört i auf zu warten und setzt v′ i \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. Andernfalls, wenn die Zeit t2 abläuft, setzt i v′ ich \(\triangleq\) \(\bot\). 4. Wenn der Wert von v′ i wurde gesetzt, i berechnet Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,2 oder nicht. 5. Wenn i \(\in\)SV r,2, berechnet i die Nachricht mr,2 ich \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d zerstört sein Vergängliches geheimer Schlüssel skr,2 i und propagiert dann mr,2 ich . Ansonsten höre ich auf, ohne mich weiterzuverbreiten irgendetwas. aIm Wesentlichen entscheidet Benutzer i privat, dass der Anführer der Runde r Benutzer \(\ell\) ist. bNatürlich, wenn CERT r−1 anzeigt, dass Br−1 = Br−1 ǫ , dann habe ich Br−1 in dem Moment, in dem er es hat, bereits „erhalten“. CERT r−1. cAuch hier sind die Unterschriften von Spieler \(\ell\) und die hashes alle erfolgreich verifiziert und ZAHLEN r \(\ell\)in Br \(\ell\)ist ein gültiger Gehaltssatz für rundes r – obwohl ich nicht prüfe, ob PAY r \(\ell\)ist maximal für \(\ell\)oder nicht. Wenn Br \(\ell\)enthält dann einen leeren Gehaltssatz Eigentlich ist es nicht nötig, dass ich Br−1 sehe, bevor ich verifiziere, ob Br \(\ell\)ist gültig oder nicht. dDie Nachricht mr,2 ich signalisiert, dass Spieler i die erste Komponente von v′ betrachtet i soll der hash des nächsten Blocks sein, oder betrachtet den nächsten Block als leer.
Schritt 3: Der zweite Schritt der GC Anweisungen für jeden Benutzer i \(\in\)PKr−k: Benutzer i beginnt seinen eigenen Schritt 3 der Runde r, sobald er dies getan hat CERT r−1. • Benutzer i wartet maximal t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Während ich warte, verhalte ich mich wie folgt. 1. Wenn ein Wert v existiert, so dass er mindestens die gültigen Nachrichten mr,2 erhalten hat j von die Form (ESIGj(v), \(\sigma\)r,2 j ), ohne jeden Widerspruch,a dann hört er auf zu warten und setzt v′ = v. 2. Ansonsten setzt er nach Ablauf der Zeit t3 v′ = \(\bot\). 3. Wenn der Wert von v′ festgelegt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,3 oder nicht. 4. Wenn i \(\in\)SV r,3, dann berechnet i die Nachricht mr,3 ich \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), zerstört seine Vergänglicher geheimer Schlüssel skr,3 i und propagiert dann mr,3 ich . Ansonsten höre ich ohne auf irgendetwas verbreiten. aDas heißt, er hat keine zwei gültigen Nachrichten erhalten, die ESIGj(v) bzw. ein anderes ESIGj(ˆv) enthalten. von einem Spieler j. Hier und von nun an, außer in den später definierten Endbedingungen, wann immer ein ehrlicher Spieler Will Nachrichten einer bestimmten Form, werden widersprüchliche Nachrichten niemals gezählt oder als gültig angesehen.
Schritt 4: Ausgabe von GC und der erste Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 4 der Runde r, sobald er beendet seinen eigenen Schritt 3. • Benutzer i wartet maximal 2\(\lambda\).a Während des Wartens verhält sich i wie folgt. 1. Er berechnet vi und gi, die Ausgabe von GC, wie folgt. (a) Wenn es einen Wert v′ ̸= \(\bot\) gibt, so dass er mindestens die gültigen Nachrichten erhalten hat Herr,3 j = (ESIGj(v′), \(\sigma\)r,3 j ), dann hört er auf zu warten und setzt vi \(\triangleq\)v′ und gi \(\triangleq\)2. (b) Wenn er mindestens die gültigen Nachrichten mr,3 erhalten hat j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), dann bleibt er stehen wartet und setzt vi \(\triangleq\) \(\bot\)und gi \(\triangleq\)0.b (c) Ansonsten, wenn die Zeit 2\(\lambda\) abläuft, wenn es einen Wert v′ ̸= \(\bot\) gibt, den er hat mindestens ⌈tH erhalten 2 ⌉gültige Nachrichten mr,j j = (ESIGj(v′), \(\sigma\)r,3 j ), dann setzt er vi \(\triangleq\)v′ und gi \(\triangleq\)1.c (d) Andernfalls, wenn die Zeit 2\(\lambda\) abläuft, setzt er vi \(\triangleq\) \(\bot\)und gi \(\triangleq\)0. 2. Wenn die Werte vi und gi festgelegt wurden, berechnet i bi, die Eingabe von BBA⋆, wie folgt: bi \(\triangleq\)0, wenn gi = 2, andernfalls bi \(\triangleq\)1. 3. i berechnet Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,4 oder nicht. 4. Wenn i \(\in\)SV r,4, berechnet er die Nachricht mr,4 ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), zerstört seine Vergänglicher geheimer Schlüssel skr,4 i , und propagiert mr,4 ich . Ansonsten höre ich auf, ohne mich weiterzuverbreiten irgendetwas. aSomit könnte die maximale Gesamtzeit seit Beginn von Schritt 1 der Runde r t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ betragen. bOb Schritt (b) im Protokoll enthalten ist oder nicht, hat keinen Einfluss auf dessen Richtigkeit. Das Vorhandensein von Schritt (b) ermöglicht, dass Schritt 4 in weniger als 2\(\lambda\) Zeit endet, wenn ausreichend viele Prüfer von Schritt 3 „\(\bot\) signiert“ haben. cEs kann bewiesen werden, dass das v′ in diesem Fall, falls vorhanden, eindeutig sein muss.Schritt s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Ein Coin-Fixed-To-0-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er beendet seinen eigenen Schritt s −1. • Benutzer i wartet maximal 2\(\lambda\).a Während des Wartens verhält sich i wie folgt. – Endbedingung 0: Wenn an irgendeinem Punkt eine Zeichenfolge v ̸= \(\bot\)und ein Schritt s′ existiert, so dass (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-0-Schritt, (b) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b und (c) i hat eine gültige Nachricht erhalten (SIGj(Qr−1), \(\sigma\)r,1 j ), wobei j der zweite ist Komponente von v, dann hört i auf zu warten und beendet seine eigene Ausführung von Schritt s (und tatsächlich auch von Runde r) sofort, ohne etwas als (r, s)-Verifizierer zu propagieren; setzt H(Br) als erstes Komponente von v; und setzt sein eigenes CERT r auf die Menge der Nachrichten mr,s′−1 j von Schritt (b) zusammen mit (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Endbedingung 1: Wenn es an irgendeinem Punkt einen Schritt s′ gibt, so dass (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-1-Schritt, und (b’) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d dann hört i auf zu warten und beendet seine eigene Ausführung von Schritt s (und tatsächlich auch von Runde r) richtig weg, ohne etwas als (r, s)-Verifizierer zu propagieren; setzt Br = Br ǫ ; und legt sein eigenes fest CERT r soll die Menge der Nachrichten mr,s′−1 sein j des Teilschritts (b‘). – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)1. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), aber sie sind sich nicht auf dasselbe v einig, dann hört er auf wartet und setzt bi \(\triangleq\)0. – Ansonsten setzt i nach Ablauf der Zeit 2\(\lambda\) bi \(\triangleq\)0. – Wenn der Wert bi gesetzt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,s. – Wenn i \(\in\)SV r,s, berechnet i die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) mit vi Der Wert, den er in Schritt 4 berechnet hat, zerstört seinen kurzlebigen Geheimschlüssel skr,s ich, und dann propagiert mr,s ich . Andernfalls höre ich auf, ohne etwas zu verbreiten. aSomit könnte die maximale Gesamtzeit seit Beginn von Schritt 1 der Runde r ts \(\triangleq\)ts−1 + 2\(\lambda\) = sein (2s −3)\(\lambda\) + Λ. bEine solche Nachricht von Spieler j wird auch dann gezählt, wenn Spieler i auch eine Nachricht von j erhalten hat, der für 1 signiert. Ähnliches gilt für Endbedingung 1. Wie in der Analyse gezeigt, soll damit sichergestellt werden, dass alle ehrlichen Benutzer Bescheid wissen CERT r innerhalb der Zeit \(\lambda\) voneinander entfernt. cUser i kennt jetzt H(Br) und seine eigenen Rundenenden. Er muss nur warten, bis der eigentliche Block Br ist an ihn weitergeleitet, was einige Zeit in Anspruch nehmen kann. Als allgemeiner Benutzer hilft er immer noch bei der Verbreitung von Nachrichten. löst aber keine Ausbreitung als (r, s)-Verifizierer aus. Insbesondere hat er dabei geholfen, alle Botschaften zu verbreiten sein CERT r, was für unser Protokoll ausreicht. Beachten Sie, dass er auch für das binäre BA-Protokoll bi \(\triangleq\)0 festlegen sollte, aber bi wird in diesem Fall sowieso nicht benötigt. Ähnliches gilt für alle zukünftigen Anweisungen. dIn diesem Fall spielt es keine Rolle, um welche VJs es sich handelt. 65Schritt s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Ein Coin-Fixed-To-1-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er beendet seinen eigenen Schritt s −1. • Benutzer i wartet maximal 2\(\lambda\). Während ich warte, verhalte ich mich wie folgt. – Endbedingung 0: Dieselben Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Endbedingung 1: Die gleichen Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)0.a – Andernfalls, wenn die Zeit 2\(\lambda\) abläuft, setzt i bi \(\triangleq\)1. – Wenn der Wert bi gesetzt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,s. – Wenn i \(\in\)SV r,s, berechnet i die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) mit vi Der Wert, den er in Schritt 4 berechnet hat, zerstört seinen kurzlebigen Geheimschlüssel skr,s ich, und dann propagiert mr,s ich . Andernfalls höre ich auf, ohne etwas zu verbreiten. aBeachten Sie, dass der Empfang gültiger (r, s −1)-Nachrichten mit der Signatur 1 die Endbedingung 1 bedeuten würde. Schritt s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Ein münzecht umgedrehter Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er beendet seinen eigenen Schritt s −1. • Benutzer i wartet maximal 2\(\lambda\). Während ich warte, verhalte ich mich wie folgt. – Endbedingung 0: Dieselben Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Endbedingung 1: Die gleichen Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)0. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)1. – Andernfalls, wenn die Zeit 2\(\lambda\) abläuft, gilt SV r,s−1 ich sei die Menge der (r, s −1)-Verifizierer aus wem er eine gültige Nachricht erhalten hat mr,s−1 j , i setzt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 ich H(\(\sigma\)r,s−1 j )). – Wenn der Wert bi gesetzt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,s. – Wenn i \(\in\)SV r,s, berechnet i die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) mit vi Der Wert, den er in Schritt 4 berechnet hat, zerstört seinen kurzlebigen Geheimschlüssel skr,s ich, und dann propagiert mr,s ich . Andernfalls höre ich auf, ohne etwas zu verbreiten. Bemerkung. Im Prinzip kann das Protokoll, wie in Unterabschnitt 6.2 dargelegt, beliebig viele annehmen Schritte in einer Runde. Sollte dies passieren, wie besprochen, ist ein Benutzer i \(\in\)SV r,s mit s > \(\mu\) erschöpft
seinen Vorrat an vorgenerierten kurzlebigen Schlüsseln und muss seine (r, s)-Nachricht mr,s authentifizieren ich von a „Kaskade“ vergänglicher Schlüssel. Dadurch wird meine Nachricht etwas länger und die Übermittlung dieser Daten länger Nachrichten werden etwas länger dauern. Dementsprechend ist nach so vielen Schritten einer bestimmten Runde der Wert von Der Parameter \(\lambda\) erhöht sich automatisch leicht. (Aber es kehrt erneut zum ursprünglichen \(\lambda\) zurück Block wird produziert und eine neue Runde beginnt.) Rekonstruktion des Round-r-Blocks durch Nicht-Verifizierer Anleitung für jeden Benutzer i im System: Benutzer i startet seine eigene Runde r, sobald er sie hat CERT r−1. • Ich befolge die Anweisungen jedes Schritts des Protokolls und beteilige mich an der Verbreitung aller Nachrichten, initiiert jedoch keine Weitergabe in einem Schritt, wenn er darin kein Verifizierer ist. • i beendet seine eigene Runde r, indem er in einigen Fällen entweder die Endbedingung 0 oder die Endbedingung 1 eingibt Schritt, mit dem entsprechenden CERT r. • Von da an beginnt er seine Runde r + 1, während er darauf wartet, den eigentlichen Block Br zu erhalten (es sei denn er hat es bereits erhalten), dessen hash H(Br) von CERT r festgelegt wurde. Nochmals, wenn CERT r gibt an, dass Br = Br ǫ, das i weiß Br, sobald er CERT r hat. 6.4 Analyse von Algorand ′ 2 Die Analyse von Algorand ′ 2 lässt sich leicht aus dem von Algorand ′ ableiten 1. Im Wesentlichen in Algorand ′ 2, mit überwältigende Wahrscheinlichkeit, (a) alle ehrlichen Benutzer stimmen dem gleichen Block Br zu; der Anführer eines neuen Block ist mit einer Wahrscheinlichkeit von mindestens ph = h2(1 + h − h2) ehrlich.
Algorand ′
2 Bu bölümde, aşağıdaki varsayıma göre çalışan Algorand ′ versiyonunu oluşturuyoruz. Kullanıcıların Dürüst Çoğunluğu Varsayım: Her PKr'daki kullanıcıların 2/3'ünden fazlası dürüsttür. Bölüm 8'de yukarıdaki varsayımın istenen Dürüst Çoğunluk ile nasıl değiştirileceğini gösteriyoruz. Para varsayımı. 6.1 Algorand ′ için Ek Gösterimler ve Parametreler 2 Gösterimler • \(\mu\) \(\in\)Z+: büyük olasılıkla, adım sayısına pragmatik bir üst sınır, aslında tek turda alınacak. (Göreceğimiz gibi \(\mu\) parametresi kaç tane geçici Kullanıcının her tur için önceden hazırladığı anahtarlar.) • Lr: her biri 1'i görmek için gereken Bernoulli denemelerinin sayısını temsil eden rastgele değişken deneme ph olasılıkla 1'dir 2. Lr, üretmek için gereken sürenin üst sınırını belirlemek için kullanılacaktır. Br'yi engelle. • tH: r turunun s > 1 adımındaki dürüst doğrulayıcıların sayısı için bir alt sınır; ezici olasılık (n ve p verildiğinde), SV r,s'de > t dürüst doğrulayıcılar vardır. Parametreler • Çeşitli parametreler arasındaki ilişkiler. — r turundaki her adım için s > 1, n öyle seçilir ki, büyük bir olasılıkla,
|HSV r,s| > bu ve |HSV r,s| + 2|MSV r,s| < 2tH. Yukarıdaki iki eşitsizliğin birlikte |HSV r,s| > 2|MSV r,s|: yani orada Seçilen doğrulayıcılar arasında 2/3 dürüst çoğunluktur. h'nin değeri 1'e ne kadar yakınsa, n'nin o kadar küçük olması gerekir. Özellikle (varyantları) kullanıyoruz of) Chernoffistenen koşulların çok büyük bir olasılıkla gerçekleşmesini sağlamak için çabalıyor. • Önemli parametrelerin örnek seçimleri. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Algorand ′'de Geçici Anahtarların Uygulanması 2 Doğrulayıcı i \(\in\)SV r,s'nin mesajını mr,s olarak dijital olarak imzaladığını hatırlayın. ben r turundaki s adımının, göreli geçici bir genel anahtar pkr,s i, geçici bir salgı anahtarı kullanarak skr,s ben derhal yok ettiğini kullandıktan sonra. Bir turun atabileceği olası adım sayısı belirli bir sınırla sınırlandığında tamsayı \(\mu\), geçici anahtarların pratik olarak nasıl işleneceğini zaten gördük. Örneğin, bizim gibi Algorand ′'de açıkladım 1 (burada \(\mu\) = m + 3), olası tüm geçici anahtarları yönetmek için bir r′ turundan bir r′ + 106 turuna, i bir çift (PMK, SMK) oluşturur; burada PMK genel yöneticisi kimlik tabanlı imza şemasının anahtarı ve buna karşılık gelen gizli ana anahtar SMK'dır. Kullanıcı i PMK'yi duyurur ve olası her geçici genel anahtarın gizli anahtarını oluşturmak için SMK'yı kullanır (ve bunu yaptıktan sonra SMK'yı yok eder). İlgili için i'nin geçici ortak anahtarları kümesi turlar S = {i} \(\times\) {r′, . . . , r' + 106} \(\times\) {1, . . . , μ}. (Tartışıldığı gibi, r' + 106 turu yaklaşırken, çiftini (PMK, SMK) “yeniler”.) Pratikte \(\mu\) yeterince büyükse Algorand ′ turu yapılır. 2 \(\mu\) adımdan fazlasını almayacaktır. içinde Ancak prensipte, adım sayısının r kadar olması uzak bir olasılıktır. gerçekte alınan \(\mu\)'yi aşacaktır. Bu olduğunda, onun mesajını imzalayamam bayım. ben için herhangi bir adım s > \(\mu\), çünkü r turu için önceden yalnızca \(\mu\) gizli anahtarlarını hazırladı. Üstelik o daha önce tartışıldığı gibi yeni bir geçici anahtar zulası hazırlayıp kamuoyuna duyuramadı. Aslında yapmak bu nedenle yeni bir bloğa yeni bir genel ana anahtar PMK' eklemesi gerekecektir. Ancak r'yi yuvarlamalı giderek daha fazla adım atarsanız yeni bloklar oluşturulmaz. Ancak çözümler mevcut. Örneğin r, pkr,μ turunun son geçici anahtarını kullanabilirim ben , aşağıdaki gibi. r turu için başka bir anahtar çifti zulası oluşturur; örneğin (1) başka bir anahtar çifti oluşturarak ana anahtar çifti (PMK, SMK); (2) bu çifti başka bir örneğin 106 geçici anahtar oluşturmak için kullanmak, Sk r,μ+1 ben , . . . , Sk r,μ+106 ben r'nin \(\mu\)+1, ..., \(\mu\)+106 adımlarına karşılık gelir; (3) skr,μ kullanarak ben dijital olarak pkr,μ'ya göre PMK'yi imzalayın (ve i \(\in\)SV r,μ ise herhangi bir (r, \(\mu\)) mesajı) ben ; ve (4) SMK ve skr,μ'nun silinmesi ben . s \(\in\){1, . ile \(\mu\) + s adımında doğrulayıcı mı olmalıyım? . . , 106}, sonra dijital olarak onun (r, \(\mu\) + s)'sini imzalıyorum- mesaj bay,μ+s ben yeni anahtarı pk'ye göre r,μ+s ben = (i, r, \(\mu\) + s). Elbette bu imzayı doğrulamak için i'nin, diğerlerinin bu genel anahtarın i'nin yeni genel ana anahtarı PMK'ye karşılık geldiğinden emin olması gerekir. Böylece, bu imzaya ek olarak, pkr,μ'ye göre PMK dijital imzasını iletiyorum. ben . Elbette bu yaklaşım, r'nin devam etmesi durumunda gerektiği kadar tekrarlanabilir. daha fazla adım için! Son geçici gizli anahtar, yeni bir ana kamunun kimliğini doğrulamak için kullanılır anahtar ve böylece r. tur için başka bir geçici anahtar zulası. Ve benzeri.6.3 Gerçek Protokol Algorand ′ 2 Bir r turunun her s adımında, bir i \(\in\)SV r,s doğrulayıcısının uzun vadeli kamu sırrını kullandığını tekrar hatırlayın. kimlik bilgisini üretmek için anahtar çifti, \(\sigma\)r,s ben \(\triangleq\)SIGi(r, s, Qr−1) ve ayrıca SIGi Qr−1 s = 1 durumunda. Doğrulayıcı i geçici anahtar çiftini (pkr,s) kullanıyor ben, skr,s i ), olabilecek diğer herhangi bir m mesajını imzalamak için gerekli. Basit olması açısından sigpkr,s yerine esigi(m) yazarız i (m), i'nin geçici olduğunu belirtmek için bu adımda m imzasını kullanın ve SIGpkr,s yerine ESIGi(m) yazın i(m) \(\triangleq\)(i, m, esit(m))). 1. Adım: Teklifi Engelleyin Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi Adım 1'ine başlar başlamaz başlar. CERT r−1, bu i'nin H(Br−1) ve Qr−1'i açıkça hesaplamasına olanak tanır. • i kullanıcısı i \(\in\)SV r,1 olup olmadığını kontrol etmek için Qr−1'i kullanır. Eğer i /\(\in\)SV r,1 ise Adım 1 için hiçbir şey yapmaz. • Eğer i \(\in\)SV r,1 ise yani i potansiyel bir lider ise aşağıdakileri yapar. (a) Eğer B0'ı gördüysem, . . . , Br−1'in kendisi (herhangi bir Bj = Bj ǫ kolaylıkla hash değerinden türetilebilir CERT j'de bulunur ve bu nedenle "görüldüğü" varsayılır), daha sonra yuvarlak r ödemelerini tahsil eder. şu ana kadar kendisine dağıtılmıştır ve maksimum ödeme kümesi PAY r'yi hesaplar ben onlardanım. (b) B0'ın tamamını görmediysem, . . . , Br−1 henüz, sonra PAY r'yi ayarlar ben = \(\emptyset\). (c) Sonra onun “aday bloğunu” Br hesaplıyorum i = (r, ÖDEME r i , SIGi(Qr−1), H(Br−1)). (c) Son olarak mr,1 mesajını hesaplarım. ben = (Br ben , esigi(H(Br i)), \(\sigma\)r,1 i ), geçiciliğini yok eder gizli anahtar skr,1 i ve ardından iki mesaj yayar, mr,1 ben ve (SIGi(Qr−1), \(\sigma\)r,1 ben), ayrı ayrı ama aynı anda.a ai lider olduğunda, SIGi(Qr−1) diğerlerinin Qr = H(SIGi(Qr−1), r) hesaplamasını sağlar.
Seçici Yayılım Adım 1'in ve tüm turun genel uygulamasını kısaltmak için (r, 1)- önemlidir. Mesajlar seçici olarak yayılır. Yani sistemdeki her j kullanıcısı için, • Aldığı ve başarılı bir şekilde doğruladığı ilk (r, 1) mesajı için, mesajın içerip içermediğini bir blok veya sadece bir kimlik bilgisi ve Qr−1'in bir imzasıysa, j oyuncusu bunu her zamanki gibi yayar. • Oyuncu j'nin aldığı ve başarılı bir şekilde doğruladığı tüm diğer (r, 1) mesajları için yayılır. yalnızca içerdiği kimlik bilgisinin hash değeri, hash değerleri arasında en küçük olanıysa Aldığı ve başarıyla doğruladığı tüm (r, 1) mesajlarında bulunan kimlik bilgilerinin uzak. • Ancak j, mr,1 biçiminde iki farklı mesaj alırsa ben aynı oyuncudan i,b o i'nin kimlik bilgisinin hash değeri ne olursa olsun ikinciyi atar. Seçici yayılma altında her potansiyel liderin kendi propagandasını yapmasının faydalı olduğunu unutmayın. kimlik bilgisi \(\sigma\)r,1 ben Bay'dan ayrı olarak1 :c bu küçük mesajlar bloklardan daha hızlı yayılır, emin olun Bay'ın zamanında yayılması,1 i, içerilen kimlik bilgilerinin küçük hash değerlerine sahip olduğu yerdir; hash değeri büyük olanların hızla kaybolmasını sağlayın. aYani tüm imzalar doğrudur ve eğer bay şeklinde ise1 i, hem blok hem de onun hash değeri geçerli —her ne kadar j, dahil edilen ödeme kümesinin i için maksimum olup olmadığını kontrol etmese de. bBu, kötü niyetli olduğum anlamına geliyor. cBunu önerdiği için Georgios Vlachos'a teşekkür ederiz.Adım 2: Kademeli Konsensüs Protokolü GC'nin İlk Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi Adım 2'sine başlar başlamaz başlar. CERT r−1. • i kullanıcısı maksimum t2 \(\triangleq\) \(\lambda\) + Λ süresi kadar bekler. Beklerken şu şekilde davranıyorum. 1. 2\(\lambda\) süresini bekledikten sonra H(\(\sigma\)r,1) olacak şekilde \(\ell\) kullanıcısını bulur. \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j) herkes için kimlik bilgileri \(\sigma\)r,1 j bunlar, aldığı başarıyla doğrulanmış (r, 1) mesajlarının bir parçasıdır şimdiye kadar.a 2. Eğer o var alınan bir blok Br-1, hangisi maçlar the hash değer H(Br−1) CERT r−1,b'de bulunur ve \(\ell\)a'dan geçerli bir mesaj aldıysa mr,1 \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c sonra beklemeyi bırakır ve v'yi ayarlar ben \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. Aksi takdirde, t2 süresi bittiğinde v′'yi kurarım ben \(\triangleq\) \(\bot\). 4. v′ değeri ne zaman i ayarlandı, i CERT r−1'den Qr−1'i hesaplar ve olup olmadığını kontrol eder. i \(\in\)SV r,2 ya da değil. 5. Eğer i \(\in\)SV r,2 ise, i mr,2 mesajını hesaplar ben \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d geçiciliğini yok eder gizli anahtar skr,2 i ve ardından mr,2'yi yayar ben. Aksi takdirde yayılmadan dururum herhangi bir şey. a Esasen, i kullanıcısı r. turun liderinin \(\ell\) kullanıcısı olduğuna özel olarak karar verir. bTabii ki, eğer CERT r−1 Br−1 = Br−1 olduğunu gösteriyorsa ǫ , o zaman ben zaten Br-1'i aldığı anda "aldım" CERT r−1. cYine, oyuncu \(\ell\)'nin imzaları ve hashes'lerin tümü başarıyla doğrulandı ve PAY r \(\ell\)Br'de \(\ell\) geçerli bir ödeme setidir yuvarlak r —ÖDEME r olup olmadığını kontrol etmeme rağmen \(\ell\), \(\ell\)veya değil için maksimumdur. Eğer Br \(\ell\)boş bir ödeme seti içeriyorsa, o zaman aslında Br olup olmadığını doğrulamadan önce i'nin Br−1'i görmesine gerek yok. \(\ell\)geçerli olup olmadığı. dMesaj bay,2 ben i oyuncusunun v′'nin ilk bileşenini dikkate aldığını işaret eder i sonraki bloğun hash'si olacağım veya bir sonraki bloğun boş olduğunu düşünür.
Adım 3: GC'nin İkinci Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi 3. Adımına başlar başlamaz başlar. CERT r−1. • Kullanıcı i maksimum süre boyunca t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ bekler. Beklerken şöyle davranıyorum takip ediyor. 1. En az bu geçerli mesajı almış olacak şekilde bir v değeri varsa mr,2 j arasında (ESIGj(v), \(\sigma\)r,2) formu j ), hiçbir çelişki olmadan, a sonra beklemeyi bırakır ve ayarlar v′ = v. 2. Aksi takdirde t3 süresi dolduğunda v′ = \(\bot\) değerini alır. 3. v′ değeri ayarlandığında i, CERT r−1'den Qr−1'i hesaplar ve olup olmadığını kontrol eder. i \(\in\)SV r,3 ya da değil. 4. Eğer i \(\in\)SV r,3 ise mr,3 mesajını hesaplarım ben \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), onunkini yok eder geçici gizli anahtar skr,3 i ve ardından mr,3'ü yayar ben. Aksi takdirde, olmadan dururum herhangi bir şeyin propagandasını yapmak. aYani, sırasıyla ESIGj(v) ve farklı bir ESIGj(ˆv) içeren iki geçerli mesaj almamıştır, j oyuncusundan. Burada ve bundan sonra, daha sonra tanımlanacak Bitiş Koşulları dışında, dürüst bir oyuncunun Belirli bir formdaki mesajları istiyorsa, birbiriyle çelişen mesajlar asla sayılmaz veya geçerli sayılmaz.
Adım 4: GC Çıktısı ve BBA'nın İlk Adımı⋆ Her i \(\in\)PKr−k kullanıcısı için talimatlar: Kullanıcı i, r turunun kendi 4. Adımına başlar başlamaz başlar. kendi 3. Adımını tamamlar. • i kullanıcısı maksimum 2\(\lambda\).a kadar bekler. Beklerken i aşağıdaki gibi davranır. 1. GC çıktısı olan vi ve gi'yi aşağıdaki gibi hesaplar. (a) En az tH geçerli mesajı almış olacak şekilde bir v′ ̸= \(\bot\) değeri varsa bay,3 j = (ESIGj(v′), \(\sigma\)r,3 j ), sonra beklemeyi bırakır ve vi \(\triangleq\)v' ve gi \(\triangleq\)2'yi ayarlar. (b) En azından geçerli mesajları almışsa mr,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), sonra durur bekleme ve vi \(\triangleq\) \(\bot\) ve gi \(\triangleq\)0.b'yi ayarlar (c) Aksi halde, 2\(\lambda\) süresi dolduğunda, eğer v′ ̸= \(\bot\) değeri varsa, en az ⌈tH aldı 2 ⌉geçerli mesajlar mr,j j = (ESIGj(v′), \(\sigma\)r,3 j), sonra vi \(\triangleq\)v′'yi ayarlar ve gi \(\triangleq\)1.c (d) Aksi halde, 2\(\lambda\) süresi bittiğinde vi \(\triangleq\) \(\bot\)ve gi \(\triangleq\)0 değerini alır. 2. vi ve gi değerleri ayarlandığında i, BBA⋆ girişi olan bi'yi aşağıdaki gibi hesaplar: gi = 2 ise bi \(\triangleq\)0, aksi halde bi \(\triangleq\)1. 3. i, CERT r−1'den Qr−1'i hesaplar ve i \(\in\)SV r,4 olup olmadığını kontrol eder. 4. Eğer i \(\in\)SV r,4 ise mr,4 mesajını hesaplar. ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), onunkini yok eder geçici gizli anahtar skr,4 i ve mr,4'ü yayar ben. Aksi takdirde yayılmadan dururum herhangi bir şey. aBöylece i'nin r turunun 1. Adımına başlamasından bu yana geçen maksimum toplam süre t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ olabilir. b Adım (b)'nin protokolde olup olmaması doğruluğunu etkilemez. Ancak (b) Adımının varlığı Yeterli sayıda Adım-3 doğrulayıcısının "\(\bot\)" imzasını atması durumunda Adım 4'ün 2\(\lambda\)'dan daha kısa sürede bitmesine izin verir. cBu durumda, eğer varsa, v'nin benzersiz olması gerektiği kanıtlanabilir.Adım s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: BBA⋆'nın 0'a Sabitlenmiş Madeni Para Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: i kullanıcısı r turunun kendi Adım s'sini başlatır kendi Adım s -1'i tamamlar. • i kullanıcısı maksimum 2\(\lambda\).a kadar bekler. Beklerken i aşağıdaki gibi davranır. – Bitiş Koşulu 0: Herhangi bir noktada v ̸= \(\bot\) dizisi ve s′ adımı varsa öyle ki (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 — yani Adım s', Paraya Sabitlenmiş 0 adımıdır, (b) i en azından geçerli mesajları aldım mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b ve (c) i geçerli bir mesaj aldım (SIGj(Qr−1), \(\sigma\)r,1 j ) j ikinci olmak üzere v'nin bileşeni, daha sonra beklemeyi bırakır ve Adım s'yi (ve aslında r turunu) kendi yürütmesine son verir. (r, s)-doğrulayıcı olarak hiçbir şeyi yaymadan hemen; H(Br)'yi ilk olarak ayarlar v'nin bileşeni; ve kendi CERT r'sini mr,s′−1 mesaj kümesi olarak ayarlar j (b) adımının (SIGj(Qr−1), \(\sigma\)r,1 ile birlikte j ).c – Bitiş Koşulu 1: Herhangi bir noktada şöyle bir s' adımı varsa: (a') 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 — yani Adım s', Paraya Sabitlenmiş 1 adımıdır ve (b') i en azından geçerli mesajları aldım mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s'−1 j ),d daha sonra beklemeyi bırakır ve Adım s'yi (ve aslında r turunu) kendi yürütmesine son verir. (r, s)-doğrulayıcı olarak hiçbir şeyi yaymadan ortadan kaybolun; Br = Br'yi ayarlar ǫ ; ve kendi ayarını yapıyor CERT r mr,s′−1 mesajların kümesi olacak j (b') alt adımının. – Eğer en herhangi biri nokta o var alınan en en azından bu geçerli bay,s−1 j 'nin arasında the biçim (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra beklemeyi bırakır ve bi \(\triangleq\)1 değerini ayarlar. – Eğer en herhangi biri nokta o var alınan en en az bu geçerli bay,s−1 j 'nin arasında the biçim (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), ancak aynı v üzerinde anlaşamıyorlar, sonra duruyor bekliyor ve bi \(\triangleq\)0 olarak ayarlıyor. – Aksi halde, 2\(\lambda\) süresi bittiğinde i bi \(\triangleq\)0 olur. – bi değeri ayarlandığında i, CERT r−1'den Qr−1'i hesaplar ve olup olmadığını kontrol eder. i \(\in\)SV r,s. – Eğer i \(\in\)SV r,s ise, i mr,s mesajını hesaplar ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) vi olmak üzere 4. Adımda hesapladığı değer, geçici gizli anahtarı skr,s'yi yok eder ben ve sonra bay,s'yi yayar ben. Aksi takdirde hiçbir şey yaymadan dururum. aBöylece i'nin r turunun 1. Adımına başlamasından bu yana geçen maksimum toplam süre ts \(\triangleq\)ts−1 + 2\(\lambda\) = olabilir (2s −3)\(\lambda\) + Λ. b Oyuncu j'den gelen böyle bir mesaj, i oyuncusu j imzasından da 1 için bir mesaj almış olsa bile sayılır. Bitiş Koşulu 1 için de benzer şeyler. Analizde gösterildiği gibi bu, tüm dürüst kullanıcıların bilmesini sağlamak içindir. CERT r birbirinden \(\lambda\) süresi içinde. c Kullanıcı i artık H(Br)'yi ve kendi yuvarlak r kaplamalarını biliyor. Sadece gerçek Br bloğu oluşana kadar beklemesi gerekiyor. kendisine iletilmesi biraz zaman alabilir. Halen genel bir kullanıcı olarak mesajların yayılmasına yardımcı oluyor, ancak (r, s)-doğrulayıcısı olarak herhangi bir yayılımı başlatmaz. Özellikle tüm mesajların yayılmasına yardımcı oldu. Protokolümüz için yeterli olan CERT r'si. Ayrıca ikili BA protokolü için bi \(\triangleq\)0 ayarlaması gerektiğini unutmayın, ancak zaten bu durumda bi'ye gerek yok. Gelecekteki tüm talimatlar için benzer şeyler. dBu durumda vj’lerin ne olduğu önemli değildir. 65Adım s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: BBA⋆'nın 1'e Sabitlenmiş Madeni Para Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: i kullanıcısı r turunun kendi Adım s'sini başlatır kendi Adım s -1'i tamamlar. • i kullanıcısı maksimum 2\(\lambda\) süre bekler. Beklerken şu şekilde davranıyorum. – Bitiş Koşulu 0: Paraya Sabitlenmiş 0 adımındaki talimatların aynısı. – Bitiş Koşulu 1: Paraya Sabitlenmiş 0 adımındaki talimatların aynısı. – Eğer en herhangi biri nokta o var alınan en en az bu geçerli bay,s−1 j 'nin arasında the biçim (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra beklemeyi bırakır ve bi \(\triangleq\)0.a değerini ayarlar. – Aksi takdirde, 2\(\lambda\) süresi bittiğinde i bi \(\triangleq\)1 olur. – bi değeri ayarlandığında i, CERT r−1'den Qr−1'i hesaplar ve olup olmadığını kontrol eder. i \(\in\)SV r,s. – Eğer i \(\in\)SV r,s ise, i mr,s mesajını hesaplar ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) vi olmak üzere 4. Adımda hesapladığı değer, geçici gizli anahtarı skr,s'yi yok eder ben ve sonra bay,s'yi yayar ben. Aksi takdirde hiçbir şey yaymadan dururum. a1 için imzalanan geçerli (r, s −1) mesajlarını almanın Koşul 1'in Sonu anlamına geleceğini unutmayın. Adım s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: BBA⋆'nın Gerçekten Yazı-Para Çevirilmiş Adımı Her i \(\in\)PKr−k kullanıcısı için talimatlar: i kullanıcısı r turunun kendi Adım s'sini başlatır kendi s -1 adımını tamamlar. • i kullanıcısı maksimum 2\(\lambda\) süre bekler. Beklerken şu şekilde davranıyorum. – Bitiş Koşulu 0: Paraya Sabitlenmiş 0 adımındaki talimatların aynısı. – Bitiş Koşulu 1: Paraya Sabitlenmiş 0 adımındaki talimatların aynısı. – Eğer en herhangi biri nokta o var alınan en en az bu geçerli bay,s−1 j 'nin arasında the biçim (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra beklemeyi bırakır ve bi \(\triangleq\)0 değerini ayarlar. – Eğer en herhangi biri nokta o var alınan en en az bu geçerli bay,s−1 j 'nin arasında the biçim (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sonra beklemeyi bırakır ve bi \(\triangleq\)1 değerini ayarlar. – Aksi takdirde, 2\(\lambda\) süresi dolduğunda SV r,s−1'e izin verilir ben (r, s −1)-doğrulayıcıların kümesi olsun geçerli bir mesaj aldığı kişi mr,s−1 j , i bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1'i ayarlar) ben H(\(\sigma\)r,s−1 j )). – bi değeri ayarlandığında i, CERT r−1'den Qr−1'i hesaplar ve olup olmadığını kontrol eder. i \(\in\)SV r,s. – Eğer i \(\in\)SV r,s ise, i mr,s mesajını hesaplar ben \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) vi olmak üzere 4. Adımda hesapladığı değer, geçici gizli anahtarı skr,s'yi yok eder ben ve sonra bay,s'yi yayar ben. Aksi takdirde hiçbir şey yaymadan dururum. Açıklama. Prensip olarak, alt bölüm 6.2'de dikkate alındığı gibi, protokol keyfi olarak çok sayıda bilgi alabilir. bir turda adımlar. Bunun gerçekleşmesi durumunda, tartışıldığı gibi, s > \(\mu\) olan bir i \(\in\)SV r,s kullanıcısı tükenmiştir.
önceden oluşturulmuş geçici anahtarlardan oluşan zulasını ve (r, s) mesajını doğrulamak zorunda mr,s ben bir tarafından geçici anahtarların “kademesi”. Böylece i'nin mesajı biraz daha uzar ve bunları iletmek daha uzun sürer mesajlar biraz daha zaman alacaktır. Buna göre, belirli bir turun pek çok adımından sonra değeri \(\lambda\) parametresi otomatik olarak biraz artacaktır. (Fakat yeni bir değişiklik olduğunda orijinal \(\lambda\) değerine geri döner. blok üretilir ve yeni bir tur başlar.) Round-r Bloğunun Doğrulayıcı Olmayanlar Tarafından Yeniden İnşası Sistemdeki her i kullanıcısı için talimatlar: i kullanıcısı, kendi r turuna başlar başlamaz başlar. CERT r−1. • protokolün her adımının talimatlarını takip ediyorum, tüm adımların yayılmasına katılıyorum ancak kendisi bir doğrulayıcı değilse bir adımda herhangi bir yayılım başlatmaz. • i bazı durumlarda Bitiş Koşulu 0 veya Bitiş Koşulu 1'i girerek kendi r turunu bitirir karşılık gelen CERT r ile adım. • Bundan sonra, gerçek Br bloğunu almayı beklerken r + 1 turuna başlar (eğer hash H(Br)'si CERT r tarafından sabitlenmiş olan bunu zaten almıştır). Yine eğer CERT r, Br = Br olduğunu gösterir ǫ, Br'yi CERT r'ye sahip olduğu anda tanıyorum. 6.4 Algorand ′ Analizi 2 Algorand ′ analizi 2 kolaylıkla Algorand ′'den türetilir 1. Temel olarak Algorand ′ 2, ile ezici olasılık, (a) tüm dürüst kullanıcılar aynı Br bloğunda hemfikirdir; yeni bir liderin blok en azından ph = h2(1 + h −h2) olasılığı açısından dürüsttür.
Umgang mit ehrlichen Offline-Benutzern
Wie bereits erwähnt, befolgt ein ehrlicher Benutzer alle ihm vorgeschriebenen Anweisungen, einschließlich der Anweisungen, online zu sein und Ausführen des Protokolls. Dies stellt in Algorand keine große Belastung dar, da die Berechnung und Die von einem ehrlichen Benutzer benötigte Bandbreite ist recht bescheiden. Dennoch möchten wir darauf hinweisen, dass Algorand dies kann lässt sich leicht modifizieren, um in zwei Modellen zu funktionieren, in denen ehrliche Benutzer offline sein können tolle Zahlen. Bevor wir diese beiden Modelle diskutieren, möchten wir darauf hinweisen, dass der Prozentsatz ehrlicher Spieler groß ist 95 % betrugen, konnte Algorand immer noch ausgeführt werden, indem alle Parameter eingestellt wurden, wobei stattdessen davon ausgegangen wurde, dass h = 80 % ist. Demnach würde Algorand auch bei höchstens der Hälfte der ehrlichen Spieler weiterhin einwandfrei funktionieren entschied sich dafür, offline zu gehen (in der Tat ein schwerwiegender Fall von „Abwesenheit“). Zumindest zu jedem Zeitpunkt 80 % der Online-Spieler wären ehrlich. Von der kontinuierlichen Teilnahme zur faulen Ehrlichkeit Wie wir gesehen haben, Algorand ′ 1 und Algorand ′ 2 wählen der Lookback-Parameter k. Lassen Sie uns nun zeigen, dass die richtige Wahl von k das Entfernen ermöglicht die Anforderung der kontinuierlichen Teilnahme. Diese Anforderung gewährleistet eine entscheidende Eigenschaft: nämlich dass das zugrunde liegende BA-Protokoll BBA⋆eine angemessene ehrliche Mehrheit hat. Lassen Sie uns nun erklären, wie faul Ehrlichkeit bietet eine alternative und attraktive Möglichkeit, diese Immobilie zufriedenzustellen.
Denken Sie daran, dass ein Benutzer faul, aber ehrlich ist, wenn (1) er alle ihm vorgeschriebenen Anweisungen befolgt er wird gebeten, am Protokoll teilzunehmen, und (2) er wird gebeten, nur am Protokoll teilzunehmen sehr selten – z. B. einmal pro Woche – mit angemessener Vorankündigung und möglicherweise erheblichem Empfang Belohnungen, wenn er mitmacht. Damit Algorand mit solchen Playern arbeiten kann, reicht es lediglich aus, „die Verifizierer der auszuwählen.“ aktuelle Runde unter den Benutzern, die bereits in einer viel früheren Runde im System waren.“ Denken Sie daran Die Verifizierer für eine Runde r werden aus den Benutzern in Runde r − k ausgewählt und die Auswahl erfolgt basierend auf der Größe Qr−1. Beachten Sie, dass eine Woche aus etwa 10.000 Minuten besteht, und gehen Sie davon aus, dass a Eine Runde dauert etwa (z. B. im Durchschnitt) 5 Minuten, eine Woche hat also etwa 2.000 Runden. Angenommen dass ein Benutzer irgendwann seine Zeit planen und wissen möchte, ob er es sein wird ein Gutachter in der kommenden Woche. Das Protokoll wählt nun die Verifizierer für eine Runde aus den Benutzern aus runden r −k −2.000 ab, und die Auswahlen basieren auf Qr−2.001. In Runde R, Spieler, den ich bereits kenne die Werte Qr−2.000, . . . , Qr−1, da sie tatsächlich Teil von blockchain sind. Dann gilt für jedes M zwischen 1 und 2.000 ist i genau dann ein Verifizierer in einem Schritt s der Runde r + M, wenn .H SIGi r + M, s, Qr+M−2.001 \(\leq\)p . Ich muss also prüfen, ob er in den nächsten 2.000 Runden als Prüfer berufen wird Berechnen Sie \(\sigma\)M,s ich = SIGi r + M, s, Qr+M−2.001 für M = 1 bis 2.000 und für jeden Schritt s und überprüfen ob .H(\(\sigma\)M,s ich ) \(\leq\)p für einige von ihnen. Wenn die Berechnung einer digitalen Signatur eine Millisekunde dauert, dann Dieser gesamte Vorgang wird etwa 1 Minute Rechenzeit in Anspruch nehmen. Wenn er nicht als Prüfer ausgewählt wird In jeder dieser Runden kann er mit „ehrlichem Gewissen“ offline gehen. Hatte er ununterbrochen teilgenommen hätte, hätte er in den nächsten 2.000 Runden ohnehin im Wesentlichen 0 Schritte gemacht! Wenn stattdessen Er wird in einer dieser Runden als Prüfer ausgewählt und bereitet sich dann darauf vor (z. B. indem er alle Informationen erhält die erforderlichen Informationen), um bei der richtigen Runde als ehrlicher Prüfer zu fungieren. Durch dieses Verhalten entgeht mir als fauler, aber ehrlicher potenzieller Prüfer nur die Beteiligung an der Verbreitung von Nachrichten. Aber die Nachrichtenweitergabe ist normalerweise robust. Darüber hinaus sind die Zahler und Zahlungsempfänger von Von kürzlich propagierten Zahlungen wird erwartet, dass sie online sind, um zu beobachten, was mit ihren Zahlungen passiert. und somit werden sie sich an der Nachrichtenverbreitung beteiligen, wenn sie ehrlich sind.
Çevrimdışı Dürüst kullanıcılarla ilgilenme
Söylediğimiz gibi, dürüst bir kullanıcı, çevrimiçi olma da dahil olmak üzere kendisine verilen tüm talimatları yerine getirir. ve protokolü çalıştırıyorum. Bu, Algorand'de büyük bir yük değildir, çünkü hesaplama ve Dürüst bir kullanıcının ihtiyaç duyduğu bant genişliği oldukça mütevazıdır. Ancak şunu belirtelim ki Algorand Dürüst kullanıcıların çevrimdışı olmasına izin verilen iki modelde çalışacak şekilde kolayca değiştirilebilir harika sayılar. Bu iki modeli tartışmadan önce şunu belirtelim; dürüst oyuncuların yüzdesi %95 olsaydı, Algorand h = %80 olduğu varsayılarak tüm parametreler ayarlanarak çalıştırılabilirdi. Buna göre Algorand, dürüst oyuncuların en fazla yarısı olsa bile düzgün çalışmaya devam edecektir. çevrimdışı olmayı seçti (gerçekten de büyük bir “devamsızlık” vakası). Aslında en azından herhangi bir zamanda Çevrimiçi oyuncuların %80'i dürüst olacaktır. Sürekli Katılımdan Tembel Dürüstlüğe Gördüğümüz gibi Algorand ′ 1 ve Algorand ′ 2 seç geriye bakma parametresi k. Şimdi k'yi uygun şekilde büyük seçmenin, bir kişiyi kaldırmaya olanak sağladığını gösterelim. Sürekli Katılım şartı. Bu gereklilik çok önemli bir özelliği garanti eder: yani, temel BA protokolü BBA⋆'nın uygun bir dürüst çoğunluğa sahip olduğu. Şimdi ne kadar tembel olduğumuzu açıklayalım dürüstlük bu özelliği tatmin etmenin alternatif ve çekici bir yolunu sağlar.
Bir i kullanıcısının, (1) kendisine verilen talimatların tümünü takip etmesi durumunda tembel ama dürüst olduğunu hatırlayın. protokole katılması istenir ve (2) yalnızca protokole katılması istenir çok nadiren - örneğin haftada bir kez - uygun bir önceden bildirimle ve potansiyel olarak önemli miktarda katıldığında ödüllendirilir. Algorand'nin bu tür oyuncularla çalışmasına izin vermek için "doğrulayıcıları seçmek" yeterlidir. Sistemde zaten bulunan kullanıcılar arasında mevcut tur çok daha erken bir turda." Aslında şunu hatırla r turu için doğrulayıcılar r −k turundaki kullanıcılar arasından seçilir ve seçimler, Qr−1 miktarına göre. Bir haftanın yaklaşık 10.000 dakikadan oluştuğunu unutmayın ve bir haftanın tur kabaca (örneğin ortalama) 5 dakika sürer, yani haftada yaklaşık 2.000 tur vardır. Varsayalım bir noktada, bir kullanıcı i zamanını planlamak ve zamanının değişip değişmeyeceğini bilmek ister. önümüzdeki hafta bir doğrulayıcı. Protokol artık bir tur için doğrulayıcıları kullanıcılar arasından seçiyor. r −k −2, 000 yuvarlaktır ve seçimler Qr−2,001'e dayanmaktadır. R. turda, zaten tanıdığım oyuncu değerler Qr−2,000, . . . , Qr−1, çünkü bunlar aslında blockchain'nin parçası. Daha sonra her M için 1 ile 2.000 arasında i, r + M turundaki bir s adımında ancak ve ancak şu şartla doğrulayıcıdır: .H SIGI r + M, s, Qr+M−2,001 \(\leq\)p . Bu nedenle, önümüzdeki 2000 turda doğrulayıcı olarak görev yapmak üzere çağrılıp çağrılmayacağını kontrol etmek için şunu yapmalıyım: \(\sigma\)M,s'yi hesapla ben = SIGI r + M, s, Qr+M−2,001 M = 1 ila 2.000 ve her adım s için ve kontrol edin .H(\(\sigma\)M,s) olup olmadığı ben ) \(\leq\)p bazıları için. Dijital imzanın hesaplanması bir milisaniye sürüyorsa, o zaman tüm bu operasyonun hesaplaması yaklaşık 1 dakika sürecektir. Doğrulayıcı olarak seçilmediği takdirde bu turların herhangi birinde "dürüst bir vicdanla" çevrim dışı kalabilir. Sürekli olsaydı katılsaydı zaten sonraki 2.000 turda 0 adım atmış olacaktı! Bunun yerine, bu turlardan birinde doğrulayıcı olarak seçilir, ardından kendini hazırlar (örneğin tüm bilgileri toplayarak) gerekli bilgiler) uygun turda dürüst bir doğrulayıcı olarak hareket etmek. Tembel ama dürüst bir potansiyel doğrulayıcı böyle davranarak yalnızca yayılıma katılmayı kaçırıyor mesajların. Ancak mesaj yayılımı genellikle sağlamdır. Ayrıca, ödeyenler ve alacaklılar Yakın zamanda yayılan ödemelerin, ödemelerine ne olacağını izlemek için çevrimiçi olması bekleniyor. ve eğer dürüstlerse mesaj yayılımına katılacaklardır.
Protokoll Algorand ′ mit ehrlicher Mehrheit des Geldes
Wir zeigen nun endlich, wie man die Annahme „Ehrliche Mehrheit der Benutzer“ durch viel mehr ersetzen kann sinnvolle Annahme der ehrlichen Mehrheit des Geldes. Die Grundidee ist (in einer proof-of-stake-Variante) „um einen Benutzer i \(\in\)PKr−k auszuwählen, der zu SV r,s gehört, mit einem Gewicht (d. h. Entscheidungskraft) proportional zu der Geldbetrag, der mir gehört.“24 Durch unsere HMM-Annahme können wir entscheiden, ob dieser Betrag in der Runde r − k gehalten werden soll oder zu Beginn der Runde r. Vorausgesetzt, dass uns eine kontinuierliche Teilnahme nichts ausmacht, entscheiden wir uns dafür die letztere Wahl. (Um die kontinuierliche Teilnahme zu eliminieren, hätten wir uns für die erstere Option entschieden. Besser gesagt, für den Geldbetrag, der bei rund r −k −2.000 liegt.) Es gibt viele Möglichkeiten, diese Idee umzusetzen. Der einfachste Weg wäre, jede Taste gedrückt zu halten höchstens 1 Geldeinheit und wähle dann zufällig n Benutzer i aus PKr−k aus, so dass a(r) ich = 1. 24Wir sollten PKr−k−2.000 sagen, um die kontinuierliche Teilnahme zu ersetzen. Der Einfachheit halber, da man es vielleicht verlangen möchte Bei kontinuierlicher Teilnahme verwenden wir wie zuvor PKr−k, um einen Parameter weniger zu tragen.
Die nächsteinfachste Implementierung Die nächsteinfachere Implementierung könnte darin bestehen, zu verlangen, dass jeder öffentliche Schlüssel einen Höchstbetrag besitzt Geldmenge M für ein bestimmtes festes M. Der Wert M ist klein genug im Vergleich zum Gesamtbetrag von Geld im System, so dass die Wahrscheinlichkeit, dass ein Schlüssel zur Verifizierermenge gehört, größer als eins ist Schritt in – sagen wir – k Runden ist vernachlässigbar. Dann ist ein Schlüssel i \(\in\)PKr−k, der einen Geldbetrag a(r) besitzt ich in Runde r, wird ausgewählt, um zu SV r,s zu gehören, wenn .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) ich M . Und alles läuft wie bisher ab. Eine komplexere Implementierung Die letzte Implementierung „zwingte einen reichen Teilnehmer des Systems, viele Schlüssel zu besitzen“. Eine alternative Implementierung, die unten beschrieben wird, verallgemeinert den Begriff Status und Überlegung Jeder Benutzer i soll aus K + 1 Kopien (i, v) bestehen, von denen jede unabhängig als Verifizierer ausgewählt wird. und wird seinen eigenen vergänglichen Schlüssel besitzen (pkr,s i,v, skr,s i,v) in einem Schritt s einer Runde r. Der Wert K hängt davon ab über den Geldbetrag a(r) ich im besitz von i in rund r. Sehen wir uns nun genauer an, wie ein solches System funktioniert. Anzahl der Exemplare Sei n die angestrebte erwartete Kardinalität jedes Verifizierersatzes und sei a(r) ich sei der Geldbetrag, der einem Benutzer i in Runde r gehört. Sei Ar der Gesamtbetrag des Geldes, das man besitzt von den Benutzern in PKr−k in Runde r, d. h. Ar = X i\(\in\)P Kr−k a(r) ich . Wenn i ein Benutzer in PKr−k ist, dann sind die Kopien von i (i, 1), . . . , (i, K + 1), wo K = $ n \(\cdot\) a(r) ich Ar % . Beispiel. Sei n = 1.000, Ar = 109 und a(r) ich = 3,7 Millionen. Dann, K = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109 = ⌊3,7⌋= 3 . Prüfer und Anmeldeinformationen Sei ich ein Benutzer in PKr−k mit K + 1 Kopien. Für jedes v = 1, . . . , K, copy (i, v) gehört automatisch zu SV r,s. Das heißt, meine Qualifikation ist \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), aber die entsprechende Bedingung wird .H(\(\sigma\)r,s i,v) \(\leq\)1, also immer wahr. Für copy (i, K + 1) prüft i für jeden Schritt s der Runde r, ob .H SIGi (i, K + 1), r, s, Qr−1 \(\leq\)a(r) ich n Ar −K .
Wenn ja, gehört Kopie (i, K + 1) zu SV r,s. Um es zu beweisen, gebe ich den Berechtigungsnachweis weiter \(\sigma\)r,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 . Beispiel. Wie im vorherigen Beispiel sei n = 1K, a(r) ich = 3,7M, Ar = 1B und i hat 4 Kopien: (i, 1), . . . , (i, 4). Dann gehören die ersten 3 Kopien automatisch zu SV r,s. Für den 4. Konzeptionell wirft Algorand ′ unabhängig eine voreingenommene Münze, deren Kopfwahrscheinlichkeit 0,7 beträgt. Kopieren (i, 4) wird genau dann ausgewählt, wenn der Münzwurf „Kopf“ ist. (Natürlich wird dieser voreingenommene Münzwurf durch hashdurch hashing, signieren und vergleichen umgesetzt – wie wir Dies habe ich in dieser Arbeit die ganze Zeit über getan – um es mir zu ermöglichen, sein Ergebnis zu beweisen.) Alles wie gewohnt Nachdem erklärt wurde, wie Prüfer ausgewählt werden und welche Qualifikationen sie haben Bei jedem Schritt einer Runde r berechnet, ähnelt die Ausführung einer Runde der bereits erläuterten.
Paranın Dürüst Çoğunluğuyla Algorand ′ Protokolü
Şimdi nihayet, Kullanıcıların Dürüst Çoğunluğu varsayımını çok daha fazlası ile nasıl değiştirebileceğimizi gösteriyoruz. Anlamlı Paranın Dürüst Çoğunluğu varsayımı. Temel fikir (proof-of-stake tadında) “SV r,s'ye ait olacak ve orantılı bir ağırlığa (yani karar gücüne) sahip bir i \(\in\)PKr−k kullanıcısını seçmek için i'nin sahip olduğu para miktarı.”24 HMM varsayımımıza göre, bu miktarın r −k turunda sahip olunması gerekip gerekmediğini seçebiliriz. veya r turunun (başlangıcında) Sürekli katılımın sakıncası olmadığını varsayarak, ikinci seçim. (Sürekli katılımı ortadan kaldırmak için eski seçeneği tercih ederdik. Daha iyi söylemek gerekirse, r −k −2, 000 turunda sahip olunan para miktarı için.) Bu fikri hayata geçirmenin birçok yolu var. En basit yol, her tuşun basılı tutulması olacaktır. en fazla 1 birim para ve sonra PKr−k arasından rastgele n kullanıcı i seçin, öyle ki a(r) ben = 1. 24Sürekli katılımın yerine PKr−k−2,000 demeliyiz. Basitlik açısından, kişi gerektirmek isteyebileceğinden Zaten sürekli katılım, bir parametre daha az taşıyacak şekilde PKr−k'yi daha önce olduğu gibi kullanıyoruz.
Sonraki En Basit Uygulama Bir sonraki en basit uygulama, her bir ortak anahtarın maksimum bir miktara sahip olmasını talep etmek olabilir. bazı sabit M için M parası. M değeri, toplam para miktarıyla karşılaştırıldığında yeterince küçüktür. sistemdeki para, öyle ki bir anahtarın birden fazla doğrulama kümesine ait olma olasılığı - diyelim ki - k tur atılması ihmal edilebilir. O halde, a(r) kadar paraya sahip olan bir i \(\in\)PKr−k anahtarı ben r turunda, eğer SV r,s'ye ait olacak şekilde seçilirse .H SIGI r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) ben M . Ve her şey eskisi gibi devam ediyor. Daha Karmaşık Bir Uygulama Son uygulama "sistemdeki zengin bir katılımcıyı birçok anahtara sahip olmaya zorladı". Aşağıda açıklanan alternatif bir uygulama, statü kavramını genelleştirir ve her i kullanıcısı, her biri bağımsız olarak doğrulayıcı olarak seçilen K + 1 kopyadan (i, v) oluşacaktır, ve kendi geçici anahtarına (pkr,s) sahip olacak i,v,skr,s i,v) bir tur r'nin s adımında. K değeri bağlıdır a(r) para miktarına göre ben r turunda i'ye ait. Şimdi böyle bir sistemin nasıl çalıştığını daha detaylı görelim. Kopya Sayısı Her doğrulayıcı kümesinin hedeflenen beklenen önemliliği n olsun ve a(r) olsun ben r turunda i kullanıcısının sahip olduğu para miktarı olsun. Sahip olunan toplam para miktarı Ar olsun r turunda PKr−k'deki kullanıcılar tarafından, yani, ar = X i\(\in\)P Kr−k a(r) ben. Eğer i, PKr−k'de bir kullanıcı ise, o zaman i'nin kopyaları (i, 1), . . . , (i, K + 1), burada K = $ n \(\cdot\) a(r) ben Ar % . Örnek. n = 1.000, Ar = 109 ve a(r) olsun ben = 3,7 milyon. Sonra, K = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109 = ⌊3,7⌋= 3 . Doğrulayıcılar ve Kimlik Bilgileri PKr−k'de K+1 kopyaya sahip bir kullanıcı olayım. Her v = 1 için, . . . , K, kopya (i, v) otomatik olarak SV r,s'ye aittir. Yani, kimlik bilgilerim \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), ancak karşılık gelen koşul .H(\(\sigma\)r,s) olur i,v) \(\leq\)1, yani her zaman doğrudur. (i, K + 1) kopyası için, r turunun her Adımı için, i kontrol eder: .H SIGI (i, K + 1), r, s, Qr−1 \(\leq\)a(r) ben n Ar −K .
Eğer öyleyse, (i, K + 1) kopyası SV r,s'ye aittir. Bunu kanıtlamak için kimlik bilgisini yayıyorum \(\sigma\)r,1 i,K+1 = SIGI (i, K + 1), r, s, Qr−1 . Örnek. Önceki örnekte olduğu gibi n = 1K olsun, a(r) ben = 3,7M, Ar = 1B ve i'de 4 var kopyalar: (i, 1), . . . , (i, 4). Daha sonra ilk 3 kopya otomatik olarak SV r,s'ye ait olur. 4'üncüsü için, kavramsal olarak, Algorand ′ bağımsız olarak tura olasılığı 0,7 olan önyargılı bir parayı atar. Kopyala (i, 4) ancak ve ancak yazı tura atışının Tura olması durumunda seçilir. (Elbette, bu önyargılı yazı tura atma işlemi hashing, imza atma ve karşılaştırma yoluyla gerçekleştirilir — bizim yaptığımız gibi Bu makalede baştan sona bunu yaptım - sonucunu kanıtlayabilmemi sağlamak için.) Her zamanki gibi iş Doğrulayıcıların nasıl seçildiğini ve kimlik bilgilerinin nasıl elde edildiğini açıklayarak Bir turun her adımında hesaplanan r, bir turun yürütülmesi daha önce açıklanana benzer.
Umgang mit Forks
Da die Wahrscheinlichkeit von Forks auf 10−12 oder 10−18 reduziert wurde, ist die Handhabung praktisch unnötig sie in der entfernten Chance, dass sie auftreten. Algorand kann jedoch auch verschiedene Forks verwenden Abwicklungsverfahren, mit oder ohne Arbeitsnachweis. Eine Möglichkeit, die Benutzer anzuweisen, Forks aufzulösen, ist wie folgt: • Folgen Sie der längsten Kette, wenn ein Benutzer mehrere Ketten sieht. • Wenn es mehr als eine längste Kette gibt, folgen Sie der Kette mit einem nicht leeren Block am Ende. Wenn Alle von ihnen haben am Ende leere Blöcke, betrachten Sie die vorletzten Blöcke. • Wenn es mehr als eine längste Kette mit nicht leeren Blöcken am Ende gibt, sagen wir, dass es sich um Ketten handelt der Länge r, folgen Sie demjenigen, dessen Anführer von Block r den kleinsten Berechtigungsnachweis hat. Wenn es Unentschieden gibt, Folgen Sie demjenigen, dessen Block r selbst den kleinsten hash-Wert hat. Wenn es immer noch Unentschieden gibt, befolgen Sie die Anweisungen einer, dessen Block r lexikographisch der erste ist.
Fork İşleme
Çatallanma olasılığını 10−12 veya 10−18'e düşürdükten sonra, elle müdahale etmek neredeyse gereksizdir. gerçekleşmeleri çok uzak bir ihtimal. Algorand ancak çeşitli çatallar da kullanabilir Çalışma kanıtı olsun ya da olmasın çözüm prosedürleri. Kullanıcılara çatallanmaları çözme talimatı vermenin olası bir yolu şöyledir: • Kullanıcı birden fazla zincir görürse en uzun zinciri takip edin. • Birden fazla en uzun zincir varsa, sonunda boş olmayan blok olanı takip edin. Eğer hepsinin sonunda boş bloklar var, sondan ikinci blokları düşünün. • Sonunda boş olmayan bloklar bulunan birden fazla en uzun zincir varsa, diyelim ki zincirler uzunluğu r ise, blok r'nin lideri en küçük kimlik bilgisine sahip olanı takip edin. Eğer bağlar varsa r bloğunun kendisi en küçük hash değerine sahip olanı takip edin. Hala bağlar varsa aşağıdaki adımları izleyin. r bloğu sözlükbilimsel olarak ilk sırada sıralanan blok.
Umgang mit Netzwerkpartitionen
Wie gesagt gehen wir davon aus, dass die Ausbreitungszeiten von Nachrichten zwischen allen Benutzern im Netzwerk durch \(\lambda\) und Λ begrenzt sind. Dies ist keine starke Annahme, da das heutige Internet schnell und robust ist Die tatsächlichen Werte dieser Parameter sind durchaus angemessen. Lassen Sie uns hier darauf hinweisen, dass Algorand ′ 2 funktioniert weiterhin, auch wenn das Internet gelegentlich in zwei Teile geteilt wurde. Der Fall, wenn Das Internet ist in mehr als zwei Teile unterteilt. 10.1 Physische Partitionen Erstens kann die Teilung physikalische Ursachen haben. Zum Beispiel kann es zu einem großen Erdbeben kommen Am Ende wird die Verbindung zwischen Europa und Amerika völlig zerstört. In diesem Fall ist die böswillige Benutzer werden ebenfalls aufgeteilt und es findet keine Kommunikation zwischen den beiden Teilen statt. Also
Es wird zwei Gegner geben, einen für Teil 1 und einen für Teil 2. Jeder Gegner versucht es immer noch Brechen Sie das Protokoll in seinem eigenen Teil. Nehmen Sie an, dass die Teilung in der Mitte der Runde r erfolgt. Dann wird jeder Benutzer noch als ausgewählt Verifizierer basierend auf PKr−k, mit der gleichen Wahrscheinlichkeit wie zuvor. Lass den HSV r,s ich und MSV r,s ich bzw sei die Menge der ehrlichen und böswilligen Verifizierer in einem Schritt s in Teil i \(\in\){1, 2}. Wir haben |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. Beachten Sie, dass |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH mit überwältigender Wahrscheinlichkeit. Wenn ein Teil i |HSV r,s hat ich | + |MSV r,s ich | \(\geq\)tH mit nicht vernachlässigbarer Wahrscheinlichkeit, z. B. 1 %, dann ist die Wahrscheinlichkeit, dass |HSV r,s 3−i| + |MSV r,s 3−i| \(\geq\)tH ist sehr niedrig, z. B. 10−16, wenn F = 10−18. In diesem Fall, Wir können den kleineren Teil genauso gut als offline betrachten, da nicht genügend Verifizierer vorhanden sein werden Dieser Teil dient zum Generieren der Signaturen zur Zertifizierung eines Blocks. Betrachten wir den größeren Teil, sagen wir Teil 1, ohne die Allgemeingültigkeit zu verlieren. Obwohl |HSV r,s| < tH mit vernachlässigbarer Wahrscheinlichkeit in jedem Schritt s, wenn das Netzwerk partitioniert ist, |HSV r,s 1 | kann sein kleiner als tH mit einer nicht zu vernachlässigenden Wahrscheinlichkeit. In diesem Fall kann der Gegner mit einigen Andere nicht vernachlässigbare Wahrscheinlichkeiten zwingen das binäre BA-Protokoll in Runde r zu einer Verzweigung mit einem nicht leeren Block Br und dem leeren Block Br ǫ beide haben die gültigen Unterschriften.25 Beispielsweise in a Coin-Fixed-To-0-Schritte s, alle Verifizierer in HSV r,s 1 für Bit 0 und H(Br) signiert und weitergegeben Nachrichten. Alle Prüfer in MSV r,s 1 unterzeichneten ebenfalls 0 und H(Br), hielten ihre Nachrichten jedoch zurück. Weil |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tH, das System verfügt über genügend Unterschriften, um Br zu zertifizieren. Da jedoch die böswillige Verifizierer haben ihre Signaturen zurückgehalten, die Benutzer geben Schritt s + 1 ein, bei dem es sich um einen Coin-Fixed-To1-Schritt handelt. Weil |HSV r,s 1 | < tH aufgrund der Partition, die Prüfer im HSV r,s+1 1 habe das nicht gesehen Signaturen für Bit 0 und alle signierten für Bit 1. Alle Prüfer in MSV r,s+1 1 habe das Gleiche getan. Weil |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, das System verfügt über genügend Unterschriften, um Br zu zertifizieren ǫ. Der Gegner erstellt dann einen Fork, indem er die Signaturen von MSV r,s freigibt 1 für 0 und H(Br). Dementsprechend gibt es zwei Qr, die durch die entsprechenden Blöcke der Runde r definiert werden. Allerdings die Gabelung wird nicht fortgesetzt und nur einer der beiden Zweige darf in Runde r + 1 wachsen. Zusätzliche Anweisungen für Algorand ′ 2. Wenn man einen nicht leeren Block sieht, ist Br und der leere Block Br ǫ , folgen Sie dem nicht leeren (und dem dadurch definierten Qr). In der Tat, indem die Benutzer angewiesen werden, den nicht leeren Block im Protokoll zu verwenden, wenn dieser groß ist Anzahl der ehrlichen Benutzer in PKr+1−k erkennen, dass es zu Beginn der Runde r +1 eine Abzweigung gibt, dann Ein leerer Block hat nicht genügend Follower und wächst nicht. Angenommen, der Gegner schafft es Partitionieren Sie die ehrlichen Benutzer so, dass einige ehrliche Benutzer Br (und möglicherweise Br) sehen ǫ), und manche sehen nur Br ǫ. Weil der Gegner nicht sagen kann, welcher von ihnen als Verifizierer nach Br fungieren wird und welcher wird nach Br. ein Prüfer sein ǫ , die ehrlichen Benutzer werden zufällig aufgeteilt und jeder von ihnen bleibt stehen wird zum Verifizierer (entweder in Bezug auf Br oder in Bezug auf Br ǫ) in einem Schritt s > 1 mit Wahrscheinlichkeit p. Für die böswilligen Benutzer hat jeder von ihnen möglicherweise zwei Chancen, Prüfer zu werden, eine mit Br und der andere mit Br ǫ, jeweils mit Wahrscheinlichkeit p unabhängig. Sei HSV r+1,s 1;Br sei die Menge der ehrlichen Verifizierer in den Schritten s der Runde r+1 nach Br. Andere Notationen wie HSV r+1,s 1;Brǫ , MSV r+1,s 1;Br und MSV r+1,s 1;Brǫ sind ähnlich definiert. Bei Chernoffbound ist es einfach 25Eine Abzweigung mit zwei nicht leeren Blöcken ist weder mit noch ohne Partitionen möglich, außer mit vernachlässigbaren Wahrscheinlichkeit.das mit überwältigender Wahrscheinlichkeit zu sehen, |HSV r+1,s 1;Br | + |HSV r+1,s 1;Brǫ | + |MSV r+1,s 1;Br | + |MSV r+1,s 1;Brǫ | < 2tH. Dementsprechend können die beiden Zweige nicht beide über die richtigen Signaturen verfügen, die einen Block für eine Runde bescheinigen r + 1 im gleichen Schritt s. Da außerdem die Auswahlwahrscheinlichkeiten für zwei Schritte s und s′ sind gleich und die Auswahlen sind unabhängig, auch mit überwältigender Wahrscheinlichkeit |HSV r+1,s 1;Br | + |MSV r+1,s 1;Br | + |HSV r+1,s′ 1;Brǫ | + |MSV r+1,s′ 1;Brǫ | < 2tH, für zwei beliebige Schritte s und s′. Wenn F = 10−18, durch die Vereinigung gebunden, solange der Gegner dies nicht kann Partitionieren Sie die ehrlichen Benutzer über einen langen Zeitraum (z. B. 104 Schritte, was mehr als 55 Stunden mit \(\lambda\) = 10 entspricht). Sekunden26), mit hoher Wahrscheinlichkeit (sagen wir 1−10−10) wird höchstens ein Zweig die richtigen Signaturen haben um einen Block in Runde r + 1 zu zertifizieren. Wenn die physische Partition schließlich zwei Teile mit ungefähr der gleichen Größe erstellt hat, dann ist die Wahrscheinlichkeit, dass |HSV r,s ich | + |MSV r,s ich | \(\geq\)tH ist für jeden Teil i klein. Nach einer ähnlichen Analyse, selbst wenn es dem Gegner gelingt, in jedem Teil eine Abzweigung mit einer nicht zu vernachlässigenden Wahrscheinlichkeit zu schaffen für Runde r darf höchstens einer der vier Zweige in Runde r + 1 wachsen. 10.2 Gegnerische Teilung Zweitens kann die Partitionierung durch den Angreifer verursacht werden, sodass sich die Nachrichten verbreiten durch die ehrlichen Benutzer in einem Teil erreichen die ehrlichen Benutzer im anderen Teil nicht direkt, sondern Der Gegner ist in der Lage, Nachrichten zwischen den beiden Teilen weiterzuleiten. Dennoch einmal eine Nachricht von einem Wenn ein Teil einen ehrlichen Benutzer im anderen Teil erreicht, wird er dort wie üblich weitergegeben. Wenn die Ist der Gegner bereit, viel Geld auszugeben, ist es denkbar, dass er in der Lage ist, das zu hacken Internet und Partitionierung für eine Weile so. Die Analyse ähnelt der für den größeren Teil in der physischen Partition oben (der kleinere). Teil kann als Population 0 betrachtet werden): Der Gegner kann möglicherweise eine Abzweigung erstellen und Jeder ehrliche Benutzer sieht nur einen der Zweige, es darf aber höchstens ein Zweig wachsen. 10.3 Netzwerkpartitionen im Überblick Obwohl es zu Netzwerkpartitionen kommen kann und eine Verzweigung in einer Runde unter Partitionen stattfinden kann, gibt es sie Es besteht keine bleibende Unklarheit: Eine Gabelung ist sehr kurzlebig und dauert tatsächlich höchstens eine einzige Runde. In Alle Teile der Partition außer höchstens einem, können die Benutzer keinen neuen Block generieren und somit (a) erkennen, dass es eine Partition im Netzwerk gibt und (b) sich niemals auf Blöcke verlassen, die „verschwinden“. Danksagungen Wir möchten zunächst Sergey Gorbunov danken, Mitautor des zitierten Democoin-Systems. Der aufrichtigste Dank geht an Maurice Herlihy für die vielen aufschlussreichen Diskussionen und die Hinweise heraus, dass Pipelining die Durchsatzleistung von Algorand verbessern wird, und für eine erhebliche Verbesserung der 26Beachten Sie, dass ein Benutzer einen Schritt s nur beendet, ohne 2\(\lambda\) Zeit zu warten, wenn er mindestens die Signaturen dafür gesehen hat gleiche Nachricht. Wenn nicht genügend Signaturen vorhanden sind, dauert jeder Schritt 2\(\lambda\).
Darstellung einer früheren Version dieser Arbeit. Vielen Dank an Sergio Rajsbaum für seine Kommentare zu eine frühere Version dieses Artikels. Vielen Dank an Vinod Vaikuntanathan für die zahlreichen intensiven Diskussionen und Erkenntnisse. Vielen Dank an Yossi Gilad, Rotem Hamo, Georgios Vlachos und Nickolai Zeldovich für den Beginn, diese Ideen zu testen, und für viele hilfreiche Kommentare und Diskussionen. Silvio Micali möchte sich persönlich bei Ron Rivest für die unzähligen Gespräche und Anleitungen bedanken in der kryptografischen Forschung über mehr als drei Jahrzehnte, für die Mitautoren des genannten Mikrozahlungssystems Dies hat einen der Verifizierer-Auswahlmechanismen von Algorand inspiriert. Wir hoffen, diese Technologie auf die nächste Stufe zu bringen. Inzwischen das Reisen und die Kameradschaft machen großen Spaß, wofür wir sehr dankbar sind.
Ağ Bölümlerini Yönetme
Daha önce de belirtildiği gibi, mesajların ağdaki tüm kullanıcılar arasında yayılma sürelerinin \(\lambda\) ve Λ ile üst sınırlandığını varsayıyoruz. Günümüzün interneti hızlı ve sağlam olduğundan bu güçlü bir varsayım değildir. Bu parametrelerin gerçek değerleri oldukça makuldür. Burada şunu belirtelim ki Algorand ′ 2 İnternet ara sıra ikiye bölünse de çalışmaya devam ediyor. Durum ne zaman İnternet benzer şekilde ikiden fazla parçaya bölünmüştür. 10.1 Fiziksel Bölümler Öncelikle bölünme fiziksel sebeplerden kaynaklanıyor olabilir. Örneğin çok büyük bir deprem olabilir. Avrupa ile Amerika arasındaki bağlantıyı tamamen koparmak. Bu durumda, kötü niyetli kullanıcılar da bölümlendirilmiştir ve iki bölüm arasında iletişim yoktur. Böylece
biri 1. bölüm, diğeri 2. bölüm için iki Düşman olacak. Her Düşman hâlâ protokolü kendi kısmında ihlal etmek. Bölmenin r turunun ortasında gerçekleştiğini varsayalım. Daha sonra her kullanıcı hala bir kullanıcı olarak seçilmektedir. doğrulayıcı PKr−k'ye dayalıdır ve öncekiyle aynı olasılıkladır. HSV r,s olsun ben ve MSV r,s ben sırasıyla i \(\in\){1, 2} şıkkındaki s adımındaki dürüst ve kötü niyetli doğrulayıcıların kümesi olsun. bizde |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. |HSV r,s|'ye dikkat edin. + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH çok büyük olasılıkla. Eğer i'nin bir kısmı |HSV r,s'ye sahipse ben | + |MSV r,s ben | \(\geq\)tH ihmal edilemeyecek bir olasılıkla, örneğin %1, o zaman |HSV r,s olasılığı 3−i| + |MSV r,s 3−i| \(\geq\)tH çok düşüktür, örneğin F = 10−18 olduğunda 10−16. Bu durumda, Küçük kısmı çevrimdışı olarak ele alabiliriz çünkü yeterli sayıda doğrulayıcı olmayacak Bu kısım bir bloğu onaylamak için imzalar oluşturmak içindir. Genelliği kaybetmeden daha büyük kısmı, örneğin 1. kısmı ele alalım. Rağmen |HSV r,s| < Ağ bölümlendiğinde, her s adımında ihmal edilebilir olasılıkla tH, |HSV r,s 1 | olabilir ihmal edilemeyecek bir olasılıkla tH'den daha azdır. Bu durumda, Düşman bazı durumlarda diğer ihmal edilemeyecek olasılık, ikili BA protokolünü boş olmayan bir Br bloğu ve boş Br bloğu ile r turunda bir çatala zorlayın ǫ her ikisinin de geçerli imzaları var.25 Örneğin, 0'a Sabitlenmiş Para Adımları, tüm doğrulayıcılar HSV r,s'dedir 1 bit 0 ve H(Br) için imzalandı ve bunların yayılması sağlandı. mesajlar. MSV r,s'deki tüm doğrulayıcılar 1 ayrıca 0 ve H(Br)'yi imzaladı ancak mesajlarını sakladı. Çünkü |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tH, sistem Br'yi sertifikalandırmak için yeterli imzaya sahiptir. Ancak tarihten bu yana Kötü niyetli doğrulayıcılar imzalarını gizlediğinde, kullanıcılar Coin-Fixed-To1 adımı olan s + 1 adımına girerler. Çünkü |HSV r,s 1 | < tH, bölüm nedeniyle, HSV'deki doğrulayıcılar r,s+1 1 onu görmedim bit 0 için imzalar vardır ve hepsi bit 1 için imzalanmıştır. MSV r,s+1'deki tüm doğrulayıcılar 1 aynısını yaptı. Çünkü |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, sistemin Br'yi sertifikalandırmak için yeterli imzası var ǫ. Düşman daha sonra MSV r,s'nin imzalarını serbest bırakarak bir çatal oluşturur 1 0 ve H(Br) için. Buna göre, r yuvarlaktaki karşılık gelen bloklarla tanımlanan iki Qr olacaktır. Ancak, çatal devam etmeyecek ve r + 1 turunda iki daldan yalnızca biri büyüyebilir. Algorand ′ için Ek Talimatlar 2. Boş olmayan bir Br bloğunu ve boş olanı gördüğünüzde Br'yi engelle ǫ , boş olmayanı (ve onun tarafından tanımlanan Qr'yi) takip edin. Aslında, eğer büyük bir blok varsa, kullanıcılara protokoldeki boş olmayan bloğa gitmeleri talimatını vererek PKr+1−k'deki dürüst kullanıcıların sayısı r +1 turunun başında bir çatal olduğunu fark eder, sonra boş bloğun yeterli takipçisi olmayacak ve büyümeyecektir. Düşmanın bunu başardığını varsayalım dürüst kullanıcıları bölümlere ayırın, böylece bazı dürüst kullanıcılar Br'yi (ve belki de Br'yi) görebilir ǫ) ve bazıları yalnızca görüyor kardeşim ǫ. Çünkü Düşman, Br'yi takip ederek hangisinin doğrulayıcı olacağını ve hangisinin doğrulayıcı olacağını bilemez. Br'yi takip eden bir doğrulayıcı olacak ǫ , dürüst kullanıcılar rastgele olarak bölümlere ayrılmıştır ve her biri hala doğrulayıcı olur (ya Br ile ilgili olarak ya da Br ile ilgili olarak) ϫ) s > 1 adımında olasılıkla s. Kötü niyetli kullanıcılar için her birinin doğrulayıcı olmak için iki şansı olabilir; Br ve diğeri Br ile ǫ, her biri bağımsız olarak p olasılığına sahiptir. HSV r+1,s olsun 1;Br Br'yi takip eden r+1 turunun s adımlarındaki dürüst doğrulayıcılar kümesi olsun. Diğer gösterimler HSV r+1,s gibi 1;Brǫ , MSV r+1,s 1;Br ve MSV r+1,s 1;Br| benzer şekilde tanımlanır. Chernoff'a bağlı olmak çok kolay 25İki boş olmayan bloktan oluşan bir çatala sahip olmak, ihmal edilebilir durumlar dışında, bölmeli veya bölmesiz mümkün değildir. olasılık.bunu çok büyük bir olasılıkla görmek için, |HSV r+1,s 1;Br | + |HSV r+1,s 1;Br| + |MSV r+1,s 1;Br | + |MSV r+1,s 1;Br| < 2tH. Buna göre, iki dalın her ikisinin de yuvarlak bloku onaylayan uygun imzaları olamaz. r + 1 aynı adımda s. Ayrıca, s ve s' adımlarının seçim olasılıkları aynı ve seçimler bağımsız, üstelik çok büyük olasılıkla |HSV r+1,s 1;Br | + |MSV r+1,s 1;Br | + |HSV r+1,s′ 1;Br| | + |MSV r+1,s′ 1;Br| | < 2tH, herhangi iki adım için s ve s′. F = 10−18 olduğunda, birlik sınırına göre, Düşman bunu yapamadığı sürece dürüst kullanıcıları uzun bir süre boyunca bölümlere ayırın (örneğin 104 adım, \(\lambda\) = 10 ile 55 saatten fazla) saniye26), yüksek olasılıkla (örneğin 1−10−10) en fazla bir dalın uygun imzaları olacaktır r + 1 turundaki bir bloğu onaylamak için. Son olarak, fiziksel bölüm kabaca aynı boyutta iki parça oluşturduysa, o zaman |HSV r,s olasılığı ben | + |MSV r,s ben | \(\geq\)tH her i parçası için küçüktür. Benzer bir analizin ardından, Rakip her parçada göz ardı edilemeyecek bir olasılıkla bir çatal yaratmayı başarsa bile r turu için dört daldan en fazla biri r + 1 turunda büyüyebilir. 10.2 Çelişkili Bölme İkincisi, bölünmeye Düşman neden olmuş olabilir, böylece mesajlar yayılır. Bir taraftaki dürüst kullanıcılar diğer taraftaki dürüst kullanıcılara doğrudan ulaşamayacak, ancak Düşman iki taraf arasında mesaj iletebilir. Yine de birinden bir mesaj geldi Bir kısmı dürüst bir kullanıcıya ulaşırken, diğer kısmı her zamanki gibi ikincisinde yayılacaktır. Eğer Düşman çok para harcamaya istekliyse, hacklemesi mümkün olabilir. İnterneti açın ve bir süre bu şekilde bölün. Analiz, yukarıdaki fiziksel bölümün daha büyük kısmı için yapılan analize benzer (daha küçük olan kısım) kısmı 0 nüfusa sahip olarak kabul edilebilir): Düşman bir çatal oluşturabilir ve her dürüst kullanıcı dallardan yalnızca birini görür, ancak en fazla bir dal büyüyebilir. 10.3 Toplamda Ağ Bölümleri Ağ bölümleri olabilmesine ve bölümlerin altında bir turda çatallanma meydana gelebilmesine rağmen, Bu kalıcı bir belirsizlik değildir: çatal çok kısa ömürlüdür ve aslında en fazla tek bir tur sürer. içinde bölümün en fazla biri hariç tüm bölümleri, kullanıcılar yeni bir blok oluşturamaz ve dolayısıyla (a) ağda bir bölüm olduğunun farkına varın ve (b) asla "yok olacak" bloklara güvenmeyin. Teşekkür Öncelikle adı geçen Democoin sisteminin ortak yazarı Sergey Gorbunov'a teşekkür etmek istiyoruz. Birçok aydınlatıcı tartışma ve işaret ettiği için Maurice Herlihy'ye en içten teşekkürlerimi sunuyorum. ardışık düzen oluşturmanın Algorand'nin üretim performansını artıracağını ve 26 Bir kullanıcının bir adımı 2\(\lambda\) süresini beklemeden ancak en az tH imzasını görmesi durumunda tamamladığını unutmayın. aynı mesaj. Yeterli imza olmadığında her adım 2\(\lambda\) süre sürecektir.
bu makalenin daha önceki bir versiyonunun açıklaması. Sergio Rajsbaum'a yorumları için çok teşekkürler. bu makalenin daha önceki bir versiyonu. Derin tartışmalar için Vinod Vaikuntanathan'a çok teşekkürler ve içgörüler. Yossi Gilad, Rotem Hamo, Georgios Vlachos ve Nickolai Zeldovich'e çok teşekkürler Bu fikirleri test etmeye başladığınız ve birçok faydalı yorum ve tartışma için teşekkür ederiz. Silvio Micali, sayısız tartışma ve rehberlik için Ron Rivest'e kişisel olarak teşekkür eder. Bahsi geçen mikro ödeme sisteminin ortak yazarlığı için 30 yılı aşkın süredir kriptografik araştırmalarda bu, Algorand doğrulayıcı seçim mekanizmalarından birine ilham kaynağı olmuştur. Bu teknolojiyi bir sonraki seviyeye taşımayı umuyoruz. Bu arada seyahat ve arkadaşlık çok eğlenceliler ve bunun için minnettarız.