Wie löst das Ripple-System das Double-Spend-Problem? Verwendet es auch eine Blockchain-ähnliche Entität, die offiziell vorschreibt, welche Transaktionen bestätigt werden und welche nicht, oder verwendet es einen anderen cleveren Mechanismus?
Die Details sind sehr komplex, aber das Kernkonzept ist ziemlich einfach. Ripple löst das Double-Spend-Problem im Konsens.
Die Analogie, die ich verwende, ist ein "Vereinbarungsraum". Um den Raum zu betreten, muss man sich mit allen einverstanden erklären, die sich bereits darin befinden. Wer widersprechen will, muss gehen und einen eigenen Raum bilden. Jeder, der ehrlich ist, möchte in den größtmöglichen Raum mit den meisten Menschen hinein.
Im Raum stimmen sich die Leute ständig über den aktuellen Zustand des Systems ab. Es ist als Hash-Baum implementiert, das ist also nur eine 256-Bit-Zahl.
Um eine Transaktion durchzuführen, gehen Sie in den großen Raum und lesen die Transaktion vor. Jeder prüft die Transaktion mit seinem Hauptbuch. Unter der Annahme, dass es keine widersprüchliche Transaktion oder ein anderes Problem gibt, stimmen alle zu, dass die Transaktion gültig ist, und sie nehmen sie in den Satz von Transaktionen auf, von denen sie glauben, dass sie angewendet werden sollten.
Sie bearbeiten dann alle Meinungsverschiedenheiten, die sie haben, durch einen Lawinenprozess. Wenn jemand für eine Transaktion, die keine überwältigende Mehrheit hat, mit Ja stimmt, ändert er im Wesentlichen seine Stimme einfach in Nein. Dies stellt sicher, dass es eine schnelle Einigung über eine Reihe von Transaktionen gibt.
Sobald eine Reihe von Transaktionskandidaten vereinbart wurde, werden diese Transaktionen angewendet und jeder berechnet das nächste Ledger gemäß einer Reihe deterministischer Regeln. Sie alle unterschreiben, veröffentlichen diese Unterschriften, und jetzt wissen die Kunden, welche Transaktionen vom Konsensprozess akzeptiert wurden.
Wenn eine Transaktion aus irgendeinem Grund nicht hereinkommt, aber noch gültig ist, wird jede ehrliche Person im Raum in der nächsten Runde Ja zu dieser Transaktion sagen.
Also zurück zum Problem der doppelten Ausgaben. Eine doppelte Ausgabe besteht im Wesentlichen aus zwei Transaktionen, von denen jede nur dann gültig ist, wenn sie vor der anderen angewendet wird. Die Lösung des Doppelausgabenproblems erfordert also „lediglich“, dass man sich auf eine Bestellung für die beiden Transaktionen einigt. Wenn sich alle einig sind, was zuerst kommt, ist das Problem gelöst – das, was zuerst kommt, wird angewendet und somit ist das andere ungültig.
Wenn im Ripple-System zwei Transaktionen doppelt ausgegeben werden, kann eines von drei Dingen passieren:
Eine Transaktion wird vor der anderen in einen Konsenssatz abgestimmt. In diesem Fall befindet sich diese Transaktion in einem Hauptbuch, das von allen Personen im Raum unterzeichnet wurde, wodurch die andere für immer ungültig wird.
Beide gelangen in den gleichen Konsenssatz (das sollte fast nie passieren). In diesem Fall bestimmt eine deterministische Regel bei der Anwendung des Konsenssatzes, was in das Hauptbuch gelangt und das andere für immer blockiert.
Keiner kommt in einen Konsenssatz, weil keiner eine Mehrheit erhält und beide Transaktionen bei etwa 50 % liegen. In diesem Fall wird jeder Knoten, der beide Transaktionen sieht (was schnell die überwiegende Mehrheit der Knoten sein wird), mit Ja über die Transaktion stimmen, die nach einer deterministischen Regel gewinnt, und mit Nein über die Transaktion, die nach dieser Regel verliert. Derjenige, der durch diese deterministische Regel gewinnt, wird in den Konsenssatz aufgenommen, auf das Ledger angewendet und den anderen für immer blockieren.
Das ist eine grobe Vereinfachung, aber es ist von Natur aus ziemlich komplex.
@ Davids Antwort spricht im Wesentlichen nicht von einem Angriffsszenario, in dem der Raum voller unehrlicher Knoten ist. Dies ist im Wesentlichen das, was der Proof-of-Work beheben sollte.
Wenn Sie viele IPs (Knoten im Ripple-Netzwerk) ergattern, könnten Sie eine Mehrheit im Raum werden. Der Unterschied besteht darin, dass es wirklich einfach ist, eine IP zu erhalten, aber extrem schwer zu beweisen, dass Sie in einem Proof-of-Work-System (wie dem von Bitcoin) arbeiten.
Nach meinem Verständnis löst Ripple das Problem der doppelten Ausgaben nicht mathematisch, wie es Bitcoin tut (vorausgesetzt, ehrliche Nodes überwältigen das Netzwerk). Es löst es mit einem verteilten Konsenssystem, das leicht gestürzt werden kann, wenn Sie die Mehrheit der IPs erhalten und eine Weile ehrlich handeln, damit andere Knoten Ihnen vertrauen.
Zusammenfassend lässt sich sagen, dass doppelte Ausgaben sowohl mit Bitcoin als auch mit Ripple möglich sind, aber mit Bitcoin ist es viel schwieriger, doppelte Ausgaben zu tätigen, da das System auf einem mathematischen Wettlauf gegen das Proof-of-Work-System basiert, während Ripple auf dem Konsens mehrerer basiert Knoten, die von einem Angreifer leichter reproduziert werden können.
Colin Dekan
David Schwarz
Brian Armstrong
David Schwarz
Manisch
David Schwarz
Steven Rose
David Schwarz
Steven Rose
David Schwarz
Steven Rose
David Schwarz
Steven Rose