Blockchain im Detail Was ist überhaupt ein Block?
Anbieter zum Thema
Blockchains sind selbst für viele IT-Experten noch recht abstrakt: Eine Kette von Blöcken mit nicht manipulierbaren Daten. Aber was genau steckt in den Blöcken? Wie sind sie aufgebaut? Dieser Beitrag geht über die reine Management-Sicht auf Blockchain-Technologien hinaus.

Will man sich Blockchains mal nicht von der theoretischen oder der Management-Sicht nähern, stellen sich Fragen wie: Wie funktioniert das Mining? Wie sieht die Toolchain für Entwickler aus? Was genau steckt in den Blöcken?
Letztlich sind Blockchains schlicht und ergreifend verteilte Datenbanken; und wie bei jeder traditionellen Datenbank hilft ein Blick in die Struktur oder in einen Beispieldatensatz, um Daten, Möglichkeiten und das Gesamtkonstrukt zu verstehen.
Block-Übersicht
Möchte man sich mit Blockchain-Details beschäftigen, ist der erste Anlaufpunkt einer der vielen Blockchain-Explorer wie beispielsweise Blockchain.info. Dort finden sich in der Regel allerlei Statistiken über Blöcke, Transaktionen und Handelsvolumen aber eben auch die einzelnen Blöcke und Transaktionen im Volltext.
Im Grunde sind Blöcke auch gar nicht sonderlich kompliziert. Es gibt einen Bereich mit Metadaten, den Header, sowie einen Bereich für die Payload, also die einzelnen Transaktionen, die in einem Block zusammengefasst werden. Die durchschnittliche Anzahl an Transaktionen wankt stark, im Laufe des letzten Jahres zwischen rund 1.300 und 2.100 Überweisungen pro Block. Es gibt aber auch Ausreißer nach unten, Block 482190 vom 27. August 2017 beinhaltet zum Beispiel nur 723 Einträge.
Block-Header
Der Kopf eines Blocks enthält ein gutes Dutzend Felder, die nur zum Teil selbsterklärend sind. Zum einen gibt es hier reine „Info“-Daten, zum anderen die Hashes. Zu den Block-Informationen gehören Daten wie Erstellungsdatum, Größe oder Anzahl der Transaktionen. Die Hashes sorgen für die Integrität der Datenbank.
Bei Blockchain.info sieht man bei den Hashes vier Einträge: Den Hash des aktuellen, des vorherigen und des nächsten Blocks. Da der Hash des aktuellen Blocks die Daten aus dem vorherigen Block verarbeitet hat, ist die Integrität der Blockchain gesichert – man könnte keinen Block-Hash ändern, ohne auch den Block davor und natürlich nachfolgende Blöcke zu verändern.
Was sofort ins Auge fällt, ist die Beschaffenheit der Hashes, da sie allesamt mit „00000000000000000“ anfangen. Das ist das Resultat des Proof-of-Work-Consensus-Algorithmus, also des kryptografischen Rätsels, das gelöst werden muss, um einen neuen Block zu erstellen. Die Vorgabe ist es, einen Hash zu einem Block zu finden, der eben mit dieser Reihe an Nullen anfängt. Das funktioniert über die sogenannte Nonce – dazu aber später mehr.
:quality(80)/p7i.vogel.de/wcms/61/d3/61d343afd193fe2e3248ade04d4928f0/64268801.jpeg)
Konsens in der Blockchain
Consensus-Modelle in der Übersicht
Neben den Hashes wird auch noch ein „Merkle Root“ angegeben. Über diese Hash-Baum-Wurzel werden die in dem Block vorhandenen Transaktionen samt korrekter Reihenfolge kryptografisch abgesichert. Es können also nicht nur Blöcke selbst nicht verändert werden, auch die Transaktionen innerhalb der Blöcke sind sicher.
Infos im Header
Im Header stehen allerlei Metadaten, die für die Analyse und das Verständnis relevant sind. Besonders wichtig aus Management-Sicht sind die Anzahl der Transaktionen, das Transfervolumen, die Transaktionsgebühren und der so genannte Block Reward. Als Beispiel soll wieder der Block 482190 herhalten; das Datum 482910 findet sich übrigens im Feld „Height“ und ist quasi eine Nummerierung der Blöcke.
Um ein Gefühl für Werte zu bekommen, hier die Daten von Block 482190: Er beinhaltet 723 Transaktionen und Transaktionsgebühren in Höhe von 0.43670542 BTC beziehungsweise 1,887.89 US-Dollar. Dazu kommen zwei Werte zum Volumen: „Ausgang insgesamt“ und „Geschätztes Transfervolumen“. Der niedrigere Wert ist das geschätzte Transfervolumen, der sich den tatsächlich auf andere Konten transferierten Bitcoins nähert.
Der „Ausgang insgesamt“ (Total Output) stellt die Summe aller Transaktionen dar. Viele dieser Transaktionen sind allerdings „Verwaltungs“-Überweisungen, vergleichbar mit dem Wechselgeld an der Kasse: Kauft man ein 1-Euro-Brötchen mit einem 10-Euro-Schein, wäre das Transfervolumen 1 Euro, aber es würden insgesamt 19 Euro über die Theke hin- und hergereicht. In diesem einfachen Beispiel ist die Summe klar, bei den komplexen Bitcoin-Transaktionen lässt sich der finale Wert jedoch nicht genau bestimmen, weshalb von „geschätzt“ die Rede ist.
:quality(80)/images.vogel.de/vogelonline/bdb/1256500/1256526/original.jpg)
Sichere Transaktionen
Blockchain – eine Einführung in die Konzepte
Bei Block 482190 liegt das geschätzte Transfervolumen bei ~543.80 BTC beziehungsweise 2.350.870 US-Dollar, bei einem Total Output von ~2.919,09 BTC, umgerechnet 12.619.359 US-Dollar. Selbst bei einem solch eher kleinen Block geht es also um ansehnliche Summen, der vorige Block kommt auf bereits auf ein Output Total von 67.747.408 US-Dollar.
Und noch ein Bitcoin-Wert findet sich im Header, nämlich der Block Reward, also die Belohnung, die der Miner für die Erstellung des Blocks, also letztlich das Finden des Hashes mit den anführenden Nullen bekommt. Für den Beispiel-Block gab es 12,5 BTC, was derzeit 54.038 US-Dollar entspricht. 12 BTC ist die Standardbelohnung für Blöcke – derzeit. Alle 210.000 Blöcke halbiert sich die Belohnung. Ab dem 18. Juni 2020 werden es nur noch 6 BTC pro Block sein. Wer es genau wissen will, findet unter Bitcoinblockhalf.com einen Counter samt weiterer Statistiken.
Für das Verständnis sollte man sich noch zwei Werte anschauen: Schwierigkeit und Nonce. Die Schwierigkeit (des kryptografischen Rätsels) ist ein Wert, der sicherstellt, dass Blöcke alle 10 Minuten entstehen. Zudem wird bei konkurrierenden Blöcken derjenige mit der höheren Schwierigkeit bevorzugt.
Zum gleichen Thema gehört die Nonce: Natürlich hat ein Block standardmäßig einen bestimmten Hash, der in aller Regel nicht mit einem Haufen Nullen anfängt. Um einen Hash mit anführenden Nullen zu erreichen, wird dem zu hashenden Block ein zusätzliches Datum angehängt – so lange, bis der Hash eben doch 00000000000000000XYZ lautet. Bei Block 482190 lautet die Nonce 2648550962.
Die sonstigen Werte im Header sind im Grunde nicht sonderlich spannend: Zeitstempel, Empfangszeit, Bits, Größe und Version des Block-Headers sind selbsterklärend und auch nicht weiter interessant.
Die Transaktionen
Hinter dem Header warten die eigentlich interessanten Daten – und hier geht es weitgehend trivial zu. Transaktionen bestehen aus einem oder mehreren sendenden und empfangenden Konten, dargestellt als Hashes, also der IDs der Nutzer beziehungsweise Wallets. In Blockchain-Explorern sind alle diese Konten und Transaktionen anklickbare Links, so dass sich direkt im Browser nachvollziehen lässt, wer wem wann was überwiesen hat.
Auffällig ist die jeweils erste Transaktion jedes Blocks. Hier steht in der Regel eine Meldung wie zum Beispiel „Keine Eingänge (neu generierte Münzen)“. Diese so genannte Coinbase-Transaktion ist die Überweisung des Block Rewards für den Miner – es werden also keine vorhandenen Coins überwiesen, sondern neue Coins generiert.
Intern verfügen auch Transaktionen über allerlei Datenfelder wie Größe, Datum, Blocknummer oder Anzahl der Ein- und Ausgangskonten sowie Hashes von sich selbst und der vorangegangen beziehungsweise folgenden Transaktion.
Mit dieser Grundstruktur von Blöcken einer Blockchain wird eines klar: Auch die derzeit so gehypten Blockchains kochen nur mit Wasser – wer versteht, wie herkömmliche Datenbanken funktionieren, versteht auch die Arbeitsweise von Blockchain-Datenbanken.
:quality(80)/p7i.vogel.de/wcms/63/ea/63eafa75b34b80db327565c34cd6227a/64270534.jpeg)
Toolchain für Ethereum
IDEs und Tools für Dapps und Smart Contracts
(ID:44861084)