Sist oppdatert: 01. mai 2018
Bitcoin btc
Marked

Hva er en fork?

Monero forkes nå til MoneroV og i den sammenheng har vi skrevet en artikkel om forks. Vi redegjør også for forskjellen mellom en soft fork og en hard fork.
Shayan Darvishi

Programvaren til Bitcoin og blokkjeden som driver Bitcoin har en åpen kildekode. Det betyr at koden er tilgjengelig for alle, både for å se på og til å bruke. Kildekoden fastsetter reglene og protokollene til den enkelte blokkjede, og håndheves av noder (brukere) som validerer transaksjoner og genererer nye blokker.

Bitcoin-protokollen inneholder eksempelvis en regel som sier at størrelsen på hver nye blokk i blokkjeden skal være på 1 megabyte med transaksjonsdata. Ettersom en kryptovaluta som Bitcoin utvikler seg kan det imidlertid forekommer endringer i protokoller. Det kan legges til ny funksjonalitet, eller kjerne-parametere som for eksempel blokkstørrelsen kan justeres.

En fork forekommer når en gruppe med ‘minere’ (noder som miner etter og genererer nye blokker på kjeden) i et nettverk eller på en blokkjede vedtar denne typen endringer og oppretter en ny blokkjede. I fjor sommer ble eksempelvis Bitcoin ‘forket’, eller splittet, til Bitcoin Cash. Denne nye blokkjeden fikk da andre regler og en annen protokoll enn forgjengeren Bitcoin.

To typer forks

Soft forks:

Når en gruppe med noder blir enige om oppdateringer til eksisterende regler på blokkjeden forekommer det som kalles en soft fork. Dette betyr at de nye versjonene av protokollen er kompatible med tidligere versjoner; eldre versjoner av blokkjeden vil altså gjenkjenne nye blokker. Protokollen kjører som sådan på samme måte som før, og samtlige noder på nettverket fortsetter å gjenkjenne nye blokker som legges til blokkjeden etter en soft fork.

Hard forks:

En hard fork forekommer når en gruppe med noder (brukere) ikke klarer å nå konsensus – altså ikke klarer å bli enige med hverandre. Deretter bestemmer en enkelt miner, eller en gruppe med minere, seg for å begynne å validere blokker med nye protokollregler. Dette er ikke kompatibelt med eldre versjoner av blokkjeden. Dermed må alle som kjører en node og driver utvinning av nye blokker på blokkjeden, og som ønsker å validere transaksjoner etter de nye reglene, oppdatere programvaren for å gjenkjenne disse nye blokkene.

En hard fork resulterer i en splittelse i blokkjeden, og skaper en ny blokkjede. Hvorvidt begge kjedene fortsetter å eksistere, både den gamle og den nye, avhenger av om de begge støttes av noder og gruvearbeidere på nettverket.
Hard forks får vanligvis en hel del mer oppmerksomhet enn soft forks, simpelthen fordi de skaper en helt ny blokkjede.

Dette så man eksempelvis i sommeren 2017, da Bitcoin ble splittet, og Bitcoin Cash ble født. I dette tilfellet klarte ikke nettverket å bli enige om blokkstørrelsen, og en gruppe noder bestemte seg for å splitte til Bitcoin Cash, med blokkstørrelser på 8 megabyte.

Når en hard fork oppstår, og begge blokkjedene fortsetter å støttes av noder som utvinner blokker (minere), mottar alle som holder den opprinnelige kryptovalutaen som oftest en tilsvarende mengde av den nye, splittede kryptovalutaen.

Det er opp til kryptovalutabørsene å avgjøre om den nye kryptovalutaen skal støttes eller ikke, og eventuelt å distribuere den til brukerne. Tidligere har mange kryptovalutainvestorer sett på hard forks som gratispenger, men denne typen splittelser er avhengige av at minere har nok tro på den nye valutaen til å holde den i live. Det har forekommet en rekke Bitcoin-splittelser, men den originale Bitcoin-blokkjeden med sin tilhørende protokoll er fortsatt den dominerende.

Kort oppsummert

Når en teknologisk utvikling eller endring av en blokkjede forekommer oppgraderes den enten gjennom en soft fork eller en hard fork. En soft fork oppstår når det oppnås konsensus blant nodene, altså når et flertall av individene på nettverket er enige om utviklingene og de nye reglene som foreslås, og de implementerer endringene sammen. Dette resulterer i en protokollendring i den originale blokkjeden. En hard fork oppstår derimot når nettverket av noder som utvinner nye blokker ikke klarer å oppnå konsensus og en gruppe med minere splitter seg fra den opprinnelige blokkjeden for å danne en helt ny kjede.