Segregovaný svědek

Segregated Witness (zkráceně SegWit) je implementovaná aktualizace protokolu navržená k vyřešení problému plasticity bitcoinových blockchainových transakcí a také ke zvýšení jejich propustnosti . Podobná aktualizace byla implementována pro některé další kryptoměny jako Litecoin , DigiByte , Groestlcoin a Vertcoin . [jeden]

SegWit je „ soft fork “ a umožňuje síti fungovat jako dříve. Mění se však struktura ukládání dat v bloku a mechanismus ověřování transakcí pro plnohodnotné síťové uzly. Podpisy a skripty jsou nyní rozděleny do samostatné struktury zvané segregovaný svědek .  To umožňuje hlavnímu bloku pojmout více transakcí a také eliminuje variabilitu ID stejné transakce. [jeden]

Historie

Problém škálovatelnosti

V roce 2010 zavedl Satoshi Nakamoto limit velikosti bloku 1 MB . Omezení zlepšilo kompatibilitu síťových uzlů a také snížilo efektivitu DDoS útoků, ale snížilo maximální propustnost sítě na 3-7 transakcí za sekundu. Ten měl dále negativní dopad na schopnost sítě škálovat. S růstem uživatelské základny a počtem převodů začala narůstat i zpoždění - některé transakce čekaly ve frontě i několik dní. To také vedlo k vyšším poplatkům za převod, což drasticky snížilo atraktivitu Bitcoinu pro malé platby. [2]

Bylo navrženo zvýšit velikost bloku, což bylo implementováno v bitcoinových forcích, jako jsou Bitcoin XT , Bitcoin Classic , Bitcoin Unlimited , Lightning Bitcoin a nejúspěšnější Bitcoin Cash . [3] [4]

Plasticita transakce

Dalším akutním problémem bitcoinové sítě byla takzvaná transakční plasticita . Normální struktura bitcoinové transakce obsahuje kryptografický podpis , který umožňuje ostatním účastníkům sítě zkontrolovat, zda vlastník bitcoinů skutečně zamýšlel utratit. Podpis je vypočítán na základě soukromého klíče pro každou transakci, což vylučuje změnu dat samotné transakce. ID transakce je její hash , který se vypočítá na základě celého bloku transakce. Sebemenší změna v transakci změní její identifikátor. [5] Ve skutečnosti je možné transakci upravit a přitom ji ponechat platnou (například přidáním volitelných obslužných konstant do podpisu, které výrazně nemění skript). [6] Zároveň se změní její identifikátor, což znamená, že upravená transakce bude považována za zcela novou a navíc bude moci být ověřena jinými uzly sítě. [5]

Jakýkoli uzel v síti může transakci upravit a vysílat ji ostatním. Pokud je upravená transakce zahrnuta do hlavního větevního bloku před původní, nebo pokud se později objeví v delší větvi, pak bude původní transakce odmítnuta, protože bude odkazovat na použitý výstup (a ty, které na ni odkazují, budou také být odmítnut). [7] To vytváří mnoho problémů, protože některé systémy kontrolovaly skutečnost, že platba byla provedena identifikátorem. To také komplikuje implementaci technologií vyšší úrovně, které jsou založeny na bitcoinovém blockchainu . [5]

Vývojáři se snažili tento problém vyřešit již dříve, ale nikdy nebyl zcela vyřešen až do aktualizace SegWit. [8] [9]

Předpokládá se, že pomocí plasticity transakce bylo „ilegálně“ staženo 64 564 BTC z kdysi populární platformy MtGox [10] . Síť Bitcoin Cash utrpěla masivní útok na tvárnost transakcí krátce po „ hard forku “. [jedenáct]

Narozeninový útok

Bitcoinové multisig adresy používají P2SH a jsou zabezpečeny pomocí HASH160 ( SHA-256 hash uvnitř RIPEMD-160 [12] ). Pokud útočník vlastní alespoň 1 klíč ze seznamu více podpisů, může s přihlédnutím ke kolizi hash snížit počet možností vyhledávání na 280 , což je již možné pro moderní výpočetní systémy [13] .

Segregovaný svědek

K vyřešení obou výše uvedených problémů byla navržena aktualizace Segregated Witness. Základem je umístit transakční podpisy do stejnojmenné struktury mimo hlavní blok, což výrazně odlehčí ten druhý, protože velikost podpisu byla více než 50 % velikosti celého transakčního bloku. Řeší také problém plasticity transakce, protože podpisy již neovlivňují hash identifikátor. [1] [14]

Ale nyní, aby bylo možné ověřit všechny transakce, musí uzel stáhnout rozšířený blok (hlavní blok + oddělený svědek). Uzel konkrétně informuje své sousedy o své připravenosti přijmout rozšířený blok. Zbývající uzly přijímají stavební bloky o velikosti 1 MB za předpokladu, že transakce není nutné podepisovat. Blok podpisu je propojen s hlavním řetězcem pomocí stromu Merkle umístěného v záhlaví bloku. Ze všech podpisů, stejně jako ze všech transakcí, jsou brány v úvahu a zadávány do stromu. Celkový hash podpisů je přidán k hash první transakce (coinbase transakce) ve stromu transakcí Merkle. [1] [14]

Rozšířený blok je teoreticky omezen na 4 megabajty, ale skutečná maximální velikost bloku je těsně pod 2 MB. [patnáct]

SegWit používá k zabezpečení peněženek MultiSig P2WSH zabezpečený SHA256 namísto P2SH . Tím je útok "narozeniny" těžší než 2128 . [13]

Aktivace

Segregated Witness navrhl Pieter Wuille na konci roku 2015. Vydání proběhlo v říjnu 2016 - 6 měsíců před plánovaným termínem. K aktivaci mělo dojít po překročení 95% prahu účastníků signalizujících podporu upgradu. Někteří členové sítě však uvedli, že budou podporovat upgrade pouze v případě, že k němu bude přidáno zvýšení velikosti hlavního bloku (čínské fondy možná zablokovaly zavedení SegWitu.). [1] Dne 23. května 2017 podepsali těžaři a vývojáři Newyorskou dohodu [16] , která počítala se zvýšením velikosti hlavního bloku na 2 MB do 6 měsíců (tato aktualizace se jmenovala SegWit2x). SegWit byl aktivován 24. srpna 2017. [jeden]

Některé altcoiny se také rozhodly implementovat SegWit. Protože mnoho altcoinů je založeno na kódu bitcoinu, nebylo to pro vývojáře příliš obtížné. První z nich aktivoval aktualizaci Groestlcoin v lednu 2017. [jeden]

Výhody

Nevýhody

Další vývoj

8. listopadu byl „ hard fork “ SegWit2x odložen na neurčito kvůli nedostatku konsensu . [19]

Aktualizace SegWit výrazně usnadňuje vývoj a implementaci doplňků a zároveň zvyšuje jejich bezpečnost a efektivitu. [1] Brzy je naplánováno spuštění Lightning Network . [13] Vyvíjí se řešení pro zvýšení flexibility chytrých kontraktů Merklized Abstract Syntax Tree (MAST), což také zlepšuje škálovatelnost a zvyšuje soukromí. [dvacet]

Poznámky

  1. 1 2 3 4 5 6 7 8 9 10 11 Dlouhá cesta k SegWitu: Jak se největší upgrade protokolu bitcoinu stal skutečností . Získáno 14. prosince 2017. Archivováno z originálu 14. prosince 2017.
  2. Satoshiho nejlépe střežené tajemství: Proč je velikost bitcoinových bloků omezena na 1 MB . Získáno 24. prosince 2017. Archivováno z originálu 24. prosince 2017.
  3. Kontroverzní bitcoinová alternativa hledá návrat . Získáno 24. prosince 2017. Archivováno z originálu 1. prosince 2017.
  4. Rozdíly mezi Bitcoin Cash a Bitcoinem . Získáno 24. prosince 2017. Archivováno z originálu 24. prosince 2017.
  5. 1 2 3 Transaction Malleability Vysvětlení
  6. Teorie maleability bitcoinových transakcí v praxi . Získáno 14. prosince 2017. Archivováno z originálu 14. prosince 2017.
  7. Průvodce pro vývojáře bitcoinů . Získáno 25. prosince 2017. Archivováno z originálu 28. prosince 2017.
  8. Kdo, co, proč a jak probíhajícího útoku na tvárnost transakce . Získáno 24. prosince 2017. Archivováno z originálu 24. prosince 2017.
  9. Vydána verze bitcoinového jádra 0.10.0 . Získáno 24. prosince 2017. Archivováno z originálu dne 24. listopadu 2017.
  10. Studie: Mt. Gox mohl ztratit pouhých 386 BTC kvůli kovatelnosti transakce . Získáno 23. prosince 2017. Archivováno z originálu dne 23. prosince 2017.
  11. Síť Bitcoin Cash pod útokem
  12. Skript – Bitcoin Wiki . en.bitcoin.it . Staženo 5. února 2021. Archivováno z originálu 4. února 2021.
  13. 1 2 3 4 5 6 7 8 9 10 11 Výhody oddělených svědků . Získáno 13. prosince 2017. Archivováno z originálu dne 26. dubna 2018.
  14. 1 2 Pieter Wuille: Segregovaný svědek a jeho dopad na škálovatelnost @ SF Bitcoin Devs
  15. Segregovaný svědek se aktivuje na bitcoinech: To je to, co lze očekávat . Získáno 23. prosince 2017. Archivováno z originálu 1. prosince 2017.
  16. Newyorská dohoda . Získáno 22. prosince 2017. Archivováno z originálu 7. srpna 2017.
  17. 1 2 3 Náklady a rizika segregovaných svědků . Získáno 24. prosince 2017. Archivováno z originálu 21. února 2018.
  18. Těžba SPV . Získáno 14. prosince 2017. Archivováno z originálu 29. prosince 2017.
  19. 2x odvoláno: Bitcoin Hard Fork pozastaven z důvodu nedostatku konsensu . Získáno 22. prosince 2017. Archivováno z originálu 3. ledna 2018.
  20. Uvnitř MAST: Málo známý plán na posílení bitcoinových chytrých kontraktů . Získáno 22. prosince 2017. Archivováno z originálu dne 23. prosince 2017.

Literatura

Odkazy