Vad innebär hard forks och soft forks?

Vad-innebär-hard-forks-och-soft-forks

Jag gissar du hört ordet ”fork” i sammanhanget när det kommer till kryptovärlden? Det är ett begrepp som återkommer väldigt ofta men vad betyder det egentligen? Det handlar inte om ”vanliga” gafflar, utan det handlar om förgrening. Ett sätt att uppgradera blockkedjan, vilket inte alltid är solklart i ett decentraliserat system, därav hard and soft forks. (förgrening)

Först lite kort fakta

Vi vet att det finns ett maxtak för antalet Bitcoins, vilket är 21 miljoner. Vi vet att ett block kan innehålla max 1 (2) MB (megabytes) i form av information/transaktioner och att det tar 10 minuter att ”göra klart” ett block i blockkedjan. Utifrån matematiska uträkningar kommer alla Bitcoins vara ”minade” ca år 2140. Idag är ca 18-19 miljoner Bitcoins minade. Så utifrån dessa fakta har man givetvis diskuterat och gör så fortfarande kring hur man uppgraderar och expanderar systemet osv. Det är något som soft och hard forks kan ge lite svar på.

Uppgradering av nätverk krävs ibland, även blockchain

Hur uppdaterar vi nätverket (blockchain)? Det finns som bekant ingen enskild server som du behöver uppdatera, ingen enda ”plats” vilket innebär att man behöver uppdatera hela nätverket och hur gör man det då det är decentralicerat? Hur fixar vi buggar och hur släpper vi nya funktioner i en decentraliserad struktur? Det är ett problem.

Vi måste övertyga människor som driver knutpunkter (nodes) på nätverket för att uppgradera. Men hur kan man säkra upp att de kommer att uppgradera? Det kanske slutar med att vissa noder (personer) på nätverket gör uppgraderingen och vissa gör det inte och det är i det här fallet som soft and hard forks kommer in i sammanhanget.

Ambitionen för varje uppgradering är att hela nätverket uppgraderar mjukvaran, men ibland uppdateras inte några noder av olika skäl.

Soft forks – ”mjuka förgreningar”

Soft forks innebär att man gör en uppgradering av nätverket (blockchain) med kompabilitiet bakåt, vilket innebär att noderna fortfarande kan kommunicera med den gamla versionen av programvaran (nätverket). På det sättet är alla noder fortfarande en del av nätverket. På så sätt kan nya funktioner implementeras med soft fork.

De gamla noderna har inte de nya funktionerna och de behöver inte ha det för att kunna kommunicera. Det viktigaste är att även om vissa noder har uppgraderat och vissa inte, kan de fortfarande kommunicera med varandra – tjänsten är inte störd.

För att ge ett jämförande exempel kan man säga att om du arbetar med ett dokument som Microsoft Word så kan du till exempel exportera filer som är kompatibla med tidigare versioner av Microsoft Word.

Hard forks – hårda förgreningar

Soft forks står i kontrast till hard forks – hard forks är uppgraderingar som inte är kompatibla bakåt i äldre versioner. När vi har en hard fork och några noder gör uppgraderingen och vissa inte, betyder det att vi nu har nya noder, dessa uppgraderade noder består nu av ett nytt nätverk och kan inte kommunicera med det gamla nätverket. Så minade block på det nya nätverket accepteras inte i det gamla nätverket och vice versa.

Det här är ett problem när det gäller att uppgradera nätverket. Ibland behöver vi göra en hard fork och en del hard forks kan av naturen inte kommunicera med den äldre versionen av samma programvara.

Hard forks är ibland mindre bra, som när en del inte gillar din uppgradering, då kommer de heller inte att uppgradera sin programvara och om de inte uppgraderar sin programvara har vi en nätverks split / nätverksuppdelning och dessa två blir därmed två olika nätverk.

Något att komma ihåg är att dessa nu två olika nätverk delar historia fram tills det att en hard fork sker.

 

 

När en hardfork sker går nätverket i olika riktningar

Från den tidpunkt som hardfork sker börjar de producera block som är oförenliga med den gamla versionen och den gamla versionen fortsätter att producera block själva i den ”gamla” kedjan, vilket innebär att nätverket går i olika riktningar när fork’en inträffar och blocken  finns inte längre i samma nätverk. De nya blocken är i det nya nätverket och de gamla blocken är i det gamla nätverket. MEN båda dessa block delar historien fram till den punkt då fork’en inträffade.

Exempel på hardfork

Detta kan jämföras med Bitcoin och Bitcoin Cash. 1 augusti 2017 kom bitcoin cash till genom en hard fork. De släppte en uppgradering till nätverket, vilket ökade blockstorlekarna och när du ökar blockstorleken kommer din version av programvaran inte att kommunicera med den gamla versionen av programvaran.

Vilket betyder att bitcoin cash (BHC) blocken produceras nu (röd kvadrat – se illustration ovan) och är inte längre i samma nätverk som bitcoin (BTC) blocken, men bitcoin och bitcoin cahs delar exakta samma historia fram till den punkt där forken inträffade – så i det här fallet inträffade en nätverksdelning – en split.

Varför du får samma mängd coins du hade i den tidigare när forken inträffar

Varför får du samma mängd bitcoin cash som du hade i bitcoin när forken inträffade? Och varför får du samma mängd coin när ett coin är fork’at – vilket betyder att du får lika mycket som du hade i den ”gamla” kedjan.

Exempel: Säg att du hade 20 bitcoin och sedan forked till bitcoin cash, vilket betyder att du har både 20 bitcoins men också 20 bitcoin cash. Och varför är det så? Det är för att de delade samma historia. Men kom ihåg att de nu är isolerade från varandra, de kommunicerar inte längre.

Så om du spenderar 10 bitcoin i bitcoin nätverket, vet inte bitcoin cash nätverket om det eftersom det är två olika nätverk. Det betyder att du fortfarande har 20 bitcoin cash. Detta är en grundläggande kunskap om hur man förstår forks. Och varför får du samma belopp i det nya myntet som du hade i det gamla nätverket.

Hur dina nycklar påverkas vid hardfork

Något annat som är viktigt i denna fråga är att dina privata nycklar som skapades före forken kontrollerar samma adresser på båda nätverken. Så med den här nyckeln kan du nu spendera både bitcoin och bitcoin cash så se till att du alltid kontrollerar dina egna privata nycklar.

Om du har dina coins på en exchange är det inte säkert att utbytet ger dig dina nya mynt, därför bör du alltid styra dina egna privata nycklar.

När ingen split sker

Låt oss säga att vi gör en hard fork och alla gör uppgraderingen då finns det ingen nätverksuppdelning – ingen split. Så en hard fork behöver inte nödvändigtvis innebära en nätverkssplit om alla gör uppgraderingen.

Varför ger inte alla hard forks gratis coins?

Ibland säger folk att ”Litecoin är en fork av Bitcoin”. Men om du hade Bitcoin vid tillfället när den forkades skulle du inte få något Litecoin.

Hur kommer det sig? När ett nätverk delas upp (split), borde du få lika stor mängd av det nya myntet som du har i det gamla myntet.

Anledningen är att ordet fork är förvirrande och betyder flera olika saker.

Det finns 2 klasser av forks – forks av blockchain och forks av källkoden. Läs mer om det här.

Foto
unsplash-logoAlejandro Escamilla

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *