Segregated Witness (forkortet SegWit) er en implementeret protokolopdatering designet til at løse problemet med plasticitet af Bitcoin blockchain- transaktioner samt øge dens gennemstrømning . En lignende opdatering er blevet implementeret for nogle andre kryptovalutaer såsom Litecoin , DigiByte , Groestlcoin og Vertcoin . [en]
SegWit er en " soft fork " og tillader netværket at fungere som før. Strukturen af datalagring i blokken og mekanismen til at verificere transaktioner for fuldgyldige netværksknuder ændrer sig imidlertid. Signaturer og scripts er nu opdelt i en separat struktur kaldet et adskilt vidne . Dette gør det muligt for hovedblokken at rumme flere transaktioner og eliminerer også variabiliteten af ID'et for den samme transaktion. [en]
I 2010 introducerede Satoshi Nakamoto en blokstørrelsesgrænse på 1 megabyte . Begrænsningen forbedrede kompatibiliteten af netværksknuder, samt reducerede effektiviteten af DDoS -angreb, men reducerede den maksimale netværksgennemstrømning til 3-7 transaktioner i sekundet. Sidstnævnte havde yderligere en negativ indflydelse på netværkets evne til at skalere. Med væksten i brugerbasen og antallet af overførsler begyndte forsinkelserne også at vokse - nogle transaktioner stod i kø i flere dage. Dette førte også til højere overførselsgebyrer, hvilket drastisk reducerede Bitcoins attraktivitet for små betalinger. [2]
Det blev foreslået at øge blokstørrelsen, som blev implementeret i Bitcoin gafler såsom Bitcoin XT , Bitcoin Classic , Bitcoin Unlimited , Lightning Bitcoin og den mest succesrige Bitcoin Cash . [3] [4]
Et andet akut problem med Bitcoin-netværket var den såkaldte transaktionsplasticitet . Den normale struktur af en Bitcoin-transaktion indeholder en kryptografisk signatur , som giver andre deltagere i netværket mulighed for at kontrollere, om ejeren af bitcoins virkelig havde til hensigt at bruge dem. Signaturen beregnes ud fra den private nøgle for hver transaktion, hvilket udelukker ændring af dataene for selve transaktionen. Transaktions-id'et er dens hash , som beregnes ud fra hele transaktionsblokken. Den mindste ændring i en transaktion ændrer dens identifikator. [5] Faktisk er det muligt at ændre en transaktion, mens den efterlades gyldig (for eksempel ved at tilføje valgfri hjælpekonstanter til signaturen, som ikke ændrer scriptet væsentligt). [6] Samtidig ændres dens identifikator, hvilket betyder, at den ændrede transaktion vil blive betragtet som helt ny og desuden vil kunne verificeres af andre netværksknuder. [5]
Enhver node i netværket kan ændre transaktionen og udsende den til andre. Hvis den ændrede transaktion er inkluderet i hovedgrenblokken før den oprindelige, eller hvis den senere vises i en længere gren, vil den oprindelige transaktion blive afvist, da den vil referere til det anvendte output (og dem, der henviser til det, vil også blive afvist). [7] Dette skaber en masse problemer, da nogle systemer kontrollerede, at betalingen blev foretaget af identifikatoren. Det komplicerer også implementeringen af teknologier på højere niveau, der er baseret på Bitcoin blockchain . [5]
Udviklerne har forsøgt at løse dette problem før, men det blev aldrig løst helt før SegWit-opdateringen. [8] [9]
Det antages, at ved hjælp af transaktionens plasticitet blev 64.564 BTC "ulovligt" trukket tilbage fra den engang populære MtGox- platform [10] . Bitcoin Cash - netværket led et massivt angreb på transaktionens formbarhed kort efter " hard fork ". [elleve]
Bitcoin multisig- adresser bruger P2SH og er sikret med HASH160 ( SHA-256 hash inde i RIPEMD-160 [12] ). Hvis en angriber ejer mindst 1 nøgle fra multisignaturlisten, kan han, under hensyntagen til hash-kollisionen , reducere antallet af søgemuligheder til 280 , hvilket allerede er muligt for moderne computersystemer [13] .
For at løse begge de førnævnte problemer er der blevet foreslået en opdatering af Segregated Witness. Den nederste linje er at placere transaktionssignaturer i en struktur af samme navn uden for hovedblokken, hvilket aflaster sidstnævnte væsentligt, da signaturens størrelse var mere end 50 % af størrelsen af hele transaktionsblokken. Det løser også problemet med transaktionsplasticitet, fordi signaturerne ikke længere påvirker hash-id'en. [1] [14]
Men nu, for at verificere alle transaktioner, skal noden downloade den udvidede blok (hovedblok + løsrevet vidne). Noden informerer specifikt sine naboer om dens parathed til at acceptere den udvidede blok. De resterende noder accepterer byggeklodser på 1 MB, forudsat at transaktioner ikke skal underskrives. Signaturblokken er knyttet til hovedkæden ved hjælp af et Merkle-træ placeret i blokhovedet. Fra alle signaturer, såvel som fra alle transaktioner, overvejes hashes og indtastes i træet. Den samlede hash af signaturer føjes til hashen for den første transaktion (møntbasetransaktion) i Merkle-træet af transaktioner. [1] [14]
En udvidet blok er teoretisk begrænset til 4 megabyte, men den faktiske maksimale blokstørrelse er lige under 2 MB. [femten]
SegWit bruger SHA256-sikret P2WSH i stedet for P2SH til at sikre MultiSig- punge . Dette gør "fødselsdage"-angrebet sværere til 2128 . [13]
Segregated Witness blev foreslået af Pieter Wuille i slutningen af 2015. Udgivelsen fandt sted i oktober 2016 - 6 måneder før tidsplanen. Aktivering skulle finde sted efter at have passeret tærsklen på 95 % for deltagere, der signalerede støtte til opgraderingen. Men nogle medlemmer af netværket har sagt, at de kun vil understøtte opgraderingen, hvis der tilføjes en stigning i hovedblokstørrelsen (kinesiske puljer kan have blokeret introduktionen af SegWit.). [1] Den 23. maj 2017 underskrev minearbejdere og udviklere New York-aftalen [16] , som gav mulighed for en stigning i hovedblokstørrelsen til 2 MB inden for 6 måneder (denne opdatering blev kaldt SegWit2x). SegWit blev aktiveret den 24. august 2017. [en]
Nogle altcoins har også besluttet at implementere SegWit. Da mange altcoins er baseret på Bitcoin-koden, var dette ikke for svært for udviklerne. Den første af dem aktiverede Groestlcoin- opdateringen i januar 2017. [en]
Den 8. november blev " hard fork " af SegWit2x forsinket på ubestemt tid på grund af manglende konsensus . [19]
SegWit-opdateringen gør det meget nemmere at udvikle og implementere tilføjelser, samtidig med at deres sikkerhed og effektivitet øges. [1] Lightning Network er planlagt til at lancere snart . [13] En løsning er ved at blive udviklet til at øge fleksibiliteten af Merklized Abstract Syntax Tree (MAST) smarte kontrakter, som også forbedrer skalerbarheden og forbedrer privatlivets fred. [tyve]
Kryptovalutaer | |
---|---|
PoW baseret på SHA-2 | |
PoW baseret på Scrypt | |
PoW baseret på CryptoNote | |
Andre PoW-algoritmer | |
PoS algoritmer | |
Andre teknologier | |
relaterede emner |
|
bitcoin | ||
---|---|---|
Organisationer | ||
Mennesker | ||
Teknologi | ||
Udvekslingstjenester |