Introduktion
När du uppmanas att uppdatera din digitala bankapp på din smartphone tänker du förmodligen inte mycket på det. Kanske uppdateras din telefon automatiskt utan att du ens märker det. Det är trots allt en nödvändig process – om du inte installerar den senaste versionen av programvaran riskerar du att nekas åtkomst till bankens tjänster.
Vem fattar besluten i ett blockkedjenätverk?
Utvecklare
Utvecklarna är ansvariga för att skapa och uppdatera koden. För ett typiskt coin kan vem som helst bidra till denna process. Koden är offentligt tillgänglig, så de kan skicka in ändringar som andra utvecklare kan granska.
Miners
Användare av fullständiga noder
Du hittar ofta överlappningar i dessa kategorier. Du kan till exempel vara en utvecklare och en användare av en fullständig nod eller en miner och användare av en fullständig nod. Du kan vara alla tre eller ingen av dem. Faktum är att många av vad vi anser vara kryptovalutanvändare inte tar på sig några av dessa roller. Istället väljer de att använda lätta noder eller centraliserade tjänster.
Utvecklarna bryter sig inte in i ditt hem och tvingar dig att ladda ned Bitcoin Core-binärfiler under vapenhot. Om miners antar en "jag gör som jag vill"-attityd för att tvinga fram en oönskad förändring för användarna ... Ja, då kommer användarna bara att fortsätta gå sin egen väg.
Vad är en gaffel?
En programvarugaffel uppstår vid en punkt där programvaran kopieras och modifieras. Det ursprungliga projektet lever vidare, men det är nu skilt från det nya, som tar en annan väg. Anta att teamet på din favoritwebbplats för kryptovaluta-innehåll inte kommer överens om hur de ska gå vidare. En del av teamet kan kopiera webbplatsen på en annan domän. Men efter det skulle de kunna lägga upp andra typer av innehåll jämfört med originalet.
Projekten bygger på en gemensam grund och delar en historia. Precis som en enda väg som senare delar sig i två finns det nu en permanent skillnad i deras vägar.
Hårda gafflar kontra mjuka gafflar
Trots att de har liknande namn och i slutändan tjänar samma syfte skiljer sig hårda och mjuka gafflar avsevärt åt. Vi tar en titt på båda två.
Vad är en hård gaffel?
Hårda gafflar är bakåtinkompatibla programuppdateringar. Vanligtvis uppstår dessa när noder lägger till nya regler på ett sätt som strider mot reglerna för de gamla noderna. Nya noder kan bara kommunicera med de som använder den nya versionen. Som ett resultat delas blockkedjan och skapar två separata nätverk: ett med de gamla reglerna och ett med de nya.
Noder blir blå när de uppdateras. De äldre och gula noderna avvisar dem, medan de blå ansluter till varandra.
Så det finns nu två nätverk som körs parallellt. De kommer båda att fortsätta att sprida block och transaktioner, men de arbetar inte längre på samma blockkedja. Alla noder hade en identisk blockkedja fram till gaffelpunkten (och den historiken finns kvar), men de kommer att ha olika block och transaktioner efteråt.
En ökning av blockstorleken kräver modifiering av reglerna. Detta var före SegWits mjuka gaffel (mer om den inom kort), så noder skulle bara acceptera block mindre än 1 MB. Om du skapade ett 2 MB-block som annars var giltigt, skulle andra noder fortfarande avvisa det.
Endast noder som har ändrat dess programvara för att tillåta block som är större än 1 MB kan acceptera dessa block. Naturligtvis skulle det göra dem inkompatibla med den tidigare versionen, så endast noder med samma protokollmodifieringar kan kommunicera med varandra.
Vad är en mjuk gaffel?
Om du gör detta kopplas du inte automatiskt bort från nätverket. Du kommunicerar fortfarande med noder som inte implementerar dessa regler, men du filtrerar bort en del av informationen som de skickar till dig.
Inte ens två år efter SegWit-aktivering hade alla noder uppgraderats. Det finns fördelar med att göra detta, men det är ingen riktig brådska eftersom det inte finns någon nätverksbrytande förändring.
Hårda gafflar kontra mjuka gafflar – vilken är bäst?
I grund och botten tjänar båda ovanstående typer av gafflar olika syften. Omstridda hårda gafflar kan splittra en community, men planerade sådana ger friheten att modifiera programvaran när alla är överens.
Mjuka gafflar är ett mildare alternativ. Generellt sett är du mer begränsad i vad du kan göra, eftersom dina nya ändringar inte kan komma i konflikt med de gamla reglerna. Om din uppdatering kan skapas på ett sådant sätt att den förblir kompatibel behöver du dock inte oroa dig för att fragmentera nätverket.
Sammanfattningsvis
Hårda och mjuka gafflar är avgörande för den långsiktiga framgången för blockkedjenätverk. De tillåter oss att göra förändringar och uppgraderingar i decentraliserade system trots bristen på en central myndighet.
Gafflar gör det möjligt för blockkedjor och kryptovalutor att integrera nya funktioner allt eftersom de utvecklas. Utan dessa mekanismer skulle vi behöva ett centraliserat system med total kontroll. Annars skulle vi ha fastnat med exakt samma regler under protokollets hela livstid.