Wie funktioniert Bitcoin?

Gemeinsam werfen wir in möglichst einfacher Weise und ganz ohne Mathematik einen Blick hinter die Kulissen von Bitcoin.

Bitcoin ist weitaus mehr als nur eine Kette von Blöcken, welche zu einer Blockchain führt. Auf dieser Seite findest du anhand von Grafiken heraus, was Bitcoin zu einer undurchdringbaren Festung macht. Eine bildliche Vorstellung des Bitcoin Blockchain-Netzwerkes hilft die spieltheoretischen Systeme besser zu verstehen und zeigt auf, wieso sich Bitcoin von allen anderen Blockchain Projekten abhebt. Ich spreche hier spezifisch vom Blockchain-Netzwerk, da Bitcoin auch ein Zahlungsnetzwerk (Lightning) auf einer zweiten Ebene besitzt. Dieses beeinflusst jedoch die Struktur des Blockchain-Netzwerkes nicht und baut lediglich darauf auf. Wir vergessen also Lightning und konzentrieren uns auf das Fundament.

Bevor wir beginnen erläutern wir einige Begriffe:

  • Full Node: Ein Knotenpunkt im Bitcoin-Netzwerk. Jeder kann die Bitcoin-Software herunterladen und einen Node betreiben. Ein Node hält eine Kopie der Blockchain, empfängt Transaktionen und Blöcke, kontrolliert diese, speichert sie und sendet sie weiter. Du kannst mit einem Node Transaktionen erstellen und diese ins Netzwerk leiten. Beim Empfangen von Bitcoin kannst du kontrollieren, ob du nicht übers Ohr gehauen wirst.
  • Peer: Ein englisches Wort für Gleichgestellter oder Ebenbürtiger. Jeder Node ist ein Peer eines anderen Nodes und umgekehrt. Etwas flapsig ausgedrückt ist ein Peer in unserem Kontext ein „Verbindungspartner“.
  • Miner: Miner sind Nodes, welche zusätzlich noch Proof of Work (PoW), also einen Beweis von Arbeit erbringen und somit um das Recht ringen, neue Informationen in die Blockchain zu schreiben. PoW dient dazu, das doppelte Ausgeben von BTC unmöglich zu machen und Transaktionen und Blöcke in eine chronologische Reihenfolge zu bringen. Miner erlangen eine Belohnung (Block Reward) plus Transaktionsgebühren für jeden erarbeiteten Block. Durchschnittlich wird alle 10 Minuten ein Block gefunden, egal wie viele Miner partizipieren und alle 4 Jahre halbiert sich die Belohnung pro Block. Diese Halbierung wird durch Full Nodes durchgesetzt und ist der Mechanismus für die Limite von 21 Millionen Bitcoin.
  • Pool: Da ein kleiner Miner nur wenig Rechenleistung hat, findet er nur sehr selten einen Block. Um regelmässige Einnahmen zu erzielen, stellen Miner ihre Rechenleistung einem Pool zur Verfügung. Dieser betreibt einen Node und entscheidet an welchem Block die Miner arbeiten sollen. Findet ein Miner des Pools die Lösung für einen Block, so wird die Belohnung an alle Teilnehmer nach erbrachter Leistung verteilt.
  • Blockchain: Eine Datenbank welche jeder Node gespeichert hat. Die Datenbank besteht aus einer Reihe von Blöcken, welche miteinander verknüpft sind und eine Kette bilden. Jeder Block enthält Informationen darüber wer welche bitcoin besitzt. Alle 10 Minuten werden Transaktionen in einem Block gebündelt und ein Miner welcher das PoW Rätsel löst darf einen neuen Block an die Blockchain anfügen.

Nun wissen wir grob wer die Teilnehmer sind und sehen uns das Spielfeld an. In folgender Grafik siehst du eine herunterskalierte Version des Bitcoin-Netzwerkes mit 1000 Nodes. Jeder Node hat 8 Verbindungen zu anderen Nodes, da dies die Standardeinstellung ist.
Mein Node ist irgendwo darin versteckt und deiner auch, falls du einen betreibst. Die Nodes von Blockstream.info, Bitmain und Coinbase sind drin und falls Satoshi noch unter uns ist, ist auch sein Node irgendwo im Netzwerk vorhanden.

 

In der Realität besteht das Netzwerk aus etwa 100’000 Nodes. Es ist nicht rund, sondern über die ganze Welt verteilt. Niemand weiss genau wie es aussieht, da es im Hinblick auf Privatsphäre konstruiert wurde. Ein einzelner Node kann zudem mehr oder weniger als 8 Verbindungen haben und diese können jederzeit gewechselt werden.

 

 

 

Die erste Grafik ist wichtig, da sie einen elementaren Aspekt des Bitcoin-Netzwerkes veranschaulicht. Jeder Node ist gleich. Jeder Node kontrolliert und validiert alles vollständig. Dies wird sich als wichtig herausstellen, sobald wir tiefer in die Materie eintauchen.

Die Nodes weiter aussen sind gleich wie die Nodes in der Mitte. Alle haben dieselbe Anzahl von Verbindungen zu anderen Nodes. Wenn du einen neuen Node in Betrieb nimmst, sucht er sich automatisch Verbindungen zu Peers, fragt sie um Teile ihrer Blockchain an, lädt sie herunter und kontrolliert jede einzelne Transaktion vom ersten Block im Jahre 2009 bis heute. Daraus entsteht eine neue vollständig überprüfte Version der Blockchain, welche den Bitcoin Regeln entspricht.

Die längste Distanz von einem Node zum anderen ist in unserem Beispiel 4. Ich sende eine Transaktion an 8 Nodes, welche diese wiederum an 8 Nodes senden usw. bis sich die Transaktion durch das Netzwerk zu allen Nodes verbreitet hat. In der realen Welt ist die längste Distanz 6, wobei diese Zahl variieren kann. Der Mechanismus, welcher automatisch Verbindungen erstellt, tut dies nicht in perfekt gleichmässig verteilter Weise und einige Node Betreiber entscheiden sich mit weniger Nodes verbunden zu sein. Der Punkt ist, dass mehr Nodes die Verbreitung von Transaktionen nicht behindern aber auch nicht beschleunigen. Das Netzwerk wurde mit Hinsicht auf „Hops“ konstruiert. Transaktionen und Blöcke verbreiten sich in Windeseile durch das Netzwerk, vorausgesetzt sie sind gültig!

 

Wie gelangt eine Transaktion in einen Block?

Im folgenden Beispiel habe ich „meinen“ Node aus dem Netz gezogen, um zu demonstrieren, wie eine Transaktion in das Netzwerk geleitet wird. Du siehst meinen Node auf der rechten Seite, welcher mit acht weiteren Nodes (Peers) verbunden ist.

 

Jetzt will ich einen bitcoin an meinen Freund Vladimir in Moskau senden. Er schickt mir seine Adresse und ich kopiere diese in mein Wallet. Als erstes erstellt mein Wallet eine Transaktion, welche im Grunde nichts anderes als folgende Botschaft ist.

„Ich will einen bitcoin an Alex senden, hier ist der Beweis, dass ich diesen besitze, hier ist die Adresse von Alex und ich zahle folgende Belohnung für die Miner“

Sobald meine Peers die Botschaft empfangen, fangen sie an die Transaktion nach dem Bitcoin-Regelwerk zu überprüfen. Sie schauen in ihrer Kopie der Blockchain nach, ob dieser bitcoin schonmal ausgegeben wurde, kontrollieren ob meine Schlüssel zu diesem bitcoin passen und vieles mehr.

Ist die Transaktion ungültig, so leiten die 8 Peers meine Transaktion nicht weiter. Die Peers wissen nicht was der Ursprung der fälschlichen Transaktion ist, noch woher die Transaktion kommt. Es ist ihnen völlig egal, denn sie sehen alle Daten als gleichwertig an. Ein bösartiger Teilnehmer könnte dutzende Nodes in Betrieb nehmen und das Netzwerk mit betrügerischen Transaktionen bombardieren. Doch diese Transaktionen würden nicht weiter als bis zum nächsten Node kommen und dort blockiert werden. Nach mehreren ungültigen Transaktionen verbannen Nodes Teilnehmer aus dem Netzwerk, welche ungültige Daten an sie schicken. Es ist völlig egal ob eine Privatperson, ein Multimilliarden-Konzern oder ein Staat dahinter steht.

Nun gehen wir davon aus, dass meine Transaktion an Alex gültig ist und alle Nodes die Nachricht bekommen haben. Jeder Node legt diese Transaktion jetzt in den Memory Pool ab. Das ist ein Sammelbecken, welches alle Transaktionen beinhaltet die noch nicht in einen Block integriert wurden. Miner schauen sich dieses Sammelbecken an und wählen daraus Transaktionen, welche die höchste Gebühr zahlen. Diese werden gebündelt und nach spezifischen Vorgaben zu einem Block zusammengesetzt. Damit dieser Block jetzt von anderen Nodes akzeptiert und an ihre Blockchain angefügt wird, muss der Miner beweisen, dass er eine bestimmte Menge an Arbeit erbracht hat. Um zu verstehen wie das Wettrennen für das Proof of Work Rätsel funktioniert, müssen wir jetzt einen kleinen Abstecher in die Welt der Kryptographie machen. Keine Sorge, wir halten es so simpel wie möglich.

Spezifisch geht es um den SHA-256 Hash-Algorithmus. Das Ganze funktioniert so: Du kannst Daten wie Zahlen, Buchstaben, Dokumente, Programme in den Algorithmus einspeisen (Input) und bekommst eine Zahl mit bestimmter Länge (256 Bit) als Resultat. Es spielt keine Rolle wie viele Daten du eingibst, der exakt gleiche Input gibt immer den exakt gleichen Output. Ändert sich jedoch auch nur ein Zeichen im Input, so ist der Output völlig anders.

Beispiel:

Input= bitcoin
Output= 6B88C087247AA2F07EE1C5956B8E1A9F4C7F892A70E324F1BB3D161E05CA107B

Input= Bitcoin
Output= B4056DF6691F8DC72E56302DDAD345D65FEAD3EAD9299609A826E2344EB63AA4

Du kannst das selber hier austesten.

Nun zurück zu meiner Transaktion, welche bei einem Miner im Memory Pool liegt. Sein Ziel ist es, möglichst viele Transaktionen zu bündeln und diese als Input in den Hash-Algorithmus einzufügen. Der Output muss eine Nummer sein, welche die momentanen Anforderungen für die Netzwerk-Schwierigkeit erfüllt. Um diesen Output zu erhalten, fügt er dem Input eine frei wählbare Zahl (Nonce) hinzu. Er versucht tausende von Nonces bis eine Zahl zusammen mit den Blockinformationen einen Output mit genug kleiner Zahl (genügend Nullen) erzeugt.

Diese Zahl ist gleichzeitig „Block-Seriennummer“ und kann so aussehen: 00000000000000000014a302623638bb745752a6a89e3797d62c9056666f9855

Nun leitet er diesen Block mit der Seriennummer (Block Header) schleunigst an seine Peers weiter, welche den Block selber in Millisekunden nachrechnen. Ist alles in Ordnung, speichern sie den Block in der Blockchain und leiten ihn an ihre Peers weiter. Das Spiel wiederholt sich bis alle Nodes den Block überprüft und abgespeichert haben. Meine Transaktion ist also jetzt in einem Block weltweit integriert und gilt als einmal bestätigt. Je mehr Blöcke auf den Block mit meiner Transaktion kommen, je schwieriger ist es für jemanden, der den Block ändern und neu verteilen will. 6 Blöcke (Bestätigungen) gelten als sicher und praktisch unveränderbar bis in alle Ewigkeit.

 

Light Clients

Nun wissen wir wie eine gültige Transaktion ins Netzwerk geleitet wird, sie vom Netzwerk kontrolliert wird, sich verbreitet und in einem Block auf tausenden von Festplatten landet. Bisher haben wir nur vom Netzwerk aus Full Nodes gesprochen, welche alles kontrollieren und eine Kopie der Blockchain besitzen. Doch wie sieht es aus, wenn du einen Light Client verwendest, welcher keine Kopie der Blockchain hat? Dazu gehören Samourai Wallet, Bread Wallet, das Ledger Wallet, Electrum und im Grunde alle Programme ausser Bitcoin Core. Der Vorteil ist geringer benötigter Speicherplatz und dass du nicht warten musst bis die gesamte Blockchain heruntergeladen und validiert ist. Sie verbinden sich lediglich mit einem Full Node des Netzwerkes. Das kann ein bestimmter Node, ein zufälliger Node oder eine ständig wechselnde Verbindung sein. Das sieht dann folgendermassen aus:

 

 

Du siehst, dass diese Light Clients nicht Teil des Netzwerkes sind und lediglich als Klienten von Full Nodes agieren. Firmen können Transaktionen über ihren eigenen Node leiten um so an Kundendaten zu gelangen. Es ist daher aus Sicht der Privatsphäre nicht ratsam keinen eigenen Full Node zu betreiben. Bitcoin Entwickler sind sich dieser Tatsache bewusst und es wird an Lösungen gearbeitet.

 

Wie viel Macht haben Miner?

Dieses Thema hat in der Vergangenheit für viel Kontroverse gesorgt. Deshalb schauen wir uns das Ganze mithilfe von Grafiken an. Wir wiederholen nochmal: Minen ist nichts anderes als das Kreieren eines Blockes. Genauso wie du Transaktionen kreierst, kannst du mit deinem Node auch Blöcke konstruieren und wie Transaktionen in das Netzwerk leiten. Miner sind ganz normale Full Nodes, welche zusätzlich noch versuchen einen gültigen Block zu finden. Jeder Node kann dem Netzwerk einen neuen Block präsentieren, es ist nicht spezielles dabei. Da jedoch immer mehr Miner dazukommen, steigt die Schwierigkeit einen neuen Block zu produzieren. Das Bitcoin Protokoll besagt, dass durchschnittlich alle 10 Minuten ein Block gefunden werden soll. Jeder Node überprüft alle 2 Wochen (2016 Blöcke) wie lange die durchschnittliche Blockzeit war. Danach passt jeder Node die Schwierigkeit individuell an und akzeptiert von da an nur noch Blöcke, welche dieser neuen Anforderung entsprechen. Deshalb kann im Gegensatz zu Gold nicht mehr Bitcoin geminet werden, auch wenn mehr Rechenleistung dem minen gewidmet wird. Ähnlich verhält es sich mit der Limite von 21 Millionen Bitcoin. Miner erstellen in einem Block eine Transaktion aus neuen bitcoins und senden sie an eine ihrer Adressen. Alle 4 Jahre halbiert sich die Menge, welche sie sich für einen Block auszahlen dürfen. Zahlt ein Miner mehr aus als erlaubt, so akzeptiert kein Full Node diesen Block. Die Limite von 21 Millionen bitcoin wird auf diese Weise durch Full Nodes durchgesetzt.

Minen ist heutzutage nur noch rentabel mit spezialisierter Hardware, sogenannten ASICs. Sie können ganz einfach an einen Full Node angeschlossen werden. In unserem Beispiel sieht das folgendermassen aus:

 

 

Nun erinnern wir uns nochmal daran was für gültige Transaktionen gilt, denn dasselbe gilt für Blöcke. Ein ungültiger Block wird von ehrlichen Peers nicht weitergeleitet. Es ist jedoch möglich einen gültigen Block Header zu produzieren welcher ungültige Transaktionen enthält. Dies würde zwar die gleiche Menge an Computerleistung erfordern wie ein gültiger Block, jedoch könnte sich ein Miner bitcoin schicken welche ihm nicht gehören. Light Clients validieren oftmals nur Block Header und würden diesen Betrug nicht bemerken. Ein Full Node gleicht jedoch den Inhalt eines Blocks mit der Blockchain ab und verweigert solche Blöcke. Es ist profitabler für Miner nach den Regeln zu spielen, als Energie für Betrug zu verschwenden. Dies ist jedoch nur der Fall solange Leute eigene Full Nodes betreiben und sich nicht auf unbekannte Nodes verlassen. Bei einigen Projekten wird versucht, mit verschiedenen Arten von Nodes die Geschwindigkeit und Effizienz des Zahlungssystems zu erhöhen. Durch die höheren Anforderungen an vollständig validierende Nodes, betreibt dann kaum noch jemand einen. Dies führt zu einer Zweiklassengesellschaft von Nodes und man verlässt sich schlussendlich auf ein paar wenige zentralisierte Computer welche alles kontrollieren. Es gibt gute Gründe wieso Bitcoin nicht schneller ist, nämlich Sicherheit, Stabilität und Dezentralität auf der Blockchain-Ebene. Dafür ist es wichtig, Full Nodes so günstig wie möglich betreiben zu können. Geschwindigkeit und Skalierung wird in Bitcoin auf höheren Ebenen via Technologien wie Lightning realisiert um die Grundlagen für die Sicherheit des Systems intakt zu halten.

Was wäre jetzt, wenn du einem Mining Pool beitreten würdest? Du könntest das tun, weil Minen für dich alleine zu schwierig ist oder du als grösserer Miner so regelmässige Auszahlungen bekommt. Viele Miner praktizieren dies und schliessen ihre spezialisierte Hardware direkt an einen Pool an, indem sie das Stratum-Mining-Protokoll verwenden. Wie mit deinem Smartphone, brauchst du keinen Node zu betreiben um dich mit dem Mining Pool zu verbinden. Der Pool betreibt einen Node und liefert Vorgaben an die Miner welche dann für den Pool an Blöcken arbeiten. In folgendem Beispiel verwenden wir den Slush Pool, es gibt jedoch dutzende von Pools zwischen denen Miner wählen können.

Zur Wiederholung, alle Teilnehmer sind zu Demonstrationszwecken aus dem Netzwerk gezogen. In der Realität sind sie ein unbekannter Punkt im Netzwerk.

 

Einige Pools haben enorme Mengen an Hashpower. Die drei grössten Pools zusammen haben rund 40 % der Netzwerkleistung. Miner stellen ihre Hardware jedoch freiwillig zur Verfügung und können diese jederzeit abziehen. Des Weiteren gilt für Pools dasselbe wie für alle Teilnehmer. Ihre Blöcke werden vom Netzwerk nur akzeptiert, falls sie gültig sind. Es ist egal ob ein Pool 1 % oder 30 % der gesamten Netzwerkleistung hat, denn er braucht Peers welche seine Blöcke an andere Nodes weiterleiten. Diese stellen sicher, dass keine ungültigen Blöcke in das Netzwerk eingespiesen werden können.

Sehen wir uns noch ein letztes Mal an wie ein Miner aussieht, ohne ihn spezifisch aus dem Netzwerk zu ziehen. Wir sehen einen privaten Miner, welcher unbekannt bleiben will. Er hat acht Peers welche nicht wissen, ob er den Block erstellt oder nur weitergeleitet hat. Wie erwähnt wurde das Netzwerk zum Schutz der Privatsphäre absichtlich so konstruiert. Die Peers wissen nur ob der Block gültig oder ungültig ist. Alles andere ist ihnen absolut egal.

 

Abschliessend stellen wir uns nochmal die Frage, wie viel Macht haben Miner?

Wir stellen fest, dass sie von Full Nodes abhängig sind. Miner müssen nach den Regeln des Netzwerkes spielen, da sie sonst kein Geld verdienen. Sie haben keine besondere Macht, solange ehrliche Full Nodes auf der ganzen Welt verteilt ihre Arbeit validieren. Deshalb lege ich dir ans Herz einen eigenen Full Node zu betreiben. Du schützt dich vor ungültigen Transaktionen, ungültigen Blöcken, erhöhst die Privatsphäre, garantierst die Limite von 21 Millionen BTC, bist selbstständig und souverän, setzt deine Regeln durch und steuerst einen positiven Beitrag zum Bitcoin Projekt bei.

 

Fazit

Nun kennst du die grundlegende Funktionsweise von Bitcoin. Du verstehst wieso die Blockchain nur eines von vielen Zahnrädern im System ist und alleinstehend kaum Wert hat. Du weisst über die Signifikanz von Full Nodes Bescheid und hast eine bildliche Vorstellung des Bitcoin Netzwerks. Falls das alles noch etwas viel zum Verdauen war, so kannst du ein Lesezeichen setzen und zu einem späteren Zeitpunkt nochmal einsteigen.

Weitere Informationen zu Full Nodes

 

Quelle

Dieser Artikel basiert unter freundlicher Genehmigung auf einem Artikel von Stop and Decrypt. Er schreibt tolle und gut verständliche Artikel. Seine Kritik an Ethereum, Artikel über Lightning-FUD und ASIC-Resistenz sind sehr zu empfehlen.