Was ist eine Blockchain?

By |2018-04-14T05:06:06+00:001. März 2018|

Sie wird als Innovation des Jahrzehnts gehandelt. Immer mehr Menschen sprechen über die Blockchain-Technologie. Aber was ist eigentlich eine Blockchain? Auch ohne tiefe Programmierkenntnisse lässt sich diese Frage auf verständliche Art und Weise beantworten.

Die meisten Menschen verfügen über verschiedene Besitztümer. Dies können neben klassischen Währungen wie Euro oder Dollar auch physische Dinge wie Autos oder Grundstücke sein. Dieser Besitz wird üblicherweise unter den Menschen getauscht und gehandelt. Für jedes der genannten Beispiele gibt es eine zentrale Instanz, welche ein Register über die Besitztümer führt. Was beim Geld die Banken machen, erledigen bei Grundstücken die Katasterämter und bei Autos die Zulassungsstellen. In Industriestaaten ist das Vertrauen in zentrale Organisationen wie Banken oder Katasterämter global betrachtet verhältnismäßig hoch, jedoch schwindet es nach diversen Bankenkrisen auch hier. In vielen anderen Regionen der Welt haben die Menschen mit korrupten Systemen zu kämpfen und deshalb ein geringes Vertrauen in zentrale Instanzen.

An dieser Stelle kommt die Blockchain ins Spiel. Sie ermöglicht die sichere Verwaltung der Besitztümer ohne zentrale Organisation. Möchte man eine Vermögensverteilung digital abbilden, so ist die wesentliche Idee, nicht den Vermögenswert selbst (z. B. einen Coin) als digitale Datei abzuspeichern, denn diese könnte dann nach Belieben kopiert werden. Stattdessen wird die Information, wer wie viel Vermögen besitzt, digital hinterlegt und hier ist es dann durchaus im Interesse des Systems, dass diese Information kopiert und geteilt wird. Genau aus diesen Informationen baut sich die Blockchain als Informationskette auf.

Blockchain vs. Datenbank

Der wesentliche Unterschied zu einer Datenbank besteht darin, dass die Informationen in einer Blockchain dezentral abgelegt werden. Jeder Teilnehmer hat somit die Möglichkeit, sich die gesamte Blockchain und damit die gesamte Transaktionshistorie herunterzuladen. Um trotz dieser üblichen Transparenz eine gewisse Privatsphäre sicherzustellen, interagieren die Teilnehmer über Pseudonyme. Jedes Pseudonym kann Transaktionen, empfangen und senden. Das heißt, dass jemand der etwas von seinem Guthaben versenden möchte, dies nur mit seinem eigenen privaten Schlüssel tun kann. Andere Netzwerkteilnehmer können wiederum mit dem passenden Gegenstück, dem öffentlichen Schlüssel, die Authentizität der Transaktion überprüfen.

Warum besteht aber nun eine Blockchain, also eine Blockkette, aus einzelnen Blöcken und wie sind diese verkettet? Für ein funktionierendes Register, Kassenbuch oder wie auch immer man diesen Informationsspeicher nennen möchte, ist es essentiell, dass jeder Teilnehmer über die gleichen Informationen verfügt. Wird eine neue Transaktion ausgeführt muss die Information über die Verschiebung der Vermögenswerte also an alle Netzwerkteilnehmer weitergegeben werden. Eine mögliche Lösung wäre, die Information von Knoten zu Knoten weiterzugeben, bis alle Knoten darüber Informiert sind. Angenommen, jeder Netzwerkteilnehmer könnte ohne Einschränkung alle Transaktionen aufnehmen und einfach der Reihe nach abspeichern: In einem solchen Szenario könnte ein potentieller Angreifer eine sogenannte Double-Spending-Attacke durchführen. Damit ist gemeint, dass er quasi zeitgleich ein und denselben Vermögenswert an zwei verschiedene Adressaten schickt. Die beiden Transaktionen könnten sich nun parallel im Netzwerk verbreiten und je nachdem, wo man sich im Netzwerk befindet, hat man von der einen oder der anderen der beiden widersprüchlichen Transaktionen zuerst gehört. Man spricht von fehlendem Konsens und in Folge dieser mangelnden Einigkeit würde ein solches System keinen Bestand haben.

Double Spending Attack - schematisch Darstellung

Double-Spending-Attacke: Der schwarze Angreifer gibt zeitgleich seinen einzigen Coin an 2 verschiedene Personen.

Wie findet man eine Einigung?

Um Konsens zu finden, werden die Transaktionen zunächst in einer Art Wartebereich gesammelt, dem sogenannten Mempool. Die einzelnen Netzwerkteilnehmer, sogenannte Knoten, können nun die Transaktionen aus dem Mempool auf Widersprüche überprüfen und dann in einem widerspruchsfreien Block zusammenfassen. Dieser neue Block wird dann an alle anderen Knoten geschickt und an die verteilten Kopien der Blockchain angehängt. Natürlich stellt sich nun die Frage, wer in der nächsten Runde als „Verteiler“ fungiert und den nächsten Block rumschickt. Da der Vorteil der Blockchain die Dezentralität ist, also das Fehlen einer zentralen, potentiell fehlbaren Instanz, versteht es sich von selbst, dass diese Person, welche den Block verteilt, nicht immer dieselbe sein kann. Ein zunächst naheliegender Lösungsansatz wäre es, per Zufallsgenerator immer einen neuen zuständigen Knoten auszuwählen. In einem solchen Szenario, wäre es allerdings möglich, dass eine Partei viele Knoten besitzt und damit die Chancen bei der zufälligen Verteilung erhöht, da die Bereitstellung eines Knotens mit praktisch sehr geringen Kosten verbunden ist. Bekämen die Knoten einer Partei die absolute Mehrheit im Netzwerk, so könnten sie das System manipulieren, was als 51%-Attacke bezeichnet wird. Um eine solche Vermehrung der Knoten einer einzelnen Instanz zu unterbinden, muss jeder Knoten, der einen Block verteilen möchte, vorher einen Nachweis erbringen. Dies ist im Fall von Bitcoin ein sogenannter Proof-of-Work, also ein Arbeitsnachweis. Es wird allerdings auch an alternativen Konsensverfahren gearbeitet, wie etwa Proof-of-Stake oder Proof-of-Importance, bzw. an Mischformen hieraus.

Der Proof-of-Work ist letztendlich ein Arbeitsnachweis, bei dem eine Rechenleistung erbracht werden muss, welche als Mining (analog zum Gold schürfen) bezeichnet wird. Hierbei generiert der Miner aus allen Informationen im Block einen sogenannten Hashwert (eine nicht rückrechenbare Prüfsumme). Die Informationen im Block bestehen dabei größtenteils aus Transaktionsinformationen und Metadaten. Dazu kommt noch eine sogenannte Nonce, eine Zahl, die der Miner frei wählen kann. Entspricht der generierte Hashwert nicht den Vorgaben des Systems, ändert der Miner die Nonce und probiert es erneut, bis er einen Hashwert generiert, der den Vorgaben entspricht. Man spricht dann von einem gültigen Blockkandidaten.

Da in jedem Block darüber hinaus der Hash des vorherigen Blocks verankert ist, kann mit der Suche einer passenden Nonce erst begonnen werden, wenn der Hash des vorherigen Blocks feststeht. Damit haben alle Miner den gleichen Startzeitpunkt für die Suche einer neuen passenden Nonce.

Jeder Block enthält den Hashwert seines Vorgängers

An dieser Stelle wird nun auch deutlich, weshalb man von einer Verkettung der Blöcke spricht. Durch den Rückbezug in einem Block auf den Hash des vorherigen Blocks, kann kein Block einfach ausgetauscht werden, weil sich bei einer Manipulation der Hash ändert und damit der Rückbezug der anderen Blöcke ungültig wäre.

Im Gegenzug für die Rechenleistung und die Unterstützung des Systems bekommt der Miner, welcher als erster eine passende Nonce findet und damit den nächsten Block verteilen kann, eine Prämie ausgeschüttet, die als Block Reward bezeichnet wird. Diese Prämie stellt eine Art Aufwandsentschädigung dar, welche die anfallenden Strom- und Hardwarekosten decken soll, und darüber hinaus denen Minern einen gewissen finanziellen Anreiz bietet. Zum anderen ist diese eine valide Möglichkeit, ein vorher nicht vorhandenes Tauschmittel, wie Bitcoin dezentral in den Umlauf zu bringen. Neben dem Block Reward als Prämie fallen auch alle Transaktionsgebühren aus dem Block an den Miner.

Zusammenfassend lässt sich eine Blockchain also als ein dezentrales Verzeichnis von Transaktionen beschreiben. Die Unterteilung in einzelne Blöcke ist dabei essentiell, um einen Konsens zwischen allen Netzwerkteilnehmern zu ermöglichen. Im Gegensatz zu einer Datenbank gibt es keine zentrale Instanz, welche Opfer eines Angriffs oder einer Bestechung werden kann.