Bitcoin, Blockchain & Co. — Die Wahrheit und nichts als die Wahrheit (überarbeitete Ausgabe 2021/22)

Text
0
Kritiken
Leseprobe
Als gelesen kennzeichnen
Wie Sie das Buch nach dem Kauf lesen
Schriftart:Kleiner AaGrößer Aa

Die Vergangenheit kann nicht mehr verändert werden



Die Bitcoin-Blockchain wird also von Minern abgesichert, die mit aufwendigen Rechenverfahren im Schnitt zehn Minuten brauchen, um eine Reihe von Transaktionen in einem Datenblock zu verschließen. Sie werden mit neu geschaffenen Bitcoins entlohnt, eben diesem Vorgang, den man auch „minen“ beziehungsweise im Deutschen „schürfen“ nennt.

Im Bitcoin-Netzwerk stehen dabei viele Miner in direkter, inter-nationaler Konkurrenz und wenn ein Block gefunden wurde, starten sie gleich mit der Berechnung des nächsten Blocks. Aber von wem erfahren sie, dass ein neuer Block gefunden wurde?





Wenn ein Miner erfolgreich das Puzzle gelöst hat, berichtet er das sofort an die an ihn angeschlossenen Nodes. Das sind die Rechner, die die bisherige Blockchain lokal gespeichert haben. Der Miner sendet ihnen den neuen Block mit der Bitte diesen Block an die lokal gespeicherte Kette anzuhängen. Die Nodes prüfen, ob der errechnete Hash richtig ist und wenn dem so ist, dann hängen sie diesen neuen Block lokal an ihre gespeicherte Kette an. Gleich-zeitig propagieren sie auch den neuen Block zu ihren Peers, also zu dem Nachbarknoten, mit denen sie verbunden sind.

Die Überprüfung, ob der gelieferte Hash mit dem vorliegenden letzten zusammenpasst, ist ein wesentlich einfacherer Rechen-vorgang, als das Minen an sich, sodass es „normale“ Computer leicht erledigen können. Dahinter steckt höchst effiziente Mathe-matik und dieser Umstand ist auch ein wesentliches Merkmal des Systems: Die Berechnung ist sehr schwierig und aufwendig, die Überprüfung sehr einfach und schnell.





Jeder Block wird also vom Miner an einen oder mehrere Nodes geliefert und diese senden den Block umgehend zu ihren jeweiligen Nachbarn, sodass nach kurzer Zeit alle Nodes und alle daran angeschlossenen Miner den neuen Block, nehmen wir einmal an, es sei der Block Nummer 10, kennen. Die Miner „ärgern" sich und stoppen die eigenen Bestrebungen, den Block 10 zu berechnen und beginnen umgehend mit Block 11.





Die Nodes hängen Block 10 an ihre Kette, die bisher mit Block 9 geendet hat, wenn er zu Block 9 passt und die Kette wird um einen Datenblock, mit den darin enthaltenen Transaktionen, verlängert. Technisch gesehen, sendet der Node den Block nicht automatisch weiter, sondern er wird von seinen Nachbarn gefragt, ob er einen neuen Block hat und der Node beantwortet diese Frage dann entsprechend und sendet den Block. Das ist für das Verständnis des Systems nicht relevant. Entscheidend ist nur, dass die neuen Blocks schnell im ganzen Netzwerk propagiert werden, damit die Miner nicht sinnlos an einem oder mehreren, bereits vorhandenen Blocks weiter rechnen.





Was passiert, wenn zwei Miner gleich schnell lösen?



Immer wieder kommt es allerdings vor, dass zwei Miner zum quasi gleichen Zeitpunkt einen Block lösen. Das kann nicht vermieden werden, denn alle Miner und alle Nodes sind ja völlig unabhängig voneinander. Jeder macht, was er will, sozusagen. Das ist ja auch der ganze Sinn in einem dezentralen Netzwerk, welches nicht mani-puliert werden kann. Einem Netzwerk, dass kein Mensch und kein anderer noch so schlau programmierter Computer kontrollieren kann.





An jeden Miner sind irgendwelche Nodes angeschlossen, die wiederum mit anderen Nodes kommunizieren. Dabei verbinden sich die Nodes mit den anderen Nodes, die sie am schnellsten erreichen. Das hängt davon ab, wie schnell die anderen Nodes mit dem Internet verbunden sind beziehungsweise ob sie gerade online sind und mit welcher Verbindungsqualität. Es ist wahrscheinlich, dass verschiedene Miner mit verschiedenen Nodes verbunden sind, die wiederum auch mit jeweils verschiedenen Nodes weiter verbun-den sind. Alleine deshalb schon, weil die Miner ja weltweit verteilt ist.





Deshalb kann es vorkommen, dass ein Teil des Netzwerks den Block 10 vom Miner A kennt und ein anderer Teil den Block 10 von Miner B. Miner B hat seine Berechnungen nämlich nur 17 Tau-sendstel Sekunden nach Miner A erfolgreich abgeschlossen. Es existieren also Block 10 A und Block 10 B.

Das wäre eine Katastrophe, weil die beiden Blocks ja unter-schiedliche Transaktionsdaten enthalten, die die Miner aus dem Transaktionspool genommen haben. In dem Block 10 A hat Alice 2 BTC and Bob gesendet, aber in Block 10 B ist diese Transaktion noch nicht berücksichtigt.





Streng genommen kann Alice nun also in dem Teil des Netzwerkes, welches den Block 10 B angenommen hat, ihre 2 BTC nochmals nutzen und an Carol überweisen. In dem B-Teil des Netzwerkes würde die Transaktion in dem folgenden Block 11 als gültig anerkannt werden. Damit hätte Alice ihre 2 BTC zweimal ausge-geben. Toll für Alice. Dumm gelaufen für entweder Bob oder Carol — eine weitere Problematik des digitalen Geldes, das Nakamoto erkannt und in seinem Ansatz gelöst hat.





Das sogenannte „Double Spending“-Problem



Double Spending bedeutet, dass man Geld zweimal ausgibt. Einmal aus seinen Guthaben und einmal, weil man es kann und weil es keiner merkt, dass man über gar kein Guthaben mehr verfügt, weil das Konto leer ist. Manche Experten schaffen es sogar zweimal Geld von einem leeren Konto zu überweisen. Richtig gute Betrüger sogar dreimal oder noch häufiger. Wie das geht?





Ganz einfach: Man schreibt Schecks aus und versendet diese durch die Republik. Der Empfänger, der den Scheck, den er erhalten hat, als erster einreicht und dessen Bank am schnellsten den Scheck gutschreibt, bekommt die Belohnung — nämlich die Gutschrift. Der zweite ist schon der erste Verlierer, denn das Konto des Scheckausstellers, früher auch als Scheckbetrüger bekannt, ist leer, der Scheck platzt und für den zweiten fallen zusätzlich auch noch Bankgebühren an. Das ist in Zeiten des Onlinebankings nicht mehr so einfach möglich. Die Menschen in den USA und in anderen Teilen der Welt zahlen aber immer noch sehr viel mit Schecks. Das ist traditionell die bevorzugte Zahlungsart und Schecks platzen so oft wie Luftballons in einer Nadelfabrik.





In der digitalen Welt und damit auch bei elektronischen Zahlungs-vorgängen, zählt die Double-Spending-Problematik zu den größten Herausforderungen, die den Fortschritt des digitalen Zahlungs-verkehrs aufhalten. Wie kann man sicherstellen, dass die Daten, die aus der einen Datei gelöscht sind, nicht nochmals versendet werden können? Wie leicht ist es, eine Datei zu kopieren und an Alice zu senden und dann noch eine Kopie an Bob, eine an Carol und eine an Dave und so weiter und so weiter?





Genau das wird doch zu jeder Sekunde mit Katzenvideos und Musikdateien gemacht. Soziale Netzwerke wie Facebook, Insta-gram und Twitter machen im Kern genau das und bringen so Menschen zusammen. Natürlich werden viele Daten widerrechtlich kopiert und verschickt. Musik wird raubkopiert, Filme schwarz kopiert und jeder tauscht elektronische Kopien von allem, was digitalisiert ist. Rechteinhaber erlebten und erleben eine dunkle Periode, in der alles, was digitalisiert werden kann, auch getauscht wird.

Es liegt im System selbst. Digitale Daten können kopiert und versendet werden. Auf Knopfdruck und per Mausklick. Nichts einfacher als das. Das ist das Problem bei digitalem Geld. Das ist das Double-Spending-Problem.





Nakamoto hat das Double-Spending-Problem mithilfe von Bitcoin gelöst



Natürlich bietet das Bitcoin-System auch dafür eine passgenaue Lösung. Es ist im System intrinsich vorgegeben, dass dieser Split, den man auch als „Fork“ (englisch „Gabel“) bezeichnet, automatisch aufgelöst wird.





Die Auflösung erfolgt umgehend mit dem Block 11, denn der passt, entweder bei 10 A oder bei 10 B nicht mehr. Warum?





Ganz einfach, der Miner, der Block 11 berechnet hat, kennt entweder 10 A oder 10 B. Sein Node hat ihn doch zuvor informiert und ihm entweder 10 A oder 10 B übermittelt, damit er damit beginnen kann, Block 11 zu berechnen. Er beginnt also Block 11 zusammenzurechnen, unter Berücksichtigung des Hashs von Block 10 und zwar entweder des Blocks 10 A oder eben 10 B — beide kann er nicht haben. Damit passt dann, bei erfolgreicher Berech-nung des richtigen Hash-Wertes, sein Block bei einem Teil der von den Nodes gespeicherten Blockchain und bei dem anderen Teil eben nicht.





Wenn er Block 11 auf Basis von 10 A berechnet hat, dann passt 11 A bei allen Nodes, die vorher 10 A hatten, aber nicht bei denjenigen, die 10 B gespeichert haben. Diese werden Block 11 A als ungültig zurückweisen und auf einen Block 11 warten, der mit ihrem gespeicherten Block 10 B kompatibel ist. Verwirrt? Man muss das einige Male durchdenken, dann wird es logisch und leicht nachvoll-ziehbar.





Jetzt ist auch das Rennen gestartet. Wenn ein Block 11 B kommt, dann wird dieser von den 10 B-Nodes angehängt und von den 10 A-Nodes abgelehnt. Zum einen, weil sie schon einen Block 11 haben, nämlich 11 A und zum zweiten, weil 11 B weder zu 10 A noch zu 11 A passt. Wie schnell kommt jetzt ein passender Block 12 ?





In immer seltener werdenden Fällen kommen tatsächlich ein 11 A und ein 11 B und dann ein 12 A, aber das ist schon sehr sehr selten, weil sich bei jedem Verteilvorgang potenziell immer mehr Nodes umentscheiden.

Ein Node ist auch wirtschaftlich programmiert und durch die Software so gesteuert, dass er, wenn Block 12 kommt und er noch keinen Block 11 hat „stutzig“ wird. Er kennt ja nur Block 10 und kann Block 12 nicht an Block 10 anbauen. Also sucht er beim Nachbarn einen gültigen Block 11, der dann nicht nur auf 10 passen soll, sondern auch der richtige für den Block 12 ist. Hört sich ein bisschen kompliziert an, ist aber sehr einfach.

 





Wenn der Node eine längere Kette beim Nachbarn findet, als er selbst hat, dann storniert und löscht er seine eigene Kette, die er lokal gespeichert hat, und übernimmt ab der Fork den Teil der Kette vom Nachbarn, der länger als seiner ist und auf den Block 12 passt. Im Beispiel von oben wäre Block 9 noch ein gemeinsamer, Blocks 10 und 11 sind jedoch beim Nachbarn andere. Allerdings passt der irritierende Block 12 auf 10 und 11 des Nachbarn. Flugs entscheidet sich der Node, seine Blocks 10 und 11 zu löschen und diese vom Nachbar-Node zu nehmen und an seinen Block 9 anzubauen. Dann passt auch der neue Block 12 an seine lokale Kette. Genial, oder?

Die in den verworfenen Blocks 10 und 11 vorhandenen Trans-aktionen werden wieder aufgelöst und in den Transaktionspool zurückgespielt. Dabei schaut der Node natürlich nach, ob die Transaktionen nicht auch in den Blocks, die er vom Nachbarn genommen hat, vorhanden waren und löscht diese aus seinem Transaktionspool. Die Differenz bleibt dann übrig. Sollte also nun die Transaktion von Alice schon dabei sein, dann ist diese weg und kann nicht mehr ausgeführt werden, weil sie ja schon ausgeführt wurde.













In den allermeisten Fällen betrifft eine solche Fork tatsächlich nur einen Block, der quasi zeitgleich gemint wurde und dessen Trans-aktionen dann als doch nicht erledigt zurückgegeben werden. In seltenen Fällen sind es zwei aufeinanderfolgende Blocks und in ganz seltenen Fällen können es mehr werden, aber das ist schon wieder so selten, dass man es getrost vernachlässigen könnte.





Es geht um viel Geld



Die Betonung liegt hier auf vernachlässigt werden „könnte“, wenn es keine Wertetranfers wären, die in der Bitcoin-Blockchain aufge-zeichnet werden sollen. Angenommen, es handelte sich um eine Transaktion mit einem Marktwert von 10 Millionen Euro, die ausgeführt wird und in eine Fork mit drei aufeinanderfolgenden Blocks gerät, die später verworfen wird? Nicht gut, oder?





Genau aus diesem Grund sollte man auf mindestens sechs Blocks Tiefe warten, wenn man hohe Werte überträgt, denn nach sechs aufeinander stehenden Blocks, wenn also alle Nodes — aus dem dem oben beschriebenen Beispiel — bei Block 16 sind, geht die mathematische Möglichkeit, dass ein Teil des Netzwerks immer noch auf einer unterschiedlichen Kette arbeitet, gegen null. Die meisten Nutzer der Bitcoin-Blockchain warten zwei Blocks ab, ganz sicher ist es eben nach sechs oder mehr Blocks. Wenn man also einmal 10 Millionen erhalten sollte, sollte man sechs Bestätig-ungen abwarten — dann gehören einem die 10 Millionen ganz sicher.





Es ist also die Verknüpfung einzelner Datenblocks mithilfe krypto-grafischer Verfahren in Verbindung mit der Verteilung auf vielen Tausend unabhängiger Computer, die alle selbst nachrechnen und selbst die Daten verwalten, die zur Wahrheit führt.





Bitcoin ist die technische Lösung, die blindes Vertrauen in Infor-mationen von einem völlig fremdem Dritten ermöglicht. Sie macht damit die Mittler, die vertrauenswürdigen Mittler, über-flüssig.





Natürlich ist das oben skizzierte System bei Weitem nicht komplett beschrieben und es dient auch nur dem generellen Verständnis eines Blockchain-Systems. Die technische Implementation ist nicht gerade trivial und es sind die intelligentesten Köpfe unserer Welt, die sich mit dieser Technologie beschäftigen und sie weiterent-wickeln.







Kapitel 3 — Wallets, Exchanges und das P2P-Netz

Wie man Bitcoins bekommt und verwaltet



Dieses Kapitel ist besonders wichtig, denn es gibt ein paar Dinge, die es unbedingt zu beachten gilt, wenn man Krypto-Währungen wie Bitcoin kaufen, besitzen oder aufbewahren möchte. Dem Autor ist es selbst passiert, dass er Bitcoins verloren hat, weil er nicht sorgfältig genug mit seinen Private Keys umgegangen ist. Die Hinweise in diesem Kapitel sind von großer Bedeutung und sollten deshalb sehr ernst genommen werden!





Im Zusammenhang mit Blockchain-Systemen nutzt man soge-nannte „Wallets“, um die zu einer bestimmten Adresse gehörenden Krypto-Einheiten, Coins oder Tokens anzuzeigen und zu verwalten. Ein Wallet — ins Deutsche würde man das Wort am besten mit „Geldbörse“ oder „Portemonnaie“ übersetzen — beinhaltet Adres-sen, denen Ergebnisse von Transaktionen zugeordnet sind oder werden. Das hört sich schon wieder kompliziert an, ist es aber auch dieses Mal nicht.





Eine Transaktion in einer Blockchain ist immer ein Transfer der jeweiligen Krypto-Einheiten von einem Teilnehmer zu einem anderen. Streng genommen von einer Adresse zu einer anderen. Die Teilnehmer können dabei auch Sensoren oder sonstige Computer-einheiten sein, die die transferierten Daten weiterverarbeiten können. Wenn die Temperatur im Raum 29 Grad übersteigt, sollen sie zum Beispiel die Jalousien schließen. Dafür braucht man zwar nicht immer eine Blockchain, aber es soll verdeutlichen, welche Arten von Wertetranfers in unserer modern Welt stattfinden können. Noch deutlicher wird es, wenn man sich vorstellt, dass ein E-Auto an einer roten Ampel hält und automatisch über eine Induktionsschleife, die in der Straße eingelassen ist, aufgeladen wird. Dafür zahlt das Auto der entsprechenden Straße für 32 Sekunden Strom 1 mBTC (Milli-Bitcoin) aus seinem Krypto-Wallet. Das ist eine Technologie, die bereits aktiv getestet wird, also kein Science-Fiction-Szenario. Natürlich können die Teilnehmer auch Menschen sein, die Werte erhalten oder Werte transferieren. Werte, zum Beispiel Krypto-Währungen wie Bitcoin, Ether und Co. — oder eine Krankenakte oder Identitätsinformationen, die auch schützenswerte Daten sind und somit hohe Werte darstellen.





All das wird über Wallets abgewickelt. Dieser Begriff hat sich weltweit etabliert. Ein Wallet ist also eine Stelle, an der man den Zustand beziehungsweise den Inhalt einer bestimmten Adresse in einer Blockchain ablesen kann und mittels derer man Werte transferieren kann — senden und empfangen. Vereinfacht gesagt, ist es eine spezielle Software wie ein Onlinebanking-Portal, auf dem man seinen Kontostand abrufen und Zahlungen vornehmen kann.





Adressen und Wallets



Neben dem Begriff Wallet ist der Begriff der „Adresse“ im Zusam-menhang mit Blockchains von Bedeutung. Eine Adresse ist dabei im Grunde nichts anderes als eine Postanschrift. Taubenweg 8 ist eine Adresse. Natürlich ist das in einem Blockchain-System etwas aufwendiger, denn Computer müssten den Taubenweg 8 erst einmal in Computersprache auflösen und übersetzen, um damit arbeiten zu können.





Das Problem besteht allerdings in der Länge der Adresse bezieh-ungsweise in der Eindeutigkeit der Adresse. Wie im echten Leben kann man an den Taubenweg 8 nichts versenden, wenn man nicht noch die Postleitzahl kennt und damit den Ort. Auch im realen Leben besteht eine Adresse aus mehr als nur dem Straßennamen. Innerhalb eines Blockchain-Systems muss es, zur eindeutigen Identifizierung des Empfängers, noch aufwendiger sein.





Hier ist ein Beispiel einer Adresse für den Krypto-Wert SIA:





2077ffcc79143aa8a1ba36ba934873f7e8d65085f212ce220dfacd267c8291e4d6ebc0923f09





und hier eine Bitcoin-Adresse:





1Po9VrtwJzHQycEDS3i9JojUUT4dkYteMs





Leicht kann man den Unterschied zwischen den beiden Adressen ausmachen und vor allen Dingen den Unterschied zwischen diesen und dem Taubenweg 8, 80547 München.





Adressen müssen über eine sehr wichtige Eigenschaft verfügen, die für den Erfolg eines Blockchain-Systems absolut kritisch ist: Sie müssen eindeutig sein.





Hinzu kommt noch, dass es unbedingt genügend davon geben muss — der sogenannte „Adressraum“ muss groß genug sein, um allen möglichen Anforderungen zu genügen. Dabei darf man sich noch nicht einmal als Obergrenze alleine auf die Anzahl aller lebenden Menschen beschränken, denn jeder kann theoretisch beliebig viele Adressen besitzen — das ist ein weiterer wichtiger Unterschied zur realen Welt. In den meisten Ländern ist es gesetzlich vorge-schrieben, einen Hauptwohnsitz anzumelden und einige haben noch einen Zweit- oder sogar Drittwohnsitz, zum Beispiel eine weitere Wohnung in der Nähe der Arbeitsstelle oder ein Woch-enendhaus. Auch diese Adressen müssen jedoch in der Regel bei den Behörden entsprechend angemeldet sein.





Jeder kann beliebig viele Bitcoin-Adressen haben



Ganz anders bei Blockchain-Systemen. Jeder Teilnehmer, ob Mensch oder Maschine, kann beliebig viele Adressen besitzen. Diese müssen noch nicht einmal der Blockchain bekannt sein, um dennoch wirksam zu funktionieren.





Das heißt, man muss seine Adresse bei keiner Behörde anmelden und kann so viele Adressen besitzen und nutzen, wie man wünscht. Wobei, seine Bitcoins bei den „echten“ Behörden anzumelden, macht unter Umständen Sinn. Besonders, wenn man mit Krypto-Währungen handelt und Gewinne erwirtschaftet. Dann sollte man das schon bei den Behörden, im Besonderen

Sie haben die kostenlose Leseprobe beendet. Möchten Sie mehr lesen?