Blockchain ist eine Zustandsmaschine
Im Kern ist eine Blockchain eine replizierte deterministische Zustandsmaschine, wobei sich „Zustand“ auf die Daten bezieht, über die ein Knoten verfügen muss, um eingehende neue Blöcke und Transaktionen zu verarbeiten. Für diejenigen, die es nicht wissen: Eine Zustandsmaschine ist ein Informatikkonzept, das sich auf eine abstrakte Maschine bezieht, die Übergänge zwischen gültigen Zuständen verwaltet und sich zu jedem Zeitpunkt in genau einem von mehreren Zuständen befinden kann. In einer Blockchain gibt es „Zustände“, die den aktuellen Zustand des Ledgers beschreiben, und Transaktionen, die Zustandsübergänge auslösen.
Eines der wichtigsten Konzepte, das es gleich zu Beginn zu erklären gilt, ist der Unterschied zwischen Staat und Geschichte. Das heißt, der Status bezieht sich einfach auf die aktuell verwendeten Daten oder auf das Endergebnis, nachdem ein Knoten alle Blöcke und Transaktionen vom ersten (Genesis-)Block bis zum neuesten Block verarbeitet hat. Eine Blockchain ist einfach deshalb „unveränderlich“, weil ihr Verlauf oder die in den geschürften Blöcken gespeicherten Daten nicht geändert werden können. Der Status kann daher mit dem Verlauf verglichen werden, der Informationen über vergangene Ereignisse darstellt, die von Knoten zum Zweck der späteren Weiterleitung oder Archivierung gespeichert werden können, aber keine Validierung von Blöcken und Transaktionen oder eine Fortsetzung der Kettenverarbeitung erfordern.
Staatsverwaltung in Bitcoin
Daher verwalten verschiedene Blockchains Status und Verlauf auf unterschiedliche Weise. Bei Bitcoin bezieht sich der Status beispielsweise auf den gesamten nicht ausgegebenen Transaktionsdurchsatz (UTXO), wobei jeder UTXO eine bestimmte Anzahl von Bitcoins darstellt, die einem bestimmten Eigentümer oder einer bestimmten öffentlichen Adresse zugewiesen sind. Andererseits besteht die Geschichte aus einer Reihe von Transaktionen mit Ein- und Ausgängen. Wenn eine Transaktion gesendet wird, wird das von der Transaktionseingabe referenzierte UTXO als ausgegeben markiert, aus der UTXO-Sammlung entfernt und ein neues UTXO (aus der Transaktionsausgabe) zur Sammlung hinzugefügt.