Martor segregat

Segregated Witness (abreviat ca SegWit) este o actualizare a protocolului implementată, menită să rezolve problema plasticității tranzacțiilor Bitcoin blockchain , precum și să crească randamentul acestuia . O actualizare similară a fost implementată pentru alte criptomonede , cum ar fi Litecoin , DigiByte , Groestlcoin și Vertcoin . [unu]

SegWit este o „furcătură moale ” și permite rețelei să funcționeze ca înainte. Cu toate acestea, structura stocării datelor în bloc și mecanismul de verificare a tranzacțiilor pentru nodurile de rețea cu drepturi depline se schimbă. Semnăturile și scripturile sunt acum separate într-o structură separată numită martor separat .  Acest lucru permite blocului principal să găzduiască mai multe tranzacții și, de asemenea, elimină variabilitatea ID-ului aceleiași tranzacții. [unu]

Istorie

Problema scalabilității

În 2010 , Satoshi Nakamoto a introdus o limită de dimensiune a blocului de 1 megaoctet . Restricția a îmbunătățit compatibilitatea nodurilor de rețea, precum și a redus eficacitatea atacurilor DDoS , dar a redus debitul maxim al rețelei la 3-7 tranzacții pe secundă. Acesta din urmă a avut, în plus, un impact negativ asupra capacității de scalare a rețelei. Odată cu creșterea bazei de utilizatori și a numărului de transferuri, întârzierile au început și ele să crească - unele tranzacții au stat la coadă de câteva zile. Acest lucru a dus, de asemenea, la comisioane de transfer mai mari, care au redus drastic atractivitatea Bitcoin pentru plăți mici. [2]

S-a propus să se mărească dimensiunea blocului, care a fost implementat în fork-uri Bitcoin precum Bitcoin XT , Bitcoin Classic , Bitcoin Unlimited , Lightning Bitcoin și cel mai de succes Bitcoin Cash . [3] [4]

Plasticitatea tranzacției

O altă problemă acută a rețelei Bitcoin a fost așa-numita plasticitate a tranzacțiilor . Structura normală a unei tranzacții Bitcoin conține o semnătură criptografică , care permite altor participanți din rețea să verifice dacă proprietarul bitcoin-urilor intenționează cu adevărat să-l cheltuiască. Semnătura este calculată pe baza cheii private pentru fiecare tranzacție, ceea ce exclude modificarea datelor tranzacției în sine. ID-ul tranzacției este hash -ul său , care este calculat pe baza întregului bloc de tranzacție. Cea mai mică modificare într-o tranzacție îi schimbă identificatorul. [5] De fapt, este posibilă modificarea unei tranzacții lăsând-o valabilă (de exemplu, adăugând constante de utilitate opționale la semnătură care nu schimbă semnificativ scriptul). [6] În același timp, identificatorul acestuia se va schimba, ceea ce înseamnă că tranzacția modificată va fi considerată complet nouă și, în plus, va putea fi verificată de alte noduri de rețea. [5]

Orice nod din rețea poate modifica tranzacția și o poate difuza altora. Dacă tranzacția modificată este inclusă în blocul de ramură principală înaintea celui inițial, sau dacă mai târziu apare într-o ramură mai lungă, atunci tranzacția inițială va fi respinsă, deoarece se va referi la ieșirea utilizată (și cei care se referă la acesta vor, de asemenea, fi respins). [7] Acest lucru creează o mulțime de probleme, deoarece unele sisteme au verificat faptul că plata a fost efectuată de către identificator. De asemenea, complică implementarea tehnologiilor de nivel superior care se bazează pe blockchain -ul Bitcoin . [5]

Dezvoltatorii au încercat să rezolve această problemă înainte, dar nu a fost complet rezolvată până la actualizarea SegWit. [8] [9]

Se presupune că, cu ajutorul plasticității tranzacției, 64.564 BTC au fost retrase „ilegal” din platforma MtGox cândva populară [10] . Rețeaua Bitcoin Cash a suferit un atac masiv asupra maleabilității tranzacțiilor la scurt timp după „ hard fork ”. [unsprezece]

Atacul zilei de naștere

Adresele multisig Bitcoin folosesc P2SH și sunt securizate cu HASH160 ( hash SHA-256 în interiorul RIPEMD-160 [12] ). Dacă un atacator deține cel puțin 1 cheie din lista cu mai multe semnături, atunci, ținând cont de coliziunea hash , el poate reduce numărul de opțiuni de căutare la 280 , ceea ce este deja fezabil pentru sistemele de calcul moderne [13] .

Martor segregat

Pentru a aborda ambele probleme menționate mai sus, a fost propusă o actualizare a Martorilor Segregați. Concluzia este de a plasa semnăturile tranzacțiilor într-o structură cu același nume în afara blocului principal, ceea ce îl scutește semnificativ pe acesta din urmă, deoarece dimensiunea semnăturii a fost mai mare de 50% din dimensiunea întregului bloc de tranzacții. De asemenea, rezolvă problema plasticității tranzacției, deoarece semnăturile nu mai afectează identificatorul hash. [1] [14]

Dar acum, pentru a verifica toate tranzacțiile, nodul trebuie să descarce blocul extins (blocul principal + martor detașat). Nodul își informează în mod specific vecinii despre disponibilitatea de a accepta blocul extins. Nodurile rămase acceptă blocuri de construcție de 1 MB, presupunând că tranzacțiile nu trebuie să fie semnate. Blocul de semnătură este legat de lanțul principal folosind un arbore Merkle situat în antetul blocului. Din toate semnăturile, precum și din toate tranzacțiile, hashurile sunt luate în considerare și introduse în arbore. Hash-ul total al semnăturilor este adăugat la hash-ul primei tranzacții (tranzacție coinbase) în arborele de tranzacții Merkle. [1] [14]

Un bloc extins este teoretic limitat la 4 megaocteți, dar dimensiunea maximă reală a blocului este puțin sub 2 MB. [cincisprezece]

SegWit folosește P2WSH securizat de SHA256 în loc de P2SH pentru a securiza portofelele MultiSig . Acest lucru face ca atacul „zile de naștere” să fie mai greu de 2128 . [13]

Activare

Segregated Witness a fost propus de Pieter Wuille la sfârșitul anului 2015. Lansarea a avut loc în octombrie 2016 - cu 6 luni înainte de termen. Activarea trebuia să aibă loc după depășirea pragului de 95% al ​​participanților care semnalează suport pentru actualizare. Dar unii membri ai rețelei au spus că vor sprijini upgrade-ul numai dacă la acesta se adaugă o creștere a dimensiunii blocului principal (s-ar putea ca grupurile chineze să fi blocat introducerea SegWit.). [1] Pe 23 mai 2017, minerii și dezvoltatorii au semnat Acordul de la New York [16] , care prevedea o creștere a dimensiunii blocului principal la 2 MB în decurs de 6 luni (această actualizare s-a numit SegWit2x). SegWit a fost activat pe 24 august 2017. [unu]

De asemenea, unele altcoin -uri au decis să implementeze SegWit. Deoarece multe alte monede se bazează pe codul Bitcoin, acest lucru nu a fost prea dificil pentru dezvoltatori. Prima dintre ele a activat actualizarea Groestlcoin în ianuarie 2017. [unu]

Beneficii

Dezavantaje

Dezvoltare ulterioară

Pe 8 noiembrie, „ hard fork ” al SegWit2x a fost amânat pe termen nelimitat din cauza lipsei de consens . [19]

Actualizarea SegWit face mult mai ușoară dezvoltarea și implementarea suplimentelor, sporind în același timp securitatea și eficacitatea acestora. [1] Rețeaua Lightning este programată să se lanseze în curând . [13] Se dezvoltă o soluție pentru a crește flexibilitatea contractelor inteligente Merkliized Abstract Syntax Tree (MAST), care, de asemenea, îmbunătățește scalabilitatea și sporește confidențialitatea. [douăzeci]

Note

  1. 1 2 3 4 5 6 7 8 9 10 11 Drumul lung către SegWit: Cum a devenit realitate cea mai mare actualizare a protocolului Bitcoin . Consultat la 14 decembrie 2017. Arhivat din original la 14 decembrie 2017.
  2. Cel mai bine păstrat secret al lui Satoshi: De ce există o limită de 1 MB la dimensiunea blocului Bitcoin . Preluat la 24 decembrie 2017. Arhivat din original la 24 decembrie 2017.
  3. O alternativă controversată a Bitcoin caută o revenire . Preluat la 24 decembrie 2017. Arhivat din original la 1 decembrie 2017.
  4. Diferențele dintre Bitcoin Cash și Bitcoin . Preluat la 24 decembrie 2017. Arhivat din original la 24 decembrie 2017.
  5. 1 2 3 Maleabilitatea tranzacției explicată
  6. Teoria maleabilității tranzacțiilor Bitcoin în practică . Consultat la 14 decembrie 2017. Arhivat din original la 14 decembrie 2017.
  7. Ghidul dezvoltatorilor Bitcoin . Preluat la 25 decembrie 2017. Arhivat din original la 28 decembrie 2017.
  8. Cine, ce, de ce și cum atacului de maleabilitate a tranzacțiilor în curs . Preluat la 24 decembrie 2017. Arhivat din original la 24 decembrie 2017.
  9. A fost lansată versiunea 0.10.0 a Bitcoin Core . Consultat la 24 decembrie 2017. Arhivat din original la 24 noiembrie 2017.
  10. Studiu: Mt. Este posibil ca Gox să fi pierdut doar 386 BTC din cauza maleabilității tranzacției . Preluat la 23 decembrie 2017. Arhivat din original la 23 decembrie 2017.
  11. Rețeaua Bitcoin Cash atacată
  12. Script - Bitcoin Wiki . en.bitcoin.it . Consultat la 5 februarie 2021. Arhivat din original pe 4 februarie 2021.
  13. 1 2 3 4 5 6 7 8 9 10 11 Beneficiile Martorilor Segregați . Consultat la 13 decembrie 2017. Arhivat din original la 26 aprilie 2018.
  14. 1 2 Pieter Wuille: Martor segregat și impactul său asupra scalabilității @ SF Bitcoin Devs
  15. Segregated Witness se activează pe Bitcoin: Iată ce să vă așteptați . Preluat la 23 decembrie 2017. Arhivat din original la 1 decembrie 2017.
  16. Acordul de la New York . Preluat la 22 decembrie 2017. Arhivat din original la 7 august 2017.
  17. 1 2 3 Costuri și riscuri separate ale martorilor . Preluat la 24 decembrie 2017. Arhivat din original la 21 februarie 2018.
  18. SPV minerit . Consultat la 14 decembrie 2017. Arhivat din original la 29 decembrie 2017.
  19. 2x Called Off: Bitcoin Hard Fork suspendat din lipsă de consens . Preluat la 22 decembrie 2017. Arhivat din original la 3 ianuarie 2018.
  20. În interiorul MAST: Planul puțin cunoscut pentru promovarea contractelor inteligente Bitcoin . Preluat la 22 decembrie 2017. Arhivat din original la 23 decembrie 2017.

Literatură

Link -uri