Den 1 augusti 2017 var Bitcoin-communityn planerad att initiera nätverkets första användaraktiverade mjuka gaffel (UASF). Det nya konceptet, som föreslogs av den pseudonyma Bitcoin- och Litecoin-utvecklaren Shaolinfry, var den sista kampanjen i en årslång skalningskonflikt som kulminerade i aktiveringen av SegWit.

Dagen kallades Bitcoin Independence Day, en dag som visade att samhällets konsensus var suveränitet. Och officiellt sätta stopp för nätverkets första av många inbördeskrig.

SegWit: En TLDR

Segregated Witness introducerades i en Bitcoin Core-uppgradering i oktober 2016. Den två-för-en-protokolluppgraderingen reparerade ett transaktionsmallbarhetsfel (vilket i slutändan skulle bana väg för sekundära nätverk som Lightning) och, som en glad konsekvens, lägre transaktionskostnader med öka hur mycket transaktionsdata kan passa in i varje block.

Först introducerad av Dr Pieter Wuille vid Scaling Bitcoin i december 2015, skiljer uppgraderingen i huvudsak signaturer (data som ansvarar för att bevisa vem som äger vilken bitcoin) och transaktioner inom varje block. Istället för att klumpa ihop signaturer till transaktionsdata, förpackas dessa data i ett blocks myntbas. Detta ökade Bitcoins blockstorlek utan att öka dess ursprungliga blockstorleksgräns.

Och detta kunde göras, föreslog Core-bidragsgivaren Luke Dashjr, som en bakåtkompatibel mjuk gaffel, vilket innebär att uppgraderingen kan tillämpas av vissa noder och inte andra utan att hota blockchainens samförstånd.

Ytterligare läsning: Den långa vägen till SegWit: Hur Bitcoins största protokolluppgradering blev verklighet

Efter ett års utveckling skulle cirka 4700 rader kod (skrivna av Wuille, Ciphrex VD och kärnbidragare Eric Lombrozo och kärnbidragande Dr. Johnson Lau) levereras i Bitcoin Core version 0.13.1 med vad som verkade vara uppenbara fördelar för nätverket . Som trots allt inte vill ha billigare, snabbare transaktioner?

Gruvarbetare, tydligen.

Även när SegWit gjorde det till Core-utgåvan, hade det ännu inte aktiverats. För att detta ska hända måste gruvarbetare signalera sitt stöd för uppgraderingen och börja bryta SegWit-block. När en gruvarbetare eller pool kom med signalen skulle 95 procent av nätverkets gruvarbetare ha en spännvidd på två veckor (2016 block, aka en svårighetsperiod) för att börja bryta SegWit-block. Om 95 procent av haschkraftgenererade block enligt de nya SegWit-reglerna inom denna tidsram, skulle mjukgaffelns regler “låsas in” i nätverket och aktiveras helt efter ytterligare en svårighetsperiod.

Problemet var att bara Bitfury, Slush Pool, BTCC och en handfull mindre gruvbassänger och oberoende gruvarbetare signalerade för uppgraderingen när den gick live i oktober. Några av de största, som Bitmains Antpool och F2Pool, var mindre än angelägna om att åta sig att uppgradera. Speciellt Bitmain krävde att SegWit skulle åtföljas av en ökning av blockstorleken via en separat hård gaffel.

Så SegWit var faktiskt en nonentity vid ankomst.

Samla trupperna

Under resten av 2016 låg SegWits kod vilande i Bitcoin Core-programvaran, men skalningsdebatten var lika aktiv som någonsin. I februari slogs UASF först upp som en metod för att stimulera SegWit-antagande, men stödet för detta tog inte fart förrän på våren / sommaren 2017 (mer om detta senare). Kanske kan det positiva mottagandet för UASF ses som ett sista dike svar på två nya komplikationer som skulle ge rymdens årslånga skalningskonflikt feber.

Den första av dessa var upptäckten att gruvbolat Bitmain kan ha använt en sårbarhet i Bitcoins gruvalgoritm för att mjölka upp till 20 procents effektivitetsökning med sina gruvarbetare. Dubbade AsicBoost, Blockstream CTO och den erfarna Core-bidragsgivaren Gregory Maxwell blåste först om utnyttjandet efter omvänd teknik av ett ASIC-chip utvecklat av Bitmain. Även om Bitmain förnekade att den hade distribuerat mekanismen vid den tiden berättade källor för Bitcoin Magazine att branschens främsta ASIC-tillverkare inkluderade AsicBoost i sina marker (även om det aldrig bevisats att den använde exploateringen i sin verksamhet).

Plötsligt började SegWits stagnation bland gruvarbetare vara vettigt. Om aktiverad skulle SegWit upphäva AsicBoost helt.

“En inkompatibilitet skulle gå långt för att förklara några av de mer oförklarliga beteenden från vissa parter i gruvekosystemet, så jag började leta efter stödjande bevis”, skrev Maxwell då.

Som Lombrozo berättade för Bitcoin Magazine, “Efter att det blev klart att SegWit gjorde att ASICBOOST inte fungerade, fanns det ytterligare ett incitament [för dem att inte implementera SegWit].”

Detta var i april 2017. Följande månad, under dagarna fram till konsensus 2017, en kabal av Bitcoin-industrins mest inflytelserika företag mötte och förfalskade det som blev känt som New York-avtalet. Ledet av Digital Currency Group och dess grundare Barry Silbert hade det hemliga mötet endast en inbjudan: planera och genomföra en hård gaffel som skulle aktivera SegWit och utöka Bitcoins verkliga blockstorlek till 4 MB. Tydligen spelade detta för Bitmain och andra större gruvföretag, eftersom New York-avtalet fick stöd från gruvpoolledare som representerade 80 procent av den globala hashraten.

Initiativet var märkt SegWit2x. Och pojke var det kontroversiellt. Den hårda gaffeln innebar att de nya protokollreglerna, till skillnad från SegWit soft fork, skulle vara oförenliga med icke-uppgraderade versioner – och avtalets version av SegWit var oförenlig med Core-versionen. En grupp eliter som bara representerade en bråkdel av Bitcoins användare försökte att kommandera Bitcoin-varumärket och kontrollera nätverkets utveckling, allt utan någon input från de faktiska Core-utvecklarna.

Denna samverkan blev snabbt erkänd som ett existentiellt hot. Det som antogs vara en sömlös mjuk gaffel med SegWit hade spirat in i ett skalande krig som hotade att klyva nätverket (och dess samhälle) i två. Med SegWit2x-aktivering planerad till oktober / november 2017, var tiden för en samhällsläkande lösning slut.

UASF-lösningen

Innan sommaren var ute började det nya implementeringsförslaget SegWit från februari – drunknade som det var på våren från bullret som orsakades av de omgivande skalningsdebatterna – att dyka upp igen som en livskraftig lösning.

“Det finns inget universum där SegWit inte kommer att aktiveras”, berättade den pseudonyma Bitcoin- och Litecoin-utvecklaren, Shaolinfry, till Bitcoin Magazine vid den tiden.

Därför introducerade han en ny fix till lösningen, UASF, i februari 2017.

Lösningen var enkel, om det var lite riskabelt. Genom att aktivera UASF på deras plånböcker och noder skulle användarna ge gruvarbetare ett ultimatum: signal SegWit eller så kommer vi att avvisa dina block. I själva verket skulle detta uppmuntra gruvarbetare att vända strömbrytaren på SegWit, en möjlighet för samhället att utöva sin kontroll över Bitcoin-nätverket. Spelteorin för att rättfärdiga det strategiska steget baserades på Nassim Nicholas Talebs koncept om den intoleranta minoriteten – att en ekonomisk minoritet kan böja en majoritet till sitt infall genom att uppmuntra denna majoritet att agera i sitt eget rationella ekonomiska intresse. I det här fallet, om gruvarbetarna inte spelar enligt UASF-reglerna, tappar de vinst och skadar deras inkomst..

”Det intressanta med BIP148 [förbättringsförslaget som i slutändan inkluderade UASF] är att någon majoritet av gruvarbetare kan utlösa det – det behöver inte vara 95 procent. Om 75 eller till och med bara 51 procent av hashkraften avvisar icke-signalblock per 1 augusti kommer de alltid att göra anspråk på den längsta kedjan. Så egentligen måste alla gruvarbetare från och med då signalera stöd och aktivera SegWit – eller ha alla sina kvarlämnade av nätverket, ”sa Shaolinfry till Bitcoin Magazine vid den tiden.

Och om tröskeln på 51 procent inte korsades? Nåväl, blockchain kunde ha delats, eftersom vissa noder endast accepterade SegWit-block och föräldralösa andra. Möjligheten till denna kedjesplit och de säkerhetsproblem som det kan ha inneburit var de främsta varningarna mot detta tillvägagångssätt.

Infördes som det var i februari var det inte förrän på sommaren och efter New York-avtalet som förslaget fick dragkraft. Två Bitcoin-förbättringsförslag (BIP148 och BIP149) utarbetades av Shaolinfry. Då startade BTCC COO Samson Mow en crowdfund för den mjuka gaffeln, och ett datum för 1 augusti 2017 fastställdes för användare att implementera BIP148, förslaget som vann.

Bara det fanns ett problem: New York-avtalet. Dess version av SegWit var fortfarande inte kompatibel med den här versionen av SegWit och, i förlängning, BIP148. Tack och lov är en skicklig Bitmain-garantitekniker, James Hilliard, arkitekterad BIP91, en uppgradering som skulle göra alla tre kompatibla (åtminstone för denna lansering av SegWit). Jeff Garzik, den tidigare Core-bidragsgivaren och SegWit2x ledande utvecklare, meddelade att han skulle implementera fixen under veckorna fram till den 1 augusti. Med sitt namn från en kommande release av Electrum Wallet myntades rörelsen Independence Day.

Världens ledande gruvbassänger skulle också implementera det, och BIP91 låstes officiellt den 20 juli 2017. Ironiskt nog var UASF inte längre nödvändigt; så länge gruvarbetare körde BIP91 signalerade förslaget gruvarbetare för SegWit och gjorde UASF. Gruvarbetare kunde fortfarande komma tillbaka från BIP91, så UASF: s tryck var fortfarande absolut nödvändigt och användarna uppmuntrades fortfarande att genomdriva det. Strålande medarbetades detta grupptryck i spelteorin bakom dess design från början. Shaolinfry berättade för Bitcoin Magazine 2017 att en möjlig väg till SegWit-aktivering inte skulle vara UASF i sig utan hotet om det, och det var precis så det hände.

Arvet

Även om det är oklart hur många som implementerade BIP148 den 1 augusti, skulle SegWit låsa sig in i nätverket den 9 augusti, och efter en två veckors respitperiod skulle uppgraderingen sättas i sten – och utan att kedjan delades i två. Efter ungefär två år av ångest och stridigheter avslutades SegWit-sagan. Under de efterföljande månaderna skulle New York-avtalet upplösas och tillsammans med det ytterligare ett utestående hot mot samhällets samförstånd.

Idag tror Eric Lombrozo, en huvudarkitekt bakom SegWit, att uppgraderingens aktivering hade mycket att göra med att sprida andra existentiella hot.

”Jag tror att efter det gav folk bara upp. De som inte gav upp gafflades av och blev deras egna blockchain, berättade han för Bitcoin Magazine, med hänvisning till myntuppdelningar som Bitcoin Cash (som gick live den 1 augusti och ursprungligen fakturerades som Bitmains “beredskapsplan” till BIP148) . “De som ville ha allt på Bitcoin gav upp när de insåg att det inte var möjligt att göra dessa ändringar på själva Bitcoin-blockchain.”

Lombrozo ser på SegWit2x som det sista stora försöket att co-optera Bitcoin-varumärket och säger att det [har] gjorts ”försök att göra det tidigare med Bitcoin XT, Bitcoin Classic, Bitcoin Unlimited.” Med varje misslyckande ser han Bitcoins spelteori fungera som avsett. Han önskar också att i stället för att samla upp allt “dåligt blod” och “fiendskap” som dessa skalningsdebatter gjorde, skulle han “vilja att det var ett spel där människor spelar efter reglerna och accepterar resultaten.”

“Det är inte möjligt att distribuera vad du vill på ett konsensusnätverk”, sa han. ”Jag skulle vilja distribuera en miljon funktioner, men om andra inte vill acceptera det är det inte upp till mig. Jag kan inte förhandla om detta på nätets vägnar. Det är inte upp till mig eller någon annan. ”

Ser jag tillbaka två år senare, försöker Lombrozo – kanske som många Bitcoinare – fortfarande att hitta “historien i allt detta.” Bitcoin är fortfarande ett mycket ungt fenomen och, som han uttryckte det, försöker alla fortfarande ta reda på hur alla dess rörliga delar, från spelteori, till teknisk arkitektur, till samhällskonsensus, till ekonomiska incitament, fungerar tillsammans.

Den största takeawayen är dock att Bitcoin Independence Day förmedlade vem som verkligen kontrollerar Bitcoin. Dess aggregerade användarbas, inte ett fåtal gruv- och företagsoligarker, finns vid rodret. Det är därför vi firar den 1 augusti – det var Bitcoins första stora stresstest för samhället. Och snarare än att spänna under press, stod samhället till det tillfället.

”Det betyder att i slutändan bestämmer de personer som kör valideringsnoderna i slutändan vilka transaktioner de vill betrakta som validerade. Det visade att människor i slutändan kan validera sina egna transaktioner, och det finns nätverksincitament att gå med i nätverket som kommer att ge dem mest värde. Jag tror att vi såg dynamiken spela på det sättet, sa Lombrozo.