SegWit
Segregated Witness , eller SegWit , är namnet som används för en implementerad mjukgaffeländring i transaktionsformatet för Bitcoin .
Den formella titeln " Segregated Witness (Consensus layer) " hade Bitcoin Improvement Proposal nummer BIP141. Det deklarerade syftet var att förhindra oavsiktlig formbarhet för bitcointransaktioner , tillåta valfri dataöverföring och att kringgå vissa protokollbegränsningar (som blockstorleksgränsen) med en mjuk gaffel .
Det var också avsett att mildra ett problem med blockchain- storleksbegränsning som minskar bitcoin-transaktionshastigheten. Den gör detta genom att dela upp transaktionen i två segment, ta bort upplåsningssignaturen ("vittnesdata") från den ursprungliga delen och lägga till den som en separat struktur i slutet. Den ursprungliga sektionen skulle fortsätta att hålla sändar- och mottagardata, och den nya "vittnes"-strukturen skulle innehålla skript och signaturer. Det ursprungliga datasegmentet skulle räknas normalt, men "vittnes"-segmentet skulle i själva verket räknas som en fjärdedel av dess verkliga storlek.
Historia
Blockstorleksgräns
Bitcoin är en kryptovaluta , en form av valuta som använder kryptografi för att hålla transaktioner säkra. En samling bitcoin-transaktioner som föregås av en blockrubrik, skyddade av bevis på arbete och registrerade på ett nätverk av datorer kallas ett "block". Alla block knyts ihop sekventiellt genom att använda en kryptografisk hash på föregående block och lagra dess utdata i nästa. Detta bildar en blockkedja .
Varje block innehåller information om vem som skickar och tar emot en given enhet av bitcoin (en transaktion), samt signaturen/signaturerna som godkänner varje transaktion. Ursprungligen fanns det ingen gräns för storleken på blocken. Detta gjorde det dock möjligt för illvilliga aktörer att hitta på falska "blockeringsdata" som var mycket långa som en form av denial-of-service attack (DoS-attack). Dessa falska block skulle upptäckas, men att göra det skulle ta mycket lång tid och sakta ner hela systemet. Därför infördes en blockstorleksgräns på 1 MB.
Skalbarhet och formbarhet
Den nuvarande bitcoin blockchain-designen anses ha två brister.
Skalbarhet
Ett nytt block läggs till i kedjan med slumpmässiga intervaller med i genomsnitt, genom design, tio minuter ( bevis på arbete orsakar denna fördröjning). Tillsammans med gränsen för blockstorlek begränsar detta antalet transaktioner som kan behandlas under en given tid. Vissa webbplatser löser detta problem genom att använda "betalningar utanför kedjan" som genomför transaktioner utan att skriva dem till blockkedjan, vilket innebär olika avvägningar angående förtroende och slutgiltighet av transaktioner. Andra har föreslagit ändringar av bitcoin som skulle reformera blockformatet på ett bakåtinkompatibelt sätt. Till exempel skulle FlexTrans (flexibla transaktioner) göra transaktioner mindre genom att ändra hur de beskrivs till ett "tagg"-system, vilket tillåter fler transaktioner per block. Detta är inte kompatibelt med system som inte uppgraderar. [ citat behövs ]
Smidbarhet
En transaktion använder outnyttjade utdata från tidigare transaktion(er) som kallas outnyttjade transaktionsutdata (UTXO). Detta resulterar i en kedja av relaterade transaktioner länkade av deras transaktionsidentifierare. Det är dock möjligt för någon att ändra (mutera) obekräftade bitcoin-transaktioner utan att göra dem ogiltiga, vilket ändrar transaktionens identifierare, vilket gör underordnade transaktioner ogiltiga (dvs. länken mellan transaktioner bryts).
Segregerade vittnen som lösning
Signaturdata som kallas vittnet skulle separeras från Merkle-trädets register över vem som skickar eller tar emot bitcoins. Vittnesdata flyttas till slutet, och varje byte av den skulle bara räknas som en fjärdedel av en "enhet". [ citat behövs ]
Det tar också upp signaturens formbarhet genom att serialisera signaturer separat från resten av transaktionsdata, så att transaktions-ID:t inte längre är formbart.
Aktivering
Den 21 juli 2017 låste bitcoin-gruvarbetare in en mjukvaruuppgradering kallad Bitcoin Improvement Proposal (BIP) 91, vilket betyder att uppgraderingen av Segregated Witness aktiverades vid block 477 120. [ citat behövs ]
SegWit lindrar skalningsproblemet på två sätt:
- SegWit löser Transaction Malleability, och möjliggör därigenom Lightning Network , ett överlagringsnätverk av mikrobetalningskanaler, som hypotetiskt löser skalningsproblemet genom att möjliggöra ett praktiskt taget obegränsat antal omedelbara transaktioner till låga avgifter att ske utanför kedjan.
Den 8 augusti nåddes ytterligare en milstolpe när 100 % av bitcoin-gruvpoolerna signalerade stöd för SegWit, även om SegWit inte skulle vara fullt aktiverat förrän tidigast 21 augusti, varefter gruvarbetare skulle börja avvisa block som inte stöder SegWit. [ citat behövs ]
Inledningsvis har de flesta bitcoin-transaktioner inte kunnat använda uppgraderingen. [ citat behövs ]
Segregated Witness aktiverades den 24 augusti 2017. Bitcoinpriset steg nästan 50 % under veckan efter SegWits aktivering. Den 21 juli 2017 handlades bitcoin för 2 748 $, en ökning med 52 % från 1 835 $ 14 juli 2017.
Under den första veckan i oktober steg andelen nätverkstransaktioner med SegWit från 7 % till 10 %, vilket tyder på en ökning i användningsgrad. [ citat behövs ]
En liten grupp av mestadels Kina-baserade bitcoin-gruvarbetare, som var missnöjda med bitcoins föreslagna SegWit-förbättringsplaner, drev fram alternativa planer för en splittring som skapade Bitcoin Cash .
Från och med februari 2018 överstiger SegWit-transaktioner 30 %.
SegWit2x
Segregated Witness (BIP141) ska inte förväxlas med SegWit2x (SegWit2Mb). I maj 2017 Digital Currency Group (inte att förväxla med Digital Currency Initiative of the MIT Media Lab ) att de hade erbjudit ett förslag, kallat SegWit2x ("New York Agreement"), som aktiverar Segregated Witness med 80 % tröskel för den totala bitcoin-hashhastigheten, signalering vid bit 4; och aktivera en blockstorleksgräns på 2 MB inom sex månader med stöd som överstiger 80 % av den totala bitcoin-hashhastigheten.
Från och med mitten av 2017, även om SegWit2x-förslaget hade ett stöd på över 90 % av hashratet, har dock SegWit2x-förslaget varit kontroversiellt eftersom arbetet med projektet är begränsat till en grupp utvecklare som endast har inbjudits. I mitten av juli 2017 blev det uppenbart att gruvarbetare stödde implementeringen av Segwit-delen av avtalet före UASF den 1 augusti 2017 , och försökte därmed undvika risken för en hård gaffel för bitcoin-nätverket.
Den 8 november 2017 meddelade utvecklarna av SegWit2x att den hårda gaffeln som planerades till runt 16 november 2017 avbröts på grund av bristande konsensus.