slider

Blockchain Technologie - Prof. Dr. Norbert Pohlmann

Blockchain Technologie

Blockchain Technologie Übersicht mit Blockchain-App und Nodes

Was ist eine Blockchain Technologie?


Mit Hilfe der Blockchain Technologie werden Vertrauensdienste angeboten, die neue Möglichkeiten im Rahmen der Digitalisierung für mehr IT-Sicherheit und Vertrauenswürdigkeit anbieten. In einer Blockchain werden die Zusammenarbeit oder das Eigentum von digitalen Werten durch die Nodes eines Peer-to-Peer Netzwerkes mithilfe von smarten Cyber-Sicherheits- und Vertrauenswürdigkeitsmechanismen verwaltet und verifiziert.

Unterschiedliche Blickwinkel einer Blockchain

Die verschiedenen Disziplinen können die Blockchain Technologie aus sehr unterschiedlichen Blickwinkeln betrachten und bewerten.

Für einen Informatiker produziert die Blockchain-Technologie eine einfache Datenstruktur, die Blockchain, die Daten als Transaktionen in einzelnen Blöcken verkettet und in einem verteilten Peer-to-Peer-Netz redundant verwalten. Die Alternative wäre eine konventionelle Datenbank, die kontinuierlich von allen Teilnehmern repliziert wird.

Für die Cyber-Sicherheitsexperten hat die Blockchain Technologie den Vorteil, dass die Daten als Transaktionen in den einzelnen Blöcken manipulationssicher gespeichert werden können, das heißt, die Teilnehmer der Blockchain sind in der Lage, die Echtheit, den Ursprung und die Unversehrtheit der gespeicherten Daten (Transaktionen) zu überprüfen. Die Alternative wäre hier zum Beispiel ein PKI-System als zentraler Vertrauensdienstanbieter.

Für den Anwendungsdesigner bedeutet die Nutzung der Blockchain-Technologie eine vertrauenswürdige Zusammenarbeit zwischen verschiedenen Organisationen, ohne die Einbindung einer zentralen Instanz, eines PKI-Systems, Notars usw. Die Alternative könnte hier ein kostenintensiver Treuhänder sein, der die Zusammenarbeit und Eigentumsübertragung zwischen den verschiedenen Organisationen verwaltet und verifiziert. Da die Blockchain Technologie dies automatisiert macht, werden durch die vertrauenswürdige Zusammenarbeit die Prozesse auch sehr viel schneller und effektiver.

Die Blockchain Technologie als Kollaborations-Tool

Grundsätzlich wird mit der Blockchain Technologie eine Blockchain erzeugt, in der fälschungssichere, verteilte Datenstrukturen und in denen Transaktionen in der Zeitfolge protokolliert nachvollziehbar, unveränderlich und ohne zentrale Instanz abgebildet sind.
Die Cyber-Sicherheitseigenschaften einer Blockchain-Technologie werden prinzipiell mit den folgenden Cyber-Sicherheitsmechanismen umgesetzt:

  • „fälschungssicher/unveränderlich“ mithilfe von One-Way-Hashfunktionen und digitalen Signaturen von Public-Key-Verfahren
  • „verteilte/redundante Datenstrukturen (Verfügbarkeit der Daten)“, viele Nodes des Peer-to-Peer-Netzwerkes haben die Daten/Transaktionen in der Blockchain verteilt und redundant gespeichert
  • „Transaktionen in der Zeitfolge protokolliert nachvollziehbar, unveränderlich“, wird durch die Art der Verkettung mithilfe der Hashwerte „HashPrev“ und „Merkle Hash“ (Bitcoin-Technologie) über die Daten in den Transaktionen sichergestellt
  • „ohne zentrale Instanz abgebildet sind“, wird durch geeignete verteilte Vertrauenswürdigkeitsverfahren wie verteilte Konsensfindungsverfahren und verteilte Validierungsprozesse erzielt.
Blockchain Technologie Übersicht mit Blockchain-App und Nodes
Abbildung: Dezentrale Blockchain-Architektur – © Copyright-Vermerk

Internet der Werte

Mit der Blockchain Technologie werden neben der vertrauenswürdigen Zusammenarbeit auch Eigentumsverhältnisse (Digital Assets) direkter und effizienter als bislang gesichert und geregelt, da eine lückenlose und unveränderliche Datenaufzeichnung hierfür die Grundlage schafft. Alle Beglaubigungsprozesse werden schneller, sicherer und billiger. Aus diesem Grund wird die Blockchain auch als „Internet der Werte“ bezeichnet.
Die Blockchain-Technologie stellt mit den unterschiedlichen Cyber-Sicherheitsmechanismen ein „programmiertes Vertrauen“ zur Verfügung, weil alle Cyber-Sicherheitseigenschaften als Security-by-Design inhärent in der Blockchain Technologie eingebunden sind.

Bei der Nutzung der Blockchain Technologie werden die Daten redundant, dezentral und manipulationssicher gespeichert, das heißt, die Teilnehmer an der Blockchain sind in der Lage, die Echtheit, den Ursprung und die Unversehrtheit der gespeicherten Daten jederzeit zu überprüfen.

Was sind Anwendungsbereiche einer Blockchain?

Insbesondere im Bereich der Verifizierung von Zeugnissen, Berechtigungen, Beglaubigungen, … wird es in der nahen Zukunft viele Anwendungen geben, die die Digitalisierung von Verwaltungsprozessen vertrauenswürdig und sicher möglich machen. Ein weiterer wichtiger Anwendungsbereich der Blockchain Technologie ist eine vertrauenswürdige und automatisierte Zusammenarbeit zwischen verschiedenen Organisationen, die Prozesse sehr viel schneller, effektiver und kostengünstiger umsetzen lässt.
In der Zukunft wird Self-Sovereign Identity auf der Basis von Blockchain Technologie eine wichtige Rolle spielen. Eine „Self-Sovereign Identität (SSI)” erlaubt Anwendern, die Kontrolle über ihre eigenen Daten zu behalten. Die Anwender bestimmen selbst, welche Attribute (persönliche Daten) bei einem Authentifizierungsvorgang oder welche digitalen Nachweise übermittelt werden.


Aufbau einer Blockchain Technologie

Im Folgenden werden Elemente, Prinzipien, Strukturen und Architektur einer Blockchain-Technologie als Grundlagenwissen beschrieben.

Blockchain: Daten

Mit der Blockchain-Technologie wird eine gemeinsame Blockchain erzeugt, die eine einfache Datenstruktur darstellt. Die Daten werden in der Blockchain in einzelnen, chronologisch miteinander verketteten Blöcken als Transaktionen verwaltet.
Die Daten werden in Transaktionen manipulationsgesichert in Blöcken der Blockchain gespeichert, siehe auch Abschnitt Transkationen. Jede Node hat eine eigene Blockchain-Version, daher sind die Daten verteilt und redundant vorhanden, das heißt, es besteht eine sehr hohe Verfügbarkeit der Daten.
Eine Blockchain kann sehr groß werden, wie beispielsweise die Bitcoin-Blockchain etwa 354G Byte groß ist (Stand: Juli 2021).

Blockchain Technologie und die Integration der Daten
Abbildung: Architektur einer Blockchain – © Copyright-Vermerk

Die grauen rechteckigen Kästchen in der Abbildung sind Transaktionen, die gelben Quadrate sind die Daten in der Transaktion, der grüne Schlüssel ist der öffentliche Schlüssel des Blockchain-Teilnehmers, der die Transaktion erstellt und signiert hat.
Das rote „Sign“-Symbol ist die Signatur unter der Transaktion. Der rote „HashPrev“ ist der Hashwert über den Vorgänger-Block-Header, mit dem die Verkettung umgesetzt wird. Alle Blöcke zusammen bilden die Blockchain (Block (1) bis Block (n)).

Blockchain: Block

Ein Block in einer Blockchain ist ein strukturierter Datensatz, der im Prinzip beliebige Transaktionen mit Daten enthalten kann und vor Manipulationen gesichert ist.

Erstellung eines neuen Blockes
In definierten Zeitintervallen wird ein neuer Block von der Node erstellt, die im Konsensfindungsverfahren ausgewählt wurde. Diese wählt aus, welche Transaktionen in welcher Reihenfolge in diesem Block enthalten sind (zumindest bei den gängigsten Konsensverfahren für öffentliche Blockchains). Nachdem dieser neue Block von der Node versandt wurde, verteilt er sich anschließend über das Peer-To-Peer-Netzwerk weiter.
Alle anderen Nodes validieren auch den empfangenen neuen Block. Die verteilte Validierung aller Blöcke in den verschiedenen Nodes ist wichtig, um Vertrauen aufzubauen. Zum Beispiel wird bei der Bitcoin-Blockchain alle zehn Minuten ein neuer Block erstellt.
Was die Blockchain interessant macht, ist der sogenannte Block-Header. In der Abbildung ist ein Bitcoin-Blockchain-Block dargestellt.

Blockchain Technologie und der Aufbau des Headers
Abbildung: Inhalt eines Block-Headers – © Copyright-Vermerk

Im Block-Header ist die „Version“ und ein „Zeitstempel“ sowie ein „Difficulty“ und „Nonce“ enthalten. „Difficulty“ und „Nonce“ sind für das Konsensfindungsverfahren wichtig. Der Hashwert „HashPrev“ realisiert die Blockverkettung und der „Merkle Hash“ sorgt für die Integrität der Transaktionsdaten in einem Block. Durch die clevere Nutzung von Hashfunktionen können interessante Cyber-Sicherheitseigenschaften umgesetzt werden.


Element: HashPrev
Im Element „HashPrev“ wird der jeweilige aktuelle Hashwert des Block-Headers vom Vorgänger Block (Block-Headern−1) gespeichert. Dieser Hashwert, Hash-Prevn, wird dabei über den gesamten letzten Block-Header – inklusive des Hashwertes des Vorgängerblockes (HashPrevn−1) – generiert, wodurch die Verkettung der Blöcke manipulationssicher umgesetzt werden kann.

HashPrevn+1 = Aktueller-Hashwertn

                        = H( BlockerHeadern (… || HashPrevn || Merkle-Hashn || …) )

HashPrevn = H ( BlockHeadern−1 (… || HashPrevn−1 || Merkle-Hashn−1 || …) )

HashPrevn−1 = H ( BlockHeadern−2 (… || HashPrevn−2 || Merkle-Hashn−2 || …) )

. . .

HashPrev2 = H ( BlockHeader1 (…|| HashPrev1 || Merkle-Hash1 || …) )

                        Aktueller-Hashwertn = HashPrevn+1

H = One-Way-Hashfunktion

Jeder Block in der Blockchain kann im Prinzip gelesen und überprüft werden. In den Blöcken finden sich die verschiedenen Daten in Transaktionen, die in der Blockchain gespeichert werden. Blöcke können auf ihre Integrität geprüft werden, indem getestet wird, ob der aktuelle Hashwert eines Blockes (Aktueller-Hashwertn) mit dem gespeicherten Hashwert im Folgeblock (HashPrevn+1) übereinstimmt. Der erste HashPrev1 wird mit einem definierten Wert vorgegeben.

AktuellerHashwertn = HashPrevn+1

Aktueller-Hashwertn = H (BlockHeadern (…|| HashPrevn || Merkle-Hashn || …) )

H = One-Way-Hashfunktion

Dies ist für jede Node ohne Weiteres möglich, da jede Node im Normalfall alle Informationen innerhalb eines Blockes lesen kann. Soll ein neuer Block hinzugefügt werden, so kann dieser nicht einfach an die Blockchain angehängt werden. Für jeden neuen Block muss die Richtigkeit des Blockes geprüft und validiert und mithilfe eines Konsensfindungsverfahrens bestimmt werden, welche Node des P2P-Blockchain-Netzwerkes einen Block mit ausgewählten Transaktionen hinzufügen darf, damit es nicht möglich ist, die Blockchain zu manipulieren.
Die Blockverkettung mithilfe HashPrev-Hashwerte sorgt für die Cyber-Sicherheitseigenschaft, dass in einer Blockchain keine Daten gelöscht werden können. Diese Cyber-Sicherheitseigenschaft kann in einer rechtlichen Situation problematisch sein, wie zum Beispiel bei der EU-Datenschutzgrundverordnung, bei der ein Recht auf Löschen besteht, aber auch, wenn nicht gewollte Daten, wie zum Beispiel Kinderpornografie, in der Blockchain gespeichert sind. Durch die Blockverkettung können die Daten in einer Blockchain nicht gelöscht werden.


Element: Merkle Hash
Der „Merkle Hash“ wird verwendet, um aus den vielen Transaktionen (T) in einem Block einen zusammenfassenden Hashwert zu bilden (Merkle Hash). Die Blätter des Merkle-Baums sind die Hashwerte der Transaktionen hi = H (Ti). Jeder Knoten im Merkle-Baum wird als Hashwert H (h1 || h2) seiner Kinder h1 und h2 gebildet. Dabei ist h1 der Hashwert der Transaktion 1 und h2 der Hashwert der Transaktion 2 und „||“ die Verkettung, Konkatenation der Hashwerte und so weiter.

Blockchain Technologie mit Ablaufdiagramm eines Merkle Hash
Abbildung: Blockchain Technologie mit Ablaufdiagramm eines Merkle Hash – © Copyright-Vermerk

Der „Merkle Hash“ steht im Block-Header und kann daher für die Überprüfung der Integrität der Daten und Transaktionen in einem Block verwendet werden. Damit kann die Cyber-Sicherheitseigenschaft „Transaktionen in der Zeitfolge protokolliert nachvollziehbar, unveränderlich“ realisiert werden.

Blockchain: Transaktionen

Alle Daten innerhalb der Blöcke werden als Transaktionen gespeichert. Transaktionen enthalten Daten, die in der Zeitfolge protokolliert (chronologisch), nachvollziehbar, unveränderlich und ohne zentrale Instanz in der Blockchain abgebildet sind. Transaktionen werden vom Blockchain-Teilnehmer erstellt und signiert. Die Daten in den Transaktionen können Kontostände, Werte, Attribute, Zertifikate, Sensor-Daten, Industrie-Daten, Quelltexte, Merkmale usw. oder allgemein digitale Werte sein. Eine Transaktion enthält auch immer den Public-Key der entsprechenden Blockchain-Adresse sowie die Signatur des Blockchain-Teilnehmers, der die Transaktion erstellt und signiert hat.

Blockchain Technologie Aufbau von Transaktionen
Abbildung: Aufbau einer Transaktion – © Copyright-Vermerk

Beispiele von Daten einer Bitcoin-Transaktion:

Die Transaktionen enthalten bei Bitcoin im Wesentlichen folgende Inhalte:
• die ID der Transaktion (Hashwert)
• Meta-Data
• Inputs
• Outputs

Die Meta-Daten beinhalten die Versionsnummer, die Anzahl der eingehenden Beträge, die Anzahl der ausgehenden Beträge sowie die Transaktionsgröße in Bytes. Bei den Inputs handelt es sich um die eingehenden Beträge, das sind die Anzahl der zu verschickenden Bitcoins und die Blockchain-Adresse (Kontonummer), von der diese verschickt werden. Außerdem steht hier die vom Blockchain-Teilnehmer erstellte Signatur. Die einzelnen Outputs enthalten jeweils die Beträge, die verschickt werden und die jeweiligen Empfänger-Adressen.

Signatur unter einer Transaktion
Jede Transaktion, die einer Blockchain hinzugefügt werden soll, muss zunächst mit dem Private-Key für die entsprechende Blockchain-Adresse m aus der eigenen Wallet (GSAm) des Blockchain-Teilnehmers signiert und an alle Nodes über das P2P- Blockchain-Netzwerk gesendet werden. Alle Nodes sammeln die Transaktionsdaten, damit sie in der Lage sind, einen Block daraus erstellen zu können.

sx = S ( H ( Daten1 || . . . || Datenn ), GSAm ) )

Transaktionx = Daten1 || . . . || Datenn ||ÖSAm || sx

sx                    Signatur der Transaktionx
S                     Signaturfunktion
H                     One-Way-Hashfunktion
Daten             Daten, die zu einer Transaktion gehören (Coins, Programme,
Werte, …)
GSAm             Geheimer Schlüssel aus der Wallet, der die Adresse „m“
zugeordnet ist
ÖSAm             Öffentlicher Schlüssel aus der Wallet, der die Adresse „m“
zugeordnet ist

Jede Node im P2P-Blockchain-Netzwerk kann die Identität der Blockchain-Adresse, welche die Transaktion erstellt und abgesendet hat, und den Inhalt der Transaktion verifizieren.

Blockchain-Adresse „m“ = fa ( ÖSAm )

fa Funktion zur Berechnung der Blockchain-Adresse
ÖSAm steht in der Transaktion (Öffentlicher Schlüssel der Blockchain-
Adresse „m“)

Verifikation, dass die Transaktion des Eigentümers der Blockchain-Adresse „m“, Blockchain-Teilnehmer, signiert worden ist:

V ( Transaktionx, sx, ÖSAm ) = true?

V                     Verifikationsfunktion
ÖSAm             Öffentlicher Schlüssel aus der Wallet/Transaktion, ist
Blockchain-Adresse „m“ zugeordnet

In der Abbildung unten wird eine neue und signierte Transaktion Tx vom entsprechenden Blockchain-Teilnehmer über die Node N4 über das P2P-Blockchain-Netzwerk an alle Nodes verteilt, die zu dieser Blockchain gehören. Die Nodes, die nicht direkt mit der N4 verbunden sind, bekommen die Transaktion von einer direkt verbundenen Node weitergeleitet. Alle Nodes speichern diese Transaktion in ihrem Transaktionsspeicher, bis das Konsensfindungsverfahren eine Node bestimmt, die einen neuen Block erstellen soll. Durch diese Verfahren sind im Prinzip alle Nodes in der Lage, einen neuen Block zu verifizieren, zu erstellen und zu verteilen. Jede Node, die dann den Block anhängen darf, bestimmt, welche Transaktionen in einen neuen Block aus dem Transaktionsspeicher mit aufgenommen werden.
Kriterien sind: maximale Größe der Blocks, Transaktionsgebühren usw.
In dieser Zeit gilt die Transaktion noch als pending, das heißt, auch noch nicht als unumkehrbar in der Blockchain verstetigt. In dieser Wartezeit im Transaktionsspeicher können die Transaktionen durch eine sogenannte Double-Spend-Transaktion durch den jeweiligen Blockchain-Teilnehmer rückgängig gemacht werden. Double-Spend bedeutet, dass eine Transaktion doppelt gesendet wird und dadurch ungültig wird. Das heißt, um eine Transaktion rückgängig zu machen, kann der Initiator der Transaktion zum Beispiel eine zweite Transaktion mit den gleichen Inputs, die er sich selbst überweist, umsetzen. Wichtig ist, dass diese zweite Transaktion höhere Gebühren haben muss, um sicherzustellen, dass diese Transaktion vor der ursprünglichen ausgeführt wird und somit die ursprüngliche ungültig wird.

Blockchain Technologie Verteilung von Transaktionen
Abbildung: Verteilung von Transaktionen in einer Blockchain – © Copyright-Vermerk

Blockchain: Node

Jede Blockchain hat Nodes mit der entsprechenden Blockchain-Technologie, die als Peer-to-Peer-Blockchain-Netzwerk die vielfältigen Mechanismen der Blockchain-Technologie umsetzen. Jede Node hat eine aktuelle Blockchain-Version mit allen Blöcken gespeichert, die fortlaufend erweitert wird. Jede Node, die zu einer bestimmten Blockchain gehört, hat im Prinzip die gleichen Rechte, die Blockchain und neue Transaktionen zu speichern und neue Blöcke hinzuzufügen (validieren).
Jede Node kann signierte Transaktionen mit Daten im Peer-to-Peer-Blockchain-Netzwerk verteilen. Die Transaktionen werden mit dem geheimen Schlüssel aus der Wallet von dem entsprechenden Blockchain-Teilnehmer signiert. Die Wallet kann in der Node gespeichert sein, aber auch außerhalb.
Eine Node ist ein Teilnehmer im Peer-to-Peer-Network und Blockchain-Teilnehmer, wenn sie auch Zugriff auf die Wallet hat (Full Node). Architektur und Kommunikations-, Sicherheits- und Vertrauensmechanismen einer Node. In der Node sind sehr unterschiedliche Funktionen vorhanden, die für eine reibungslose, robuste, sichere und vertrauenswürdige Nutzung der Blockchain-Technologie verantwortlich sind.

Blockchain Technologie Aufbau einer Node
Abbildung: Architektur und Kommunikations-, Sicherheits- und Vertrauensmechanismen einer Node – © Copyright-Vermerk

P2P-Funktionen
Hier sind die Standard-Funktionen vereint, die für den robusten Betrieb eines Peer-to-Peer-Netzwerks notwendig sind. Beispiele sind: Suchfunktion (lookup), Verteilungsfunktion usw.

Verteilte Validierung
In diesem Funktionsblock sind Validierungsfunktionen vorhanden, die helfen, verteilt eine vertrauenswürde Version der Blockchain auf jeder Node verwalten und verifizieren zu können. Funktionen sind zum Beispiel Überprüfung der Signaturen in den Transaktionen sowie die Syntax und Semantik der Daten und die Validierung der Hashwerte eines neuen Blocks.

Konsensfindung
Die Konsensfindung stellt Funktionen zur Verfügung, die eine Node auswählt, die für die Erstellung eines nächsten Blocks verantwortlich ist. Funktionen sind Proof-of-Work (Mining), Proof-of-Stake und weitere Konsensverfahren sowie die Erstellung eines neuen Blocks.

Kryptografie
Mithilfe der Kryptografie-Funktionen werden die Transaktionen gesichert. Funktionen und Mechanismen sind: One-Way-Hashfunktionen, Publik-Key-Verfahren, Hardware-Sicherheitsmodule für die sichere Speicherung von Schlüssel und eventuell Verschlüsselungsverfahren für die Verschlüsselung von Daten.

Sonstige
Hier sind weitere Funktionen vereint, die zum Beispiel für die Verwaltung der Blockchain notwendig sind, indizierte Datenbanken und die eigentliche Blockchain.

Blockchain: Teilnehmer

Der Blockchain-Teilnehmer ist die Instanz, die Transaktionen mithilfe der Schlüssel aus der Wallet signieren kann, weil er die Wallet besitzt oder den Zugriff darauf hat. Der Blockchain-Teilnehmer kann eine Person, aber auch ein IT-System oder ein Prozess in einem IT-System, wie Auto, Payment-System, Produktionssystem usw., sein.

Blockchain: Wallet

Eine Wallet ist eine Datenstruktur, in der die geheimen und öffentlichen Schlüssel eines Public-Key-Verfahrens eines Blockchain-Teilnehmers gespeichert sind.

Blockchain Technologie prinzipeller Aufbau einer Wallet
Abbildung: Prinzipeller Aufbau einer Blockchain-Wallet – © Copyright-Vermerk

Aus dem öffentlichen Schlüssel wird mithilfe einer Funktion

Blockchain-Adresse = fa (öffentlicher Schlüssel)

die eindeutige Kennung, die Blockchain-Adresse, berechnet. Mit dem geheimen Schlüssel aus der Wallet wird eine Transaktion von dem entsprechenden Blockchain- Teilnehmer signiert. Der geheime und öffentliche Schlüssel ist der Blockchain-Adresse zugeordnet. Eine Wallet wird von dem Blockchain-Teilnehmer verwendet. Mithilfe des öffentlichen Schlüssels ist es möglich zu verifizieren, ob Transaktionen von einer bestimmten Blockchain-Adresse („Wallet“) erstellt wurden. Die grünen Schlüssel-Symbole stellen den öffentlichen Schlüssel und die roten Schlüssel-Symbole den geheimen Schlüssel eines Public-Key-Verfahren einer bestimmten Blockchain-Adresse dar. Angriffe auf eine Blockchain passieren sehr häufig auf die Wallet, da mit den geheimen Schlüsseln einfach manipuliert werden kann. Wer den geheimen Schlüssel einer Wallet besitzt, ist in der Lage, gültige Transaktionen zu erstellen und damit zu manipulieren.
Wallets können in verschiedenen Formen existieren beziehungsweise gespeichert werden. Dazu zählt zum Beispiel eine einfache Datei. Es ist aber auch möglich, eine Wallet auf einem Hardware-Sicherheitsmodul, wie zum Beispiel USB-Stick, für Personen oder High-Level Security Module (HSM) für Server zu realisieren.
Eine weitere Möglichkeit ist es, die Wallet auf einem Papierzettel in Form eines QR-Codes zu halten. Struktur: Unterschiedliche Arten von Nodes aus der Sicht der Wallets, Blockchain und Teilnehmer In der Praxis gibt es unterschiedliche Ausprägungen von Nodes, Wallets und Blockchain-Teilnehmern. Nodes, die die gesamte Blockchain und eine Wallet speichern, werden als „Full Nodes“ bezeichnet.

Blockchain Technologie Full Node
Abbildung: Full Node – © Copyright-Vermerk

Für ein portables IT-System, wie zum Beispiel ein Smartphone oder IoT-Geräte wie Autos, ist es allerdings nicht umsetzbar, eine eventuell mehrere Gigabyte große Blockchain zu speichern. Solche Nodes werden auch als „Light Node“ bezeichnet.
Sie speichern nur die aktuellen beziehungsweise für sie „relevantesten“ Blöcke, das sind die Blöcke, an denen die Node selber beteiligt ist. Die Wallet ist sicher im IT-System gespeichert, zum Beispiel in einem Hardware-Sicherheitsmodul (HSM).

Blockchain Technologie Light Node
Abbildung: Lite Node – © Copyright-Vermerk

Zudem gibt es auch noch sogenannte „Service Nodes“, welche keine direkten Teilhaber sind. Endgeräte, wie Smartphones, nutzen einen Dienst, der virtuelle Wallets anbietet. Die Aktivierung der Dienste muss bei den Service Nodes sicher umgesetzt werden, um Missbrauch zu vermeiden.

Blockchain Technologie Service Nodes
Abbildung: Service Node – © Copyright-Vermerk

Blockchain-Adresse

Die Blockchain-Adresse wird über den verwendeten öffentlichen Schlüssel, der in der Wallet und in jeder Transaktion steht, repräsentiert. Aus dem öffentlichen Schlüssel wird mithilfe einer Blockchain-Adress-Funktion – Blockchain-Adresse = fa (öffentlicher Schlüssel) – die eindeutige Kennung, Blockchain-Adresse, berechnet.

Berechnung der Blockchain-Adresse
Die Blockchain-Adresse bei Bitcoin wird wie folgt berechnet.

Blockchain-Adresse = fa (öffentlicher Schlüssel)

Blockchain Technologie und Blockchain-Adresse
Abbildung: Berechnungsfunktion einer Bitcoin Blockchain-Adresse mit dem öffentlichen Schlüssel – © Copyright-Vermerk

Durch die Art und Weise, wie die Blockchain-Adressen berechnet werden, sind sie im Prinzip pseudonym. Solange die Blockchain-Adresse und der öffentliche Schlüssel nicht einem Blockchain-Teilnehmer zugeordnet werden können, ist es nicht möglich, diesen zu identifizieren.
Die Pseudonymität wird dann aufgehoben, wenn eine Transaktion einem Blockchain-Teilnehmer zugeordnet werden kann. Ein Beispiel ist die Schnittstelle zu Zahlungssystemen. Immer wenn Geld von einem Bitcoin-Konto auf ein Giro-Konto oder umgekehrt transferiert wird, wird deutlich, wem ein Bitcoin-Konto (Blockchain-Adresse) gehört. Aber auch die Darstellung eines Bitcoin-Kontos auf einer Webseite stellt einen Zusammenhang zum Eigentümer her.

Blockchain-Prinzip: Keine „zentrale Instanz“

Bei der Nutzung einer Blockchain-Technologie gibt es keine „zentrale Instanz“, sondern es sind verschiedene Cyber-Sicherheits- und Vertrauenswürdigkeitsmechanismen auf all ihren Nodes in einem Peer-to-Peer-Blockchain-Netzwerk verteilt.
Jeder kommuniziert über das Internet direkt miteinander. Damit gibt es keinen „Single Point of Failure“ mehr und Logs beziehungsweise Back-ups müssen nicht besonders berücksichtigt werden, da die Datenstruktur sich selbst regeneriert. Durch das Peer-to-Peer-Blockchain-Netzwerk und die verteilten Nodes mit der Blockchain ist eine hohe Robustheit sowie die Redundanz der Daten vorhanden, weil jede Node eine Blockchain-Version gespeichert hat.

Blockchain Technologie Darstellung des Prinzips keine zentrale Instanz
Abbildung: Blockchain Peer-to-Peer-Netzwerk – © Copyright-Vermerk



Konsensfindungsverfahren – Blockchain Technologie

Damit ein neuer Block in die Blockchain aufgenommen werden kann, muss dieser zuerst validiert werden. Es muss sichergestellt werden, dass sämtliche darin enthaltenen Transaktionen echt und nicht manipuliert worden sind.
Da beim Blockchain-Konzept keine zentrale Instanz existiert, die einen neuen Block validieren kann, werden verteilte Konsensfindungs- und Validierungsverfahren benötigt, die helfen, diese Aufgabe sicher und vertrauenswürdig umsetzen zu können.
Das Konsensfindungsverfahren ist dazu da, dass ein Konsens gefunden wird und sich untereinander auf einen „korrekten“ Zustand geeinigt wird. Das Konsensfindungsverfahren hat dabei die Aufgabe, aus dem Peer-to-Peer-Blockchain-Netzwerk eine Node auszuwählen, die als nächstes aus den gesammelten Transaktionen diejenigen heraussuchen darf, aus denen ein neuer Block zusammengestellt, validiert und der Blockchain hinzufügt werden soll.

Blockchain Technologie und die Idee eines Konsensfindungsverfahrens
Abbildung: Idee eines Konsensfindungsverfahrens – © Copyright-Vermerk

Jede Transaktion wird vom Blockchain-Teilnehmer signiert, der für die Daten verantwortlich ist und über die Nodes per Peer-to-Peer-Blockchain-Netzwerk verteilt.
Das heißt, im Prinzip hat jede Node alle Transaktionen und kann einen neuen Block erstellen.
Ein Konsensfindungsverfahren bestimmt, welche Node konkret als nächstes einen neuen Block erstellen, validieren und verteilen darf. Dabei entscheidet dann die ausgewählte Node anhand von Kriterien, wie Länge, Transaktionsgebühren usw., welche Transaktionen aus dem Transaktionsspeicher in einem neuen Block aufgenommen werden.

Verteilte Validierung und Hinzufügen eines neuen Blocks
Die ausgewählte Node nimmt nur die Transaktionen in einen neuen Block auf, die von Semantik und Syntax her richtig sind und die digitalen Signaturen der Blockchain-Teilnehmer der Transaktionen, die mit der Blockchain-Adresse übereinstimmen.

Blockchain Technologie verteilte Validierung und Hinzufügen eines neuen Blocks
Abbildung: Verteilte Validierung und Hinzufügen eines neuen Blocks in einer Blockchain – © Copyright-Vermerk

Wenn alle Transaktionen in Ordnung sind, wird mit diesen ein neuer Block mit HashPrev, Merkle Hash usw. generiert und an alle anderen Nodes des entsprechenden Peer-to-Peer-Blockchain-Netzwerkes verteilt. Jede Node hat dadurch jederzeit eine vollständige Version der aktuell gültigen Blockchain. Alle Nodes des Peer-to-Peer-Blockchain-Netzwerkes überprüfen die empfangenden neuen Blöcke der ausgewählten Nodes, ehe sie diese der eigenen Blockchain-Version hinzufügen. Dafür kontrollieren sie sämtliche im Block enthaltenen Transaktionen. Außerdem kontrollieren sie den Block selbst darauf, ob zum Beispiel der Proof-of-Work erbracht ist und ob die Hashwerte korrekt sind. Sobald ein Block oder auch nur eine einzige in dem Block enthaltene Transaktion eine der Regeln verletzt, wird der Block abgelehnt und nicht in die Blockchain der eigenen Version aufgenommen. Das geschieht selbst dann, wenn jede andere Node der Blockchain den Block für zulässig hält. Es ist essentiell für die Sicherheit und Vertrauenswürdigkeit der Blockchain, dass sich alle Nodes ihr Urteil selbst bilden.
Dieses Prinzip des Distributed Consensus macht die Konsistenzprüfung der Transaktionen vollkommen unabhängig von einer einzelnen vertrauenswürdigen Instanz. Für die Herstellung des Konsenses gibt es verschiedene Verfahren zwischen den Nodes, die festlegen, wer für den Abschluss neuer Transaktionen und das Hinzufügen eines bestimmten Blocks an die Blockchain verantwortlich ist.

Proof-of-Work Konsensfindungsverfahren

Proof-of-Work (PoW) war die erste und ist die aktuell gebräuchlichste Methode zur Konsensfindung und wird zum Beispiel aktuell von der Bitcoin-Blockchain genutzt. Hier konkurrieren die einzelnen Nodes als sogenannte „Miner“ untereinander, indem sie jeweils ein mathematisches Problem – dessen Schwierigkeit sich dynamisch ändern lässt – lösen müssen. Jeder Miner einer Node muss einen Hashwert für einen Block finden, der einem bestimmten vorgegebenen Muster entspricht. Dieses Muster wird vom Blockchain-Netzwerk eigenständig festgelegt, wobei sich die Schwierigkeit mit der Anzahl der vorgegebenen Stellen des Musters erhöht. Zum Beispiel soll ein Hashwert fünf führende Nullen als Muster besitzen, siehe Difficulty-Feld im Block-Header.

Blockchain Technologie Proof-of-Work Konsensfindungsverfahren
Abbildung: Proof-of-Work Konsensfindungsverfahren – © Copyright-Vermerk

Die einzige Möglichkeit für die Nodes, diesen speziellen Hashwert zu erzeugen, ist die Veränderung des NONCE-Wertes im Block-Header. Somit wird die Konsensfindung eines Blockes zu einem Glückspiel für die Miner in einer Node, da diese nun einen NONCE-Wert für diesen Block-Header finden müssen, der die Eigenschaften des zu suchenden Hashwertes ergibt. Der Miner, der dieses Problem als erstes gelöst hat, darf den nächsten Block an die Blockchain anhängen. Die Komplexität des Problems wird in der Praxis bei der Bitcoin-Blockchain so gewählt, dass die Aufgabe im Schnitt 10 min dauern soll. Das bedeutet, dass die Transaktionen nur alle 10 min in einem Block der Blockchain hinzugefügt werden und gültig sind.

Ablauf des Minings

1. Alle Miner generieren eine Nonce (Zufallszahl).

2. Diese Zufallszahl mit allen weiteren Daten im Block-Header wird als Input von Hashfunktionen berechnet.

3. Es wird dann überprüft, ob der berechnete Hashwert den Kriterien vom Feld Difficult (bestimmte Anzahl von führenden Nullen) im Block-Header entspricht.

Wenn ja, hat der entsprechende Miner gewonnen. Wenn nein, wird eine neue Zufallszahl generiert und ein neuer Versuch gestartet.

Bewertung Proof-of-Work (PoW)

Es kann passieren, dass zwei Miner zur gleichen Zeit den notwendigen Hashwert berechnen. Wenn die Nonce 32 Bit lang ist, gibt es 232 verschiedene Kombinationen (42.949.667.296).

Die Berechnung des mathematischen Problems beim Proof-of-Work-Konsensfindungsverfahren kostet sehr viel Energie. Laut dem sogenannte “Cambridge Bitcoin Electricity Consumption Index” lag der Energieverbrauch 2020 durch die Bitcoin-Technologie bei 115 Terrawattstunden (TWh). Das ist der jährliche Stromverbrauch von Pakistan.

Practical Byzantine Fault Tolerance (PBFT) Konsensfindungsverfahren

Practical Byzantine Fault Tolerance (PBFT) ist ein Verfahren, welches böswillige Nodes toleriert. Hier gibt es eine ausgewählte Gruppe an „Validating Peers“, die alle Transaktionen erhalten. Sie wählen untereinander einen „Leader“ aus; dieser gibt eine genaue Reihenfolge der Transaktionen vor, in der diese in den Block eingefügt werden. Diese wird von ihm wiederum an alle „Validating Peers“ gebroadcasted. Anschließend führt jeder „Validating Peer“ sämtliche Transaktionen in dem Block in der vorgegebenen Reihenfolge aus und berechnet den Hashwert. Dieses Ergebnis wird wiederum an die anderen „Validating Peers“ gebroadcasted und mit deren Ergebnissen verglichen. Wenn mehr als 2/3 der anderen Peers dasselbe Ergebnis haben, wird der Block endgültig zur lokalen Kopie der Blockchain verstetigt.

Mechanismus: Byzantine Fault Tolerance (Kompensation von fehlerhaften Komponenten)

Ein zuverlässiges System muss dazu in der Lage sein, den Ausfall einer oder mehrerer Komponenten zu kompensieren. Eine fehlerhafte Komponente kann ein Verhalten zeigen, das häufig übersehen wird, nämlich das Senden von widersprüchlichen Informationen an verschiedene Teile des Systems. Mit dieser Art von Fehler in einem System umzugehen, wird abstrakt im „Byzantine Generals Problem“ ausgedrückt. Die Byzantine Fault Tolerance (byzantinische Fehlertoleranz) befasst sich mit diesem Problem und bietet eine Lösung, mit der zuverlässig Systeme implementiert werden können, auch wenn fehlerhafte Komponenten vorhanden sind.

Das Problem kann folgendermaßen beschrieben werden:

  • Das klassische Problem kann auch anhand eines militärischen Beispiels gezeigt werden, dem Problem der byzantinischen Generäle.
  • Bei diesem Problem lagert eine rote Armee im Tal und die blauen Generäle halten ihre Armeen auf den nahe gelegenen Bergen bereit. Die Aufgabe der blauen Generäle ist, festzustellen, wieviel Soldaten sie zusammen haben.
  • Die Kommunikation erfolgt paarweise und ist unmittelbar und perfekt, aber m der Generäle sind Verräter (fehlerhaft) und verhindern aktiv, dass die loyalen Generäle eine Einigung erzielen, indem sie ihnen fehlerhafte und widersprüchliche Informationen bereitstellen.
  • Die Frage ist, wie loyalen Generäle zu einer Einigung kommen können?
  • Wir gehen davon aus, dass jeder General weiß, wie viele Leute er hat.
  • Das Ziel ist, dass die Generäle ihre Truppenstärke austauschen, sodass nach Abschluss des Algorithmus jeder General einen Vektor der Länge n besitzt, der der Gesamtstärke aller Armeen entspricht.
  • Ist General i loyal, enthält Element i seine Truppenstärke, andernfalls ist es undefiniert.
  • In diesem Beispiel wird der Algorithmus für den Fall von n=4 und m=1 dargestellt
  • Für diese Parameter führt der Algorithmus vier Schritte aus.
Blockchain Technologie Practical Byzantine Fault Tolerance (PBFT) Konsensfindungsverfahren
Abbildung: Practical Byzantine Fault Tolerance (PBFT) Konsensfindungsverfahren – © Copyright-Vermerk

  • Im ersten Schritt sendet jeder General eine Nachricht an jeden anderen General, indem er seine Truppenstärke mitteilt.
  • Loyale Generäle sagen die Wahrheit; Verräter können jedem anderen General eine andere Lüge auftischen.
  • In dem Beispiel sehen wir, dass General 1 1K Mann meldet, General 2 meldet 2K, General 3 lügt jeden an, gibt x, y und z an und General 4 meldet 4K
  • Im zweiten Schritt werden die Ergebnisse der Ankündigungen aus dem ersten Schritt in Form von Vektoren gesammelt.

      General 1 ( 1, 2, x, 4 )

      General 2 ( 1, 2, y, 4 )

      General 3 ( 1, 2, 3, 4 )

      General 4 ( 1, 2, z, 4 )

  • Im dritten Schritt übergibt jeder General seinen Vektor an jeden anderen General. Jeder General erhält 3 Vektoren, jeweils von einem der anderen Generäle.

General 1                          General 2                           General 4
( 1, 2, y, 4 )                       ( 1, 2, x, 4 )                         ( 1, 2, x, 4 )

( a, b, c, d )                       ( e, f, g, h )                         ( 1, 2, y, 4 )

( 1, 2, z, 4 )                       ( 1, 2, z, 4 )                         ( i, j, k, l )

  • Auch hier lügt General 3 und erfindet 12 neue Werte, a bis l.
  • Im vierten Schritt wertet jeder General das i-te Element jedes neu empfangenen Vektors aus.
  • Hat ein Wert eine Mehrheit, wird er in den Ergebnisvektor übernommen.
  • Hat kein Wert eine Mehrheit, wird das entsprechende Element des Ergebnisvektors als UNKNOWN markiert.
  • In diesem Beispiel sehen wir, dass die Generäle 1, 2 und 4 eine Einigung mit

                                      ( 1,  2, UNKNOWN, 4 )

    gefunden haben, was das korrekte Ergebnis darstellt.
  • Der Verräter kann die Informationen für die loyalen Generäle nicht verfälschen; er konnte ihre Arbeit nicht unterminieren.
  • In einem System mit m fehlerhaften Prozessen kann nur dann eine Einigung erzielt werden, wenn es 2m+1 (mehr als 2/3) korrekt funktionierende Prozesse gibt, also insgesamt 3m+1 Prozesse.

Bewertung Practical Byzantine Fault Tolerance (PBFT)

Mit Konsensverfahren auf der Basis von Byzantine Fault Tolerance kann der Konsens auch beim Ausfall von bis zu 1/3 der Nodes zuverlässig arbeiten.

Alternative Konsensfindungsverfahren einer Blockchain Technologie

Neben den Grundmethoden gibt es noch weitere Methoden zur Konsensfindung, wie zum Beispiel:

Istanbul Byzantine Fault Tolerance (IBFT)
Der Istanbul BFT Algorithmus wurde durch den PBFT inspiriert. Der ursprüngliche PBFT wurde jedoch angepasst optimiert, um mit Blockchain noch besser zu funktionieren. Der IBFT ist für private Blockchains ein bewährter Algorithmus.

Yet Another Consensus
Bei Yet Another Consensus (YAC) handelt es sich um einen Algorithmus für delegierte byzantinische Fehlertoleranz. Es handelt sich um einen Konsensverfahren für private, also zugangsbeschränkte Blockchains.

Proof of Elapsed Time
Beim Proof of Elapsed Time (PoET) Algorithmus wird zufällig und fair entschieden, wer über einen neuen Block entscheiden darf. Diese Entscheidung basiert auf der Wartezeit der Knoten. Jeder Knoten im Netzwerk bekommt eine zufällige Wartezeit zugeordnet. Für diese zugeordnete Zeit lang muss der Knoten „schlafen gehen“. Der Knoten mit der kürzesten Wartezeit wird als erster wieder aktiv und gewinnt somit den Block.

Paxos
Paxos ist ein verhältnismäßig alter Konsensalgortihmus von 1989. Wenn ein Client einen Befehl auf einem bestimmten Knoten ausführt, ernennt sich der Knoten selbst zum Leader. Diese Ausführung wird mit der höchsten Nummer versehen, die dieser Knoten gesehen hat. Der Konsens zwischen den Knoten wird durch ein 2-Phasen-Commit-Protokoll erreicht.

Raft
Raft ist ein Konsensalgorithmus, der ein Ergebnis liefert, das dem von (multi-)Paxos entspricht und genauso effizient ist wie Paxos. Seine Struktur ist anders als die von Paxos, was Raft verständlicher als Paxos macht und auch eine bessere Grundlage für den Aufbau praktischer Systeme bietet.

Weitere Informationen zum Begriff “Blockchain Technologie”:

Vorlesung: „Vorlesung Blockchain-Technologie“

Artikel:
„Kryptografie wird Währung – Bitcoin: Geldverkehr ohne Banken“

„Blockchain-Technologie revolutioniert das digitale Business: Vertrauenswürdige Zusammenarbeit ohne zentrale Instanz


„Blockchain-Technologie unter der Lupe – Sicherheit und Vertrauenswürdigkeit kryptografisch verkettete Datenblöcke

„Trust as a Service – Vertrauen als Dienstleistung – Validierung digitaler Nachweise mit der Blockchain“

“Eine vertrauenswürdige Zusammenarbeit mit Hilfe der Blockchain-Technologie”

“Blockchain als Echtheitsgarant – Sicherung von digitalen Zeugnissen und Nachweisen”

Vorträge:
BlockChain-Sicherheit – Verfügbarkeit / Robustheit versus Vertrauensbildung und Effizienz?“

BlockChain – Einführung und Einsatzmöglichkeiten

BlockChain-Technologie – Sicherheit und Anwendungen Wissenschaftliche Perspektiven im Bereich Blockchain

Wie sicher ist eigentlich die Blockchain?

eco – Whitepaper: “Die Blockchain im Mittelstand

Vorlesungen: „Vorlesungen zum Lehrbuch Cyber-Sicherheit

Bücher:

Lehrbuch Cyber-Sicherheit – Das Lehrbuch für Konzepte, Mechanismen, Architekturen und Eigenschaften von Cyber-Sicherheitssystemen in der Digitalisierung

Bücher im Bereich Cyber-Sicherheit und IT-Sicherheit zum kostenlosen Download

  • Sicher im Internet: Tipps und Tricks für das digitale Leben
  • Der IT-Sicherheitsleitfaden
  • Firewall-Systeme – Sicherheit für Internet und Intranet, E-Mail-Security, Virtual Private Network, Intrusion-Detection-System, Personal Firewalls

Forschungsinstitut für Internet-Sicherheit (IT-Sicherheit, Cyber-Sicherheit)
Master-Studiengang Internet-Sicherheit (IT-Sicherheit, Cyber-Sicherheit)

Marktplatz IT-Sicherheit

Zurück zur Übersicht




Summary
Blockchain Technologie
Article Name
Blockchain Technologie
Description
Mit Hilfe der Blockchain Technologie werden Vertrauensdienste angeboten, die neue Möglichkeiten im Rahmen der Digitalisierung für mehr IT-Sicherheit und Vertrauenswürdigkeit anbieten.
Author
Publisher Name
Institut für Internet-Sicherheit – if(is)
Publisher Logo
Blockchain Technologie Übersicht mit Blockchain-App und Nodes
Blockchain Technologie Prof. Dr. Norbert Pohlmann - Cyber-Sicherheitsexperten