Skip links

#53 Bitcoins controlesysteem, zo draai je een node

Een blockchain is niet een magisch sausje dat álles op de wereld beter maakt, in tegenstelling tot wat veel mensen denken. Als je door de enorme lading marketing heen prikt, blijft er in veel gevallen maar weinig substantieels over. Maar waar hebben we het eigenlijk over? Waar staat ‘de blockchain’ opgeslagen? Wat maakt bitcoin decentraal? 

De beste manier om antwoorden te krijgen op deze vragen, is door een node te draaien. Zo kom je er achter dat een blockchain meer is dan ‘onzichtbare cloud data’, die ergens in de ether rondzweeft. De kern van bitcoin zit hem in de toegankelijkheid van de verifieerbaarheid van deze blockchain. Hoe? Dat lees je vandaag in Bitcoin Focus.

Bitcoin Core, de blockchain en nodes

Eerder stonden we met ontwikkelaar Josie al stil bij Bitcoin Core, de open source-software waar hij fulltime aan werkt. Ook leerde je dat ontwikkelaars niet de baas zijn van bitcoin, maar dat dit de individuen zijn die een node draaien. Met deze kennis in ons achterhoofd, duiken we vandaag wat dieper in deze blockchainsoftware: Bitcoin Core.

  1. Wat is een node?
  2. Waarom draai je een node?
  3. Wat heb je nodig om een node te draaien?
  4. Hoe draai je een node?

Blockchain

Allereerst even: wat is een blockchain? De bitcoin blockchain is het grootboek met alle transacties die ooit zijn gedaan. Het is een keten van inmiddels alweer meer dan 738.000 blocken. Elke ~10 minuten komt er een block in deze blockchain bij. Zie het als een boek waarin elke ~10 minuten een nieuwe bladzijde wordt volgeschreven met een x aantal transacties.

Dit boek staat echter niet op één plek opgeslagen, maar is digitaal gedistribueerd en gedupliceerd op duizenden nodes. De blockchain omvat dus data (megabytes, gigabytes) en deze data betreft transacties (inputs, outputs). Momenteel is de gehele on-chain transactiegeschiedenis van bitcoin iets meer dan 400 GB. Je zou kunnen stellen: hoe lager dit getal, hoe makkelijker het voor nodes is om zich aan te sluiten bij het decentrale netwerk.

1. Wat is een node?

Simpel gezegd bestaat een node uit twee dingen: een set aan spelregels én een controlemechanisme. De spelregels zijn de regels die bitcoin maken wat bitcoin is:

  • 21 miljoen BTC,
  • de blockgrootte,
  • de gemiddelde blocktijd
  • et cetera.

Het controlemechanisme is een manier om te kijken of andere ‘peers’ in het netwerk zich ook aan deze regels houden.

Zie het als het spel Monopoly: er is in dit bordspel niet één bankier, maar alle deelnemers zijn gezamenlijk de bank. Alle spelregels zijn van te voren opgesteld en iedereen controleert elkaar of hij of zij zich wel aan deze regels houdt. Zo voorkom je dat iemand vals speelt. Áls iemand dat wel doet, dan wordt die persoon hoogstwaarschijnlijk op het matje geroepen en wordt zijn actie teniet gedaan.

De spelregels van bitcoin staan in Bitcoin Core. Het controlemechanisme gebeurt volautomatisch, digitaal en online. 

2. Waarom draai je een node?

Daarmee is ook het belang van het draaien van een node uitgelegd: het geeft je de optie om een netwerk te controleren. In bitcointaal staat dit ook wel bekend als: Be Your Own Bank. Ook wel: don’t trust, verify.

Een blockchain heeft alleen nut als iedereen deze kan dupliceren, synchroniseren met andere nodes om vervolgens een radar te worden in een netwerk van gelijkgestemden. Een bitcoin node levert (in tegenstelling tot mining) geen extra geld op, maar het is een manier om het heft in eigen hand te nemen.

  • Bij een bank vertrouw je deze bank met jouw geld;
  • Als bitcoiner zónder node vertrouw je tienduizenden anderen met een node met jouw geld;
  • Als bitcoiner mét node, vertrouw je niemand met jouw geld. Je verifieert alles zelf.

3. Wat heb je nodig om een node te draaien?

Ook jíj kunt Bitcoin Core draaien. Alles dat je hiervoor nodig hebt is hardware en een internetverbinding. De software is immers open source te downloaden. Bekende set-ups zijn oude laptops, Raspberry Pi’s of Intel NUC’s. Er zijn wel een paar voorwaarden waar deze hardware aan moet voldoen. Je kunt deze terugvinden op de website bitcoin.org:

  • 7 gigabytes aan opslagruimte, bij voorkeur met minimum read/write speed van 100 MB/s; 
  • een breedband internetverbinding met een upload snelheid van 50 kilobytes per seconde; 
  • 2 gigabytes aan werkgeheugen (RAM).

Verder is het goed om te controleren of je internetverbinding geen limieten heeft. Een node kan al snel 200 GB per maand aan data uploaden. Het downloadt daarnaast naar verluidt ongeveer 20 GB per maand. Als je de node voor het eerst aanzet, komt daar nog eens zo’n ~400 GB bij. Dit is de blockchain met álle on-chain transacties die ooit zijn gedaan.

Verder is het van te voren goed om te weten dat een node minimaal zo’n zes uur per dag aan moet staan om gesynchroniseerd te blijven. Echter: hoe meer hoe beter. Daarom draaien veel mensen een node op een apart apparaatje, zoals een Raspberry Pi. Deze draait dan net als een internetmodem in bijvoorbeeld de meterkast.

4. Hoe draai je een node?

De Bitcoin Core-software is op verschillende manieren te downloaden. Zo staat het op GitHub en daar kun je elke regel stuk voor stuk inlezen. Ook kun je via bitcoin.org de software downloaden, voor bijvoorbeeld Windows, Mac OS of Linux.

Deze website heeft een anonieme maintainer (genaamd Cobra) en de broncode van deze website is ook op Github te zien. Zo weet je zeker dat deze website niet een malware bevat en dat je ook daadwerkelijke de échte bitcoinsoftware downloadt.

Opvallend: Britten kunnen Bitcoin Core niet downloaden, ondanks dat het gratis en open source-software is. Dit komt door een rechtszaak die Craig Wright heeft aangespannen. Ook de whitepaper is niet meer gehost op deze website, dankzij diezelfde ‘Fraudtoshi’, een van de vele bijnamen voor Wright.

Op de website kun je ook de ‘release signatures’ inzien. In een vorige premium artikel op Bitcoin Focus kon je over dit proces lezen, en hoe maintainers hier een belangrijke rol in spelen.

Als je de website níet vanaf een Brits IP-adres bezoekt, kun je vervolgens de software downloaden. Dit pakketje is 17 MB. Vervolgens moet je een stappenplan door, alvorens je de bitcoin blockchain gaat downloaden en synchroniseren.

Steun Focus!

Vind je deze open en gratis Focus-editie waardevol? Steun ons met een volledig vrijblijvende donatie, compleet value4value!

Klik op de QR-code met je lightning wallet (lnurl-compatible) of check onze donatiepagina voor standaardopties.

Steun Focus!

Vind je deze open en gratis Focus-editie waardevol? Steun ons met een volledig vrijblijvende donatie, compleet value4value!

Scan de QR-code met je lightning wallet (lnurl-compatible) of check onze donatiepagina met enkele standaardknoppen.

Stappenplan

Na het downloaden en installeren van het basisprogramma, kun je ook daadwerkelijk Bitcoin Core draaien. Dan begint het échte werk pas.

Je kunt in de instellingen kiezen om een full node te draaien, of om bijvoorbeeld een pruned node (wat letterlijk staat voor ‘gesnoeide node’). Dit kun je doen met de knop ‘beperk blockchainopslag’. Dit is handig als je niet voldoende opslagcapaciteit hebt om honderden GB’s aan data op te slaan. In zo’n geval kun je met een pruned node toch de hele blockchain verifiëren en enkel de laatst relevante data opgeslagen houden.

Over het algemeen is het beter om voor een full node te gaan in plaats van een pruned node. Als jouw schijfruimte dat echter niet toe laat, is een gesnoeide versie van de blockchain een mooie eerste stap.

Let op: het kan zijn dat je firewall enkele stappen tegenhoudt. De ‘GUI node for Bitcoin’ haalt namelijk data van andere nodes op, waarbij de firewall mogelijk wordt omzeild.

Nu gaat Bitcoin Core alle ‘block headers’ synchroniseren, beginnend bij januari 2009. Dit is een eerste stap voordat de node de gehele blockchain gaat downloaden. Dit heeft een aantal voordelen. Want hoe weet een node bijvoorbeeld dat het ook daadwerkelijk informatie over de échte bitcoin krijgt toegestuurd? Er is nog geen referentiekader of netwerk die dit kan bevestigen of ontkennen.

Door eerst de block headers te downloaden, kun je weten dat je de blockchain in kaart brengt waar het meeste werk in zit (of anders gezegd: de blockchain die het langst is). Zo voorkom je dat je onverhoopt een fork (en dus in jouw ogen verkeerde blockchain synchroniseert).

Block headers

De block header is het eerste beetje informatie dat door een node wordt geverifieerd. Hierin staat informatie over het versienummer van de software, de hash van het vorige blok, de tijd van het block, de moeilijkheidsgraad van het minen en ook de nonce die de miner heeft ingevoerd.

Vervolgens gaat het netwerk verder met het downloaden van de blocks zelf. Deze informatie wordt opgehaald bij andere nodes. Dit kun je zien in het overzicht nodevenster.

Zo zie je in het onderstaande screenshot hoeveel MB aan blockdata er bij elke node vandaan is gehaald en welke versie van Bitcoin Core deze peer draait. Omdat bitcoin is gebaseerd op backwards-compatible updates (ook wel soft forks genoemd), hoeft niet iedereen op dezelfde versie van Bitcoin Core te zitten. 

Het verschilt per set-up hoe lang het duurt om een node te synchroniseren. Doorgaans is dit binnen enkele dagen geregeld. Nu ben je je eigen bank en kun je bitcoin ontvangen op jouw node. Tijdens het synchroniseren van de blocken kun je al enkele instellingen aanpassen, zoals het aantal GB aan blockopslag voor een pruned node. Ook kun je al een wallet aanmaken en daarin een ontvangstadres genereren, berichten signeren met je private key, extra wachtwoorden instellen of aan de slag met PSBT-betalingen.

Toegankelijk

We begonnen deze Bitcoin Focus als volgt: “De kern van bitcoin zit hem in de toegankelijkheid van de verifieerbaarheid van deze blockchain.” Nu we de Bitcoin Core-software hebben gedraaid, zal deze uitspraak beter resoneren.

Het is essentieel dat iedereen die dat wil, ook de blockchain kan downloaden en synchroniseren. Waarom? Om volledig onafhankelijk van anderen een transactie te kunnen verifiëren. Het feit dat de blockchain van bitcoin minder dan 400 GB groot is, is dus een enorme pré. Daardoor heb je geen supercomputers of enorme serverkasten nodig.

Met dit in het achterhoofd zul je ook snappen dat de blockchain geen ‘magisch beetje clouddata’ is. Het is belangrijk dat de blockchain door iedereen te verifiëren is en daarom is het essentieel dat deze blockchain niet uit z’n voegen groeit. Het is een feature en niet een bug (zoals wel eens wordt beweerd) dat bitcoin op de basislaag traag en langzaam is. Dit is immers de enige manier om het decentraal te houden.

Bitcoin Core is een eerste leuke sprong in het diepe. Wil je met meer technische dingen aan de slag? Je kunt ook een lightning node draaien, met MyNode, Umbrel of Raspiblitz.

Ben jij al je eigen bank? BYOB!

Steun Focus met een donatie!

Laat een berichtje achter en kom in ons donatie-dashboard.

BITCOIN FOCUS

Word abonnee van dé bitcoin nieuwsbrief van Nederland.