Disruptive Talk; Blockchain

Blockchain
Chain by JJ Ying

2007

Blockchain, in dem Whitepaper, “Bitcoin – a peer-to-peer electronic cash System”, kurz nach dem Zerfall der Lehman Brothers, der als Beginn vom Anfang der Finanzkrise gilt, das erste Mal erwähnt, ist die Identität des Verfassers bis heute nicht geklärt. „Satoshi Nakamoto“ könnte eine Person, eine Gruppe oder Organisation sein. Mit der Blockchain-Technologie als Grundlage, ist es das Ziel der Kryptowährung Bitcoin, elektronische Zahlungen direkt, anonym und ohne Bank zu ermöglichen. Der Gedanke, ein Zahlungssystem ohne Banken aufzubauen, keimte aber nicht erst durch die Finanzkrise. David Chaum, ein Kryptologe und Mitglied der Cypherpunk-Bewegung, erwähnte bereits in einem 1985 veröffentlichten Dokument die Vision vom bankenlosen Zahlsystem.

Bitcoin Pizza Day

Am 22. Mai 2010 zahlte ein Programmierer für eine Pizza 10 000 BTC . Dieser legendäre Tag ging als der “World Bitcoin Pizza Day” in die Geschichte ein. Am 18. Dezember 2017 hätte das einem Wert von 200 Mio USD entsprochen.

Die kryptografischen Grundlagen, für die Sicherung der Transaktionen, sind keine Erfindung von Satoshi Nakamoto, sondern wurden von ihm/ihr/ihnen geschickt neu zur Blockchain komponiert.

Der Hash SHA-256

Der Secure-Hash-Algorithm wird seit vielen Jahren für die Sicherstellung der Datenintegrität verwendet. Aus einem Datensatz beliebiger Länge (das kann ein Buchstabe, ein Wort, ein Text oder ein Bild sein) wird beim SHA-256 ein Zeichencode bestehend aus 64 hexadezimalen Ziffern bzw. 256 Bit generiert. Dieser Zeichencode ist

  • kollisionssicher, d. h. verschiedene, beliebige Daten ergeben niemals denselben Hash und
  • unumkehrbar, was bedeutet, dass aus einem Hash-Wert nicht der Input abgeleitet werden kann

Für die Sicherstellung, dass Daten nicht manipuliert wurden, werden die Hash-Werte einer Nachricht vor und nach der Übertragung miteinander verglichen. Sind sie identisch, handelt es sich um einen unverfälschten Datensatz. Anhand des Beispiels ist zu erkennen, dass jede Änderung zu einem anderen Hash führt.

Input Output / SHA-256
c 2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6
Creatorbox f47ecc1b8ddd856626f20d9bfda2969b73eb8cd0aa92d596e81096e991e54685
creatorbox 86dac4e41251eb019aae1550065b66217360c2f077b9e10cf0ce8c97763e23e1

Nachvollziehbar auf: fileformat.info

Kryptografischer Beweis anstatt Vertrauen

Die Integrität und Authentizität der Daten, die wie kleine Mosaike in der Blockchain das große Bild der Wahrheit ergeben, werden durch kryptografische Verfahren sichergestellt. An dieser Stelle gilt der Dank den „Erfindern“ des asymmetrischen Verschlüsselungsverfahrens, James H. Ellis, Clifford Cocks und Malcom Williamson, denen es Ende der 70er gelang das bisherige symmetrische Verschlüsselungs-verfahren, abzulösen.

Beim Public/Private Key Verfahren wird aus einer Zufallszahl ein Schlüsselpaar, ein privater und ein öffentlicher Schlüssel, generiert. Während der öffentliche Schlüssel für jeden zugänglich und einsehbar ist, wird der Private Key (wie der Name es suggeriert) geheim gehalten.

Verschlüsselte Nachrichten senden

Möchten Alice und Bob, zwei bekannte Protagonisten für IT-Fallbeispiele, sich gegenseitig verschlüsselte Nachrichten senden, kann Alice mit dem öffentlichen Schlüssel von Bob den Inhalt der Nachricht, die an ihn adressiert ist, verschlüsseln. Nur Bob kann mit seinem Private Key, in dessen Besitz nur er ist, die Nachricht entschlüsseln.

Die digitale Signatur

Mit dem Public/Private Key Verfahren wird nicht nur die Datenintegrität, sondern auch die Authentizität sichergestellt. Hierfür generiert Alice zusätzlich zu der Nachricht an Bob einen Hash aus dem Inhalt, den sie mit ihrem privaten Schlüssel verschlüsselt. Der verschlüsselte Hash ist Alice digitale Signatur. Erhält Bob die Nachricht, entschlüsselt er den Hash mit Hilfe des öffentlichen Schlüssels von Alice. Ist das erfolgreich, ist Alice als Senderin identifiziert. Zusätzlich generiert er aus den enthaltenen Daten ebenfalls einen Hash und vergleicht ihn mit dem Hash von Alice. Stimmen die beiden Hash-Werte überein, sind die Daten unverfälscht.

digitale Signatur

Die digitale Signatur ist eines der Hauptkonzepte der Blockchain-Technologie. Der private Schlüssel signiert die Daten, der öffentliche Schlüssel wird für die Adressgenerierung verwendet. Anstatt einer IBAN werden kryptische Adressen benutzt, um den Empfänger der Transaktion zuzuordnen. Somit kann eine Transaktion über das Blockchain-Protokoll als pseudoanonym bezeichnet werden.

Mit dem Private Key, der einzig zu der Adresse der vorhergehenden erhaltenen Transaktion passt, beweist Alice, dass sie berechtigt ist, die Transaktion an das Netzwerk zu senden.

All about Blocks

Ein Block besteht aus mehreren Transaktionen und Metadaten. Metadaten sind:

  • Zeitstempel,
  • die Anzahl der Transaktionen,
  • der Hash des vorherigen Blocks (Hash + Nonce),
  • die Software-Version,
  • Mining Angaben (Nonce + Zielvorgabe) und
  • der Hash des aktuellen Blocks (Merkle-Root) enthalten.

Transaktionen wiederum enthalten:

  • einen Input-Wert (Hash-Wert einer früheren Transaktion) und
  • den Output (Empfängeradresse + zu übertragenden Wert).

Während des Vorgangs der Verifizierung auf den Full-Nodes wird überprüft, ob der Input bereits für andere Transaktion verwendet wurde, um das Problem des “Double Spending” zu verhindern, bei dem theoretisch “Guthaben” doppelt ausgegeben werden kann.

Verbreitung und Verifizierung

Nur Transaktionen deren Authentizität (digitale Signatur) und Integrität (Hash) mit dem oben beschriebenem Verfahren von sogenannten Full-Nodes validiert werden können, werden zwischen-gespeichert und über das Peer-to-Peer Netzwerk weitergeleitet bis sie in den Mempool von sogenannten Minern gelangen. Sie fügen mehrere Transaktionen zu einem Block zusammen. Das Anfügen eines Blocks an die Chain ist mit einem hohem Rechenaufwand (Proof of Work) verbunden. Für diese Bemühungen werden die Miner mit dem sogenannten Mining Reward entlohnt. Dieser wird alle 4 Jahre halbiert und liegt aktuell bei 12,5 BTC.

Proof of Work

Beim Proof of Work müssen die Miner ein kryptografisches Rätsel lösen, um den Block an die Kette anzuhängen. Dabei werden alle Transaktionen innerhalb eines Blocks über den Merkle-Tree so miteinander verwoben, dass weder der Inhalt noch die Reihenfolge manipuliert werden können. Dieser muss zwingend mit einem definierten Muster, z. B. drei führenden Nullen beginnen. Wobei die Anzahl der führenden Nullen den Schwierigkeitsgrad festlegt. (Je nach Anzahl an Minern und Rechenleistung im Netzwerk wird der Schwierigkeitsgrad oder auch “Difficulty” angepasst, um zu verhindern, dass Blöcke zu schnell oder zu langsam gemined werden).

Nonce

Dazu wird an den Hash-Wert des Blocks (Merkle-Root) eine Zufallszahl, Nonce, angehangen, die so oft verändert werden muss, bis der Hash dem vorgegeben Muster (z. B. 4 führende Nullen) entspricht.

Data Nonce Hash
Blockchain is great 1 f1104548f54f66a7c6cb63092fd3dc96ba4f7ab7345e10d0faf73a5628405872
Blockchain is great 567 7b6b2e296c164f6e1e4f2c61f21e342d0dcd0d49724b4468607bd3c6fc3c4e1e
Blockchain is great 64492 0000735abc513200346dd9a8909803ed67b2af99098e095dbed53189f701631b

Nachvollziehbar auf: Anders.com

Ursprünglich wurde der Proof of Work entwickelt, um Denial of Service Attacken zu verhindern. Dabei werden Server mit einer hohen Anzahl an Anfragen (z. B. emails) attackiert bis sie abstürzen. Um das zu verhindern, muss ein Absender mit Hilfe von Rechenleistung ein Rätsel lösen. Für eine einzelne Email ist das kein Problem, aber Spam-Attacken verlieren dadurch Ihren Reiz, da die Kosten für die zu erbringende Rechenleistung unverhältnismäßig hoch sind.

Proof of Stake

Der Proof of Stake ist ressourcenschonender, da verschiedene Validatoren eine Transaktion vorschlagen. Die Stimme des Validators, der die höchste Token-Anzahl hält, wird dabei am meisten gewichtet.

Die längste Kette gewinnt

Da es keine zentrale Instanz gibt, die über die Reihenfolge der Kette entscheidet, müssen sich die Teilnehmer des Netzwerks über die gültige Kette einigen.

Werden zum selben Zeitpunkt von verschiedenen Minern gleichzeitig Blöcke gemined, die denselben Vorgänger-Block haben, erweitert der Nutzer die Hauptkette um den Block, den er zuerst erhalten hat. Erhält der Nutzer kurze Zeit später den zweiten Block, wird dieser der Nebenkette (Sidebranch) angehangen. Um herauszufinden, welcher Block gültig ist müssen die Nutzer auf den nächsten Block warten. Je nachdem auf welchen Vorgänger-Block dieser verweist, ist die Haupt-oder Seitenkette die gültige Chain.

Die Transaktionen, in der sogenannten Orphan-Chain werden aber nicht verworfen, sondern wieder zurück in den Mempool gespeichert und zu einem späteren Zeitpunkt in einem Block verarbeitet.

Konsens

Das Konsensprotokoll ist die eigentliche Revolution der Blockchain-Technologie. Sobald ein Block „gemined“ wurde, erhalten alle Teilnehmer im Netzwerk (Full-Nodes) eine Kopie der neuen Kette. Sie können die Richtigkeit des Hashs (in Verbindung mit der Zufallszahl) sehr leicht überprüfen. Ist dieser korrekt wird die neue Chain als Haupt-Kette gespeichert. Streng genommen gelten Transaktionen, die 100 folgende Blöcke haben als verifiziert. Da dies aber 17 h dauern würde akzeptieren die meisten schon Transaktionen auf denen 6 Blöcke aufbauen.

Herausforderungen

Energie

Der Proof of Work ist sehr ressourcenintensiv und mittlerweile verbraucht eine Bitcoin-Transaktion (am Tag werden 300.000 durchgeführt) so viel Energie wie eine Kühlschrank in einem Jahr (222 kWh). Vgl. t3n

Zentralität

Aufgrund der hohen Energiekosten konzentrieren sich die Mining-Farmen in Ländern in denen die Strompreise günstig sind. Da einzelne Miner kaum noch eine Chance haben gegen die Rechenleistung dieser Farmen anzukommen begeben sich die meisten ebenfalls in diese Mining-Pools. Dadurch entsteht eine Art Zentralität und die Mining-Farmen bilden einen zentralen Knotenpunkt für die Blockgenerierung.

Manipulation

Zusätzlich besteht die Gefahr der 51% Attacke. In dem Moment, in dem ein Angreifer 51% der Rechenleistung bereitstellt, ist es ihm möglich die Generierung der Blöcke zu seinem Vorteil zu manipulieren.

Protokolländerungen

Alle Netzwerkteilnehmer müssen Protokolländerungen zustimmen. Somit werden Miner, Full-Node Betreiber und Programmierer zu Vertretern von Recht und Gesetzt.

Transparenz

Der Inhalt der Transaktionen ist nicht verschlüsselt, weshalb alle alles sehen nachvollziehen können.

Skalierbarkeit

Es können pro Sekunde maximal 7 Transaktionen durchgeführt werden. Mit dem Transaktionszahlen von Visa oder Mastercard könnte das Bitcoin Netzwerk nicht mithalten.

Wohin mit den Private-Key

Was passiert, wenn wir unseren Private Key verlieren? Wie wird er wieder hergestellt oder gegen Missbrauch gesichert?

Zum Schluss…

Das Konzept der digitalen Signatur wird schon sehr lange erfolgreich in Unternehmen, z. B.  zur revisionssicheren Archivierung, eingesetzt. Erlangt ein Datensetz einen höheren Wahrheitsgehalt, nur weil er auf mehreren Nodes anstatt auf einem zentralen Server gespeichert ist?

Quellen:

Open HPI – Blockchain Kurs

Die Entwicklung von Bitcoin