Was sind die Vor- und Nachteile von Ethereum-Guthaben vs. UTXOs?

Ethereum hat ein einfacheres Modell, indem es keine UTXOs (Unspent Transaction Outputs) wie Bitcoin hat. Was „gibt“ Ethereum „auf“, wenn es keine UTXOs hat, und was gewinnt es?

Die Antworten auf diese wichtigen Fragen sind leider völlig in Richtung Ethereum geneigt, direkt aus der Ethereum-Dokumentation. Zum Beispiel ist es bei UTXOs nicht nötig, sich Nonce und Whatnots einfallen zu lassen, um Probleme bei der Transaktionsbestellung zu beheben: Das jüngste Ledger Nano S SNAFU, bei dem viele tx mehrmals gesendet wurden, oder Leute, die ETH viele Male anstatt einmal senden, um ICOs während einer Blockkettenüberlastung zu finanzieren, können dies nicht fast genauso schlimm sein, wenn UTXOs verwendet werden. Es gibt auch 0-conf-Systeme, die mit UTXOs verwendet werden, die mit Ethereum einfach nicht so sicher sind (Sie müssen Blöcke warten).

Antworten (3)

Die wichtigsten Validierungseinschränkungen in einem Bitcoin UTXO -System sind:

  • Jede referenzierte Eingabe muss gültig und noch nicht ausgegeben sein
  • Die Transaktion muss für jede Eingabe eine Signatur haben, die mit dem Eigentümer der Eingabe übereinstimmt
  • der Gesamtwert der Inputs muss gleich oder größer sein als der Gesamtwert der Outputs

Im Gegensatz dazu sind die Funktionen in einem auf Ethereum-Konten basierenden System:

  • Ein globaler Zustand speichert eine Liste von Konten mit Salden, Code und internem Speicher
  • Eine Transaktion ist gültig, wenn das sendende Konto über genügend Guthaben verfügt, um sie zu bezahlen. In diesem Fall wird das sendende Konto belastet und dem empfangenden Konto der Wert gutgeschrieben
  • wenn das empfangende Konto Code hat, wird der Code ausgeführt, und der interne Speicher kann auch geändert werden, oder der Code kann sogar zusätzliche Nachrichten an andere Konten erzeugen, die zu weiteren Belastungen und Gutschriften führen

Diese Systeme haben tatsächlich verschiedene Kompromisse. Während Ethereum beispielsweise den Kontostand als Teil des globalen Staates verwaltet, ist das „Guthaben“ eines Bitcoin-Benutzers der Gesamtwert, für den der Benutzer einen privaten Schlüssel hat, der eine gültige Signatur erzeugen kann.

Im Allgemeinen sind die Vorteile von UTXOs:

  • Höherer Datenschutz : Wenn ein Benutzer für jede Transaktion, die er erhält, eine neue Adresse verwendet, kann es schwierig sein, Konten miteinander zu verknüpfen
  • Mögliche Skalierbarkeitsparadigmen : UTXOs sind theoretisch besser mit bestimmten Arten von Skalierbarkeitsparadigmen kompatibel

Die Vorteile von Konten sind:

  • Große Platzersparnis : weil jede Transaktion nur eine Referenz und eine Unterschrift machen muss und eine Ausgabe erzeugt
  • Größere Fungibilität : Da es kein Konzept auf Blockchain-Ebene für die Quelle eines bestimmten Satzes von Münzen gibt, wird es weniger praktikabel, ein Schema für rote Listen/schwarze Listen einzuführen
  • Einfachheit : einfacher zu codieren und zu verstehen, insbesondere wenn komplexere Skripte involviert sind
  • Konstante Light-Client-Referenz : Light-Clients können jederzeit auf alle Daten zugreifen, die sich auf ein Konto beziehen, indem sie den Statusbaum in einer bestimmten Richtung durchsuchen

Eine Schwäche des Kontoparadigmas besteht darin, dass zur Verhinderung von Replay-Angriffen jede Transaktion eine „Nonce“ haben muss und das Konto die verwendeten Nonces verfolgen muss.

Ich verstehe das Argument „höherer Datenschutz“ für UTXO nicht. Warum sollte Ethereum nicht in der Lage sein, genau dasselbe zu tun und für jede Transaktion eine neue Adresse zu erstellen?
@RolandKofler, Tatsächlich kann Ethereum für jede Transaktion eine neue Adresse haben. Ich glaube, dass JAXX dies bereits tut und auch einen ähnlichen Seed wie Electrum verwendet. Dieses Konzept wurde noch nicht in die offizielle Brieftasche von Ethereum übernommen. Da es nur ein Dapp ist, wird vielleicht jemand in Zukunft eine Seed-basierte Brieftasche für Ethereum als Dapp erstellen?
Sie haben jetzt chainId in das rohe Transaktionsobjekt eingeführt, um Replay-Angriffe zu verhindern, warum ist die Nonce immer noch da?
@James: Nonce dient dazu, Double-Spend-Angriffe zu verhindern, nicht für Anti-Replay-Angriffe.
@James Chain ID soll Cross-Chain-Replay-Angriffe verhindern. Nonce soll den offensichtlichen In-Chain-Replay-Angriff verhindern, der sonst möglich wäre, weil die Transaktion nicht auf bestimmte UTXOs verweist, sondern nur den zu belastenden Betrag angibt – der ansonsten leicht in mehrere Blöcke aufgenommen werden könnte, wodurch das Konto mehrfach belastet würde.
@RolandKofler Es ist möglich, für jede Transaktion eine separate Adresse / ein separates Konto zu verwenden, aber dann ist es schwieriger, Ihre Münzen neu zu gruppieren und sie in einer einzigen Transaktion an das Ziel zu senden. Es ist eine grundlegende Einschränkung von Ethereum.

Die akzeptierte Antwort ist eine sehr gute Zusammenfassung des folgenden Wikis:

https://eth.wiki/en/fundamentals/design-rationale#accounts-and-not-utxos

Siehe es für weitere Details, einschließlich der Begründung von Ethereum:

Wir haben entschieden, dass, insbesondere weil wir es mit Dapps zu tun haben, die willkürlichen Zustand und Code enthalten, die Vorteile von Konten die Alternativen massiv überwiegen. Darüber hinaus stellen wir im Sinne des We Have No Features-Prinzips fest, dass, wenn sich die Menschen wirklich um den Datenschutz kümmern, Mixer und Coinjoin über signierte Datenpaketprotokolle innerhalb von Verträgen erstellt werden können.

Mit dem UTXO-Modell von Bitcoins kann eine einzelne Brieftasche mehrere Ausgaben asynchron ausgeben, während Sie mit dem Nonce-Modell von ETH warten müssen, bis eine vorherige Transaktion abgebaut wurde, bevor Ihre nächste Transaktion verarbeitet werden kann.

Upvoting und Sie haben Recht mit der ETH-Nonce, aber ein Miner könnte mehr als eine Transaktion auswählen, die Sie im Mempool haben, und sie alle in den Block aufnehmen. Der Miner muss Ihre Transaktionen nach Nonce ordnen. Ihr Standpunkt zu UTXO ist ein Aspekt dessen, was die akzeptierte Antwort als "potenzielle Skalierbarkeitsparadigmen" bezeichnet.