Vad är hårda gafflar mot mjuka gafflar i kryptovaluta?
Inom mjukvaruutveckling, en gaffel är en förgrening eller delning av kod i separata projekt. Gafflar med kryptovaluta sker hela tiden, och det finns i allmänhet inget att oroa sig för.
Eftersom alla blockchain-projekt (vad är blockchain?) Involverar programvara av något slag är det vad vi menar när vi pratar om gaffel. Genom att gaffla ett projekt tar du en kopia av koden vid en viss tidpunkt och bygger sedan på den koden som ett separat projekt.
Ett exempel på en gaffel är Bitcoin och Bitcoin Cash. Bitcoin Cash startade från Bitcoin-kodbasen, men körs nu som ett oberoende projekt. Eventuella ändringar i Bitcoin överförs inte till Bitcoin Cash, och varje uppsättning tokens är separata.
Gaffel behöver inte vara en dålig sak. Många företag gafflar sin egen programvara. Detta kan vara att upprätthålla stöd för två mycket olika operativsystem, till exempel, eller att behålla en gammal eller föråldrad version tillsammans med en mer uppdaterad version.
Cryptocurrency-gafflar skiljer sig inte från någon annan mjukvarugaffel. Till exempel anser utvecklare A att ett blockchain-projekt borde göra X, men utvecklare B anser att det borde göra Y. Om X och Y är för långt borta från varandra kan utvecklare A eller B välja att göra en gaffel. Varje utvecklare kan utveckla sina egna funktioner utan att störa varandra.
Gafflar kan också hända med riskabla eller experimentella funktioner.
Om utvecklarna överensstämmer med varandra, eller om en överenskommelse eller kompromiss inträffar, kan den gafflade versionen smälta tillbaka till den ursprungliga koden senare, eller den ursprungliga koden kan överges till förmån för den nya gaffelkoden.
Allt detta låter bra, men vad har det att göra med kryptovalutanvändare som du och jag? Eftersom många kryptovalutaprojekt är öppen källkod kan gafflar och hända hela tiden – ibland av legitima skäl (som förbättrad hastighet eller säkerhet), ibland av själviska skäl (som att göra brytning lättare för viss hårdvara).
Hard Forks vs Soft Forks i kryptovaluta
A mjuk gaffel innebär ofta mindre kodändringar. Detta kan vara terminologi eller förändringar som inte förändrar hur en viss blockchain fungerar. Mjuka gafflar är ofta inte påträngande och kan förekomma tillsammans med den oförverkade versionen.
Med mjuka gafflar kan gruvarbetare välja att byta till den nya koden. Eftersom det inte finns några större förändringar bör alla noder som kör äldre programvara fortfarande kunna acceptera block som genereras av de nya noderna – nya noder kommer emellertid att avvisa block som genereras av gamla noder. Om tillräckligt många gruvarbetare byter till den gafflade versionen finns det inte tillräckligt med noder i den gamla koden för att få transaktioner behandlade. De nya noderna skulle alla avvisa blocken från de gamla noderna och tvinga dem att byta.
Här blir det problematiskt: Om en mjuk gaffel är riskabel eller opopulär kanske gruvarbetare inte byter till den. Om bara en minoritet av noder kör den nya koden kan den dö ut och ersättas i koden.
A hård gaffel är ofta mycket besvärligare. Hårda gafflar behöver vanligtvis hela nätverket för att byta till den nya koden. Om vissa noder skulle köra den obearbetade koden kan noderna generera data på olika sätt och falla ur synkronisering. Även om det är möjligt att köra hårdgafflade och oförverkade noder på samma blockchain tillsammans, är det sällan gjort. Varje uppsättning noder skulle avvisa varandra och du skulle få en massa problem.
Så mycket besvär, faktiskt att blockchain-utvecklare kan insistera på att varje nod uppgraderar till gaffeln. Detta görs ofta vid ett datum i framtiden efter utvinning av ett specifikt block. Detta gör att varje nodtid kan uppgraderas.
Om en hård gaffel händer i koden men vissa utvecklare håller inte med om förändringen kan saker bli röriga. Gruvarbetarna själva kan befinna sig mitt i en bitter kamp och tvingas välja en sida. Om det blir riktigt dåligt kan ett helt nytt projekt uppstå – baserat på den ursprungliga koden, med de förändringar som gjorts av den hårda gaffeln. Den obearbetade koden fortsätter som den alltid har gjort, och den hårda gaffelkoden måste börja om.
Detta kallas a kedjesplit, och en sådan skilsmässa med kod kan ofta vara dåliga nyheter. Det ursprungliga projektet kan förlora supportrar, noder eller finansiärer till det hårdgafflade projektet, men det nya projektet kan också behöva hitta en inkomstkälla eller en samling noder för att driva nätverket. Denna bittra strid slutar sällan bra för någon av parterna.
När en kedjesplit inträffar kan utvecklarna välja att behålla en kopia av posterna vid sidan av koden, vilket innebär att alla som har tokens i det ursprungliga nätverket också kommer att ha tokens i det nya nätverket. Gratis kryptovaluta kan låta fantastiskt, men det finns några potentiella risker som kan påverka ett sådant projekt allvarligt.
Utan noggrann gaffelhantering kan nätverksanvändare kunna dubbla spendera mynt. Om en transaktion sker före gaffeln men inte registreras förrän efter gaffeln, kan du ha tokens i det nya nätverket som inte fanns i det gamla nätverket. Av denna anledning kommer de flesta heta plånböcker, växlar och noder att sluta bearbeta transaktioner för ett litet underhållsfönster före och efter angiven gaffeltid.
Om du använder din egen säkra kryptovalutaplånbok kan du behöva migrera dina mynt beroende på gaffeln.
Cryptocurrency Forks: Wrapped Up
En av kärnvärdena bakom offentliga kryptovalutaprojekt med öppen källkod är säkerhet. Gafflar ökar ofta säkerheten, men hårda gafflar kan vara problematiska.
Om du är kryptovalutaanvändare har du ofta inget att oroa dig för. Om du är en gruvarbetare som kör dina egna noder, måste du hålla reda på projektets utvecklingsstatus och nuvarande samförstånd.
Vilka är dina erfarenheter av gafflar? Kanske har du kört en nod när en gaffel händer, eller kanske är du personen i utvecklingsteamet som gör gaffeln. Låt oss veta i kommentarfältet nedan!