Diese Wissensdatenbank wird wachsen und wachsen...
Nachfolgend soll die Blockchain-Technologie anhand von Bitcoin Core (BTC) einer nicht IT-affinen Person nähergebracht werden. Der Inhalt ist demzufolge stark abstrahiert dargestellt, trifft dabei aber die wesentlichen Botschaften auf den Punkt. Wichtig ist, dass das Präsentierte für den «Bitcoin» (BTC) gilt. Andere Krypto-Währungen haben ähnliche oder komplett andere Wege, um die im Kapitel 2.6 beschriebenen Eigenschaften umzusetzen. Als veranschaulichendes Beispiel im Sinne der Dezentralität eignet sich Bitcoin – die erste digitale Währung im Rahmen der Blockchain-Technologie – aber ausgezeichnet.
Wir sind uns gewohnt, dass wir eine Geldnote – oder auch einen Goldbarren – in den Händen halten können. Das Gleiche gilt auch für ein Bankkonto. Wir sind der Meinung, dass das der Bank zur Verfügung gestellte Geld auf dem Bankkonto ist.
Um die Blockchain-Technologie zu verstehen, muss man sich vom Grundgedanken lösen, dass man eine Art «Speichereinheit» auf dem Computer hält. Stattdessen muss man sich eine Kette von Zahlungen vorstellen, die jeder, überall und zu jedem Zeitpunkt über das Internet einsehen kann. Ein Beispiel:
Wie wird im Allgemeinen eine Zahlung definiert? Die Person A besitzt 200 Geldeinheiten (GE) und überweist der Person B 100 GE. Stellt man diese Information abstrahiert dar, dann sähe dies wie folgt aus: AB100. Transferiert anschliessend B an C 50 GE und C an A wiederum 25 GE, würde sich die gesamte Zeichenkette auf diese Weise darstellen: AB100, BC50, CA25. Diese Zeichenkette lässt sich für weitere Transaktionen und neue Teilnehmer (beispielsweise D) beliebig lange fortsetzen.
Die jeweiligen Kontobestände werden bestimmt, indem ein Computerprogramm die Zeichenkette durchgeht und die Endbestände der jeweiligen Person errechnet – im Falle von A also: 200 – 100 + 25 = 125.
Diese Zeichenkette nennt sich Blockchain oder auch Public Ledger, weil sie – im Falle von Bitcoin – jeder einsehen kann. Mittlerweise ist diese Blockchain mehrere Gigabyte gross. Vereinfacht gesagt, ist die Blockchain ein Text-Dokument auf dem jede bisher erfolgte Zahlung dargestellt ist, wobei neue Transaktionen laufend hinzugefügt werden.
Stellt man nun eine Verteilung dieser Zeichenkette über das Netzwerk – zum aktuellen Zeitpunkt sind dies rund 10’000 Computer – sicher, ist es irrelevant, ob einzelne oder mehrere Computer von Hackern angegriffen werden oder ihre Daten fälschen, weil alle anderen Netzwerkteilnehmer sofort feststellen würden, wenn einzelne Zeichenketten manipuliert worden wären. Das ist damit gemeint, wenn man von Dezentralität spricht.
Aus der Kryptographie stammen die Begriffe öffentlicher und privater Schlüssel, auch als asynchrones Verschlüsselungsverfahren bekannt.
Öffentlicher und privater Schlüssel sind untrennbar miteinander verbunden. Der private Schlüssel wird nach dem Zufallsprinzip hergestellt. Von diesem lässt sich mit einem kleinen Programm immer der öffentliche Schlüssel errechnen. Ein öffentlicher Schlüssel lässt aber nie Rückschluss auf einen privaten Schlüssel zu.
Zur Veranschaulichung gilt also der öffentliche Schlüssel als Bankkonto-Nummer und der private Schlüssel als Zugriffserlaubnis auf das Bankkonto. Die Bankkonto-Nummer darf man jedermann mitteilen. Den privaten Schlüssel muss man sicher aufbewahren. Derjenige, der den privaten Schlüssel kennt, kontrolliert die dem öffentlichen Schlüssel zugewiesenen Bitcoins. Verliert man den privaten Schlüssel, besteht nach dem heutigen Stand der Technik keinerlei Möglichkeit, die Bitcoins zu transferieren.
Im vorgenannten Beispiel ersetzen wir die Personen A, B, C einfach mit den Kontonummern – oder auch – mit den öffentlichen Schlüsseln von A, B, C, wobei jede Personen mit seinem privaten Schlüssel seine Geldeinheiten transferieren kann.
Die Bitcoin-Bestände, die den jeweiligen öffentlichen Schlüsseln zugeordnet sind, kann jeder einsehen. Ein Rückschluss, welche natürliche oder juristische Person der effektive Inhaber des öffentlichen Schlüssels ist, ist nur möglich, wenn die jeweilige Person dies bekannt macht respektive wenn Zahlungen von einem dem Inhaber zugeordneten öffentlichen Schlüssel vorgenommen werden. An dieser Stelle ist festzuhalten, dass Bitcoin ein sehr transparentes Zahlungssystem ist. Alternative Kryptowährungen wie beispielsweise Monero sind 100% anonym – ein Rückschluss ist ausgeschlossen.
Ein privater Schlüssel ist eine 256 Zeichen lange Abfolge von Nullen oder Einsen. Es ist möglich, sich einen privaten Schlüssel selber auszudenken oder eine Münze 256-mal zu werfen und die Resultate aufzuschreiben (Null oder Eins). Die 256 Zeichen lange Abfolge wird anschliessend noch in ein für Menschen angenehmeres Format umgewandelt. In ein dezimales Format gebracht, hat die Zahl 78 Stellen (1077) – zum Vergleich: Die Anzahl von visiblen Atomen im Universum beträgt rund 1080. Um nicht jedes Mal eine Münze 256-mal werfen zu müssen, existieren Wallets.
Wallets haben je nach Ausprägung grundsätzlich drei Zwecke:
Wallets können grundsätzlich in drei Arten aufgeteilt werden:
Aus einer systemarchitektonischen Sicht gesehen, sind die kryptografischen Mechanismen, die Transaktionen und das Mining, die «Herzstücke» der Technologie.
Bei einer Transaktion signiert der Sender seine Überweisung mit seinem privaten Schlüssel. Die Signierung einer Transaktion ist nichts anders als eine Verschlüsselung einer Nachricht, die nur mit dem öffentlichen Schlüssel des Senders entschlüsselt werden kann; ähnlich einer Unterschrift. Somit ist sichergestellt, dass nur der Inhaber des privaten Schlüssels und somit der Inhaber der Bitcoins eine Zahlung aufgeben kann. Die kryptographische Kontrolle der Signatur erfolgt durch die sogenannten Nodes respektive Miner (beide Begriffe werden in Kapital 4.7 erläutert).
Würde man die Transaktion menschlich verständlich laut vorlesen, dürfte die Nachricht in etwa wie folgt lauten: «Ich, der Berechtigte dieser Kontonummer, nachgewiesen durch meinen privaten Schlüssel, sende diese Geldeinheiten an die nachstehende Kontonummer: …»
Eine Transaktion ist vergleichbar mit eins, zwei Zeilen auf einem Blatt Papier, die mit unter den vorerwähnten Inhalt enthält (unter anderem öffentlicher Schlüssel des Senders, öffentlicher Schlüssel des Empfängers, Anzahl Geldeinheiten). Das Blatt Papier ist dabei der Block, das heisst in einem Block haben mehrere Transaktionen Platz respektive um das Beispiel fortzusetzen, auf einem Blatt Papier befinden sich mehrere Zeilen.
Der Block ist bei Bitcoin ein Megabyte gross, das heisst der Platz für die Anzahl Transaktionen ist beschränkt. Die Blöcke stapeln sich wie bei einem Papierstapel, wobei im Durchschnitt jede 10 Minuten ein Block zusammengestellt wird. Zum Zeitpunkt des Verfassens dieser Zeilen sind wir bei Block 621180. Ein Block enthält dabei immer eine Referenz auf seinen Vorgänger (Block 621180 verweist auf Block 621179) mittels eines sogenannten Hash-Codes.
Ein Hash-Code ist nichts anders als ein digitaler Fingerabdruck einer Datei. Mittels der Hashfunktion kann von einer Datei beliebiger Grösse eine hexadezimale Zeichenkette hergestellt werden. Ändert man nur ein Bit respektive nur ein Zeichen der Datei, ändert sich der digitale Fingerabdruck massgeblich. Ähnlich dem Konzept von öffentlichen und privaten Schlüssel, kann von einem Hash-Code nie die Ursprungsdatei hergestellt werden. Umgekehrt dauert die Berechnung respektive Validierung des Hash-Wertes nur Millisekunden.
Ein Block enthält auf eine bestimmte Art zusammengestellte Informationen:
Dadurch, dass ein Block unter anderem den Hash-Code seines Vorgängers enthält, werden die Blöcke untrennbar verkettet. Passt man den Inhalt des Vorgängerblocks nur um ein Bit oder Zeichen an, würde der errechnete Hash-Wert nicht mit dem im aktuellen Block angezeigten Code übereinstimmen. Je älter ein Block also ist, desto fälschungssicherer ist er, da eine Anpassung auf sämtliche nachfolgenden Blöcke einen Einfluss hat. Da die Blockchain gleichzeitig bei unzähligen Servern (Nodes) abgelegt ist, würde die Mehrheit der Netzwerkteilnehmer eine angepasste Version der Zeichenkette sofort bemerken und für ungültig erklären.
Das erfolgreiche Mining eines Blockes bedeutet, dass man den Hash-Code, der bestimmte Eigenschaften erfüllten muss, durch eine Unmenge Anzahl Versuche gefunden hat. Es existieren mittlerweile Computer, die in sogenannten Mining-Farmen betrieben werden, deren einziger Zweck es ist, so schnell wie möglich Hashs-Codes zu rechnen. Der letzte Teil des Blockes enthält die sogenannte Nonce. Dies ist eine Versuchsvariable, die durchprobiert wird, bis der Hash-Code bestimmte Voraussetzungen erfüllt.
Im Falle von Bitcoin bedeutet ein erfolgreiches Mining zum aktuellen Zeitpunkt, den Hash-Code beginnend mit 18 Nullen zu finden. Dieser lautet für Block Nummer 621180: 00000000000000000034cbe896bf63f31d7a437077cece6366646c89b3f00e68. Das heisst das Mining-Gerät passt die Nonce solange an, bis der Hash-Code mit 19 Nullen beginnt. Der Schwierigkeitsgrad des erfolgreichen Minings wird dabei vom System dynamisch erhöht, sodass bei Zunahme der globalen Rechenkapazität des Netzwerks mehr Nullen gefordert werden und im Durchschnitt immer noch alle 10 Minuten ein Block erfolgreich gemint
wird.
Mint man einen Block erfolgreich, erhält der betreffende Miner zum jetzigen Zeitpunkt 12.5 Bitcoins, also rund USD 100’000. Am 11. Juni 2020 reduziert sich diese Belohnung um die Hälfte. Nach einer weiteren Halbierung der Gutschrift soll schlussendlich die letzte Auszahlung im Jahre 2140 erfolgen.
Diese Gutschrift stellt eine Bezahlung vom System für die zur Verfügung gestellte Rechenleistung dar und erfolgt in der ersten Transaktion jedes Blocks, der sogenannten «Coinbase». Dies ist die einzige Transaktion pro Block, die keine «von-Adresse», sondern nur eine «an-Adresse» (öffentlicher Schlüssel) enthält. Des Weiteren erhalten Miner sämtliche Transaktionspesen des betreffenden Blocks.
Um effizienter zu minen, schliessen sich Gruppen von Minern mit spezialisierten Computern zu einem sogenannten Miningpool zusammen und teilen sich die Belohnung entlang der zur Verfügung gestellten Rechenkapazität auf. Minen kann im Prinzip aber bereits jeder Desktop-Computer. Das einzige, was benötigt wird, ist die Installation eines Programmes, Zugang zum Internet und eine ausreichend grosse Harddisk. Durch diese Eigenschaft kann das Bitcoin-Netzwerk im Prinzip so dezentral werden, wie das Internet selbst.
Nodes sind Beobachter und überprüfen unter anderem, ob der errechnete Hash-Code korrekt ist. Weiter vollziehen sie nach, ob die Transaktionen korrekt signiert worden sind. Miner arbeiten immer mit einer Node zusammen, da neben dem erfolgreichen Mining ein Teil der Aufgabe darin besteht, die Transaktionen und Blöcke zu validieren. Es existieren aber auch Nodes, die nur die Validierung übernehmen, entweder auf volontärer Basis oder im Zusammenhang mit einem Geschäftsmodell (beispielsweise der Betrieb einer Webseite mit entsprechenden Informationen zur Blockchain oder das Anbieten eines Online-Wallets [Zahlungsdienstleister]).[36]
Je mehr Nodes und Miner dem Netzwerk dienen, desto sicherer ist das Netzwerk selbst. Die Tatsache, dass eine realwirtschaftliche Leistung zum Betrieb des Netzwerks nötig ist, nämlich der Betrieb eines Miners und der Verbrauch von Energie, macht das System ebenfalls sicherer. Bei Bitcoin ist der Stromverbrauch also eine Sicherheitskomponente.
Dem System zugrunde liegt die Tatsache, dass Blöcke von verschiedenen Minern während ihrer Erstellung individuelle Inhalte aufweisen. Beispielsweise ist die Empfänger-Adresse der Coinbase-Transaktion jedes Mal unterschiedlich. Das heisst eine errechnete Nonce eines Miners muss nicht zwingend das richtige Resultat eines weiteren Miners darstellen; der Inhalt des Blocks (und damit die Nonce und der Hash-Code) variiert.
Signiert ein Benutzer seine Zahlung, wird diese via Wallet-Anbieter über das Netzwerk verbreitet und kommt in einen Pool pendenter Zahlungen. Je höher die angepriesenen Transaktionsspesen (werden durch den Benutzer definiert), desto schneller wird die Transaktion im Netzwerk zur Ausführung berücksichtigt. Ein Miner stellt die ausgewählten Zahlungen und den Inhalt der Blöcke nach vordefinierten Regelanweisungen grundsätzlich individuell zusammen.
Wenn der Miner die Nonce und den Hash-Code durch unzählige Versuche erfolgreich errechnet hat, verteilt er seine Erkenntnis so schnell wie möglich über das Netzwerk. Sobald ein Miner die Mitteilung erhält, dass ein Block erfolgreich gemint worden ist, leitet er dies an die weiteren Netzwerkteilnehmer weiter und validiert das Resultat. Das heisst jeder Miner prüft unter anderem: Wurden sämtliche Regeleinweisungen eingehalten? Führt die eingesetzte Nonce zum Hash-Code mit der geforderten Anzahl Nullen? Sind die Transaktionen korrekt signiert worden? Gelangt dieser zur Erkenntnis, dass alles korrekt ist, bricht er seine Arbeit für den aktuellen Block ab, fügt den neu gefundenen Block seiner Zeichenkette an, entfernt die soeben verarbeiteten Zahlungen aus seinem Pool der pendenten Zahlungen, stellt sich einen neuen Block mit den neu zu verarbeitenden Transaktionen zusammen und fängt mit der Suche nach der Nonce respektive dem korrekten Hash-Code für den neuen Block erneut an.
Es kommt vor, dass zum gleichen Zeitpunkt ein Block von unterschiedlichen Minern gemint worden ist. Beide Rechner verbreiten ihre Version der Realität schnellstmöglich über das Netzwerk. So ist es möglich, dass ein Teil des Netzwerkes an einer anderen Blockchain arbeitet. In diesem Fall prozessieren beide Netzwerkteile unterschiedlichen Realitäten (eine sogenannte Fork – oder auf Deutsch «Gabelung der Blockkette»). Sobald ein weiterer neuer Block einer Chain erfolgreich gemint worden ist, verbreitet der Miner wiederum sein Resultat. Erneut beginnt eine Validierung durch die Netzwerkteilnehmer. Diejenigen Miner, die an der anderen Blockchain gearbeitet haben, erkennen, dass ihre Chain eine geringere Anzahl Blöcke aufweist, das heisst sie ist weniger weit fortgeschritten. Sie brechen ihre Arbeit ab, validieren den Block der anderen Chain nach und beginnen mit der Hash-Berechnung der «korrekten Realität» erneut.
Im Quellcode der Software ist definiert, dass immer diejenige Chain gültig ist, die älter ist beziehungsweise an der am meisten gearbeitet wurde (im Sinne von Anzahl Blöcken). Um dies oder Teile der grundlegenden Software mit der gearbeitet wird zu ändern, benötigt es einen Mehrheitsentscheid.
Miner haben im Block die Möglichkeit, in einem bestimmten Teil der Meta-Daten eine Nachricht anzubringen. Man spricht auch von Signalisation. Um ein Software-Update durchzuführen, das neue Eigenschaften beispielsweise in Bezug auf die Sicherheit aufweist, muss nicht nur eine überwiegende Mehrheit der Miner für eine bestimmte Sache stimmen, sondern ebenfalls weitere Anspruchsgruppen einverstanden sein:
Um ein Software-Update umzusetzen, muss die überwiegende Mehrheit aller Parteien (in der Regel rund 95%), einen Konsens finden. Deshalb gilt Bitcoin Core (BTC) eher als träge, aber stabil.
Die Anspruchsgruppen verfolgen teilweise unterschiedliche Interessen. Im Sinne einer Schlussfolgerung des Autors ist es also beispielsweise aus kurzfristiger Sicht für Miner vorteilhaft, ein langsames Netzwerk zu unterhalten, weil dann Transaktionen mit Priorität von Nutzern mit hohen Spesen versehen werden, damit eine Verarbeitung schneller stattfindet.
Wird das Netzwerk nicht mehr verwendet, reduziert sich der Nutzungsgrad und damit automatisch auch der Preis. Das Interesse geht verloren. Dies wiederum wirkt sich negativ für die Miner aus, da sie in der Regel in teure Hardware investiert haben.
Es bestehen weitere Mechanismen, demokratische Entscheide herbeizuführen beziehungsweise Dezentralität sicherzustellen. Die Rede ist vom ressourcenschonenderen, sogenannten Proof of Stake-Ansatz. Die Vor- und Nachteile von Proof of Work (bei Bitcoin verwendet) und Proof of Stake sowie weiterer Ansätze aufzuzeigen, ist ein Thema für sich alleine. Festzuhalten ist lediglich, dass der Proof of Work-Ansatz (auf Deutsch: Nachweis der Arbeitsleistung) einen realwirtschaftlichen Hintergrund – nämlich den Stromverbrauch – hat. Dadurch gilt er für die Bitcoin-Anhänger grundsätzlich als sicherer. Der Strom wird in diesem Sinne nicht dazu verwendet, um Bitcoins zu schürfen, sondern um ein sicheres, dezentrales Netzwerk zur Verfügung zu stellen. Gleichzeitig ist aber die Anzahl Transaktionen pro Zeiteinheit aufgrund der Physik beschränkt. Bei anderen Blockchains wird angestrebt, die Vorteile der erwähnten Ansätze aus technischer und politischer Sicht zu vereinen.
Wie in einer Demokratie manchmal üblich, geht man separate Wege, wenn man sich nicht einig wird. Dieser Prozess nennt sich im Sinne der Blockchain-Technologie «Fork» (eine Gabelung). Dabei wird die Zeichenkette ab einem bestimmen Block gespalten, sodass ab diesem Zeitpunkt zwei Blockchains entstehen. Verfügte man vor der Fork über Währungseinheiten, ist man danach bei beiden Strängen berechtigt. Die so entstandene neue Blockchain, kann nun unterschiedliche Eigenschaften zu ihrer «Schwester» aufweisen. Dies bedeutet, dass sie allenfalls nicht im gleichen Umfang genutzt wird und die Geldeinheiten der neuen Chain unter Umständen weniger wert sind.
Forks werden grob in vier Gruppen aufgeteilt:
Es würde den Rahmen dieses Buches sprengen, auf die Details der einzelnen Ausprägungen einzugehen. Zu erwähnen sei lediglich, dass ähnlich einer Demokratie, Prozesse und Verhaltensregeln etabliert sind, die bei einem Diskonsens zur Anwendung gelangen. Logischerweise schwächt jede Art von Uneinigkeit Bitcoin in unterschiedlichen Dimensionen. So liegt es grundsätzlich im Interesse der Beteiligten, eine Übereinkunft zu finden.
Ein Bitcoin hat acht Stellen nach dem Komma (1.00000000). Man kann auch Bruchteile davon ausgeben beziehungsweise überweisen. Die kleinste Einheit, die achte Stelle nach dem Komma, nennt sich Satoshi.
Es bestehen weder Gebühren für die Kontoeröffnung noch für die -führung. Die einzigen Kosten für den Endnutzer sind Transaktionspesen.
Eine einmal durchgeführte Zahlung ist auf Basis der heutigen Systemarchitektur nicht stornierbar; sie ist irreversibel. Möglich ist eine Rücküberweisung, sofern der neue Eigentümer der Bitcoins zustimmt.
Verliert man den privaten Schlüssel, verliert man unwiderruflich den Zugriff auf seine Bitcoins. Eine Back-up Funktion, also eine Art Passwort-Wiederherstellung, existiert nicht im engeren Sinne der Blockchain-Technologie. Der Verlust eines privaten Schlüssels kommt im herkömmlichen Sinne am ehesten einer Kontosaldierung ohne Erhalt der Gelder gleich. Diverse Anbieter und teilweise Wallets verwalten die privaten Schlüssel von Endberechtigten zu Sicherheitszwecken und bieten fallweise Wiederherstellungsmechanismen an. Dies birgt aber wiederum auch Klumpenrisiken, weil mehrere private Schlüssel aggregiert durch eine Instanz zentral verwaltet werden.
Bitcoin ist die älteste aller Blockchains. Sie wurde auf Protokollebene unterdessen unzählige Male von Hackern angegriffen und dabei wieder und wieder getestet. Sie gilt im Vergleich zu anderen Blockchains als dezentralisiert, was ihr eine Trägheit in der Adaptionsfähigkeit, zugleich aber eine hohe Sicherheit verleiht. Unzählige Rechner auf der Welt haben eine Kopie dieser Zeichenkette, im Grunde genommen ein simples Dokument mit mehreren Gigabyte Grösse, bei sich lokal abgespeichert.
Hingegen gelten die abgespeicherten privaten Schlüssel einzelner Personen als Ziel von Hacker-Attacken, weshalb es unabdingbar ist, sorgsam damit umzugehen. Mehrere Anbieter ermöglichen die vergleichsweise sichere Speicherung privater Schlüssel auf eigens dafür vorgesehenen Speichermedien (Hardware-Wallets).
Bitcoin ist eine öffentlich einsehbare Blockchain und ist damit transparent. Unbekannt ist lediglich der jeweilige Inhaber des öffentlichen Schlüssels. Im Unterschied dazu existieren heute bereits Blockchains, die eine vollständige Anonymität gewährleisten; der Sender und Empfänger sind nach einer Transaktion nicht mehr nachvollziehbar.
Die Abkürzung der Währung lautet BTC. Während des Schreibens dieser Zeile liegt der Wert eines Bitcoins bei ca. USD 7’800 (Stand 11. März 2020), wobei die Wertentwicklung sehr volatil verlief. Die gesamte Marktkapitalisierung beträgt aktuell rund USD 224’000’000’000.
Die Wertbeimessung erfolgt unter anderem, wie bei durch staatliche Institutionen herausgegebenem Geld, nach dem Grad des Vertrauens der Benutzer in das System. Bitcoin wird von keiner zentralen Instanz beherrscht, sondern von einem Software-Code. Bitcoin ist global und kennt keine Landesgrenzen.
Derzeit besteht das Netzwerk aus rund 10’000 Nodes. Im Vergleich zu anderen Blockchains gilt das Bitcoin-Netzwerk derzeit noch als teuer und hat vergleichsweise mit längeren Bestätigungszeiten für Transaktionen zu kämpfen.