Blockchain Basics

Im Rahmen seines Studiums der Wirtschaftsinformatik, Studienrichtung Software Engineering an der Dualen Hochschule Baden-Württemberg (DHBW) Karlsruhe hat sich Jan Fischer für uns in einem Projekt mit dem Thema Blockchains beschäftigt. Herzlichen Dank noch für diesen Blog-Beitrag und Dein Engagement für REALTECH, Jan!

Bitcoin, Ethereum, Smart Contracts oder Interplanetary File System – alle Welt spricht von und über Blockchains (ohne es manchmal überhaupt zu wissen). Viele sehen Blockchains als Schlüssel-Technologie, die die Welt verändern wird, und suchen bereits fieberhaft nach Möglichkeiten, diese in Produkte umzumünzen. Gleichzeitig mehren sich aktuell die Stimmen derer, die in Blockchains lediglich den nächsten Hype sehen. Doch wie entstand das Blockchains-Konzept überhaupt, wie sieht die eigentliche technische Idee dahinter aus und was zeichnet Blockchains aus?

Von der Blockchain-Idee zu Bitcoin & Co

Das Konzept einer Blockchain erschien erstmals im Jahr 1991 in einer Publikation der Wissenschaftler Haber und Stornetta[1]: Sie schlugen vor, digitale Dokumente mit einem Zeitstempel zu markieren, um eine spätere Verfälschung zu verhindern. Die Idee blieb relativ unbekannt, bis Satoshi Nakamoto (wahre Identität bis heute ungeklärt) 2009 die Grundlagen für die Kryptowährung Bitcoin als Whitepaper[2] publizierte.
Seitdem wurden viele Blockchain-basierte Technologien, u. a. verteilte Rechenplattformen (Ethereum) und verteilte Datenbanken (Interplanetary File System), entwickelt. Die Einsatzgebiete dieser Technologien sind vielfältigster Art: Zahlungsabwicklung, Supply Chain Management, Spendenorganisationen oder z. B. die Verwaltung von Patientenakten. Doch:

Was sind Blockchains überhaupt und wie funktionieren sie?

Eine Blockchain setzt sich aus Blöcken zusammen; jeder Block hat drei Bestandteile: Daten, Hash und PrevHash. Daten bezeichnen den sachlichen Inhalt der Blockchain. Bei Bitcoin sind das z. B. Transaktionen nach dem Schema [Sender, Empfänger, Betrag]. Der Hash ist eine Zahl, die mittels einer kryptographischen Hash-Funktion (z. B. SHA-256) berechnet wird. Die Hash-Funktion nimmt die Daten in dem Block und den Hash des vorherigen Blocks (PrevHash) als Parameter entgegen. Zudem kann ein Hash verwendet werden, um einen Block eindeutig zu identifizieren.

Die Blöcke einer Blockchain haben eine maximale Speicherkapazität. Ist diese erreicht, wird der Hash des Blocks berechnet. Anschließend werden neue Daten in einen neuen Block geschrieben, dessen PrevHash den Hash des alten Blocks referenziert.

Da der erste Block in einer Blockchain über keine PrevHash-Referenz verfügt, bezeichnet man ihn auch als „Genesis Block“.

In der Regel werden Blockchains als öffentliche Peer-to-Peer-Netzwerke gestaltet (es gibt keinen zentralen Server; das Netzwerk wird durch die Rechner der Netzwerk-Teilnehmer gebildet), und jeder neue Netzwerk-Teilnehmer erhält eine vollständige Kopie der gesamten Blockchain. Generell gilt: Alle Änderungen, die Netzwerk-Teilnehmer an ihrer Kopie der Blockchain vornehmen (z. B. das Hinzufügen von Daten zu einem Block), werden in die Blockchains aller anderen Netzwerk-Teilnehmer übernommen.

Sobald die Speicherkapazität eines Blocks erreicht wird, versuchen Netzwerk-Teilnehmer schnellstmöglich einen gültigen Hash zu finden – bei Bitcoin heißt das „Bitcoin-Mining“ und die durchschnittliche Zeit hierfür beträgt etwa 10 Minuten. Erst dann können Daten in einen neuen Block geschrieben werden. Der erste erfolgreiche Teilnehmer bekommt für den gültigen Hash eine Belohnung, z. B. Bitcoins.

Was zeichnet Blockchains aus?

Blockchains sind bekannt dafür, dass Daten, die sie beinhalten, nachträglich nicht verfälscht werden können, denn der Versuch, die Daten in einem früheren Block zu ändern, würde unweigerlich auch eine Veränderung am Hash des Blocks bewirken und somit dazu führen, dass die PrevHash-Referenz des nächsten Blocks nicht mehr auf den vorherigen Block zeigte – die Blockchain wäre gespalten. Ein Angreifer könnte zwar auf die Idee kommen, einfach die Hash und PrevHash-Referenzen aller Blocks nach dem modifizierten Block zu aktualisieren, doch durch die richtigen Maßnahmen wird dies zu einem nahezu aussichtslosen Unterfangen.

Proof-of-Work- und Konsens-Verfahren machen Hackern das Leben schwer

Um Angriffen vorzubeugen, sollte zunächst ein Proof-of-Work-Mechanismus beim Berechnen des Hashs eines Blocks verwendet werden. Ein einfaches Beispiel hierfür ist die Erweiterung der Hash-Funktion, sodass diese als dritten Parameter (neben Daten und PrevHash) eine Zahl verlangt. Das Blockchain-Protokoll erfordert nun, dass der Hash eines Blocks eine bestimmte Zahlenfolge enthalten muss – sonst ist der Hash ungültig und der Block wird nicht akzeptiert. Somit muss also ein gewisser Rechenaufwand geleistet werden, der in der Suche liegt, mittels Zufallszahlengenerator eine Zahl zu finden, die zusammen mit den Daten und der PrevHash-Referenz einen gültigen Hash ergibt.

Neben dem Proof-of-Work-Verfahren existiert zudem ein Konsens-Verfahren: Da es häufig vorkommt, dass durch andere Teilnehmer vorgenommene Änderungen zu einer Gabelung der Blockchain führen, wird nach einer gewissen Zeit nur der längste Zweig der Blockchain (der mit den meisten Blöcken) beibehalten, alle anderen Zweige werden verworfen. Beispiel:

Eine Kombination von Proof-of-Work-Mechanismus und Konsens-Verfahren bewirkt, dass ein Angreifer nur Aussicht auf Erfolg hat, dauerhaft den längsten (und somit von allen Netzwerk-Teilnehmern akzeptierten) Zweig einer Blockchain fortzuführen, wenn er über mehr als 50 Prozent der Rechenleistung des gesamten Netzwerks verfügt und es somit durchschnittlich am wahrscheinlichsten ist, dass er immer als erster Netzwerk-Teilnehmer einen gültigen Hash findet. Da es jedoch insgesamt unwahrscheinlich ist, dass es einem Angreifer gelingt, immer als erster Netzwerk-Teilnehmer einen gültigen Hash zu finden, gilt eine Verfälschung der Daten in einer Blockchain durch Hacker als nahezu unmöglich – was diese Technologie für Organisationen bzw. Unternehmen so interessant macht.

In diesem Blog-Beitrag habe ich die absoluten Grundlagen von Blockchains beschrieben. Es soll zudem angemerkt werden, dass es „die“ Blockchain nicht gibt, sondern viele Varianten, bei denen das oben erläuterte Konzept auf den bestimmen Anwendungsfall zugeschnitten ist. Für tieferes Wissen über Blockchains empfehle ich dem neugierigen Leser das Whitepaper von Satoshi Nakamoto[2] sowie das exzellente Einstiegsvideo von 3Blue1Brown[3].

Quellen/Links
[1] Haber, S. & Stornetta, W. S. How to Time-Stamp a Digital Document (1991)
https://link.springer.com/article/10.1007/BF00196791
[2] Satoshi Nakamoto Bitcoin: A Peer-to-Peer Electronic Cash System (2009) https://bitcoin.org/bitcoin.pdf
[3] 3Blue1Brown (Patreon) Ever wonder how Bitcoin (and other cryptocurrencies) actually work? (2017) https://www.youtube.com/watch?v=bBC-nXj3Ng4

Schreibe einen Kommentar

Your email address will not be published. Required fields are marked *