Die Blockchain ist die Technologie hinter der Kryptowährung Bitcoin. Sie hat das Potenzial, das Internet und alle seine Prozesse grundlegend zu beeinflussen – aber als Stammgast von Blockruption’s Blockchain Bar weißt du das natürlich.

Wenn du noch mehr über die Blockchain und die damit verbundenen digitalen Technologien, ihre Anwendungen und ihre Auswirkungen auf Wirtschaft und Gesellschaft erfahren möchtest, wirf doch einen Blick auf Blockruption.

Listen vergleichen und Fehler erkennen

Folge 7
Fingerabdrücke

Wenn unsere Freunde von der Blockchain Bar einen Fehler vermuten, müssen sie alle Einträge auf der letzten Seite mit allen Gästen einzeln vergleichen. Das ist sehr umständlich.

Bob ist genervt: „Es dauert zu lange, jeden Posten auf der Seite zu vergleichen. Es muss eine bessere Methode geben.“

Alice hat eine Idee: „Wir berechnen ‚Fingerabdrücke‘ unserer Daten. Jeder addiert die Anzahl der Buchstaben in jedem Namen auf seiner Liste. Sind die Summen identisch, sind wahrscheinlich auch die Daten identisch. Wir müssen nur dann im Detail vergleichen, wenn die Summen verschieden sind.“


Blockchains arbeiten ähnlich: Sie berechnen Fingerabdrücke von Transaktionsblöcken. Diese Fingerabdrücke werden als Hash-Werte bezeichnet. So lassen sich Blöcke leicht vergleichen und Fehler oder unerwünschte Änderungen finden.

Aber was, wenn es verschiedene Fingerabdrücke gibt? Wie einigt man sich auf eine Version? In der nächsten Folge erfährst du mehr …

Oder du liest weiter unten erst einmal mehr zum Thema „Hashing“.

Blockchain verstehen

‚Hash‘-Berechnungen erzeugen ‚Fingerabdrücke‘ von Daten

Jedes Mal, wenn die Liste der neuen Bierbestellungen das Ende einer Seite erreicht, wollen die Gäste der Blockchain Bar sicherstellen, dass jede Kopie der Liste die gleichen Bestellungen enthält. Nur wenn sie übereinstimmen, verteilen sie die auf der letzten Seite bestellten Getränke.

Um sicherzustellen, dass alle Seiten die gleichen Aufträge (Transaktionen) enthalten, könnten sie natürlich jedes einzelne Element auf jeder Kopie der Liste vergleichen. Aber das wäre sehr zeitaufwendig und die Gäste müssten stundenlang auf ihre Getränke warten.

Es ist nicht praktikabel, ständig alle Listen zu vergleichen. Sie müssen einen einfacheren Mechanismus finden, um fehlerhafte Seiten zu erkennen.

Daher definieren sie den folgenden Mechanismus um Fehler zu finden:

Am Ende jeder Listenseite zählen sie in jeder Zeile die Buchstaben im Namen der Person, die das Getränk bestellt hat. Dann addieren sie die resultierenden Zahlen zusammen und notieren die Summe am Seitenende.

Die Seite listet zum Beispiel die folgenden Bestellungen auf: Alice, Bob, Carol, Bob, Dave. Daraus ergibt sich eine Berechnung von 5 + 3 + 5 + 3 + 4 = 20.

Wenn sie alle zum gleichen Ergebnis der Berechnung kommen, haben sie wahrscheinlich die gleichen Bestellungen auf ihren Listen und sie müssen ihre Seiten nicht Zeile für Zeile vergleichen. Aber wenn sie nicht die gleiche Zahl haben, wissen sie sofort, dass etwas nicht stimmt.


Aber wie stellen wir sicher, dass der gesamte Schreibblock alle richtigen Seiten enthält? Die Gäste vereinbaren, das Ergebnis der vorherigen Seite auf jede neue Seite zu kopieren. Am Ende addieren sie es zur Anzahl der Buchstaben in allen Bestellungen auf der aktuellen Seite. Diese Methode verbindet alle Seiten des Schreibblocks durch die steigende Summe der Buchstaben.

Im obigen Beispiel würde die nächste Seite mit 20 aus dem obigen Ergebnis beginnen und diese Zahl würde zur Summe aller Buchstaben am Ende addiert.


Natürlich ist es etwas zu einfach, nur die Anzahl der Buchstaben auf jeder Seite zu zählen. Wenn wir im obigen Beispiel ‚Dave‘ gegen ‚Carl‘ tauschen, würden wir immer noch 20 erhalten, da beide Namen die gleiche Anzahl an Buchstaben haben. Wir könnten uns anspruchsvollere Berechnungsvarianten einfallen lassen. Zum Beispiel könnte man die Anzahl der Buchstaben in jedem Namen zählen und mit der Position des Anfangsbuchstabens des Namens im Alphabet multiplizieren, bevor wir ihn zur Summe addieren: 1 * 5 + 2 * 3 + 3 * 5 + 2 * 3 + 4 * 4 = 48. ‚Carl‘ anstelle von ‚Dave‘ würde zu einem anderen Summanden ‚3*4‘ führen, was eine Summe von 44 ergäbe. Die Gäste sollten sich für diese kompliziertere, aber auch sicherere Variante der Berechnung entscheiden.


Solche Berechnungen sind für den Menschen komplex, besonders nach drei oder vier Bieren. Aber Computer trinken kein Bier. Und rechnen ist das Einzige, worin sie wirklich gut sind. Daher verwenden echte Blockchain-Systeme komplizierte Berechnungen, um sicherzustellen, dass jede ‚Seite‘ im ‚Schreibblock‘ korrekt ist. Und sie verwenden komplexe Berechnungen, um die Seiten innerhalb des Schreibblocks miteinander zu verbinden.

In Blockchain-Systemen werden die Seiten als Blöcke bezeichnet. Und die Blöcke werden mit komplexen Berechnungen miteinander ‚verkettet‘. Der gesamte Schreibblock von verketteten Blöcken wird als ‚Blockchain‘ bezeichnet.


In Bitcoin werden die ‚Verkettungsberechnungen‘ als ‚Hashing‘ (wörtlich ‚zerhacken‘) bezeichnet. Abhängig vom Inhalt und der Reihenfolge der Transaktionen eines Blocks führen die Bitcoin-Miner eine spezielle Berechnung quer über Transaktionen in einem Block durch, die zu einer einfachen Zahl führt. Alle anderen im Netzwerk können diese Nummer überprüfen, wenn sie am Ende eines Blocks hinzugefügt wird.

Hashes in Bitcoin sehen etwa so aus:

(Liebe Nerds, ja, die folgenden Ausführungen sind stark vereinfacht.)

Aus den Daten ‚Bob‘ erzeugt Bitcoins Hash-Berechnung (Algorithmus) den folgenden Fingerabdruck:

cd9fb1e148ccd8442e5aa74904cc73bf6fb54d1d54d333bd596aa9bb4bb4e961

Die Daten ‚Alice‘ werden zu:

3bc51062973c458d5a6f2d8d64a023246354ad7e064b1e4e009ec8a0699a3043

Und „Blockruption’s Blockchain Bar“ ergibt:

3589a92246549674a7e51bcd505f1d3689587b6beb84565e8953a77484254126

Alle drei erzeugten Hash-Werte haben die gleiche Länge. Wir könnten einen beliebig langen Text in den Algorithmus einfügen und er würde immer noch nur 64 Zeichen ausspucken. (Ja, Nerds, das sind 64 Zahlen im Hexadezimalformat.)


Dieser von Bitcoin unter anderem verwendete Hash-Algorithmus hat den nerdigen Namen ‚SHA-256‘. Es erzeugt sehr einzigartige Hash-Werte für die dort eingegebenen Daten. Es ist sehr unwahrscheinlich – praktisch unmöglich –, dass zwei verschiedene Eingaben die gleiche Ausgabe erzeugen. Wenn also zwei Hashes gleich sind, muss auch die ursprüngliche Eingabe gleich gewesen sein.

Man kann das mit vielen frei verfügbaren Hash-Generatoren im Web selbst ausprobieren, zum Beispiel mit diesem hier: https://passwordsgenerator.net/sha256-hash-generator/

Dies ist die komplizierteste aller Folgen dieser Serie. Auch wenn es dir etwas schwer fiel, damit Freude zu haben, bleib‘ bitte bei uns. Versuch‘s bitte mit den nächsten Folgen. Sie sind leichter zu verstehen.