Robert Steinadler, před rokem
Někteří z našich čtenářů si možná všimli, že existují různé typy formátů bitcoinových adres. Segregated witness byl upgrade protokolu, který byl nasazen soft forkem v síti Bitcoin v roce 2017, a od té doby existují tři různé typy formátů.
V čem spočívá výhoda segregated witness? Proč je důležitý a jak funguje? V tomto článku si vysvětlíme, co je to SegWit.
Zrod segregated witness vyžaduje malou lekci z historie Bitcoinu. Původní protokol Bitcoinu umožňoval vytvoření nového bloku v průměru každých deset minut a každý blok měl předem stanovenou velikost 1 megabajt. Velikost bloku omezuje prostor pro transakce, a tím i škálovatelnost Bitcoinu. Někdy od roku 2015 začala komunita Bitcoinu diskutovat o tom, jak Bitcoin škálovat, aby síť zvládla více transakcí.
Jedním z přístupů bylo drastické zvětšení velikosti bloku, což by jednoduše umožnilo více transakcí na blok tím, že by se zvětšil prostor. Dalším bylo změnit uspořádání informací, které byly obsaženy v každém bloku, a vytvořit více prostoru tím, že by obsahoval méně dat, která není bezprostředně nutné zahrnout, aby se transakce uskutečnily. Stojí za zmínku, že dodnes probíhá diskuse, zda byl SegWit dobrý nápad a zda je zvětšení velikosti bloku lepším řešením. Historicky tato debata vedla k forku Bitcoin Cash, který vytvořil novou kryptoměnu, přičemž Bitcoin implementoval segregovaného svědka a Bitcoin Cash se rozhodl pro drasticky větší velikost bloku.
Další důležitou otázkou, která je často opomíjena, protože škálovatelnost se zdá být nejpalčivějším problémem, je prevence zkomolení transakcí. Před aktivitou systému SegWit bylo možné, aby uzel změnil hash nepotvrzené transakce.
To je velmi problematické, zejména pokud je přijímající strana závislá na spolehlivosti řetězce nepotvrzených transakcí. Změnou hashe první transakce nedojde k jejímu zneplatnění, ale další transakce v řetězci se spoléhá na hash, který byl změněn. Proto všechny následující transakce selžou a jsou považovány za neplatné, protože se vztahují k nesprávnému TX ID.
Manipulace s ID transakcí otevírá prostor pro nejrůznější podvody. Ale ještě důležitější je, že je to naprosto nepřijatelné, pokud chcete použít řešení druhé vrstvy nad Bitcoinem, jako je Lightning Network.
SegWit aktualizuje segregovaná data transakcí z digitálního podpisu svědka transakce. Velikost bloku byla efektivně zvětšena na 4 megabajty, přičemž zůstala kompatibilní s původním protokolem Bitcoinu.
Původně každý starší blok obsahoval výstup a vstup transakcí, stejně jako podpisy a navíc skripty. Bloky SegWit jsou ve skutečnosti větší a mají jinou strukturu. Díky segregaci podpisů a skriptů vznikl základní blok, který se také nazývá blok transakcí a který je podle starého protokolu stále považován za platný. Obsahuje vstupy a výstupy a nepřesahuje limit 1 megabajtu.
Rozšířený blok je naproti tomu větší a obsahuje až 3 megabajty dat. Konkrétně se jedná o podpisy a skripty. Tato struktura umožňuje, aby byl SegWit zpětně kompatibilní, což znamená, že jej nikdo nemusí používat, a zároveň při tom nabízí velké výhody. Umožnila také, aby byl SegWit implementován jako soft fork, místo aby vyžadoval hard fork, který by byl více stresující a mohl by síť vystavit riziku rozštěpení.
V souvislosti s měřením velikosti starších bloků došlo také k aktualizaci způsobu měření transakcí. Bloky SegWit se neměří na velikost, ale na váhu. Namísto měření každého bloku v megabajtech (velikost) se měří v hmotnostních jednotkách. Jeden blok SegWit má hmotnost 4 miliony WU (váhových jednotek), což se rovná 4 megabajtům dat.
Vzorec pro výpočet váhy transakce SegWit je následující:
(Velikost transakce - data Witness) * 3 + velikost celé transakce
Váha starší transakce se počítá jinak:
Velikost transakce * 4
Ve skutečnosti jsou transakce SegWit vždy lehčí než starší transakce, což motivuje těžaře, aby tyto transakce zahrnovali jako první, protože mohou vybrat více poplatků, protože každý blok bude obsahovat více transakcí. To má dopad i na poplatky pro odesílatele. Starší transakce je vždy dražší, protože je těžší a vyžaduje zaplacení vyššího poplatku, aby byla potvrzena stejnou rychlostí jako transakce SegWit.
S Bitcoinem byly zavedeny tři typy formátů adres. První jsou starší adresy, které vždy začínají číslicí 1:
1Mpf72Q2xwi1okJL1RCaQeVRPKDhEWRtXt
Druhou jsou adresy SegWit, které začínají číslem 3:
392PTfCzykHSyteg6umCCvbrofRSoJb96i
A třetí jsou nativní adresy SegWit (bech32) začínající na bc:
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
Nativní SegWit je nový formát, který je ještě úspornější a nabízí lepší detekci chyb než původní formát SegWit. Použití bech32 ve výsledku vede k nejlevnějším poplatkům a nejrychlejším možným transakcím v síti Bitcoin.
Je SegWit bezpečný?
Ano, používání SegWitu není spojeno s žádnými bezpečnostními problémy. Ve skutečnosti se jedná o bezpečnostní aktualizaci, pokud vezmete v úvahu odstranění zfalšovatelnosti nepotvrzených transakcí.
Existují nějaké další výhody?
SegWit umožnil implementovat Taproot, který umožňuje chytré kontrakty a ještě rychlejší validace.
Musím transakce SegWit akceptovat?
Vždy se můžete rozhodnout pro starší peněženku, která SegWit nepoužívá. Stále je možné posílat prostředky mezi staršími a SegWitovými adresami. Transakce však na oplátku budou stát více poplatků a jsou pomalejší.
Počkat, znamená to, že SegWit přece jen zvětšuje velikost bloku? Proč tedy vést debatu?
Velikost bloku byla zvýšena na teoretickou úroveň 4 megabajtů. Průměrná velikost bloku se nyní pohybuje kolem 2 megabajtů. Výhodou SegWitu je skutečnost, že je kompatibilní směrem dolů, protože respektuje limit 1 megabajtu transakčních bloků. Nevyžadoval změnu původního protokolu. Na druhou stranu zvýšení velikosti bloku nad tento limit by vyžadovalo hard fork, který je považován za kritickou událost.
Přihlaste se k odběru informací pomocí našich e-mailových aktualizací