Ich lese gerade dieses Papier , das behauptet, ein formeller Beweis dafür zu sein, dass das neueste Ouroboros PoS-Protokoll ("Genesis") von Cardano ähnliche Sicherheitsgarantien bietet wie das PoW-Protokoll von Bitcoin. Leider ist es 64 Seiten lang und setzt eine Menge früherer Arbeiten voraus, mit denen ich mich auch anfreunden muss. Obwohl ich relativ sicher bin, diese Dinge zu verstehen, wird mich eine gründliche Bewertung einige Zeit in Anspruch nehmen.
Also habe ich mich gefragt, ob jemand (sagen wir Andrew Poelstra, Pieter Wuille?) dies bereits überprüft hat und seine Meinung äußern könnte. Denn einerseits ist dies eine sehr kühne Behauptung, die die Folklore-Ansicht zu diesem Thema entkräften würde (PoS hat grundlegende Sicherheitsprobleme, die nicht überwunden werden können), und andererseits scheinen die Autoren in ihrer Herangehensweise recht legitim und ernsthaft zu sein.
Mir ist klar, dass, selbst wenn es wahr wäre, dies nicht bedeutet, dass PoS für das Bootstrapping eines Systems wie Cardano nützlich ist. Aber könnte es nicht eine Alternative für Bitcoin sein, sagen wir, nach ein oder zwei weiteren Halbierungen?
Die Ouroboros-Arbeitslinie beweist Sicherheit, die mit der Sicherheit von Bitcoin vergleichbar ist. Die Sicherheitsnachweise in Ouroboros ähneln im Stil den Backbone-Sicherheitsnachweisen, die zeigen, dass Bitcoin sicher ist. Meines Wissens gibt es keine formalen alternativen Sicherheitsnachweise für Bitcoin – dies sind die besten uns bekannten Ergebnisse, die zeigen, dass Bitcoin sicher ist, abgesehen von informellen, handgewellten, nicht-mathematischen Argumenten (wie „aber Sie können nicht einen Sicherheitsfehler finden, also muss es sicher sein").
Bei diesen beiden Einstellungen werden bestimmte Annahmen getroffen, die wie folgt lauten:
Zum Proof-of-Work wurde in der ersten Version von Backbone aus dem Jahr 2014 Bitcoin in einem synchronen Modell als sicher ausgewiesen. Dieses Modell teilt die Zeit in diskrete Abschnitte auf („Runden“ in Backbone, „Slots“ in Ouroboros), in denen die Spieler alle während einer Runde gefundenen Blöcke abbauen und dann übertragen können. Nachrichten, die während einer Runde gesendet werden, sind anonym (dh nicht authentifiziert) und können vom Gegner neu geordnet werden (daher die Notwendigkeit eines Konsensprotokolls). Der Gegner "eilt" auch dahingehend, dass er seine eigene Mining-Macht nutzen kann, nachdem er beobachtet hat, was die ehrlichen Parteien in derselben Runde getan haben, und bevor er Nachrichten über das Netzwerk reisen lässt. Es wird davon ausgegangen, dass keine Nachrichten verloren gehen. Dies ist eine notwendige Annahme, um zu beweisen, dass Bitcoin sicher ist - wenn das Netzwerk aufgeteilt ist, dann können Sie'
Die Anforderungen an die Synchronität wurden in der aktuellen Version von Backbone , die 2017 überarbeitet wurde, gelockert, in der das Modell halbsynchron ist. Die erste Version von Backbone zeigte auch, dass Bitcoin sicher ist, wenn die Schwierigkeit konstant gehalten wird. Eine Folgearbeit an Backbone aus dem Jahr 2016 zeigte, dass es in einer variablen Schwierigkeitseinstellung sicher bleibt. Diese Beweise beruhen auf einer ehrlichen Mehrheitsannahme, die in den Papieren präzisiert wird. Genauer gesagt ist es erforderlich, dass der Gegner eine Mining-Power hat, die um eine feste Konstante niedriger ist als die ehrliche Mining-Macht, die nicht eindeutig erfolgreiche Runden ausgleicht (d. h. Runden, in denen mehrere ehrliche Parteien eine Blockierung finden und daher eine kurzer versehentlicher Fork auf der Blockchain).
Die Annahmen im Proof-of-Stake-Setting von Ouroboros sind netzwerktechnisch ähnlich wie bei Backbone. Das Modell ist größtenteils von Canettis Universal Composability Framework entlehnt , in dem Sinne, dass es eine Umgebung gibt, die die Ausführung beeinflussen kann. Beweise im „umweltumfassenden“ Modell sind insofern mächtig, als sie von jeder Hinrichtung sprechen können, bei der der Gegner in der Lage ist, den Menschen genau zu sagen, was sie tun sollen, abgesehen von der Anforderung, dass die ehrlichen Parteien das ehrliche Protokoll ausführen. Beispielsweise kann der Gegner Spieler seiner Wahl korrumpieren.
Bei Ouroboros ist die Annahme, die Backbones „ehrlicher Mining-Mehrheit“ gegenübersteht, die „ehrliche Anteilsmehrheit“, dh, dass die Mehrheit des Anteils zu jedem Zeitpunkt den ehrlichen Parteien gehört. Dies ist eine starke Annahme, die zutreffen kann oder nicht, also hängt es davon ab, was Sie bereit sind zu akzeptieren. Eine weitere Annahme, die in Ouroboros gemacht wird, ist, dass die Verschiebung des Einsatzes begrenzt ist. Dies scheint eine vernünftige Annahme zu sein: Es bedeutet, dass nicht alles Geld sofort den Besitzer wechseln kann. Die Konstruktion hängt jedoch von dieser Grenze ab, um die Sicherheitsparameter wie die Epochenlänge anzugeben. Im praktischen System nehmen diese Parameter konkrete Werte an, die es ermöglichen, bestimmte Grenzen zu erreichen.
Ouroboros Praos erreicht bessere Sicherheitsgarantien als Ouroboros: Es ermöglicht dem Gegner, jede ehrliche Partei sofort zu korrumpieren, wann immer sie das für nötig hält. Dies ist ein starker Gegner (daher ist das System sicherer) und ist auch eine ähnliche Annahme wie Backbone. Für den Proof-of-Stake ist dies eine wichtige Errungenschaft, da der Gegner Parteien, die erfolgreich einen Block abgesteckt haben, rückwirkend korrumpieren könnte, damit er mehrere konkurrierende Blöcke erstellen kann. Praktisch eingesetzte Proof-of-Stake-Ketten wie Blackcoin genießen meines Wissens keine solchen Garantien (und können wirklich keine Ansprüche erheben, da sie keine Sicherheitsnachweise haben).
Ouroboros Genesis verstärkt die obigen Ergebnisse dadurch, dass die Parteien dynamisch sind (und zB offline gehen können) und die Sicherheit in einem stärkeren Modell bewiesen wird.
Alle diese Arbeiten (die Beweise sowohl für Bitcoin als auch für Ouroboros) verwenden auch die Random Oracle-Annahme, die einige Kryptographen nicht mögen.
All diese Ansätze sind mit anderen Arbeitsrichtungen wie Schneewittchen und ALGORAND vergleichbar . Meiner Meinung nach erreicht Ouroboros bessere Garantien, hat gute Designentscheidungen, hat formale Sicherheitsnachweise und funktioniert in einem Modell, das Proof-of-Work-basierten Systemen (insbesondere Praos) ziemlich ähnlich ist. Es würde einer umfassenden Analyse bedürfen, sie alle nebeneinander zu vergleichen.
Ob Sie letztendlich mit den Sicherheitsannahmen und dem Bedrohungsmodell in diesen Arbeiten zufrieden sind, hängt von Ihren Anforderungen ab. Insgesamt erzielen diese Arbeiten einige gute Garantien, aber einige Ergebnisse lassen zu wünschen übrig. Beispielsweise kann die ehrliche Mehrheit die meiste Zeit gelten, nicht immer, aber es wurde nicht untersucht, ob die Sicherheit in diesen Umgebungen gewährleistet ist (weder bei Bitcoin noch bei Ouroboros). Ich vermute, dass Bitcoin widerstandsfähiger gegenüber extremen Bedingungen ist, aber solche Garantien wurden nicht bewiesen.
Im Allgemeinen ist anzumerken, dass diese Einschränkungen/Annahmen auch für Bitcoin gelten: Die besten formalen Beweise, die wir für Bitcoin haben, funktionieren in einem begrenzten Modell, das der realen Konstruktion nahe kommt, aber nicht genau dasselbe ist. Zusammenfassend ist Backbone die beste Analyse, die wir für Bitcoin haben, und sie erstellt eine Analyse, die mit Ouroboros vergleichbar ist. Daher entsprechen seine Sicherheitsgarantien den Sicherheitsgarantien, die wir für Bitcoin haben, wenn man ehrliche Mehrheit abstecken mit ehrlicher Mehrheit schürfen, zumindest solange Beweisbarkeit erforderlich ist.
Wenn Sie diese Papiere selbst verstehen und selbst beurteilen möchten, ob sie Ihre gewünschten Ergebnisse erzielen, empfehle ich Ihnen, zuerst das GKL Backbone-Papier zu lesen. Sie können den ersten Teil lesen, in dem es um Common Prefix, Chain Quality und Chain Growth sowie Liveness und Persistence geht. Dann empfehle ich Ihnen, Ouroboros zu lesen, vielleicht gefolgt von Ouroboros Praos. Diese sollten Ihnen eine gute Vorstellung davon vermitteln, worum es in diesem Arbeitsbereich geht. Sie haben Recht, dass das Verständnis von Ouroboros Genesis viele Voraussetzungen erfordert. Sie können sich jedoch ein gutes Verständnis der Ergebnisse in Bezug auf die Sicherheit des Proof-of-Stakes verschaffen, ohne dieses spezielle Papier zu lesen.
Haftungsausschluss: Ich bin ein Doktorand von Aggelos (Aggelos hat Backbone, Variable Backbone, Ouroboros, Ouroboros Praos, Ouroboros Genesis geschrieben – ich habe zu diesen Arbeiten nichts beigetragen); meine aktuelle wissenschaftliche Arbeit wird in Cardano verwendet, das eine Implementierung von Ouroboros ist. Meine Ansicht mag voreingenommen sein.
Soweit ich mich erinnere, gehen die Sicherheitsansprüche dieses Systems davon aus, dass die Benutzer ein synchrones Netzwerk haben – jede Nachricht wird zuverlässig an alle Benutzer übermittelt. Dies ist eine eher nicht-physikalische Annahme, der einzige Weg, wie wir so etwas konstruieren können, ist die Verwendung einer Art Konsenssystem. Was den Namen "Ouroboros" ziemlich passend machen würde. :P
Wenn Sie tatsächlich ein synchrones Netzwerk hätten, bräuchten Sie keinerlei POW/POS, Sie würden nur die Leute ihre Transaktionen senden lassen und die erste gesendete gewinnt. Infolgedessen könnten Sie unter dieser Annahme praktisch jede Art von System als sicher erweisen, sogar solche mit absolut keiner Sicherheit in der realen Welt.
Aufgrund der langen Geschichte unklarer, irreführender, verschleierter oder völlig unehrlicher Behauptungen über die Sicherheit von Personen, die POS und andere alternative Konsenssysteme fördern, denke ich, dass die meisten Experten vorerst die Geduld bei der Überprüfung dieser Dinge verloren haben. Ich möchte vorschlagen, dass jeder, der glaubt, ein wirklich gutes Framework zu haben, es gut täte, es zu verwenden, um zu beweisen, dass ähnliche Alternativen wie Stellar, Ripple oder die Forschung und Entwicklung von Ethereum unsicher sind. Ich sage das aus zwei Gründen: Erstens, wenn jemandes Framework nicht beweisen kann, dass andere Systeme unsicher sind, warum sollten wir dann erwarten, dass es uns mitteilt, ob ihr neues System unsicher ist? Der andere Grund besteht darin, einem unskalierbaren Verhalten zu entkommen, bei dem schlecht durchdachte Schemata über den Zaun geworfen werden und eine begrenzte Anzahl von Personen sättigen, die sie überprüfen können. Ich denke auch, dass der beste informelle Beweis dafür, dass jemand zum Erstellen eines Systems qualifiziert ist, darin besteht, dass er in der Lage ist, Fehler in anderen Systemen zu finden, und ohne so etwas ist es einfach zu schwierig, die Überprüfung gegenüber anderer Arbeit zu priorisieren. Diese Art von Aktivität kann helfen zu klären, welche Eigenschaften ein Angebot tatsächlich bietet.
Sie müssten definieren, was Sie in diesem Sinne unter „Sicherheit“ verstehen.
Das Lecken von Signaturen ist immer möglich und implementierungsspezifisch, aber das Überschreiben (und das effektive Annullieren der Transaktionen) des Blocks mit reiner Hash-Power, die Sie bei Bedarf abrufen können, ist nicht zu verhindern.
Sie können nicht erzwingen oder vorhersagen, wann ein Einsatz stattfinden wird, daher das Problem.
Pieter Wuille
dionyziz
dionyziz