Hvorfor kjøre en fullnode?
Å kjøre en Bitcoin-fullnode gir deg ingen inntekt, og siden man må kjøpe inn utstyr så kan det i utgangspunktet virke som et tapsprosjekt. Så hvorfor bør man allikevel gjøre det? Svaret er i hovedsak for å sikre ditt eget personvern, men også for å sikre nettverket.
Hva er en fullnode?
Men først, må vi forklare hva en fullnode er. En Bitcoin-fullnode er en datamaskin som kjører Bitcoin sin programvare, og som har lastet ned og lagrer hele blokkjeden til Bitcoin. De aller fleste fullnoder kjører Bitcoin Core sin implementasjon, som ofte blir kalt referanse-implementasjonen, men det er mulig å kjøre andre implementasjoner.
Denne datamaskinen kan være en gammel laptop du har hjemme, eller en mini-PC som en Raspberry Pi som er dedikert til kun å være en fullnode, og ikke noe annet. Denne fullnoden lytter og interagere med resten av Bitcoin-nettverket ved at den validere hver eneste transaksjon og blokk den mottar, og sender de videre kun dersom de er gyldige i henhold til Bitcoins konsensusregler.
Denne delingen av transaksjoner og blokker skjer i et peer-to-peer nettverk, der fullnoden kobler seg til maksimalt 125 andre fullnoder. Som standard tillater Bitcoin Core 10 tilkoblinger som er utgående, altså at fullnoden sender informasjon ut, og dermed kan fullnoden din ha 115 inngående tilkoblinger der den mottar informasjon fra andre. De fleste fullnoder kobler seg sammen via internett, men det er også mulig å bruke satellitter eller til og med radio.
Dersom fullnoden mottar en ugyldig transaksjon eller en blokk som ikke har et gyldig PoW eller at mineren gir seg selv for mange bitcoin i blokkbelønning, blir de forkastet og ikke videresendt. Dersom blokken fullnoden mottar er gyldig, vil den legge den til i sin egen versjon av blokkjeden, og sende den videre til andre fullnoder.
Din fullnode fungerer derfor som en «dommer», som håndhever Bitcoins regler, og bestemmer om transaksjoner og blokker skal anses som gyldige eller ikke. På mange måter er derfor fullnoder enda viktigere for nettverket enn minere. Det er minerne som skaper nye blokker, men det er fullnoder som bestemmer om blokkene skal anses som gyldige eller ugyldige.
Personvern
Hovedfordelen med å kjøre en egen Bitcoin-fullnode er for å bevare ditt eget personvern, og styrke din egen sikkerhet. Ved å kjøre egen fullnode, så kan du skape, signere og sende en transaksjon direkte fra din egen datamaskin, som du vet ikke er tuklet med av noen. Siden du har lastet ned hele blokkjeden kan du selv sjekke at transaksjonen har blitt inkludert i en blokk, og slipper dermed å stole på en tredjeparts blokk-explorer som BTC.com eller Blockchair.com.
De fleste lommebøker på telefoner og lignende er såkalte lettklient-lommebøker, eller såkalte SPV-noder. SPV står for Simplified Payment Verification, og er en teknologi som tillater en app å bruke Bitcoin-nettverket uten å ha lastet ned hele blokkjeden. Det fungerer slik at lommeboken din forespør andre fullnoder informasjon om hvilke transaksjoner som har blitt inkludert i blokkjeden. Dette er en trade-off mellom personvern og bekvemmelighet, der man slipper å laste ned hele blokkjeden som er på rundt 460 GB, men det er en risiko for at fullnoden du kobler deg til kan finne ut hvilke transaksjoner som tilhører deg. En ondsinnet aktør kan overvåke hvilke transaksjoner som du forespør fra andre fullnoder, og på den måten finne ut hvor mye og hvilke bitcoin du eier.
Metoder som Bloom-filter eller å bruke Tor-nettverket forbedrer ditt personvern ved at de redusere sannsynligheten for at noen finner ut hvilke transaksjoner som tilhører deg, men det vil aldri bli like sikkert som å kjøre egen fullnode.
Selv om lettklient-lommebøker ikke er helt optimale sett fra et personverns-ståsted, så er det ikke fare for at en tredjepart kan stjele bitcoinene fra deg. Så lenge du ikke deler din private nøkkel med noen, så er bitcoinene trygge på en SPV-node.
Sikre nettverket
Bitcoin-nettverket er desentralisert takket være at et stort antall fullnoder og minere eksisterer distribuert over hele verden. Ved å laste ned hele blokkjeden og alle konsensureglene på din egen PC, så kan ingen forhindre deg i å få tilgang til noden din. Ved å kjøre en fullnode så bidrar du dermed med å holde nettverket desentralisert og distribuert, og dermed mer motstandsdyktig mot angrep.
Selv om nettverket er velfungerende i dag, så kan det hypotetisk sett utsettes for et koordinert angrep som setter store mengder fullnoder ut av spill. Eksempler på dette kan være at stater gjør det ulovlig å kjøre Bitcoin-node, og straffer de som gjør det, eller at en gigantisk solstorm ødelegger store deler av verdens datamaskiner inkludert fullnoder, slik som skjedde i 1859. I disse tilfellene er det helt avgjørende for sikkerheten til nettverket at det kjøres nok fullnoder til å opprettholde Bitcoins kontinuitet. Det er også viktig at disse nodene kjøres på forskjellige plasser i verden, slik at Bitcoin blir geografisk distribuert, og dermed motstandsdyktig mot lokale forhold.
Ved å kjøre egen fullnode så kan du i tillegg støtte eller motstå forslag til endringer. Dersom du ikke er enig i en foreslått regelendring, kan du motstå endringene ved nekte å oppdatere fullnoden din, og dermed støtte opp under de eksisterende reglene. I tilfellet der blokkjeden splittes i to etter en hard fork, vil noden din kun validere og videresende blokker som følger reglene til den versjonen av blokkjeden som du ønsker å støtte.
Jo flere ærlige noder, desto bedro er det for nettverket. Jo mer desentralisert Bitcoin er, jo vanskeligere er det å stoppe.
Flere fordeler
En annen fordel ved å sette opp egen fullnode er at man lærer mye om hvordan Bitcoin faktisk fungerer. Man ser hvordan datamaskinen din synkroniserer seg med nettverket, hvordan transaksjoner legges til i mempool, og hvordan blokker legges til i din egen versjon av blokkjeden.
Det finnes mange muligheter for å kjøre egen fullnode. Det finnes flere plug-and-play varianter, der man kjøper en datamaskin klargjort for å kjøre Bitcoin programvaren. Det eneste man trenger å gjøre er å koble den til internettet ditt hjemme, og la den synkronisere seg med resten av nettverket. En liste over plug-and-play datamaskiner kan finnes her.
En annen måte er å bygge sin egen datamaskin som bruker for eksempel Umbrel. Umbrel er et operativsystem bygget for å kjøre Bitcoin-node, Lightning-node og andre applikasjoner, på en Raspberry Pi. Umbrel kan også kjøres på vanlig datamaskin, men da må man bruke Linux-operativsystem.
For å kjøre Umbrel på Raspberry Pi trenger man først å kjøpe inn følgende utstyr, og deretter følge instruksene på umbrel.com
Bli med å håndheve Bitcoins konsensusregler, på samme tid som du tar vare på ditt eget personvern, ved å kjøre en Bitcoin-fullnode