Wie funktioniert Bitcoin?

Ein Versuch das zugrundeliegende Konzept für Einsteiger verständlich zu erklären.

Dezentral


Anders als bei einem klassischen Banksystem oder anderen Online-Währungen wie zb. Paypal gibt es keinen zentralen Server, der eine besondere Rolle spielt. Auf technischer Ebene sind alle Teilnehmer im Bitcoin-Netzwerk in einer peer-to-peer Architektur organisiert und völlig gleichberechtigt.

Auch bekannte Dienste wie zum Beispiel blockchain.info oder blockexplorer.com (dort kann man Transaktionen einsehen) spielen für das eigentliche Bitcoin Netzwerk und dessen Funktionieren keine Rolle. Das sind bloß Dienste die sich rund um Bitcoin angesiedelt haben. Das wird häufig verwechselt. Aber selbst wenn all diese auf Bitcoin bezogenen Dienste und Webseiten morgen aus dem Internet verschwinden würden (oder zensiert werden würden), Bitcoin würde nach wie vor funktionieren.

Bei allen bisherigen Bank- und Buchhaltungssystemen gibt es eine zentrale Instanz, eine Datenbank, in der gespeichert wird, welches Konto gerade welchen Kontostand hat. Wenn nun Benutzer A Geld von seinem Bankkonto auf das Konto von Benutzer B überweist, wird in dieser zentralen Datenbank der Betrag beim Kontostand von A reduziert und bei B erhöht.

Aber was bedeutet nun dezentral? Wenn jeder Benutzer seinen Kontostand selbst speichern würde, was hindert ihn daran den eigenen Kontostand zu manipulieren? Das führt uns zum nächsten Punkt:

Transaktionen statt Kontostände


Es gibt keine Kontostände.

Natürlich kann ich die Wallet meiner Wahl oder Webseiten wie blockchain.info öffnen und sehe dort sofort den aktuellen "Kontostand" meiner Bitcoin-Adresse. Tatsächlich gespeichert wird im Bitcoin Netzwerk (in der sogenannten "Blockchain") aber nicht diese Zahl, sondern stattdessen nur alle Transaktionen zwischen allen Bitcoin-Adressen, die jemals stattgefunden haben. Und zwar öffentlich. Seit Anbeginn von Bitcoin (am 3.1.2009).

Somit kann jeder weltweit nachvollziehen, wann welcher Betrag von welcher Adresse zu welcher Adresse bewegt wurde. Wenn man nun alle Transaktionen von Anfang an bis zum heutigen Tag durchgeht, weiß man am Ende genau welcher Betrag auf welcher Adresse gelandet sein muss. That's it. So wird bestimmt welche Adresse jetzt in diesem Moment welchen Kontostand hat. Genau das macht jeder einzelne Bitcoin-Client. Und nachdem das alle weltweit machen, kann ein einzelner nicht betrügen und einfach bei seinem eigenen Konto ein paar Transaktion weglassen oder dazuschummeln. Alle anderen würden sehen, dass er schummelt. Daher die Sicherheit.

TODO: Evtl. hier eine Grafik mit verschiedenen Kontoständen verschiedener Adressen nach mehreren Transaktionen einbauen.

Zum Vergleich: rein technisch gesehen wäre es bei einer klassischen Bank kein Problem, am zentralen Buchungsserver eine Zahl auszutauschen und bei deinem Konto einfach den Kontostand zu halbieren. Allerdings vertrauen wir darauf, dass die Banken das nicht tun. Hier liegt der Unterschied, bei Bitcoin muss man nicht vertrauen. Man hat die Sicherheit durch Kontrolle.

Wie bekommt man eine Bitcoin "Kontonummer"?

Ok, wie kommt man denn nun an ein Bitcoin "Konto". Wenn es keine zentrale Bank oder Webseite gibt, wo ich mir ein Konto eröffnen kann, wie geht das dann?

Die Antwort ist ganz einfach und klingt so simpel, dass es für einige die das zum ersten Mal hören, am Anfang einfach zu simpel klingt, um das glauben zu können:

Man denkt sich einfach eine aus.

Ok, ganz so einfach ist auch nicht, aber im Prinzip läuft es darauf hinaus. Zur Erklärung muss man aber kurz darauf eingehen, was denn Bitcoin-Adressen eigentlich genau sind:

Bitcoin Adressen:

Hinter Bitcoin Adressen so wie man sie kennt, steckt in Wirklichkeit ein Paar bestehend aus 2 Schlüsseln:

Zwei dieser Schlüssel (geheimer und öffentlicher Schlüssel) gehören immer untrennbar zusammen. So ein Paar hat dabei die geniale Eigenschaft, dass man mithilfe des öffentlichen Schlüssels mathematisch beweisen kann, dass man den dazugehörigen geheimen Schlüssel besitzt, ohne dass man den Geheimschlüssel jemals herzeigen muss (im Gegensatz dazu: das Losungswort beim Sparbuch früher, musste man der/dem Bankangestellten sagen, der wusste das dann auch - das ist bei Bitcoin eben nicht so).

Und was ist dann die Bitcoin Adresse? Eine Bitcoin Adresse (zum Beispiel: 19bLDxjsV63oF14P38LhDZmfKUApNeqFi6) ist nun eine spezielle Ableitung aus dem öffentlichen Schlüssel. Also im Prinzip: man nimmt den öffentlichen Schlüssel her, wandelt den ein wenig um, er wird dadurch etwas kürzer, und als Ergebnis erhält man die Bitcoin Adresse (vereinfacht gesagt).

Wir fassen zusammen, es gibt also:

Wenn man den privaten Schlüssel kennt, kann man daraus (mathematisch) den öffentlichen Schlüssel berechnen und aus dem öffentlichen Schlüssel wiederum kann man die Bitcoin Adresse berechnen.

Private Key >>> Public Key >>> Bitcoin Adresse

Allerdings nur in diese Richtung. Andersrum geht das nicht. Aus einer Bitcoin Adresse kann man nicht den public key errechnen. Und aus einem public key kann man nicht den private key errechnen. Das ist wesentlich für die Sicherheit des gesamten Systems.

Was ist ein Private Key?

Was genau ist denn nun dieser private Schlüssel aus dem sich schlussendlich auch die Bitcoin Adresse ergibt?

Ganz einfach: eine zufällig gewählte Zahl von 1 bis 115792089237316195423570985008687907853269984665640564039457584007908834671663
(das ist das Ergebnis von: 2256– 232– 977 und ist eine Primzahl)

Nur falls sich jemand wundert: üblicherweise wird bei Bitcoin der private key in einer anderen, etwas kürzeren Schreibweise dargestellt, diese beginnt dann meistens mit der Ziffer "5" oder den Buchstaben "K" oder "L". Zum Beispiel: 5KJvsngHeMpm884wtkJNzQGaCErckhHJBGFsvd3VyK5qMZXj3hS)

Die menschliche Vorstellungskraft tut sich etwas schwer mit sehr großen Zahlen. Aber diese Zahlen sind so groß, dass selbst wenn man seit Anbeginn des Universums1 versuchen würde alle Zahlen durchzuprobieren, jede Sekunde ca. 269000000000000000000000000000000000000000000000000000000000 Zahlen (diese Zahl ist 60 Ziffern lang) ausprobieren müsste, um bis heute alle Zahlen ein einziges Mal durch zu sein. (Nochmals: so viele Zahlen müsste man JEDE Sekunde seit dem Urknall durchprobieren! Es ist somit wirklich sehr sehr sehr sehr unwahrscheinlich - praktisch gesehen so gut wie unmöglich - dass zwei Personen, wenn sie wirklich zufällig eine Zahl aus diesem Bereich wählen, denselben geheimen Schlüssel wählen.)

Wie sieht das im alltäglichen Umgang aus?

Keine Angst, das klingt alles furchtbar kompliziert, aber als Benutzer von Bitcoin hat man selbst direkt nicht viel mit diesen Details zu tun. Das erledigt die Wallet Software für einen. In der Wallet sind deine Bitcoin Adressen und die dazu passenden privaten Schlüsseln gespeichert.

Wenn man also bereits Bitcoin besitzt und diese an jemand anderen überweisen möchte, braucht man nur die Bitcoin-Adresse des Empfängers (zum Beispiel: 19bLDxjsV63oF14P38LhDZmfKUApNeqFi6). Damit man diese lange Wurst an Zahlen und Buchstaben nicht manuell eingeben muss, werden heutzutage zumeist QR-Codes verwendet, die man mit der Kamera eines Smartphones einfach abscannen kann. Zum Beispiel:

QRCode

Gerade in der Umsetzung sind noch weitere Hilfstechnologien (Stichwort: Payment Protocol) die einem das Handling dieser komplizierten Addressen noch weiter erleichtern werden.

Zusätzlich beinhalten Bitcoin-Adressen eine Prüfsumme. Dadurch kann die Wallet-Software sofort erkennen, wenn man sich bei einem oder mehreren Zeichen vertippt hat.

Abschließend klickt man in der eigenen Wallet nur mehr auf "Senden" und der Empfänger (genaugenommen die gesamte Welt) sieht binnen weniger Sekunden, dass diese Transaktion im Bitcoin Netzwerk unterwegs ist. Für kleinere Beträge beim täglichen Einkauf (zum Beispiel Pizza bestellen) reicht das in der Regel bereits aus, um vertrauen zu können, dass die Bezahlung erfolgt ist.

That's it! :-)

Weiterführende Informationen:

Ok, zugegeben, natürlich ist das noch nicht ganz alles.

Damit eine Transaktion auch wirklich unumkehrbar weltweit in der Blockchain verankert wird (vor allem um sicherzustellen, dass niemand 2 einander widersprechende Transaktionen ins Netzwerk sendet, die dasselbe Geld 2x an verschiedene Ziele sendet - also Bitcoins doppelt ausgibt - sog. "double spending") gibt es in der Blockchain weitere Mechanismen, die diese Sicherheit gewährleisten, ohne dabei auf zentrale Kontroll-Instanzen angewiesen zu sein.

Auch die Grundfrage wie neu geschöpfte Bitcoin in Umlauf gebracht werden, wird dort geregelt. Weitere Infos dazu im folgenden Artikel: Mining & Co: Wie funktioniert die Blockchain?




Weitere Links zum Thema




1 Alter des Universums (laut Wikipedia) 13,80 ± 0,04 Milliarden Jahre = umgerechnet in Sekunden ungefähr: 4.3×1017