Blockchain Node: Lightweight und Full Nodes

Der Begriff “Node” wird oftmals im Zusammenhang mit Kryptowährungen, Peer-to-Peer-Netzwerken und der Blockchain-Technologie verwendet. Aus dem Englischen ins Deutsche übersetzt, bedeutet er “Knotenpunkt”, “Datenknoten” oder “Verzweigungspunkt”. Nodes sind notwendig, um ein dezentral organisiertes Peer-to-Peer-Netzwerk betreiben zu können. Ein derartiges Peer-to-Peer-Netzwerk wird beispielsweise für die Kryptowährungen Ethereum und Bitcoin verwendet. In diesem Beitrag können Sie mehr darüber erfahren, was ein Node genau ist, welche Funktionen er übernimmt und welche Arten von Nodes es geben kann.

 

Node Mesh Netzwerk
Node Mesh Netzwerk @wikipedia.org

 

1. Nodes – Eine grundlegende Einordnung

Die Kryptowährung Bitcoin verwendet ein Peer-to-Peer-Netzwerk, um Nutzern eine kryptografisch verschlüsselte Infrastruktur zu Verfügung zu stellen. Diese Infrastruktur besteht im Kern aus einzelnen Nodes (dtsch. Knotenpunkte, Datenknoten, Verzweigungspunkt). Die einzelnen Knotenpunkte sind über das Internet miteinander verbunden.

Weil sie über das Internet miteinander verbunden sind, entsteht daraus ein dezentral organisiertes Netzwerk. Das hat den Vorteil, dass ein Datenfluss, im Falle von Bitcoin sind das Bitcoin-Transaktionen, nicht von einer zentralen Instanz abhängig organisiert werden muss.

Innerhalb eines dezentral organisierten Netzwerkes übernehmen Nodes eine essenzielle Funktion

Im Vergleich zum klassischen Client-Server-Modell bringt das einige Vorteile mit sich. Für ein klassisches Client-Server-Modell wird ein zentraler Web-Server verwendet, um Daten zur Verfügung zu stellen. Das bedeutet, dass der Server alle relevanten Daten zentral gespeichert hat und einzelnen Clients, also einzelnen Computern, zum Download zur Verfügung stellt.

Diese Dateninfrastruktur, eine zentrale Instanz stellt vielen anfragenden Computern Daten zur Verfügung, hat einige Nachteile. So muss der Server über eine hohe Bandbreite verfügen, um viele verschiedene Anfragen von vielen verschiedenen Computern gleichzeitig bearbeiten zu können.

Dabei gilt: Je mehr Computer Daten downloaden wollen, desto mehr Bandbreite muss der Server nutzen. Die Bandbreite entscheidet darüber, wie schnell Daten übertragen werden können. Die Bandbreite kann unter Umständen jedoch nicht einfach so erhöht werden.

Diesen Schwachpunkt können sich Hacker zunutze machen, um einen Server lahm zu legen. Durch eine simple DDoS-Attacke kann ein Server so viele Anfragen zur selben Zeit erhalten, dass die Bandbreite nicht mehr ausreicht, um den Ansturm bewältigen zu können. In der Konsequenz muss der Server offline gehen. Das ist ein Problem.

Je mehr Computer Daten downloaden wollen, desto mehr Bandbreite muss der Server nutzen

In dezentral organisierten Netzwerken, wie dem Peer-to-Peer-Netzwerk von Bitcoin, können zwar einzelne Nodes durch eine Cyber-Attacke lahm gelegt werden, aber das führt in der Konsequenz nicht dazu, dass das gesamte Netzwerk zusammenbricht.

Zur Verdeutlichung des Unterschiedes zwischen einem Client-Server-Modell und dem Peer-to-Peer-Modell kann man sich ein Fischernetz vorstellen. Ein Fischernetz erfüllt nur dann seine Funktion, wenn einzelne Seile in regelmäßigen Abständen miteinander verknotet werden. Dadurch entsteht eine Maschenöffnung. Der Begriff Maschenöffnung bezeichnet den Raum zwischen den einzelnen, miteinander verknoteten Seilen, welche auf die Größe der Fische abgestimmt ist, die gefangen werden sollen. Das ist die Struktur eines Peer-to-Peer-Netzwerkes, wobei Nodes die Funktion der Knotenpunkte zwischen den Seilen einnehmen.

Ein Client-Server-Modell hingeben würde bedeuten, dass alle Seile des Fischernetzes jeweils an einem Ende miteinander verknotet werden würden. Das bedeutet, dass Fischer einen riesigen Knoten mit vielen herunterhängenden Seilen hätten. Damit können sie jedoch keine Fische fangen. Obwohl der Vergleich hinkt, verdeutlicht er den wesentlichsten Unterschied zwischen den beiden Modellen und verdeutlicht, welche grundlegende Funktion Nodes innerhalb eines Peer-to-Peer-Netzwerkes einnehmen: Wie bei einem Fischernetz sorgen sie dafür, dass das gesamte Netzwerk, oder das gesamte Fischernetz, zusammengehalten wird und seine Funktion erfüllen kann. Wie sich ein Ringwadennetz grundlegend in der Art und Weise und Verwendung von einem Kiemennetz unterscheidet, unterscheidet sich ein Bitcoin-Node auch von einem Ethereum-Node.

 

 

2. Nodes – Spezifische Verwendungen in unterschiedlichen Netzwerken

Bitcoin bietet ein einfaches, kryptografisch verschlüsseltes Peer-to-Peer-Netzwerk, um Transaktionen in Bitcoin tätigen zu können. Im Vergleich zu Bitcoin, baut Ethereum auf der grundlegenden Idee von Bitcoin auf und erweitert die Anwendungsmöglichkeit des Peer-to-Peer-Netzwerkes. Über Ethereum können Nutzer zusätzlich eigene dApps und ganze DAOs programmieren und digitale Verträge, also Smart Contracts, zwischen vielen verschiedenen Parteien abschließen.

Wie die Art und Weise der Verknotung eines Fischernetzes darüber entscheidet, wie das Fischernetz beschaffen ist, entscheidet auch die Programmierung der Software eines Nodes innerhalb eines Peer-to-Peer-Netzwerkes, welche Aufgaben und Funktionen ein einzelner Computer des Netzwerkes übernehmen kann.

Im Folgenden soll anhand der Typologie von Bitcoin-Nodes dargestellt werden, welche Funktionen Nodes innerhalb des Netzwerkes wahrnehmen können. Dennoch sollte im Hinterkopf behalten werden, dass jedes Netzwerk einen anderen Node-Typus verwenden kann. Das hängt ganz davon ab, wofür die dApp verwendet werden soll.

 

Bitcoin Netzwerk Nodes
Bitcoin Netzwerk Nodes

 

3. Die Rolle eines Nodes im Bitcoin-Netzwerk

Innerhalb des Bitcoin-Netzwerkes wird ein Computer dann als Node bezeichnet, wenn er eine Software installiert hat, welche das Bitcoin-Protokoll, also den Programmcode von Bitcoin, betreibt. Im Falle von Bitcoin kann das Bitcoin Unlimited, Bitcore, Bitcoin Core oder auch Bitcoin Classic sein. Jeder Computer, auf den eine Version der Software heruntergeladen wird, lädt automatisch Teile der Bitcoin-Blockchain oder die gesamte Blockchain herunter.

Die Bitcoin-Blockchain besteht im Grunde aus Hash-Blöcken. Diese Blöcke enthalten Transaktionsinformationen von Bitcoin, einen Zeitstempel, also eine Zeitangabe, wann der Block errechnet wurde, und einen Hash des vorherigen Hash-Blockes. In einem Hash-Block werden viele verschiedene Transaktionen von vielen verschiedenen Sendern und Empfängern über eine Hash-Funktion, im Falle von Bitcoin ist das der SHA256-Algorithmus, kryptografisch verschlüsselnd, miteinander verrechnet.

Die einzelnen Hash-Blöcke werden über einen Hash des vorherigen Blockes, der sogenannte Block-Header, verbunden. Das hat den Zweck, dass einzelne Blöcke nicht beliebig verändert werden können, um beispielsweise Transaktionen zu den eigenen Gunsten verändern zu können. Wer einen Blockchain-Hash-Block von Bitcoin für seine Zwecke umprogrammieren möchte, muss im Grunde genommen die gesamte Blockchain, also auch den Top-Hash, dem ersten Hash der Blockchain, ändern. Was hat das mit einem Node zu tun?

 

Bitcoin Lightning Network
Bitcoin Lightning Network

 

4. Lightweight Nodes vs. Full Nodes

Wie bereits erwähnt laden Nodes Teile der Bitcoin-Blockchain oder die gesamte Bitcoin-Blockchain herunter. Ein Node der bloß Teile der Bitcoin-Blockchain herunterlädt, genauer gesagt, nur die Block-Header, wird als Lightweight Node bezeichnet. Er übernimmt lediglich die Funktion, die Echtheit einzelner Transaktionen innerhalb eines Hash-Blockes der Blockchain zu verifizieren. Darauf soll im Detail nicht näher eingegangen werden.

Salopp gesagt, wird eine Transaktion im Bitcoin-Netzwerk dann als echt angesehen, wenn mehrere Nodes unabhängig voneinander dieselbe Rechenmethode nutzen und auf dasselbe Ergebnis kommen. Je mehr Nodes auf dasselbe Ergebnis kommen, desto wahrscheinlicher ist es, dass die Transaktion nicht manipuliert wurde bzw. zugunsten eines einzelnen Nodes verfälscht wurde. Das ist wichtig, weil andernfalls die Stabilität und Funktion des gesamten Netzwerkes nicht gewährleistet werden könnte.

Ein Node der die gesamte Bitcoin-Blockchain heruntergeladen hat, wird als Full Node bezeichnet. Welche Funktionen ein Bitcoin-Node genau übernimmt, kann pauschal nicht gesagt werden. Die Bitcoin-Blockchain ist Open-Source. Das bedeutet, dass jeder Node-Betreiber die Blockchain nach einem Belieben verändern kann, sofern die grundlegenden Protokoll-Regeln von Bitcoin nicht verletzt werden. Derartige Protokoll-Regeln sind beispielsweise:

  • Jeder Block kann nur eine festgelegte Anzahl an Bitcoin erzeugen, wenn er gemint wird
  • Transaktionen müssen das korrekte Datenformat haben
  • Innerhalb der Blockchain kann eine Transaktion nicht doppelt ausgeführt werden
  • Miner bekommen für einen erstellten Block eine Belohnung in Bitcoin
  • … jegliche Richtlinien, die für die Stabilität des Bitcoin-Netzwerkes sorgen

Full Nodes sind sozusagen die Protokoll-Wächter. Sie halten sich in ihrer Arbeitsweise strikt an die programmierten Regeln. Die programmierten Regeln entstehen durch die Vorgaben der Bitcoin Core Entwickler, aber auch durch die Konsensfindung zwischen den Full Nodes. Im August letzten Jahres fand eine Bitcoin-Fork statt, weil eine Gruppe von Minern, welche einen Full Node betrieben, sich gegen das SegWit-Update entschieden haben. In der Konsequenz, weil sie die bestehenden Regeln nach dem SegWit-Update nicht übernommen haben, wurden sie von den restlichen Full Nodes des Bitcoin-Netzwerkes ausgeschlossen. Ein Ausschluss vom Full Node-Netzwerk kann außerdem jederzeit bei Regel-Verletzungen stattfinden.

Full Nodes sind sozusagen die Protokoll-Wächter

Full Nodes und Lightweight Nodes stehen in einem bestimmten Sinne in einem Verhältnis zueinander. Während Full Nodes die vollständige Blockchain gespeichert haben, durch Mining neue Hash-Blöcke erzeugen und dafür Belohnungen erhalten, haben Lightweight Nodes lediglich die Funktion, Transaktionen zu verifizieren, welche von Full Nodes in Hash-Blöcke zusammengefasst wurden. Full Nodes erzeugen demnach die Hash-Blöcke der Blockchain und Leightweight Nodes überprüfen diese nochmal auf ihre Richtigkeit nach den jeweiligen Protokoll-Regeln.

 

Node Fazit

Nodes sind Knotenpunkte innerhalb eines dezentralisiert organisierten Peer-to-Peer-Netzwerkes. Ein Computer wird dann zu einem Node, wenn er die Software einer dApp herunterlädt und administrative Aufgaben innerhalb des Netzwerkes übernimmt. Während ein Client-Server-Modell mit einer monarchischen Herrschaft innerhalb eines Staates vergleichen werden kann, ist ein Node-System mit einem basisdemokratischen Entscheidungsfindungsverfahren vergleichbar. In der Monarchie gibt der Monarch den Ton an und alle Untertanen müssen sich danach richten. In der Basisdemokratie gibt es eine gemeinsam beschlossene Verfassung, welche sich in einem Entwicklungsprozess befindet, wonach Entscheidungen getroffen werden. Die gemeinsame Verfassung von Nodes ist das jeweilige Protokoll der dApp.

Innerhalb eines dezentral organisierten Netzwerkes übernehmen Nodes eine essenzielle Funktion. Sie speichern, verwalten, erstellen die Blockchain, sorgen dafür, dass maligne Akteure aus dem Netzwerk ausgeschlossen werden und sorgen dafür, dass neue Coins erzeugt werden. Für das dezentralisierte Netzwerk bedeutet es außerdem, dass es umso stabiler wird, je mehr Nodes sich im Netzwerk befinden. Je mehr Nodes die Bitcoin-Software betreiben, desto schwieriger wird es das Netzwerk zusammenbrechen zu lassen. Je nachdem wofür eine dApp verwendet werden soll, übernehmen Nodes jeweils andere Funktionen und handeln nach jeweils anderen Protokollen. Innerhalb des Ethereum-Netzwerkes können Nodes beispielsweise einzelne Smart Contracts, dApps und DAOs in vielen verschiedenen Programmiersprachen verwalten.