Adskilt Vidne

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]

Historie

Problemet med skalerbarhed

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]

Transaktions plasticitet

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]

Fødselsdagsangrebet

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] .

Adskilt vidne

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]

Aktivering

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]

Fordele

Ulemper

Videreudvikling

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]

Noter

  1. 1 2 3 4 5 6 7 8 9 10 11 Den lange vej til SegWit: Hvordan Bitcoins største protokolopgradering blev til virkelighed . Hentet 14. december 2017. Arkiveret fra originalen 14. december 2017.
  2. Satoshis bedst bevarede hemmelighed: Hvorfor er der en grænse på 1 MB til Bitcoin-blokstørrelse . Hentet 24. december 2017. Arkiveret fra originalen 24. december 2017.
  3. Et kontroversielt Bitcoin-alternativ søger et comeback . Hentet 24. december 2017. Arkiveret fra originalen 1. december 2017.
  4. Forskelle mellem Bitcoin Cash og Bitcoin . Hentet 24. december 2017. Arkiveret fra originalen 24. december 2017.
  5. 1 2 3 Transaktionens formbarhed forklaret
  6. Bitcoin-transaktionsformbarhedsteori i praksis . Hentet 14. december 2017. Arkiveret fra originalen 14. december 2017.
  7. Bitcoin-udviklervejledning . Hentet 25. december 2017. Arkiveret fra originalen 28. december 2017.
  8. Hvem, hvad, hvorfor og hvordan af det igangværende transaktions-formbarhedsangreb . Hentet 24. december 2017. Arkiveret fra originalen 24. december 2017.
  9. Bitcoin Core version 0.10.0 frigivet . Hentet 24. december 2017. Arkiveret fra originalen 24. november 2017.
  10. Undersøgelse: Mt. Gox kan have mistet kun 386 BTC på grund af transaktionssmidbarhed . Hentet 23. december 2017. Arkiveret fra originalen 23. december 2017.
  11. Bitcoin Cash-netværk under angreb
  12. Script - Bitcoin Wiki . en.bitcoin.it . Hentet 5. februar 2021. Arkiveret fra originalen 4. februar 2021.
  13. 1 2 3 4 5 6 7 8 9 10 11 Adskilte vidnefordele . Hentet 13. december 2017. Arkiveret fra originalen 26. april 2018.
  14. 1 2 Pieter Wuille: Segregeret vidne og dets indvirkning på skalerbarhed @ SF Bitcoin Devs
  15. Segregeret vidne aktiveres på Bitcoin: Dette er hvad man kan forvente . Hentet 23. december 2017. Arkiveret fra originalen 1. december 2017.
  16. New York-aftalen . Hentet 22. december 2017. Arkiveret fra originalen 7. august 2017.
  17. 1 2 3 Adskilte vidneomkostninger og risici . Hentet 24. december 2017. Arkiveret fra originalen 21. februar 2018.
  18. SPV minedrift . Hentet 14. december 2017. Arkiveret fra originalen 29. december 2017.
  19. 2x aflyst: Bitcoin Hard Fork suspenderet på grund af manglende konsensus . Hentet 22. december 2017. Arkiveret fra originalen 3. januar 2018.
  20. Inside MAST: The Little-Known Plan to Advance Bitcoin Smart Contracts . Hentet 22. december 2017. Arkiveret fra originalen 23. december 2017.

Litteratur

Links