Spezifikation der Transaktionseingaben – Bitcoin vs. Ripple

In Bitcoin werden die Transaktionseingaben (UTXOs) als Tupel (Transaktionsindex, vout) angegeben, da es im Bitcoin-System keine Vorstellung von einem Konto gibt und die Adresse (auf die vout zeigt) allein nicht ausreichen würde. Stattdessen sind Transaktionen primäre Entitäten.

Ripple hingegen macht ein Konto zu einer primären Einheit mit Transaktionen, die den Kontostand verändern. Dadurch ist es möglich, die (Konto-)Adresse allein als Eingabe für eine Transaktion anzugeben.

Das sind Designentscheidungen. Was sind die Vor- und Nachteile der beiden Modelle? Was war die Motivation dahinter?

Danke schön.

Nit: voutist nur der Index einer Ausgabe in der Ausgabeliste einer Transaktion. Es ist nur eine Ganzzahl. Die Adresse ist Teil des Ausgabeskripts, das im UTXO enthalten ist. Das Tupel, auf das Sie sich beziehen, ist die eindeutige Kennung eines UTXO, nicht das vollständige UTXO.

Antworten (1)

Vorteile des UTXO/Blockchain-Ansatzes:

  1. Sie müssen nicht an Adressen zahlen, die auf Konten verweisen. Transaktionen können nach eindeutigen Regeln oder Bedingungen bezahlt werden, die nur als Regel existieren können, um eine bestimmte Transaktionsausgabe zu beanspruchen.
  2. Transaktionen sind unabhängiger in der Ausführung und konkurrieren nicht um den Zugriff auf dieselben Kontostrukturen.
  3. Alles, was Sie über eine Transaktion wissen müssen, ist, dass sie erfolgreich war. Es gibt keine "zusätzlichen Informationen" wie den vorherigen Saldo und den neuen Saldo.

Vorteile des Account/Ledger-Ansatzes:

  1. Konten existieren als primäre Strukturen und können daher sowohl dauerhafte/konfigurierte als auch dynamische/gemeldete Eigenschaften haben.
  2. Transaktionen sind unabhängigere Informationen und konkurrieren nicht um den Zugriff auf die gleichen Transaktionsergebnisse.
  3. Es muss keine UTXO-Datenbank gewartet und synchronisiert werden, und Angriffe auf das UTXO-Set funktionieren nicht. (Obwohl es andere Möglichkeiten gibt, wie Sie sich gegen Angriffe dieser Art verteidigen können.) Anspruchsvollere Transaktionen können unterstützt werden, ohne dass das Risiko von Meinungsverschiedenheiten auf dem UTXO-Set entsteht.

Das Design von Bitcoin passt natürlich zum UTXO-Ansatz. Die Transaktionsergebnisse sind einfach und es sind keine Kontoparameter erforderlich.

Dieser Ansatz hätte in Ripple aus verschiedenen Gründen nicht funktioniert:

  1. Da Ripple beliebige Vermögenswerte unterstützt, von denen viele wertlos sein können, muss es für die Empfänger eine Möglichkeit geben, anzugeben, welche Vermögenswerte sie als Zahlung akzeptieren. Das bedeutet, dass etwas das als Eigenschaft haben muss, was ein Konto erfordert.

  2. Irgendetwas muss diese Vermögenswerte ausgeben, was erfordert, dass Konten als Emittenten fungieren.

  3. Währungsübergreifende Zahlungen können zu komplexen Ergebnissen führen, der Versuch, diese deterministisch auf UTXO-Operationen abzubilden, ist nicht selbstverständlich. Das Anpassen des Kontostands ist einfacher als die Auswahl von UTXOs zum Konsumieren und Erstellen zum Zeitpunkt der Transaktionsverarbeitung. Die Transaktionen von Ripple hätten beispielsweise nicht angeben können, welche UTXOs sie verbrauchen würden, da dies zum Zeitpunkt der Transaktionsbildung nicht bekannt ist. (Woher wissen Sie, wer den besten Kurs anbietet, wenn Ihre Transaktion ausgeführt wird? Wenn alle mit hartcodierten Transaktionen um die saftigste Liquidität konkurrieren, werden die meisten Transaktionen fehlschlagen.)

  4. Der komplexere Netzwerkstatus erfordert eine komplexere Struktur, um sicherzustellen, dass das Netzwerk diesem Status zustimmt. Die Struktur von Bitcoin hat keine Möglichkeit, sich vor UTXO-Divergenz zu schützen, was katastrophal wäre, außer Transaktionen so einfach zu halten, dass ein Fehler dieser Art unwahrscheinlich ist. Die komplexeren Transaktionen von Ripple benötigen eine starke Verteidigung gegen Abweichungen, da sonst kleine Fehler im Code katastrophale Ergebnisse verursachen könnten.

  5. Da Ripple-Transaktionen komplexere Ausgaben haben, sind sie tendenziell größer. Der Ansatz von Ripple macht es einfacher, den Transaktionsverlauf zu verwerfen, da Sie wirklich nur den aktuellen Status aller Konten und anderer persistenter Strukturen benötigen.

Mit beiden Ansätzen können Sie so ziemlich alle Anforderungen erfüllen. Es gibt Möglichkeiten, jedes dieser Probleme zu umgehen, ohne den Ansatz zu ändern. Aber es ist oft einfacher, mit dem Design zu beginnen, das am natürlichsten zu Ihren Anforderungen passt, anstatt zu rasieren und zu klemmen, um einen runden Stift in ein quadratisches Loch zu bekommen.