Der Bitcoin Wahn
09.02.2018 | Markus Mezger
- Seite 2 -
Das klingt idealistisch, wirft aber in der Praxis einige wichtige Fragen auf: Wer prüft bei einer dezentralen Organisation, ob ein Nutzer überhaupt über ausreichend Guthaben verfügt, um einen Transfer zu tätigen? Warum sollte sich jemand den Aufwand machen, fremde Transaktionen zu prüfen und zu protokollieren? Was hat er davon? Und schließlich: Wenn viele Nutzer gleichzeitig ein Transaktionsregister führen, wie kann sichergestellt werden, dass es nicht zu Datenkonflikten durch gleichzeitige Zugriffe kommt? Wie kann ein für jeden Nutzer einheitliches und eindeutiges Transaktionsregister sichergestellt werden?Ich will zunächst diesen Fragen nachgehen, weil durch deren Klärung auch die Antwort auf die wichtigste aller Fragen, nämlich die wie ein Bitcoin überhaupt geschaffen wird, gegeben wird. Die Prüfung der Berechtigung, einen Bitcoin-Transfer vornehmen zu können, erfolgt über eine verschlüsselte Signatur. Sie ist ein Kernstück der Bitcoin-Technologie. Jeder Bitcoin-Netzwerkteilnehmer verfügt über einen privaten Schlüssel, der nur ihm bekannt ist (er wählt eine Zahl mit bis zu 78 Stellen), und einen für andere Teilnehmer sichtbaren öffentlichen Schlüssel, der aus dem privaten Schlüssel errechnet wird. Details seien Ihnen an dieser Stelle erspart.
Wichtig zu wissen ist lediglich, dass die Rechenoperation nicht umgekehrt werden kann. Aus dem sichtbaren öffentlichen Schlüssel können also keinerlei Rückschlüsse auf den privaten Schlüssel gezogen werden. Da der öffentliche Schlüssel eine unhandlich lange Zahl ist, hat sich in der Praxis anstelle des öffentlichen Schlüssels die wesentlich kürzere Bitcoin-Adresse durchgesetzt. Die Bitcoin-Adresse wird mit einer mathematischen Funktion (doppelte Hash-Funktion) aus dem öffentlichen Schlüssel errechnet.
Die Bitcoin-Adressen sind die Pseudonyme der Netzwerkteilnehmer. Will ein Netzwerkteilnehmer einen Transfer von Bitcoin-Einheiten durchführen, so versendet er eine Transaktionsnachricht, seinen öffentlichen Schlüssel und eine dazu passende zweiteilige Signatur an andere Netzwerkteilnehmer. Sobald diese die Nachricht empfangen haben, können sie durch mathematische Funktionen die Signatur entcodieren und überprüfen, ob die Signatur zum mitgegebenen öffentlichen Schlüssel paßt. Gleichzeitig können Netzwerkteilnehmer überprüfen, ob die Bitcoin-Adresse, die als Sender angegeben ist, über ein entsprechendes Guthaben verfügt.
Für jede Bitcoin-Transaktion muß eine Bitcoin-Adresse für den Sender und eine Bitcoin-Adresse für den Empfänger angegeben sein. Das Bitcoin-System enthält keine Bestände, sondern eine vollständige Liste aller jemals stattgefundenen Bitcoin-Transaktionen. Daraus ist für jeden Netzwerkteilnehmer öffentlich einsehbar, welche Bitcoin-Einheiten zu welchem Zeitpunkt von einer Bitcoin-Adresse zu einer anderen Bitcoin-Adresse geflossen sind. Ein Traum für jeden Notenbanker, wenn so etwas bei Bargeld möglich wäre.
Stellen Sie sich vor, jeder Bargeldschein würde von der Notenbank mit einem Chip ausgestattet, der Ihre Fingerabdrücke verzeichnet und den Zeitpunkt, wann er von wem zu wem geflossen ist. Zwar nicht mit Namen und Adresse, aber immerhin unter Angabe eines Pseudonyms. Daraus ließen Praxiswerte über Umlaufgeschwindigkeit, Ausgabe- und Investitionsverhalten gewinnen, die andernfalls oft mühsam geschätzt werden müssen. Aber nicht nur für Geldpolitiker ist das ein Traum, sondern auch für alle im Handel tätigen Unternehmen, deren Datenneugier ja ohnehin schon kaum zu bremsen ist.
Wenn Sie zu einem Netzwerk wie Bitcoin Zuflucht nehmen, dann ist es vermutlich das Letzte, was Sie wollen, dass alle Netzwerkteilnehmer jede einzelne Ihrer Geldüberweisungen, und wenn auch nur unter einem Pseudonym, verfolgen können. Also werden Sie viele Pseudonyme generieren, zwischen denen Sie wie ein Hütchenspieler so lange Bitcoins hin und herschieben bis für Außenstehende ihre tatsächlichen Transaktionen nicht mehr nachvollziehbar sind. Die Verwaltung von vielen Pseudonymen, die aus privaten und öffentlichen Schlüssel berechnet wurden, wird schnell unübersichtlich.
Deswegen übernimmt ein Programm, Wallet (Brieftasche) genannt, die Verwaltung der "Guthaben", die ihnen unter den verschiedenen Pseudonymen, bzw. Bitcoin-Adressen zugeschrieben sind. Teilweise wird für jede Transaktion von Bitcoin-Einheiten eine neue Bitcoin-Adresse generiert. Beispielsweise könnte es sein, dass Sie eine Ware verkauft haben und einer Ihrer Bitcoin-Adressen dafür ein ganzer Bitcoin gutgeschrieben wurde. Nun möchten Sie für den Kauf einer anderen Sache aber nur einen halben Bitcoin ausgeben.
Die Wallet spaltet den ganzen Bitcoin, den Sie erhalten haben (Transaktionsinput) in zwei Transaktionen zu je einem halben Bitcoin auf (Transaktionsoutput): eine zugunsten der Bitcoin-Adresse des Verkäufers und eine zugunsten einer neuen Bitcoin-(Wechselgeld)Adresse. Die Teilnahme am Bitcoin-System ist also alles andere als trivial. Bitcoin wird das Bargeld oder einfache Kontoüberweisungen nicht ersetzen können. Noch wird es in der Breite Online-Überweisungen ersetzen können. Für die überwiegende Mehrheit der Bevölkerung sind Bitcoin-Transfers aufgrund ihrer Komplexität nicht geeignet. Dem Wachstumspotenzial von Bitcoin sind enge Grenzen gesetzt. Dies sollte man bei einer Investition im Hinterkopf haben.
Aber kommen wir zu den Transaktionsvorschlägen zurück, die einzelne Netzwerkteilnehmer an andere propagieren. Prinzipiell ist die Überprüfung der Signatur für jeden Teilnehmer machbar. Dies verursacht jedoch nicht zu vernachlässigende Kosten für Rechnerhardware und Strom, da allein für die Verifizierungsfunktion eine Kopie des kompletten Transaktionsregisters auf dem eigenen Rechner gespeichert werden muß (der Speicherplatzbedarf liegt zum 1. Februar 2018 bei knapp 150 Gigabyte, Tendenz weiter steigend).
Zudem sollen eingehende Transaktionsnachrichten im Netzwerk laufend weiterverbreitet werden. Wenn neben der Generierung durch die Wallet Transaktionen auch noch verifiziert und verbucht werden können, dann spricht man von einem vollwertigen Knoten (Full Node) des Bitcoin-Netzwerks. Aber warum sollte sich jemand den Aufwand machen, den Rechner permanent laufen zu lassen, um die Transaktionsnachrichten Dritter zu verbreiten, ihre Signatur zu überprüfen oder sie gar in einem aufwendigen Verfahren in die Transaktionsliste aufzunehmen? Die Antwort ist verblüffend: Weil man durch neugeschaffene Bitcoin-Einheiten dafür entlohnt wird.
Bitcoins werden nämlich wie jede Form des Fiat-Money aus dem Nichts geschöpft. Und zwar für die Teilnehmer des Bitcoin-Netzwerks, die Transaktionen in der öffentlichen Transaktionsliste festhalten. Diese besteht aus aufeinander aufbauenden Transaktionsblöcken (Blockchain). Jeder Block, in dem mehrere neue Transaktionen gebündelt sind, hat eine eindeutige Blockidentifikationsnummer. Gleichzeitig ist im Blockkopf (Block Header) auch die Blockidentifikationsnummer des Vorgängerblocks vermerkt. So entsteht eine wachsende Kette von Blocks mit allen jemals getätigten Transaktionen, die sich eindeutig referenzieren.
Da es für die Fertigung eines neuen Blocks neue Bitcoins gibt, wollen möglicherweise viele Netzwerkteilnehmer die Kette gleichzeitig erweitern. Die Folge wäre eine Kette, die sich immer mehr verzweigt und in denen Transaktionen ggf. doppelt festgehalten sind.
Das Bitcoin-Netzwerk versucht diese Problematik mit zwei Ausgestaltungsmerkmalen zu lösen. Erstens haben sich die Bitcoin-Netzwerkteilnehmer zu dem Konsens zusammengefunden, dass nur der längste Zweig, also der Zweig mit der größeren Anzahl von Blocks zum letzten eindeutigen Vorgängerblock, fortgesetzt wird. Der andere Zweig wird verworfen. Die Netzwerkteilnehmer, die diesen Zweig gefertigt haben, gehen leer aus, während die Schöpfer des längeren Zweiges ihre volle Entlohnung in Form neuer Bitcoins erhalten.
Die Problematik der Verzweigung besteht natürlich insbesondere dann, wenn viele Netzwerkteilnehmer gleichzeitig in Sekundenschnelle neue Blocks an die Blockkette anfügen können. Deswegen wurde als zweite Maßnahme im Bitcoin-Netzwerk ein künstlicher Schwierigkeitsgrad für die Erstellung eines gültigen Blocks eingeführt. Im Bitcoin-Netzwerk kann ein neuer Blockkandidat nur dann an die Blockkette angefügt werden, wenn seine Blockidentifikationsnummer einem bestimmten, vom Bitcoin-Netzwerk vorgegebenen Schwellenwert, genügt. Die Netzwerkteilnehmer wetteifern darum, als Erster das Schwellenwertkriterium zu erfüllen.