Wat zijn nodes?

Delen
Copied to clipboard!
Wat zijn nodes?
Luister naar het artikel
00:00 / 00:00

De definitie van een node kan erg verschillen afhankelijk van de context waarin het woord wordt gebruikt. In bijvoorbeeld een computer- of telecommunicatienetwerk kunnen nodes een specifieke functie hebben en bijvoorbeeld een verdeelpunt of communicatie-eindpunt zijn. Hoewel nodes vaak uit fysieke netwerkapparatuur bestaan, worden er steeds meer toepassingen ontwikkeld die gebruik maken van virtuele nodes. 

Simpel gezegd is een network node een punt waarop een bericht kan worden gecreëerd, ontvangen of verstuurd. In dit artikel worden de verschillende typen Bitcoin-nodes in meer detail besproken: het gaat dan om full nodes, super nodes, miner nodes en SPV clients. 


Bitcoin-nodes

In de context van blockchains - die zijn ontworpen als gedistribueerde systemen - zijn het de nodes die ervoor zorgen dat Bitcoin gebruikt kan worden als een gedecentraliseerde peer-to-peer (P2P) digitale valuta die 'by design' fraudebestendig is en geen tussenpartij vereist om van de ene persoon aan de andere persoon, waar dan ook ter wereld, te worden overgedragen.

In een blockchain is een node een communicatiepunt dat verschillende functies kan uitvoeren. Iedere computer of ander apparaat dat verbinding maakt met de Bitcoin-interface kan worden gezien als een node in de zin dat de nodes op een bepaalde manier met elkaar communiceren. Deze nodes kunnen eveneens informatie over transacties en blocks naar andere netwerkdeelnemers sturen door gebruik te maken van het peer-to-peer protocol van Bitcoin. Omdat dit protocol verschillende 'functies' definieert aan de hand van een specifieke set regels, bestaan er verschillende types Bitcoin-nodes. 


Full nodes

Full nodes of 'volwaardige nodes' zijn de nodes die daadwerkelijk het Bitcoin-netwerk ondersteunen en beveiligen. Om die reden zijn ze dan ook onmisbaar. Deze nodes worden ook wel full validating nodes genoemd, omdat ze verantwoordelijk zijn voor het verifiëren van transacties en blocks aan de hand van de consensusregels van het systeem. Full nodes kunnen eveneens nieuwe transacties en blocks naar de blockchain sturen. 

Een full node downloadt normaal gesproken een kopie van de Bitcoin-blockchain met daarin ieder block en iedere transactie. Het is echter ook mogelijk om als full node gezien te worden door een 'afgeslankte' kopie van de blockchain te gebruiken, afhankelijk van de manier waarop de node is opgezet.

In het Bitcoin-netwerk kan een full node op verschillende manieren worden gecreëerd, maar het meest gebruikt en meest populair is de software van Bitcoin Core. Dit zijn de minimale systeemeisen om een Bitcoin Core full node op te zetten:

  • Desktop- of laptopcomputer met een recente versie van Windows, macOS of Linux.

  • 200GB vrije schijfruimte.

  • 2GB geheugen (RAM).

  • Internetverbinding met minimale uploadsnelheid van 50 kB/s.

  • Geen datalimiet. Full nodes kunnen meer dan 200GB per maand uploaden en tot wel 20 GB per maand downloaden. Wanneer een full node voor het eerst online gaat, moet tevens ongeveer 200GB aan data worden gedownload.

  • Een full node dient minstens zes uur per dag, maar idealiter 24 uur per dag en zeven dagen per week, online te zijn.


Er zijn veel organisaties die vrijwillig full nodes in de lucht houden om het Bitcoin-ecosysteem te ondersteunen; op dit moment zijn er ongeveer 9.700 zogenaamde 'public nodes' actief op het netwerk. Een public node is een Bitcoin-node die voor iedereen op het netwerk zichtbaar en 'aanspreekbaar' is en wordt daarom ook wel een 'listening node' genoemd. 

Naast de public nodes bestaan er ook veel verborgen of 'hidden' nodes. Deze 'non-listening nodes' kunnen niet door andere netwerkdeelnemers worden aangesproken omdat deze vaak achter een firewall zijn verborgen, gebruik maken van een protocol als Tor of simpelweg niet geconfigureerd zijn om te luisteren naar signalen van andere nodes.


Listening nodes (super nodes)

Een listening node of super node is zoals gezegd een publiekelijk zichtbare full node. Deze nodes communiceren met alle nodes die verbinding met de desbetreffende node willen maken. Dit betekent dat een super node in feite een verdeelpunt is dat zowel als bron van informatie als communicatiebrug kan functioneren. 

Een betrouwbare super node is normaal gesproken 24 uur per dag, zeven dagen per week online en onderhoudt verbindingen met meerdere andere nodes om updates van de blockchain en nieuwe transacties te versturen. Om die reden heeft een super node meestal meer rekenkracht en een betere internetverbinding nodig dan een 'hidden' full node.


Miner nodes

Om in de huidige markt Bitcoins te kunnen minen, moet een miner investeren in gespecialiseerde hardware en software. Deze software is niet direct gerelateerd aan die van Bitcoin Core, maar werkt in parallel aan het minen van Bitcoin-blocks. Een miner kan ervoor kiezen om zelf te werken als solo miner of in groepsverband als pool miner. 

Hoewel de solo miner full nodes gebruik maken van hun eigen kopie van de blockchain, werken pool miners samen en combineren zij hun eigen rekenkracht (hash power) met die van de andere miners in de groep. In een mining pool hoeft dan ook alleen de beheerder van de pool een full node te draaien, de zogenaamde pool miner full node.


Lightweight of SPV clients

De lichtgewicht of lightweight clients, ook wel bekend als Simplified Payment Verification (SPV) clients, zijn nodes die gebruik maken van het Bitcoin-netwerk maar zich niet als echte full node gedragen. SPV clients dragen dan ook niet bij aan de veiligheid van het netwerk, omdat ze geen eigen kopie van de blockchain hebben en niet meedoen aan het verifiëren en valideren van transacties. 

SPV is kortgezegd een methode waarmee een gebruiker kan controleren of bepaalde transacties zijn opgenomen in een block zonder daarvoor alle block data te downloaden. SPV clients vertrouwen daarvoor op de informatie die zij van andere full nodes (super nodes) ontvangen. De lightweight clients functioneren als eindpunten van de communicatie en worden bijvoorbeeld veel gebruikt in wallet-software.


Client vs mining nodes

Het is belangrijk om op te merken dat het draaien van een full node niet hetzelfde is als het draaien van een full mining node. Terwijl miners moeten investeren in dure hardware en software, kan iedereen zo een 'gewone' full node opzetten voor het valideren van transacties. Daarnaast dient een miner transacties te verzamelen die eerders als valide waren bestempeld door de full nodes alvorens deze in een block gemined kunnen worden. De miner maakt vervolgens een 'candidate block' dat een groep transacties bevat en probeert dit block te minen. Vindt de miner een geldige hash voor dat block, dan wordt het naar het netwerk gestuurd en verifiëren de andere full nodes de geldigheid van het block. De regels voor consensus worden dan ook bepaald door het gedistribueerde netwerk van validerende nodes, niet door de miners.


Conclusie

Bitcoin-nodes communiceren met elkaar via het P2P-netwerkprotocol van Bitcoin en garanderen daarmee de integriteit van het systeem als geheel. Een node die zich niet aan de regels houdt en incorrecte informatie naar het netwerk probeert te sturen, wordt snel opgemerkt door de andere nodes en van het netwerk afgesloten.

Ondanks dat het draaien van een full node voor het valideren van transacties geen financieel gewin oplevert, zorgt het voor vertrouwen, veiligheid en privacy bij de gebruikers. Full nodes garanderen namelijk dat de regels voor consensus worden gevolgd. Ze beschermen de blockchain tegen aanvallen en fraude zoals 'double spending' of dubbele uitgaven. Daarnaast hoeft een full node niet te vertrouwen op de informatie die het van andere nodes ontvangt, wat betekent dat de gebruiker de volledige controle over zijn geld houdt.

Loading