Wie wird verkettet? – Wie funktioniert eine Blockchain?

Vor einigen Tagen haben wir bereits im Blogartikel “Eine Verkettung glücklicher Umstände” über die Grundlagen der Blockchain und ihrer Entstehungsgeschichte berichtet. Im heutigen Beitrag wollen wir aufzeigen, wie die Blockchain im Detail aufgebaut ist, und welche Vorteile sie gegenüber einer klassischen Datenhaltung aufweist.

Warum eine Kette?

In einer physischen Kette greifen die Kettenglieder ineinander und ergeben so ein festes, stabiles Konstrukt. Doch wie können Daten auf ähnliche Weise verknüpft werden? Die Antwort geben so genannte “Hashwertfunktionen”. Durch Hashwertfunktionen können große Eingabewerte (wie Datensätze) in einem kleinen Zielwert (den Hashwert) verschlüsselt und gespeichert werden. Hashwerte sind kollisionsresistent. Das bedeutet, dass es praktisch keine zwei Eingabewerte gibt, welche den selben Zielwert erzeugen. Dadurch sind Hashwerte sehr leicht überprüfbar. Sind die zur Verschlüsselung verwendeten Parameter bekannt, kann mit sehr geringem Aufwand festgestellt werden ob der zu überprüfende Hashwert korrekt ist. Diese Eindeutigkeit wird innerhalb der Blockchain genutzt, um eine manipulationssichere Verkettung zu erreichen.

Innerhalb eines Blockes der Blockchain werden zunächst Daten mittels der Hashwertfunktion verschlüsselt. Darüber hinaus verfügt jeder so entstehende Block über eine Bezeichnung, dem Header. in diesen Header fließt auch der Hashwert der im Block befindlichen Daten mit ein. Dieser Header identifiziert jeden einzelnen Block innerhalb der Kette. Die eigentliche Verkettung entsteht dadurch, dass jeder Block den Header des vorhergehenden Blockes mittels einer Hashwertfunktion verschlüsselt und speichert. Diese beiden Blöcke sind somit manipulationssicher miteinander verknüpft, da die Veränderung eines Blockes auch Einfluss auf seinen Header hat und der im nachfolgenden Block gespeicherte Hashwert nicht mit diesem übereinstimmt.

Wie entsteht ein Block?

Das Erweitern einer Blockchain kann grob in vier Prozessschritte unterteilt werden:

  • Transaktionsdefinition

  • Transaktionsverifikation

  • Blockvalidierung

  • Blockchain Update

Ein Netzwerkteilnehmer definiert zunächst einen Datensatz oder eine Transaktion, welche in der Blockchain hinterlegt werden soll. Diese Definition wird dem Netzwerk mitgeteilt und auf Korrektheit überprüft. Innerhalb des Beispiels der Kryptowährungen würde hier beispielsweise überprüft werden, ob die für die definierte Transaktion benötigten Währungseinheiten dem Netzwerkteilnehmer zur Verfügung stehen. Mehrerer solcher überprüften Transaktionen werden anschließend in einem Block zusammengefasst und mittels Hashwertfunktion verschlüsselt. Innerhalb des Schrittes der Blockvalidierung findet die eigentliche Verkettung statt. Hier wird, wie weiter oben beschrieben, der erzeugte Datenblock mittels Hashwertfunktion mit seinem Vorgänger verknüpft. Der Neu erzeugte Block wurde so in die Blockchain eingefügt und die aktuelle Version der Blockchain wird an alle Netzwerkteilnehmer übermittelt (Blockchain Update).

Nur eine Block-Kette?

Grundsätzlich muss verstanden werden, dass es nicht die eine Blockchain gibt. Der Begriff Blockchain bezeichnet lediglich das System einer Datenhaltung mittels verschlüsselter Verkettung. Beispiele wie der Bitcoin oder Ethereum sind daher jeweils nur eine Ausprägung der Blockchain. Da bei den genannten Beispielen von Bitcoin und Ethereum prinzipiell jeder auf die verwendete Blockchain zugreifen kann und sich somit potentiell undendlich viele Personen beteiligen können, handelt es sich bei diesen Ausprägungen um sogenannte öffentliche Blockchains. Neben dieser Art der Block-Kette existieren allerdings auch andere Arten wie beispielsweise die private Bloockchain, oder die Konsortium-Blockchain. Die private Blockchain umfasst dabei nur wenige, ausgewählte Netzwerkteilnehmer, welche auf die Blockchain zugreifen und sich an der Transaktionsverifikation und Blockvalidierung beteiligen können. Die Konsortium-Blockchain bezeichnet eine weitere, spezielle Ausprägung in welcher die Blockchain nur innerhalb eines Unternehmens und nur durch Netzwerkteilnehmer innerhalb des Unternehmens verwendet wird.

Datenflut eindämmen

Neben verschiedenen Ausprägungen von Blockchains bezüglich des Zugangs, stehen auch hinsichtlich der Validierung neuer Blocke verschiedene Möglichkeiten zur Auswahl. Zwar werden aufeinanderfolgende Blöcke grundsätzlich, wie oben beschrieben, mittels Hashwertfunktion verknüpft, allerdings muss zudem das “Überfluten” oder “Spammen” einer Blockchain mit unwichtigen Daten verhindert werden. Dazu wird beispielsweise das Verfahren des “Proof-of-Work” verwendet. Dafür muss für die Verkettung zweier Blöcke zunächst ein rechenintensives, mathematisches problem gelöset werden. Dieser Prozess wird auch als Mining bezeichnet. Da das Mining Rechenleistung benötigt und damit im Grunde Strom verbraucht, muss den Netzwerkteilnehmern innerhalb von öffentlichen Blockchains ein wirtschaftlicher Anreiz für die Ausführung dieser Validierung in Aussicht gestellt werden. Dieser Anreiz entsteht durch die Kryptowährungen wie Bitcoin, welche an beteiligte Netzwerkteilnehmer “ausbezahlt” werden und diese so für die Validierung entlohnen.
Neben diesen Verfahren stehen noch zahlreiche andere, wie beispielsweise das “Proof-of-Stake”-Verfahren zur Verfügung. In diesem Fall wird die Validierung von Netzwerkteilnehmern durchgeführt, welche einen möglichst großen Anteil an den Werten in der Blockchain haben. Der Anreiz für die Validierung ensteht in diesem fall dadurch, dass diese Teilnehmer an einer korrekten Aufrechterhaltung des Systems interessiert sind.

Über den Autor: Mark Straßburg

Mark Straßburg ist wissenschaftlicher Mitarbeiter an der Professur E-Commerce / E-Business der Ernst-Abbe-Hochschule Jena. Darüber hinaus betreut er die DBCP Community-Website als Community-Administrator und -Manager.

Bitte einloggen um diesen Beitrag zu kommentieren.