Zephyrnet-logotyp

Hard Forks, Soft Forks, Defaults och tvång

Datum:

Ett av de viktiga argumenten i blockchain-utrymmet är huruvida hårda gafflar eller mjuka gafflar är den föredragna mekanismen för protokolluppgradering. Den grundläggande skillnaden mellan de två är att mjuka gafflar ändrar reglerna för ett protokoll med strikt reducerande uppsättningen transaktioner som är giltiga, så noder som följer de gamla reglerna kommer fortfarande att hamna i den nya kedjan (förutsatt att majoriteten av gruvarbetare/validerare implementerar gaffeln), medan hårdgaffel tillåter tidigare ogiltiga transaktioner och block att bli giltiga, så klienter måste uppgradera sina kunder för att stanna i den hårdförklädda kedjan. Det finns också två undertyper av hårda gafflar: strikt expanderande hårda gafflar, som strikt utökar uppsättningen av transaktioner som är giltiga, och så effektivt är de gamla reglerna en mjuk gaffel med avseende på de nya reglerna, och bilateral hårda gafflar, där de två regeluppsättningarna är inkompatibla åt båda hållen.

Här är ett Venn-diagram för att illustrera gaffeltyperna:

De fördelar som vanligtvis nämns för de två är följande.
  • Hårda gafflar ger utvecklarna mycket mer flexibilitet i att göra protokolluppgraderingen, eftersom de inte behöver se till att de nya reglerna "passar in" i de gamla reglerna
  • Mjuka gafflar är mer bekväma för användarna, eftersom användarna inte behöver uppgradera för att stanna på kedjan
  • Mjuka gafflar leder mindre sannolikt till en kedjesplittring
  • Mjuka gafflar kräver egentligen bara samtycke från gruvarbetare/validerare (som även om användare fortfarande använder de gamla reglerna, om noderna som gör kedjan använder de nya reglerna kommer bara saker som är giltiga enligt de nya reglerna att komma in i kedjan i alla fall); hårda gafflar kräver opt-in samtycke från användare

Bortsett från detta är en stor kritik som ofta ges för hårda gafflar att hårda gafflar är "tvingande". Den typ av tvång som här antyds är inte fysiskt våld; snarare är det tvång genom nätverkseffekt. Det vill säga om nätverket ändrar regler från A till B, så även om du personligen gillar A, om de flesta andra användare gillar B och byter till B så måste du byta till B trots ditt personliga ogillande av ändringen för att vara på samma nätverk som alla andra.

Förespråkare av hårda gafflar hånas ofta för att de försöker åstadkomma ett "fientligt övertagande" av ett nätverk och "tvinga" användare att följa med dem. Dessutom används ofta risken för kedjesplittring för att fakturera hårda gafflar som "osäkra".


Det är min personliga uppfattning att denna kritik är felaktig, och dessutom i många fall helt bakvänd. Denna synpunkt är inte specifik för Ethereum, eller Bitcoin, eller någon annan blockchain; det härrör från allmänna egenskaper hos dessa system och är tillämpligt på vilket som helst av dem. Dessutom gäller argumenten nedan endast för kontroversiella förändringar, där en stor del av minst en valkrets (gruvarbetare/validerare och användare) ogillar dem; om en förändring är ostridig kan den i allmänhet göras säkert oavsett formatet på gaffeln.

Låt oss först och främst diskutera frågan om tvång. Hårda gafflar och mjuka gafflar ändrar båda protokollet på ett sätt som vissa användare kanske inte gillar; vilken som helst Protokolländring kommer att göra detta om den har mindre än exakt 100 % stöd. Dessutom är det nästan oundvikligt att åtminstone några av oliktänkande värderar i vilket scenario som helst nätverkseffekten av att hålla sig till den större gruppen mer än de värderar sina egna preferenser när det gäller protokollreglerna. Därför är båda gaffeltyperna tvångsmässiga, i ordets nätverkseffektbemärkelse.

Det finns dock en väsentlig skillnad mellan hårda gafflar och mjuka gafflar: hårda gafflar är opt-in, medan mjuka gafflar tillåter användare att inte "vala" alls. För att en användare ska gå med i en hårdförgrenad kedja måste de personligen installera mjukvarupaketet som implementerar gaffelreglerna, och den uppsättning användare som inte håller med om en regeländring ännu starkare än de värdesätter nätverkseffekter kan teoretiskt sett helt enkelt stanna på gammal kedja – och praktiskt taget en sådan händelse har redan hänt.

Detta är sant i fallet med både strikt expanderande hårdgafflar och bilaterala hårdgafflar. När det gäller mjuka gafflar, om gaffeln lyckas existerar inte den ofafflade kedjan. Därav, mjuka gafflar gynnar tydligt institutionellt tvång framför avskiljning, medan hårda gafflar har motsatt fördom. Mina egna moraliska åsikter leder mig till att föredra utbrytning framför tvång, även om andra kan skilja sig åt (det vanligaste argumentet som tas upp är att nätverkseffekter verkligen är väldigt viktiga och det är viktigt att "ett mynt styr dem alla", även om mer moderata versioner av detta också finns).

Om jag måste gissa varför, trots dessa argument, mjuka gafflar ofta faktureras som "mindre tvångsmässiga" än hårda gafflar, skulle jag säga att det är för att det känns som att en hård gaffel "tvingar" användaren att installera en mjukvaruuppdatering, medan med en mjuk gaffel behöver användare inte göra någonting alls. Men denna intuition är missriktad: det som spelar roll är inte om enskilda användare måste utföra det enkla byråkratiska steget att klicka på en "ladda ner"-knapp, utan snarare om användaren är eller inte tvingas att acceptera en ändring av protokollreglerna som de helst inte vill acceptera. Och med detta mått, som nämnt ovan, är båda typerna av gafflar i slutändan tvångsmässiga, och det är hårda gafflar som kommer ut som något bättre på att bevara användarens frihet.

Låt oss nu titta på mycket kontroversiella gafflar, särskilt gafflar där gruvarbetare/validatorpreferenser och användarpreferenser står i konflikt. Det finns tre fall här: (i) bilaterala hårdgafflar, (ii) strikt expanderande hårdgafflar och (iii) så kallade "användaraktiverade mjuka gafflar" (UASF). En fjärde kategori är där gruvarbetare aktiverar en mjuk gaffel utan användarens samtycke; vi kommer till detta senare.

Först, bilaterala hårda gafflar. I bästa fall är situationen enkel. De två mynten handlas på marknaden, och handlare bestämmer det relativa värdet av de två. Från ETC/ETH-fallet har vi överväldigande bevis för att gruvarbetare är överväldigande sannolikt att helt enkelt tilldela sina hashrater till mynt baserat på förhållandet mellan priser för att maximera sin vinst, oavsett deras egna ideologiska åsikter.

Även om vissa gruvarbetare bekänner sig till ideologiska preferenser gentemot den ena eller andra sidan, är det överväldigande troligt att det kommer att finnas tillräckligt många gruvarbetare som är villiga att arbitrage någon obalans mellan prisförhållande och hashpowerförhållande, och bringa de två i linje. Om en kartell av gruvarbetare försöker bildas för att inte bryta på en kedja, finns det överväldigande incitament att hoppa av.

Det finns två kantfall här. Den första är möjligheten att, på grund av en ineffektiv svårighetsjusteringsalgoritm, värdet av att bryta myntet sjunker eftersom priset sjunker men svårigheten inte går ner för att kompensera, vilket gör gruvdrift mycket olönsam, och det finns inga gruvarbetare som är villiga att bryta vid en förlust att fortsätta trycka kedjan framåt tills dess svårighetsgrad kommer tillbaka i balans. Detta var inte fallet med Ethereum, men kan mycket väl vara fallet med Bitcoin. Därför kan minoritetskedjan helt enkelt aldrig komma från marken, och så kommer den att dö. Observera att den normativa frågan om om detta är bra eller inte beror på dina åsikter om tvång kontra utträde; som du kan föreställa dig från det jag skrev ovan tror jag personligen att sådana minoritetskedja-fientliga svårighetsjusteringsalgoritmer är dåliga.

Det andra kantfallet är att om skillnaden är mycket stor kan den stora kedjan till 51 % attackera den mindre kedjan. Även i fallet med en ETH/ETC-delning med ett förhållande på 10:1 har detta inte hänt; så det är verkligen inte givet. Det är dock alltid en möjlighet om gruvarbetare i den dominerande kedjan föredrar tvång framför att tillåta utträde och agera utifrån dessa värderingar.

Låt oss sedan titta på strikt expanderande hårdgafflar. I en SEHF finns egenskapen att den icke-gaffelade kedjan är giltig enligt reglerna med gaffel, och så om gaffeln har ett lägre pris än den icke-gaffelade kedjan, kommer den att ha mindre hashpower än den icke-gaffelade kedjan, och så den icke-gaffelade kedjan kommer att accepteras som den längsta kedjan enligt både original-klient- och gaffelklientregler – och så gaffelkedjan”kommer att förintas".

Det finns ett argument för att det alltså finns en stark inneboende fördom mot att en sådan gaffel lyckas, eftersom möjligheten att den gaffelförsedda kedjan kommer att förintas kommer att bakas in i priset, vilket pressar priset lägre, vilket gör det ännu mer sannolikt att kedjan kommer att bli förintad. tillintetgjort... Detta argument för mig verkar starkt, och så det är en mycket bra anledning att göra vilken som helst omtvistad hårdgaffel bilateral snarare än strikt expanderande.

Bitcoin Unlimited-utvecklare föreslår att man hanterar detta problem genom att gör den hårda gaffeln bilateral manuellt efter det har hänt, men ett bättre val vore att göra bilateraliteten inbyggd; till exempel, i bitcoin-fallet, kan man lägga till en regel för att förbjuda någon oanvänd op-kod, och sedan göra en transaktion som innehåller den op-koden på den icke-forked-kedjan, så att enligt de forked-reglerna den icke-forked-kedjan från och med då kommer att vara anses för evigt ogiltig. I Ethereum-fallet, på grund av olika detaljer om hur tillståndsberäkning fungerar, är nästan alla hårdgafflar bilaterala nästan automatiskt. Andra kedjor kan ha olika egenskaper beroende på deras arkitektur.

Den sista typen av gaffel som nämndes ovan är den användaraktiverade mjuka gaffeln. I en UASF aktiverar användare reglerna för mjuk gaffel utan att bry sig om att få konsensus från gruvarbetare; gruvarbetare förväntas helt enkelt falla i linje av ekonomiskt intresse. Om många användare inte går med på UASF, kommer det att ske en myntdelning, och detta kommer att leda till ett scenario som är identiskt med den strikt expanderande hårdgaffeln, förutom – och det här är den riktigt smarta och snåla delen av konceptet – samma "risk för förintelse"-tryck som starkt missgynnar den gaffelformade kedjan i en strikt expanderande hårdgaffel gynnar istället starkt den gaffelformade kedjan i en UASF. Även om en UASF är opt-in, använder den ekonomisk asymmetri för att partiska sig mot framgång (även om partiskheten inte är absolut; om en UASF är avgjort impopulär kommer den inte att lyckas och kommer helt enkelt att leda till en kedjedelning).

UASF är dock ett farligt spel. Låt oss till exempel anta att utvecklarna av ett projekt vill göra en UASF-patch som konverterar en oanvänd op-kod som tidigare accepterade alla transaktioner till en op-kod som bara accepterar transaktioner som följer reglerna för någon cool ny funktion, även om en som är politiskt eller tekniskt kontroversiella och gruvarbetare ogillar. Gruvarbetare har ett smart och listigt sätt att slå tillbaka: de kan ensidigt implementera en miner-aktiverad mjukgaffel som gör att alla transaktioner som använder funktionen som skapas av mjukgaffeln alltid misslyckas.

Nu har vi tre regler:

  1. De ursprungliga reglerna där opcode X alltid är giltig.
  2. Reglerna där opcode X endast är giltig om resten av transaktionen följer de nya reglerna
  3. Reglerna där opcode X alltid är ogiltig.

Observera att (2) är en mjuk gaffel med avseende på (1), och (3) är en mjuk gaffel med avseende på (2). Nu finns det ett starkt ekonomiskt tryck till förmån för (3), och så den mjuka gaffeln misslyckas med att uppnå sitt mål.

Slutsatsen är denna. Mjuka gafflar är ett farligt spel, och de blir ännu farligare om de är kontroversiella och gruvarbetare börjar slå tillbaka. Strikt expanderande hårdgafflar är också ett farligt spel. Miner-aktiverade mjuka gafflar är tvångsmässiga; användaraktiverade mjuka gafflar är mindre tvångsmässiga, men fortfarande ganska tvångsmässiga på grund av den ekonomiska pressen, och de har också sina faror. Om du verkligen vill göra en omtvistad förändring och har bestämt dig för att de höga sociala kostnaderna för att göra det är värt det, gör bara en ren bilateral hårdgaffel, spendera lite tid på att lägga till ett ordentligt reprisskydd och låt marknaden reda ut det. .

Källa: https://vitalik.eth.limo/general/2017/03/14/forks_and_markets.html

plats_img

VC Café

VC Café

Senaste intelligens

plats_img