Bitcoins Technik in a nutshell

Bitcoin in a nutshell

Bitcoin zu erklären ist nicht so einfach. Obwohl das System gar nicht kompliziert ist, lässt seine Komplexität es durchaus so erscheinen. Und das macht es auch schwer es einfach zu erklären. Aber hier soll der Versuch stehen Bitcoin in verständlicher Weise so weit zu erklären, dass man als Neuling begreift worum es geht – ohne dabei zu sehr in Details zu gehen, dass man vor lauter Fachausdrücken gar nichts mehr versteht.

Am Beginn steht ein vielleicht erschütternder Fakt: Es gibt gar keine Bitcoins. Es gibt lediglich ein öffentliches Verzeichnis, oder besser eine Datenbank, von Transaktionen (public ledger) aller Teilnehmer des Bitcoin-Netzwerkes. Eine Transaktion ist im Prinzip nichts anderes als die Information, dass ein Teilnehmer einem anderen Teilnehmer einen bestimmten Betrag an Bitcoins überträgt. Jeder Teilnehmer des Netzwerks hat Zugriff auf diese Datenbank der Transaktionen, im Idealfall hat er sogar eine Kopie davon bei sich liegen (Cilents für Mobiltelefone haben z.B. “nur” Zugriff auf einen Datenbank die von einem anderem Gerät gehalten wird, das mehr Speicher zur Verfügung hat). Jeder Teilnehmer darf auch Transaktionen durchführen. Im Prinzip kann eine Transaktion ohne Gebühr durchgeführt werden. Da aber die “Sachbearbeiter” einer Transaktion diese Gebühren als Lohn für ihre Arbeit bekommen, wird es mit der Zeit (mehr dazu später) immer unwahrscheinlicher dass Transaktionen ohne angefügte Gebühr bearbeitet werden. Gar so gratis, wie man es oft hört, ist also das Überweisen von Bitcoins nicht.

“Es gibt gar keine Bitcoins.”

Die Teilnehmer sind alle miteinander über ein peer-to-peer Netzwerk verbunden. Solche Netzwerke funktionieren ohne zentralen Server. Jeder Teilnehmer ist ein gleichberechtigter Teilnehmer. Das heißt er ist gleichzeitig ein Server und ein Client. Der Vorteil davon ist, dass solche Netze sehr stabil sind. Es gibt einfach keinen zentralen Server der ausfallen und damit das gesamte Netzwerk lahmlegen kann.

Will Teilnehmer Alice nun Teilnehmer Bob z.B. 3 Bitcoins übergeben, so  meldet sie im Netzwerk eine Transaktion zum Eintrag in diese Datenbank an. Diese Meldung wird von den Teilnehmer des Netzwerkes verbreitet bis sie letztendlich zu allen Teilnehmern des Netzes gelangt ist. Jeder weiß nun: Alice will Bob 3 Bitcoins geben.
Weiters kann jeder Teilnehmer des Netzwerkes diese Meldung prüfen ob es sich um eine ordnungsgemäße Transaktion handelt. Hierfür wird zum einen geprüft ob die Transaktion von Alice digital signiert (vgl. unterschrieben) ist. Denn nur wenn Alice es auch wollte, sollten Bitcoins von ihr zu Bob wandern. Durch die Unterschrift ist das gewährleistet und jeder Teilnehmer im Netz akzeptiert nun den Willen von Alice.
Weiters wird auch geprüft ob denn Alice überhaupt ausreichend Bitcoins besitzt, um sie Bob geben zu können. Da alle Teilnehmer die Datenbank aller jemals durchgeführten Transaktionen vor sich liegen haben, können sie das leicht nachvollziehen. Angenommen Alice hat zuvor von Charly 2 Bticoins bekommen und irgendwann davor auch mal 4 von Bob, dann verfügt sie nun über 6 Bitcoins – sie kann also Bob jetzt 3 Bitcoins geben. Da Alice willens ist und auch über ausreichende Mittel verfügt*, akzeptieren nun alle Teilnehmer des Netzwerks diese Transaktion.Bob hat nun 3 Bitcoins mehr auf seinem “Konto” und Alice hat um eben diesen Betrag weniger Bitcoins auf ihrem “Konto” – die Transaktion war erfolgreich.
Die Prüfung ob Alice über ausreichende Mittel für die Transaction verfügt ist übrigens der Grund warum für die Behauptung mit Bitcoin gäbe es keinen Kredit mehr. Was natürlich so nicht stimmt. Einen Kredit in Bitcoins kann es natürlich trotzdem geben! Warum sollte man sich auch nicht Geld/Bitcoins ausleihen können und dieses dann (mit oder ohne) Zinsen zurückzahlen? Nichts anderes ist ein Kredit.

wallet
Ohne Wallet, keine Bitcoins

Die “Konten”, welche Alice und Bob verwenden sind keine Konten im üblichen Sinn. Bei Bitcoin handelt es sich um Wallets (Brieftaschen). Ein Wallet ist im Prinzip nur ein Paar aus einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel wird verwendet um Adressen für die Wallet (könnte man mit einer Konotnummer vergleichen) zu genieren. Diese Adresse darf ruhig öffentlich sein, schließlich ist es ja durchaus erwünscht, dass auf diese Adresse Bitcoins eingehen. Der private Schlüssel wird verwendet um Transaktionen digital zu signieren. Jeder Teilnehmer im Netzwerk hat mindestens eine Wallet. Bitcoins wandern also immer nur von einer Wallet in eine andere. Deshalb wird gerne behauptet, dass die Nutzung von Bitcoins anonym ist. Durch Analysen des public ledger (die Daten kann ja jeder einsehen) und dem persönlichen Verhalten von Teilnehmern kann man durchaus Rückschlüsse darauf ziehen, welche Person hinter welcher Adresse steckt. Man kann dies zwar auch relativ gut verschleiern, mehr dazu aber an anderer Stelle. Bitcoin ist also “nur” pseudonym.

“Woher kommen Bitcoins”?

mining
mining braucht auch ein Quäntchen Glück

Die eingangs erwähnten Überprüfungen beanspruchen einen gewissen Aufwand: es muss Strom, Hardware und Zeit zur Verfügung gestellt werden. Und das verursacht Kosten. Im Netzwerk übernehmen diese Aufgabe die so genannten “Miner”. Jeder Teilnehmer des Netzwerkes kann ein Miner sein (wir erinnern uns, wir sind ja in einem peer-to-peer Netzwerk). Miner führen die oben genannten Prüfungen durch, deshalb muss nicht jeder Teilnehmer selbst prüfen ob die erhaltenen Transaktionen korrekt sind. Für diesen Aufwand erhalten die Miner Bitcoins “aus dem Nichts”, wenn sie erfolgreich eine Prüfung durchgeführt haben. Da im peer-to-peer Netz die Transaktionen relativ chaotisch durch die Gegend flitzen, könnte es natürlich sein, dass zwei Miner die selbe Transaktion prüfen und freigeben. Das würde in unserem Beispiel bedeuten, dass Alice zweimal die 3 Bitcoins ausgeben kann. Dieses “double spending” ist natürlich nicht erwünscht. Bitcoin nutzt den proof of work um dies zu verhindern.

blockchain
Symbolbild für die Blockchain

Hierfür werden zum einen Transaktionen gesammelt. Jeder Miner schaut in seinen Pool an erhaltenen Transaktionen, welche denn nicht ohnehin schon im public ledger stehen. Findet er Transaktionen in seinem Pool, die bereits im ledger stehen, werden diese von ihm ignoriert. Die restlichen formt er zu einem Block (=er fasst diese Transaktionen einfach zu einer Gruppe zusammen). Diesen Block hängt er an den public ledger und bildet über das Ergebnis einen Hash.  Dies tun auch alle anderen Miner mit ihren Blöcken. Um zu verhindern, dass es nun Blöcke gibt in denen sich Transaktionen befinden, die auch in den Blöcken von anderen Minern vorkommen, was zu einem double spending führen würde, muss jeder Miner nun ein “Rätsel” lösen. Die “Lösung” des Rätsels ist ein Hash, gebildet aus dem Block an dem gemined wird, der eine bestimmte Eigenschaft aufweist. Im Fall von Bitcoin muss der produzierte Hash eine bestimmte Anzahl von führenden Nullen aufweisen. Ein Miner bündelt also nun Transaktionen zu einem Block, hängt diesen Block an die bereits vorhandenen Blöcke (das public ledger) an und bildet einen Hash. Hat der Hash zu wenig führende Nullen fügt der Miner seinem Block noch ein Zeichen hinzu, den “nonce”. Und wiederholt den Hashvorgang. Den nonce kann der Miner so lange erhöhen bis er dadurch einen Hashwert erhält der den Anforderungen des Netzwerkes genügt. Dann, und nur dann, erhält er als Belohnung die Bitcoins “aus dem Nichts”**. Den gefundenen Block gibt der Miner ans Netzwerk weiter. Alle Teilnehmer können nun, mit relativ wenig Aufwand prüfen ob der Block valide ist und den neuen Block an die alten im public ledger anhängen. Dadurch bildet das public ledger eine Reihe von miteinander verketteten Blöcken – die soganannte Blockchain.  Durch den proof of work herrscht Konsens darüber, dass dieser Block valide ist. Miner die ebenfalls an Blöcken arbeiteten, welche Transaktionen enthalten die in diesem validen Block enthalten sind, werfen nun diese Transaktionen über Bord, ergänzen ihren Block eventuell um neue Transaktionen, hängen den neu gefundenen Block der Konkurrenz an das bestehende public ledger an und beginnen wieder von vorne mit dem proof of work. Mit neuen Transaktionen hoffen sie diesmal der Schnellste zu sein. Die “Gier” der Miner nach neuen Bitcoins ist also die Absicherung des Netzwerkes.

Für das Finden eines Blocks gab es am Beginn 50 Bitcoins. Dieser Betrag halbiert sich alle 210.000. Blöcke Das hat zur Folge, dass die Gesamtanzahl aller jemals erzeugten Bitcoins nicht mehr sein wird als 21.000.000. Es können also nicht beliebig viele Bitcoins erzeugt werden.

Anzahl der Bitcoins ist durch diese Folge mathematisch bestimmt.
Anzahl der Bitcoins ist durch diese Folge mathematisch bestimmt.

Das war Bitcoin in a nutshell. Im Groben ist das alles was man wissen muss, um zu verstehen wie das System Bitcoin funktioniert. Die dezentrale Architektur verhindert, dass einzelne (Stichwort: single point of failure) das gesamte System kontrollieren bzw. nach ihren Wünschen verändern können. Außerdem ist das Bitcoin Netzwerk durch seine Dezentraliät extrem stabil. Durch einen zutiefst menschlichen Trieb, der Gier, wird das System abgesichert und damit eine böswillige Manipulation an den Transaktionen (wie zum Beispiel double spending) verhindert. Da Transaktionen nur zwischen Adressen stattfinden, ist das System obendrein auch noch pseudonym.

Was die Bedeutung der Technik von Bitcoin in der Ökonomie, der restlichen Technik oder in sozialen Bereichen haben wird, wird sich in den nächsten Jahren zeigen. Ich freue mich jedenfalls über Kommentare, Kritik, Diskussionen und Anregungen zu diesem Artikel!

 

*es wird natürlich noch einiges mehr gerprüft. Z.B. ob die verwendeten Adressen überhaupt valide sind u.v.m. Das ist aber für das systemische Verständnis nicht wichtig.

** Miner erhalten für das Finden von Blöcken zusätzlich auch noch alle Transaktionsgebühren der Transaktionen des gefunden Blocks. Damit haben sie auch noch einen Anreiz zu minen wenn die Belohnung an neuen Bitcoins immer weiter gegen Null geht.

2 Gedanken zu „Bitcoins Technik in a nutshell“

  1. Guter Artikel, leicht und verständlich für jedermann. Die Grundlagen sind gut behandelt worden. Was mit nicht ganz klar ist, ob die Nutzung von Bitcoins anonym ist? Kann man wirklich Rückschlüsse ziehen, wem ein Wallet bzw. eine Adresse gehört? Ich hätte gerne auch noch mehr darüber gelesen wie “proof of work” funktioniert, wodurch ja erst geprüft wird, ob ein Block valide ist.

    Freue mich schon auf die nächsten Artikel 🙂

    1. Vielen Dank für das Feedback!
      Bitcoin ist nicht anonym, Bitcoin ist pseudonym. Über das Beobachten von Zahlungssstömen kann man schon mittels Metadaten Rückschlüsse ziehen welche Person hinter einer Adresse steckt. Das kann man allerdings auch wieder vernebeln… (in der Theorie sogar relativ gut) Dazu werde ich wohl mal eine detaillierteren Artikel verfassen – nehme ich mit 😉
      Einen detailliertern Artikel zum pow? Viel mehr gibts dazu eigentlich gar nicht zu erzählen, außer man will in technische Details gehen (welche Headerdaten werden verwendet, welche Hardware schafft wieviel Hashrate und bedeutet damit welche Chance einen Block zu minen, usw). Ich überlege mir da vlt. noch einen Artikel dazu.

Schreibe einen Kommentar