MSTR Cat

Blockchain/Niveau II · Mechanik/2.2 Transaktionen/Lektion 1

Das UTXO-Modell

Warum Bitcoin keine Konten kennt und woher das Hauptbuch weiß, was bereits ausgegeben ist

MaterialienEin Webbrowser mit Zugang zu einem Block-Explorer (z. B. mempool.space)Eine öffentliche Bitcoin-Adresse mit mehreren UTXOsEin Notizbuch zum Festhalten von Output-IDs und Werten

Neugier

  1. Was passiert mit einem Saldo, wenn es keine Konten gibt, die aktualisiert werden müssen?
  2. Wie kann ein Node überprüfen, dass ein Input nicht bereits ausgegeben wurde, ohne jede frühere Transaktion zu prüfen?
  3. Warum wird es schwieriger, anonym zu bleiben, wenn ein Coin seine vollständige Historie mit sich trägt?

Erkunden

  1. Bitcoin verwendet nicht das Kontomodell, das Bankbücher und Ethereum nutzen. In diesen Systemen werden Salden an Adressen gespeichert und direkt aktualisiert; beim Senden von Geldern wird von einem Saldo abgezogen und einem anderen hinzugefügt. Bitcoin kennt keine solche Speicherung. Stattdessen nutzt es eine bargeldähnliche Struktur, in der Wert nur in Form diskreter, nicht ausgegebener Einheiten existiert. Es gibt kein zentrales Hauptbuch, das den „Gesamtbetrag von Alice“ erfasst; es gibt lediglich eine Menge einzelner Outputs, die derzeit ausgegeben werden können.
  2. Diese Einheiten heißen Unspent Transaction Outputs (UTXOs). Jeder UTXO enthält einen bestimmten Betrag in Satoshis und ein Locking-Skript, das festlegt, wer ihn ausgeben darf. Bei einer Transaktion werden ganze UTXOs als Inputs verbraucht und neue UTXOs als Outputs erzeugt. Die ausgegebenen Outputs verlassen die Menge der ausgebbaren Coins (die Transaktionen bleiben in der Historie der Chain erhalten), und die neuen Outputs kommen hinzu. Der „Saldo“ einer Wallet ist keine gespeicherte Zahl, sondern die Summe aller UTXOs, deren Locking-Skripte ihre privaten Schlüssel erfüllen können.
  3. Diese Struktur vereinfacht die Validierung für die Nodes im Netzwerk. Da jeder Input auf einen bestimmten, zuvor nicht ausgegebenen Output verweist, muss ein Node lediglich prüfen, ob genau dieser Output im aktuellen Zustand existiert und noch nicht verwendet wurde. Er muss weder globale Salden neu berechnen noch komplexe Kontohistorien überprüfen. Jeder Full Node führt den „Chainstate“, der im Wesentlichen die gesamte Menge aller aktiven UTXOs zu einem beliebigen Zeitpunkt darstellt. Dies ermöglicht eine schnelle, deterministische Prüfung von Double-Spending-Versuchen.
  4. Der Vergleich mit Ethereum verdeutlicht eine zentrale Designentscheidung. Ethereum verwendet ein Kontomodell, bei dem jede Adresse einen gespeicherten Saldo und eine Nonce (einen Transaktionszähler) besitzt, um Replay-Angriffe zu verhindern. Die Aktualisierung eines Kontos erfordert eine globale Änderung des Zustandsbaums. Bitcoin erzeugt dagegen neue Outputs, statt Salden direkt zu bearbeiten. Dadurch tragen Coins ihre Historie mit sich und verknüpfen frühere Transaktionen mit aktuellen Beständen.
  5. Diese historische Verknüpfung hat erhebliche Folgen für Privatsphäre und Fungibilität. Da jeder Input auf einen früheren Output verweist, können Analysten den Geldfluss über Ketten von UTXOs nachverfolgen. Zwar gibt es Mixing-Dienste und andere Techniken, doch die grundlegende Struktur macht es schwierig, die Verbindung zwischen der Herkunft eines Coins und seinem aktuellen Besitzer vollständig zu kappen. Diese Transparenz wird in Debatten darüber, ob Bitcoins wirklich fungibel sind, häufig angeführt, da manche Marktteilnehmer „saubere“ Coins mit weniger nachverfolgbarer Historie bevorzugen könnten.
  6. Um dies in der Praxis zu sehen, öffnen Sie die Coin-Control-Ansicht (oder „UTXO“-Ansicht) einer Wallet, die mehrere Zahlungen erhalten hat: Dort wird jeder Output einzeln aufgeführt, mit eigenem Wert und eigener Transaktions-ID. Auf einem Block-Explorer zeigt die Seite einer Adresse dasselbe als Liste empfangener Outputs, von denen einige ausgegeben sind und andere nicht. Diese Liste einzelner Outputs ist die tatsächliche On-Chain-Darstellung des Eigentums; der in der Oberfläche angezeigte „Saldo“ ist lediglich eine clientseitige Berechnung, die aus dieser Menge abgeleitet wird.

Kernfakten

  • Bitcoin speichert keine Konten oder Salden on-chain; Eigentum besteht ausschließlich aus Unspent Transaction Outputs (UTXOs).
  • Jeder UTXO enthält einen Betrag in Satoshis und ein Locking-Skript, das die Bedingungen festlegt, unter denen er ausgegeben werden kann.
  • Eine Transaktion verbraucht ganze UTXOs als Inputs und erzeugt neue UTXOs als Outputs; die ausgegebenen Outputs verlassen das UTXO-Set.
  • Jeder Full Node führt den „Chainstate“, also die vollständige Menge aller derzeit nicht ausgegebenen Outputs, die zur Validierung verwendet wird.
  • Der in der Wallet angezeigte Saldo ist eine lokale Berechnung, die die Werte der von ihren privaten Schlüsseln kontrollierten UTXOs addiert, und kein in der Blockchain gespeicherter Wert.
  • Anders als das Kontomodell von Ethereum mit Nonces und veränderlichen Salden behandelt das UTXO-Modell von Bitcoin Coins als diskrete Einheiten, die ihre Historie mit sich tragen und ersetzt statt aktualisiert werden.

Übung neun, sechs, drei, eins

9SammelnNennen Sie 9 verschiedene digitale Assets oder Währungen. Geben Sie jeweils an, ob sie ein kontobasiertes Saldensystem (wie Ethereum) oder ein UTXO-basiertes Output-System (wie Bitcoin) verwenden.
6GruppierenGruppieren Sie die 9 danach, wie sie den Zustand verwalten, in 6 Kategorien: veränderliche Salden, unveränderliche Outputs, hybride Modelle, zentralisierte Hauptbücher oder Sonstiges.
3VerdichtenReduzieren Sie die 6 Gruppen auf 3 grundlegende Gründe, warum ein Protokoll für die Struktur seines Hauptbuchs UTXOs statt Konten wählen könnte.
1KristallisierenSchreiben Sie 1 Satz, der erklärt, wie das Fehlen gespeicherter Salden die Art verändert, wie Double Spending bei Bitcoin im Vergleich zum traditionellen Bankwesen verhindert wird.

Faktcheck

Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.

In der interaktiven Akademie öffnen →

EN PT ES ZH JA KO RU FR MS