SegWit är en förkortning för Segregated Witness. Det var kanske den hittills största uppgraderingen av Bitcoin-protokollet, som innehöll flera förbättringar och korrigeringar i en.
Ytterligare läsning: Vad är Bitcoin?
Vilka är fördelarna med SegWit?
Som förmodligen den mest anmärkningsvärda lösningen, blev SegWit av med transaktionens smidighet. Innan SegWit gjorde en konstighet om Bitcoins kryptografiska signaturer det så att transaktioner kunde justeras för att “se” annorlunda ut, även av personer som inte själva hade skapat transaktionen. Även om detta inte skulle göra transaktionen ogiltig eller ändra vad den gjorde – den skulle fortfarande skicka samma mängd mynt från samma adresser till samma adresser – det komplicerade allvarligt utplaceringen av lager två-protokoll som Lightning Network.
SegWit löste detta problem genom att flytta “vittnesdata” för en transaktion, som inkluderar signaturen, till en ny del av ett Bitcoin-block. Som sådan banade det vägen för Lightning Network och andra lager två-protokoll.
Ytterligare läsning: Vad är Lightning Network?
Som en extra bonus erbjöd SegWit också en blygsam ökning av blockstorleken till teoretiska fyra megabyte, eller en mer realistisk gräns på två megabyte, beroende på vilka typer av transaktioner som ingår i block. (För att vara exakt: Blockstorleksgränsen ersattes med en viktgräns på fyra miljoner, vilket introducerade ett nytt sätt att “räkna” transaktionsdata.) Detta innebär att användare med SegWit-stödda plånböcker betalar lägre transaktionsavgifter..
Ytterligare läsning: Vad är Bitcoin Block Size Limit?
Plus, genom ett tekniskt knep som kallas “skriptversioner”, gjorde SegWit det också lättare att distribuera ytterligare uppgraderingar av Bitcoin-protokollet. En av dessa kommande uppgraderingar kan vara Schnorr-signaturer, en ny signaturalgoritm som ytterligare skulle öka programmerbarheten och flexibiliteten i Bitcoin-protokollet.
Sist men inte minst, allt detta möjliggjordes utan att det krävs en bakåtkompatibel uppgradering av hårdgaffelprotokoll. (Mjuka gaffeluppgraderingar kräver stöd från endast en majoritet av hashkraften för att undvika en splittring av nätverket, medan hårda gafflar kräver nätverksövergripande konsensus.)
Ytterligare läsning: Vad är Bitcoin Forks?
Vem utvecklade SegWit?
En version av SegWit utvecklades först av Blockstream för Blockstream Elements sidokedjeprojekt. Efter att Bitcoin Core-bidragsgivaren Luke-jr räknat ut hur SegWit kunde distribueras på huvud Bitcoin-protokollet genom en bakåtkompatibel mjuk gaffeluppgradering, utvecklades den av Bitcoin Core-utvecklingsteamet. Specifikt författades det relevanta Bitcoin Improvement Proposal (BIP) av Eric Lombrozo, Johnson Lau och Pieter Wuille, som också gjorde det mesta av kodningen. Resten av teamet hjälpte genom hela processen på olika sätt, inklusive granskning och testning.
Den pseudonyma Litecoin-utvecklaren Shaolinfry och Bitmain-garantiingenjören James Hilliard är krediterade med att utveckla alternativa aktiveringslösningar för den mjuka gaffeln. (Mer om detta nedan.)
Var SegWit kontroversiell?
Inom Bitcoins tekniska community var SegWit inte kontroversiellt.
Utanför Bitcoins tekniska community föredrog dock vissa en annan skalningslösning för Bitcoin eller ansåg inte att SegWit i sig var tillräckligt som en skalningslösning. Detta ledde till att SegWit-förslaget blev något av ett förhandlingschip i en mycket bredare tvist full av kontroverser. Andra försökte diskreditera SegWit helt.
Den enda kontroversen som (utan tvekan) hade en viss giltighet är att det skulle ha varit “renare”, kodmässigt, att distribuera uppgraderingen som en hård gaffel istället för en mjuk gaffel, eftersom detta skulle lämna mindre tekniskt tvivel i protokollet. Att distribuera SegWit som en hård gaffel skulle dock ha haft sina egna problem, vilket de flesta utvecklare och förespråkare av SegWit trodde skulle ha varit mycket större.
Några av de andra kontroverserna kring SegWit – vissa hävdade till exempel att det skulle tillåta gruvarbetare att stjäla pengar – är helt enkelt svindlande. (Exempel: SegWit har varit live i flera år, och inga gruvarbetare har kunnat stjäla några mynt.)
Ytterligare läsning: Vad är Bitcoin Mining?
Hur och när aktiverades SegWit?
SegWit aktiverades i augusti 2017.
Hur det aktiverades är en lång historia. Medan det först offentliggjordes och inkluderades i Bitcoin Core-färdplanen i december 2015, och koden var klar mindre än ett år senare, tog det fram till sommaren 2017 för protokolluppgraderingen att gå live.
Detta beror till stor del på att vissa betydande Bitcoin-gruvarbetare vägrade att aktivera protokolluppgraderingen. (Som ursprungligen utformat skulle SegWit gå live på nätverket om en överflöd av gruvarbetare signalerade stöd i blocken som de bryter.) Motivationen hos dessa gruvarbetare spekuleras fortfarande i, men det verkar som om de antingen använde SegWit som ett förhandlingschip eller så “Blockerade” uppgraderingen eftersom den var oförenlig med en gruvoptimering (kallad “AsicBoost”) som de i hemlighet använde – eller båda.
Hur som helst, fram till 2017, samlades en gräsrotsrörelse av Bitcoin-användare kring en idé som först föreslogs av den pseudonyma Litecoin-utvecklaren Shaolinfry. Kallade en User Activated Soft Fork (UASF), dessa användare meddelade att de skulle aktivera uppgraderingen på sina egna Bitcoin-noder på sommaren, oavsett vad gruvarbetarna skulle göra. Om dessa användare skulle ha gått igenom sin ursprungliga plan, kunde den ha delat Bitcoin-nätverket i en version med SegWit och en version utan.
Några dagar före UASF: s “deadline” aktiverade gruvarbetare trots allt SegWit. Tekniskt sett gjorde de detta genom ännu en aktiveringsmekanism, föreslagen av Bitmain-garantiingenjör James Hilliard.
För en fullständig redogörelse för detta kapitel i Bitcoins historia, se även Den långa vägen till Segwit: Hur Bitcoins största protokolluppgradering blev verklighet.
Hur använder jag SegWit?
Du använder SegWit med en plånbok som har integrerat SegWit. Denna plånbok ska generera SegWit-adresser åt dig, och när du gör en betalning från en sådan adress kommer avgiften du kommer att behöva betala att vara lägre än om du inte hade använt SegWit.
Det finns två typer av SegWit-adresser. En typ (“P2SH”) börjar med en “3” – men inte alla adresser som börjar med en 3 är Segwit-adresser. Den andra (“bech32”) börjar med “bc1” och är alltid en SegWit-adress. P2SH SegWit-adresser är faktiskt lite av en lösning; medan SegWit-transaktioner från sådana adresser är billigare än icke-SegWit-transaktioner är transaktioner från bech32-adresser de billigaste.
Adresser som börjar med “1” är aldrig SegWit-adresser.
Några plånböcker som har integrerat SegWit inkluderar Bitcoin Core, Electrum, Green, Trezor, Ledger och ett antal andra.
Varför använder inte alla SegWit?
Mer än två år efter att SegWit aktiverats använder mindre än hälften av alla transaktioner i Bitcoin-nätverket SegWit. Ur ett individuellt perspektiv finns det antagligen två skäl att inte använda SegWit.
Den första anledningen är att implementering av SegWit kräver en uppgradering, och vissa människor är helt enkelt långsamma på att göra det. För stora företag kan det kräva betydande tid och ansträngning eftersom hela system kan behöva migrera. På samma sätt har vissa plånböcker och andra applikationer inte bara integrerat SegWit ännu, förmodligen för att de har andra prioriteringar.
Den andra anledningen skulle vara “politisk”: Vissa människor misstänker att vissa företag inte uppgraderar till SegWit som en slags protest. De skulle ha föredragit olika skalningslösningar eller fler skalningslösningar. De kan till och med försöka driva upp transaktionsavgifter på Bitcoin för att uppmuntra användare att migrera till altcoins.
Det är värt att notera att även om alla inte uppgraderar till SegWit, får de som uppgraderar fördelarna oavsett. Medan den totala avgiftsnivån kan vara något lägre för SegWit-användare om alla andra också använder SegWit, är den extra fördelen med fullständig migrering liten. Dessutom, om färre människor använder SegWit, är Bitcoin-block mindre vilket också har fördelar.