bitcoinakademiet

- LÆR ALT OM BITCOIN OG KRYPTOVALUTA

Hard fork vs soft fork

Få ting har skapt like mye forvirring rundt bitcoin og blockchain som begrepene «hard fork» og «soft fork». I denne guiden skal vi prøve å forklare hva en fork er, hvilken rolle de spiller for bitcoin og blockchain, og hva som er forskjellen på en hard fork og soft fork.

I programmeringsverdenen brukes ordet «fork» om en endring av koden i åpen-kildekode. Som oftest vil den nye koden være tilnærmet lik den originale, med unntak av noen spesifikke funksjoner eller modifikasjoner som er selve formålet med endringen.

Når vi snakker om forks i bitcoin- og blockchainverdenen er formålet som oftest å implementere en fundamental endring eller egenskap, eller å skape en ny kryptovaluta som da vil dele mange av egenskapene til den originale. En fork kan og skje uten forvarsel hvis f.eks et visst antall noder velger å kjøre ulik utgave av softwaren. Som regel oppstår forks på grunn av uenigheter rundt utvikling og implementering av nye egenskaper.

Det er viktig å merke seg at når en blockchain «forker» vil den nye kjeden dele all historikk med den originale kjeden frem til og med tidspunktet for splittelsen. Det er også grunnen til at alle som eier en kryptovaluta på tidspunktet hvor en kjedesplitt skjer, vil og eie likt antall enheter av den nye valutaen fordi begge kjeder deler samme private og offentlige nøkler.

Hard forks

Det er en viktig fundamental forskjell mellom en hard og soft fork. En hard fork representerer en endring i protokollen som gjør tidligere versjoner ukompitable med den nye. Hvis en eller flere personer ikke oppgraderer til den nye protokollen vil det kunne føre til to separate protokoller som eksisterer parallelt.

I tilfellet med bitcoin vil for eksempel en hard fork være nødvendig for å endre blokkstørrelsen, blokktiden eller konsensusalgoritmen. En endring av en eller flere av disse egenskapene vil føre til at fremtidige blokker blir akseptert av den nye protokollen, men vil bli avvist av eldre versjoner og kan potensielt få store konsekvenser.

Hvis en hard fork oppstår kan det føre til to ulike blokkjeder som hver består av ulike blokker ettersom kun den nye kjeden vil kunne akseptere og validere blokker med de nye egenskapene. I dette tilfellet vil potensielt begge kjedene kunne fortsette å vokse i parallel og skape forvirring blant både noder og brukere rundt hvilken kjede som er den reelle. Dette kan høres veldig forvirrende ut, og det er akkurat hva det er.

En hard fork vil og kunne være svært risikabelt for personer som sender og mottar bitcoin. Siden det nå eksisterer to parallele kjeder, vil det være mulig at bitcoin sendt i den ene kjeden også kan bli sendt på nytt i den andre kjeden. Dette kan skje fordi brukere av den gamle kjeden ikke vil oppdage at de samme bitcoinsa har allerede blitt sendt på den nye kjeden.

Den eneste løsningen på dette er at en av kjedene blir forlatt til fordel for den andre, slik at alle fremtidige transaksjoner og validerte blokker vil skje på den gjeldende kjeden. I tilfellet hvor dette ikke skjer vil bitcoin risikere å bli splittet i to kjeder, som skjedde da Bitcoin Cash så dagens lys.

Diagram som forklarer forskjellen mellom en hard fork og soft fork. Kilde: https://cointelegraph.com/news/can-crypto-exchanges-be-trusted-with-hard-forks (23.2.2019)

Soft forks

En soft fork vil på sin side være kompitabel med tidligere versjoner. En slik endring av protokollen kan tilføre nye funksjoner eller være en ikke-kritisk endring som har ingen påvirkning på den underliggende kodestrukturen.

Noder som kjører den gamle protokollen vil derfor fortsette å akseptere blokker fra den nye versjonen, men ikke motsatt. Noder som kjører den nye og oppdaterte protokollen vil avvise blokker fra den gamle versjonen.

Siden alle noder og minere har et felles ønske om å opprettholde og styrke nettverket vil de som fortsatt kjører den gamle protokollen oppgradere når de oppdager at blokkene de produserer ikke lenger blir akseptert av den andre kjeden. Jo flere noder og minere som validerer blokker på den nye kjeden vil føre til økt insentiv for andre noder og minere til også å oppgradere, slik at nettverket vil korrigere seg selv naturlig. Siden blokker med den oppgraderte versjonen aksepteres av både gamle og oppgraderte noder vil den oppgraderte versjonen til slutt bli den dominerende kjeden.

Gjennom historien har bitcoin gjennomgått flere soft forks. Blokkstørrelsen på 1 mb ble til som et resultatet av en soft fork ettersom bitcoin tidligere ikke hadde noen begrensning på blokkstørrelsen. Dette var en soft fork ettersom den nye endringen var mer strikt enn den gamle. I tilfellet med splittelsen som førte til Bitcoin Cash var den nye endringen mindre strikt, og derav per definsjon en hard fork.

En soft fork unngår problemet med at samme bitcoin kan bli sendt to ganger slik som ved hard forks fordi alle noder som enda ikke har oppgradert vil fortsette å akseptere blokker på den oppgraderte protokollen.