MSTR Cat

Blockchain/Niveau II · Mechanik/2.3 Blöcke und die Blockchain/Lektion 3

Eine Kette von Hashes

Die unzerbrechliche Verbindung und der Preis, die Geschichte umzuschreiben

MaterialienEin Block-Explorer mit detaillierten Header-InformationenEin Taschenrechner oder ein Skript zur Überprüfung von SHA-256-HashesEin Notizbuch zum Aufzeichnen von Hash-Werten

Neugier

  1. Wie widersteht eine Abfolge digitaler Aufzeichnungen Manipulationen wirksamer als ein physisches Kassenbuch?
  2. Warum macht das Hinzufügen eines einzigen neuen Blocks jede vorherige Transaktion schwieriger zu ändern?
  3. Wie hoch ist der Rechenaufwand für einen Angreifer, der versucht, einen früheren Eintrag zu ändern?

Erkunden

  1. Im Jahr 1991 veröffentlichten Stuart Haber und W. Scott Stornetta den Artikel „How to Time-Stamp a Digital Document“. Darin schlugen sie vor, Dokumente in einer Kette miteinander zu verbinden, wobei jede neue Aufzeichnung den kryptografischen Hash der vorherigen enthielt. Diese Struktur schuf eine unveränderliche Historie: Jede Änderung an einem früheren Dokument würde dessen Hash verändern und somit die Verbindung zu allen nachfolgenden Aufzeichnungen unterbrechen. Satoshi Nakamoto zitierte diesen Artikel aus dem Jahr 1991 in dem Bitcoin-Whitepaper als grundlegende Inspirationsquelle für die strukturelle Integrität der Blockchain.
  2. Jeder Bitcoin-Block-Header enthält ein 32-Byte-Feld namens „previous block hash“. Dieser Wert ist der doppelte SHA-256-Hash des gesamten vorherigen Block-Headers. Ein Miner trägt diesen Hash in den neuen Header ein, bevor das Mining beginnt, denn er gehört zu den Daten, die gehasht werden. Das Ergebnis ist eine Kette, in der jeder Block kryptografisch an seinen Vorgänger gebunden ist. Ohne diese Verbindung wären Blöcke unabhängige Inseln; mit ihr bilden sie eine durchgehende Abfolge, die im Genesis-Block vom 3. Januar 2009 verankert ist.
  3. Die Merkle-Root im Header bindet alle Transaktionen dieses Blocks an den Hash. Ändert ein Angreifer auch nur eine Transaktion in einem historischen Block, ändert sich die Merkle-Root. Folglich ändert sich auch der Hash des Blocks selbst. Da der nächste Block den alten Hash dieses geänderten Blocks als seinen „previous block hash“ speichert, bricht die Verbindung. Die Kette ist ab diesem Punkt ungültig. Um sie zu reparieren, muss der Angreifer den Proof of Work für genau diesen Block erneut minen.
  4. Einen Block erneut zu minen reicht nicht aus, denn alle nachfolgenden Blöcke enthalten ebenfalls Hashes, die nicht mehr übereinstimmen. Der Angreifer muss den Proof of Work für jeden Block nach dem geänderten erneut erbringen, um eine gültige Kette zu erzeugen. Dafür ist enorme Rechenleistung erforderlich. Während das ehrliche Netzwerk weiter neue Blöcke hinzufügt, liefert sich der Angreifer ein Wettrennen mit ihm. Übersteigt die Hashrate des Angreifers die des restlichen Netzwerks zusammen, kann er die Kette überholen und die Historie ersetzen.
  5. Nodes folgen nicht der längsten Kette nach Blockanzahl, sondern der Kette mit dem größten kumulierten Proof of Work, der sogenannten „Chainwork“. Diese Kennzahl berücksichtigt die Schwierigkeitsanpassungen, durch die spätere Blöcke schwerer zu minen sind. Einem Zweig mit mehr Blöcken, aber weniger Gesamtarbeit wird nicht gefolgt, auch wenn seine Blöcke gültig sein mögen. Je tiefer eine Transaktion in der Kette vergraben ist, desto mehr Arbeit muss ein Angreifer nachbilden, um sie zu verschieben. Jede Bestätigung erhöht den Rechenaufwand, der nötig ist, um die Historie umzukehren.
  6. Öffnen Sie einen beliebigen Block-Explorer und wählen Sie einen aktuellen Block aus. Notieren Sie den Wert im Feld „Previous Hash“. Klicken Sie auf diesen Hash, um zum Vorgängerblock zu gelangen. Überprüfen Sie, ob der Header-Hash des Vorgängerblocks mit dem Wert übereinstimmt, der im Nachfolgerblock gespeichert ist. Wiederholen Sie diesen Vorgang dreimal und verfolgen Sie die Kette so über die Verbindungen zurück. Diese manuelle Überprüfung bestätigt, dass jeder Block kryptografisch an seinen Vorgänger gebunden ist und so eine ununterbrochene Abfolge durch Arbeit validierter Aufzeichnungen entsteht, die bis zum Genesis-Block zurückreicht.

Kernfakten

  • Das 1991 von Stuart Haber und W. Scott Stornetta entwickelte Verfahren der verketteten Zeitstempelung wird im Bitcoin-Whitepaper zitiert.
  • Jeder Block-Header enthält einen 32-Byte-Hash des Headers des vorherigen Blocks, wodurch sie sequenziell miteinander verbunden sind.
  • Die Änderung einer früheren Transaktion verändert die Merkle-Root und den Hash ihres Blocks und unterbricht alle darauffolgenden Verbindungen.
  • Nodes folgen der Kette mit dem größten kumulierten Proof of Work („Chainwork“), nicht einfach der mit der höchsten Anzahl an Blöcken.
  • Ein Angreifer muss den Proof of Work für jeden Block nach dem geänderten erneut erbringen, um das ehrliche Netzwerk zu überholen.
  • Der Genesis-Block, gemint am 3. Januar 2009, dient als unveränderlicher Anker der Kette.

Übung neun, sechs, drei, eins

9SammelnNennen Sie 9 verschiedene Arten digitaler Ledger oder Systeme zur Aufzeichnung von Daten. Notieren Sie, wie jedes System eine Manipulation historischer Einträge verhindert.
6GruppierenGruppieren Sie die 9 nach ihrem Mechanismus der Unveränderlichkeit in 6 Kategorien: kryptografische Verknüpfung, Konsensabstimmung, Prüfung durch eine zentrale Autorität, physische Redundanz, rechtlicher Vertrag oder sonstiges.
3VerdichtenReduzieren Sie die 6 Gruppen auf 3 grundlegende Gründe, warum die meisten Systeme ohne einen vertrauenswürdigen Dritten keine manipulationssichere Historie liefern können.
1KristallisierenErklären Sie in einem Satz, wie Proof of Work eine verkettete Liste von Hashes in eine wirtschaftlich abgesicherte Eigentumskette verwandelt.

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