Průvodce protokolem Segregated Witness (SegWit) pro začátečníky
Domů
Články
Průvodce protokolem Segregated Witness (SegWit) pro začátečníky

Průvodce protokolem Segregated Witness (SegWit) pro začátečníky

Středně pokročilí
Zveřejněno Nov 25, 2019Aktualizováno Jun 13, 2023
6m

Co je SegWit?

SegWit (Segregated Witness) je upgrade protokolu z roku 2015. Jeho koncept byl představen jako řešení problému se škálovatelností, který řeší blockchainové sítě dodnes. 

Bitcoinová síť průměrně ověří každých 10 minut jeden nový blok s transakcemi. Velikost bloku proto ovlivňuje počet transakcí, které lze v každém bloku potvrdit. Aktuálně bitcoinový blockchain dokáže zpracovat asi 7 transakcí za sekundu.

Hlavní myšlenkou SegWitu je přeorganizovat data bloku takovým způsobem, aby podpisy už nebyly umístěny společně s transakčními daty. SegWit jinými slovy spočívá v oddělení svědků (podpisů) od transakčních dat. To umožňuje do jednoho bloku uložit víc transakcí, a zvýšit tak transakční propustnost sítě.

Kvůli tomu, že Bitcoin zvládne zpracovat jen asi 7 transakcí za sekundu, může provedení bitcoinové transakce trvat dlouho. Je to mnohem pomalejší než běžná platební řešení a finanční sítě, které zvládají zpracovat tisíce transakcí za sekundu.

SegWit v roce 2015 vyvinul, spolu s dalšími přispěvateli bitcoinového jádra, vývojář Pieter Wuille. V srpnu 2017 byl SegWit implementován na bitcoinové síti jako soft fork.

Dnes používá SegWit hned několik kryptoměnových projektů, včetně Bitcoinu a Litecoinu. Upgrade protokolu přinesl mnoho výhod, jako je vylepšená rychlost transakcí a kapacita bloku. SegWit navíc vyřešil tzv. tvárnost transakce (transaction malleability), o které si řekneme víc později.


Jaké má SegWit hlavní výhody?

Zvýšení kapacity

Jednou z největších výhod SegWitu je zvýšení kapacity bloků. Odebráním podpisových dat z transakčního vstupu je možné do bloku uložit víc transakcí.

Transakce se skládají ze dvou hlavních složek: vstupů a výstupů. Vstup v podstatě obsahuje veřejnou adresu odesílatele a výstup obsahuje veřejnou adresu příjemce. Odesílatel ale musí dokázat, že převáděné prostředky vlastní, což udělá digitálním podpisem.

Bez SegWitu mohou podpisová data zabrat až 65 % bloku. Se SegWitem se podpisová data přesunou mimo transakční vstup, čímž se efektivní velikost bloku zvětší z 1 MB na asi 4 MB.

Pro jistotu uvádíme, že SegWit samotnou velikost bloku nezvětšuje. Jedná se o technické řešení, které zvětšuje efektivní velikost bloku, aniž by zvětšovalo limit velikosti bloku (který by vyžadoval hard fork). Aktuální velikostí bloku je pořád 1 MB, ale skutečným limitem velikosti bloku jsou 4 MB.

SegWit navíc představil myšlenku váhy bloku. Váhu bloku můžeme považovat za koncept, který nahrazuje představu o velikosti bloku. Váha bloku je v podstatě měřítko zahrnující všechna data bloku, včetně transakčních dat (1 MB) a podpisových dat (až 3 MB), které už nejsou součástí vstupního pole.


Zvýšení rychlosti transakcí

S blokem, který díky SegWitu dokáže uložit víc transakcí, se zvyšuje i transakční rychlost, protože se po blockchainu může ve stejnou chvíli pohybovat větší množství transakcí. Přestože těžba bloku trvá stejně dlouho, zpracovává se víc transakcí, a tak je počet transakcí za sekundu vyšší.

Vyšší rychlost transakcí také pomohla se snížením transakčních nákladů bitcoinové sítě. Před SegWitem nebylo neobvyklé zaplatit za transakci 30 USD. SegWit ale tyto náklady dramaticky snížil na méně než 1 USD za transakci.


Chcete začít s kryptoměnami? Kupte si Bitcoin (BTC) na platformě Binance!


Oprava tvárnosti transakce (transaction malleability)

Velkým problémem Bitcoinu byla potenciální možnost manipulace s transakčními podpisy. Pokud by se změnil podpis, mohlo by dojít k narušení transakce mezi dvěma stranami. Vzhledem k tomu, že data uložená na blockchainech prakticky nelze změnit, mohly by neplatné transakce zůstat na blockchainu navždy uložené.

Se SegWitem už nejsou podpisy součástí transakčních dat, takže je není možné nijak změnit. Tato oprava umožnila další blockchainové inovace jako protokoly druhé vrstvy a chytré kontrakty.


SegWit a Lightning Network

Vývoj protokolů druhé vrstvy byl částečně umožněn opravením chyby s tvárností transakce. Protokoly druhé vrstvy jsou jednoduše řečeno nové platformy nebo produkty, které jsou vybudované nad blockchainem, jako je Bitcoin. Jedním z oblíbenějších protokolů druhé vrstvy je Lightning Network, což je offchainová síť pro mikroplatby.

Lightning Network je protokol druhé vrstvy, který funguje nad sítí Bitcoin. Hlavním účelem sítě Lightning Network je umožnit potvrzení více transakcí v kratším čase, a zrychlit tak transakce uživatelů. Transakce se shromažďují mimo blockchain a efektivně se ukládají do vyrovnávací paměti, ze které je bitcoinová síť nakonec zpracuje.

Síť Lightning Network byla původně vyvinuta pro Bitcoin, ale na její implementaci pracuje i několik dalších kryptoměn a blockchainových projektů. Snižuje se tím nejen doba potvrzení transakcí, ale podporuje to i vývoj nových řešení problému se škálovatelností.


SegWit vs. SegWit2x

SegWit je softforkový upgrade, což znamená, že je zpětně kompatibilní, takže bitcoinové uzly, které neprovedly aktualizaci, aby podporovaly SegWit, pořád mohou zpracovávat transakce. Byl tu ale ještě návrh upgradu SegWit2x (S2X), jehož implementace by vyžadovala hard fork.

Klíčovým rozdílem mezi upgrady SegWit a SegWit2x je, že ten druhý by neměnil jen dávkování transakcí, ale také by zvětšil velikost bloku (z 1 MB na 2 MB). Větší velikost bloku by však zvýšila zátěž na provozovatele uzlů a těžaře, protože by bylo nutné zpracovávat více dat. 

Dalším důležitým rozdílem je, že návrh SegWitu bitcoinová komunita podpořila a prosadila. Tento případ přivedl na svět koncept UASF (user-activated soft fork – soft fork vyvolaný uživateli).

SegWit2x na druhou stranu navrhl podstatnou změnu jednoho ze základních pravidel, kterými se Bitcoin řídí. Ale vzhledem k tomu, že se vývojáři nebyli schopni dohodnout na jeho přijetí a implementaci, bylo hnutí za SegWit2x nakonec pozastaveno.


Vnořený SegWit vs. nativní SegWit (bech32)

Nativní SegWit (také známý jako bech32) je stručně řečeno aktualizovanou verzí vnořeného SegWitu. Formát bech32 přináší zvýšenou rychlost transakcí, lepší mechanismy detekce chyb a ještě nižší transakční poplatky. Adresy bech32 jsou navíc psané malými písmeny, takže jsou snadněji čitelné.

Blockchainové transakce mezi adresami bez SegWitu (zastaralé), s vnořeným SegWitem a nativním SegWitem (bech32) jsou plně kompatibilní. Ne všechny burzy a kryptoměnové peněženky ale SegWit podporují, takže přímý výběr prostředků na segwitovou adresu nemusí fungovat.

Burza Binance podporuje u Bitcoinu (BTC) segwitové vklady i výběry. Další informace získáte na stránce s častými dotazy ohledně SegWitu.


Závěrem

Implementace SegWitu byla největším upgradem bitcoinového protokolu a skutečnost, že ji podpořila a implementovala decentralizovaná komunita, z ní dělá o to zajímavější událost.

Zavedení SegWitu znamenalo velký krok vpřed pro řešení mnoha problémů souvisejících s Bitcoinem a dalšími blockchainovými sítěmi – zejména pokud jde o škálovatelnost. Díky kombinaci SegWitu a protokolů druhé vrstvy dokáží blockchainové sítě efektivněji a levněji zpracovávat větší počet transakcí.

Přestože je SegWit účinným a inovativním řešením, pořád nebyl zcela přijat. Aktuálně SegWit používá asi 53 % bitcoinových adres.