Wprowadzenie do technologii Segregated Witness (SegWit)
Strona G艂贸wna
Artyku艂y
Wprowadzenie do technologii Segregated Witness (SegWit)

Wprowadzenie do technologii Segregated Witness (SegWit)

Zaawansowany
Opublikowane Nov 25, 2019Zaktualizowane Jun 13, 2023
6m

Spis tre艣ci


Co to jest SegWit?

Segregated Witness (SegWit) jest aktualizacj膮 protoko艂u opracowan膮 w 2015 r. Koncepcja ta zosta艂a wprowadzona jako pr贸ba rozwi膮zania problemu skalowalno艣ci, z kt贸rym zmaga艂y i nadal zmagaj膮 si臋 sieci blockchain.

Statystycznie, sie膰 Bitcoin weryfikuje nowy blok co 10 minut, przy czym ka偶dy z nich zawiera do kilku transakcji. Zatem wielko艣膰 bloku bezpo艣rednio wp艂ywa na liczb臋 transakcji mo偶liwych do zatwierdzenia w jednym bloku. Obecnie blockchain Bitcoina jest w stanie przetworzy膰 oko艂o 7 transakcji na sekund臋.

G艂贸wnym pomys艂em SegWit jest reorganizacja danych bloku w taki spos贸b, 偶e sygnatury kryptograficzne nie s膮 ju偶 umieszczane wraz z informacjami transakcyjnymi. Innymi s艂owy, aktualizacja SegWit polega na oddzieleniu (segregate) po艣wiadcze艅 (witnesses) od danych transakcyjnych. W praktyce pozwala to na przechowywanie wi臋kszej liczby transakcji w jednym bloku, tym samym zwi臋kszaj膮c przepustowo艣膰 ca艂ej sieci.

Z powodu tego, 偶e Bitcoin potrafi przetworzy膰 zaledwie 7 transakcji na sekund臋, przesy艂anie p艂atno艣ci poprzez jego sie膰 mo偶e czasem zaj膮膰 sporo czasu. Pozostawia go to w tyle za konwencjonalnymi rozwi膮zaniami i sieciami p艂atniczymi, przetwarzaj膮cymi tysi膮ce transakcji na sekund臋.

SegWit zosta艂 stworzony w 2015 roku, przez programist臋 Bitcoina - Pieter Wuille, wraz z innymi wsp贸艂tw贸rcami Bitcoin Core. W sierpniu 2017r. aktualizacja wprowadzaj膮ca SegWit zosta艂a dodana do sieci Bitcoina pod postaci膮 soft fork'a.
Dzi艣 istnieje kilka kryptowalut stosuj膮cych technologi臋 SegWit, w tym Bitcoin i Litecoin. Uaktualnienie protoko艂u przynios艂o szereg korzy艣ci, takich jak zwi臋kszenie szybko艣膰 transakcji i przepustowo艣ci bloku. Ponadto SegWit rozwi膮za艂, tak zwany, b艂膮d zwi膮zany z ci膮gliwo艣ci膮 transakcji (om贸wiony poni偶ej).


Jakie s膮 g艂贸wne korzy艣ci p艂yn膮ce ze stosowania SegWit?

Wzrost pojemno艣ci

Jedn膮 z najwi臋kszych korzy艣ci zastosowania SegWit jest zwi臋kszenie przepustowo艣ci blok贸w. Usuwaj膮c dane sygnatur z wej艣cia (input) transakcji, mo偶na przechowywa膰 wi臋cej transakcji w jednym bloku.

Transakcje sk艂adaj膮 si臋 z dw贸ch g艂贸wnych komponent贸w: wej艣膰 oraz wyj艣膰. Zasadniczo, dane wej艣ciowe zawieraj膮 klucze publiczne nadawc贸w, podczas gdy dane wyj艣ciowe zawieraj膮 klucze publiczne odbiorc贸w. Nadawca musi jednak wpierw udowodni膰, 偶e posiada przesy艂ane 艣rodki, do czego s艂u偶膮 podpisy cyfrowe.

Bez SegWita podpisy cyfrowe mog膮 zaj膮膰 a偶 do 65% bloku. Z SegWit, sygnatury zostaj膮 przeniesione z danych wej艣ciowych. Powoduje to wzrost efektywnej wielko艣ci bloku z 1 MB do oko艂o 4 MB.

Zauwa偶, 偶e SegWit sam w sobie nie zwi臋ksza rozmiaru bloku. Zamiast tego, zwi臋kszana jest efektywna wielko艣膰 bloku , bez konieczno艣ci zwi臋kszania limitu rozmiaru bloku (co wymaga艂oby hard-fork'a). B臋d膮c bardziej szczeg贸艂owym, rzeczywista wielko艣膰 bloku nadal wynosi 1 MB, ale efektywna granica zosta艂a przesuni臋ta do 4 MB.

Ponadto SegWit wprowadzi艂 pomys艂 wagi bloku. Mo偶emy uzna膰 wag臋 bloku za koncepcj臋 zast臋puj膮c膮 rozmiar bloku. Zasadniczo, waga bloku jest miar膮, kt贸ra obejmuje wszystkie dane blokowe, w tym dane transakcji (1 MB) oraz dane sygnatur (do 3 MB), kt贸re nie stanowi膮 ju偶 cz臋艣ci informacji wej艣ciowych.


Przyrost pr臋dko艣ci transakcji

Z blokiem mog膮cym przechowywa膰 wi臋cej transakcji, SegWit ma r贸wnie偶 mo偶liwo艣膰 zwi臋kszenia pr臋dko艣ci transakcji, poniewa偶 zwi臋kszona zostaje liczba transakcji przechodz膮cych przez blockchain. Nawet je艣li wykopanie bloku zajmuje dok艂adnie tyle samo czasu, wi臋cej transakcji jest procesowanych w tym samym okresie, zatem ro艣nie warto艣膰 TPS.

Zwi臋kszona pr臋dko艣膰 transakcji pomog艂a r贸wnie偶 obni偶y膰 koszty transakcji w sieci Bitcoin. Przed pojawieniem si臋 technologii SegWit, wydawanie ponad $30 USD na przes艂anie bitcoin贸w nie by艂o czym艣 nadzwyczajnym. Jednak偶e SegWit drastycznie obni偶y艂 ten koszt do poziomu poni偶ej $1 USD za transakcj臋.


Poprawa b艂臋du z ci膮gliwo艣ci膮 transakcji

G艂贸wnym problemem Bitcoina by艂a mo偶liwo艣膰 potencjalnej ingerencji w sygnatury. Je偶eli podpis zosta艂by zmieniony, mog艂o to spowodowa膰 uszkodzenie ca艂ej transakcji mi臋dzy dwoma stronami. Z racji, 偶e dane przechowywanie na blockchainie s膮 praktycznie niezmienne, w takiej sytuacji, nieprawid艂owe transakcje by艂yby trwale przechowywane w rejestrze.

Z pomoc膮 SegWit, podpisy nie s膮 ju偶 cz臋艣ci膮 danych transakcji, co usuwa mo偶liwo艣膰 ingerencji w te dane. Usprawnienie te pozwoli艂o na rozwijanie dalszych innowacje w ca艂ej spo艂eczno艣ci kryptowalut, w tym protoko艂贸w drugie warstwy (second layer) i inteligentnych um贸w.


SegWit i Lightning Network

Opracowanie protoko艂贸w drugiej warstwy zosta艂o cz臋艣ciowo umo偶liwione poprzez napraw臋 b艂臋du dotycz膮cego ci膮gliwo艣ci transakcji. Protoko艂y drugiej warstwy s膮 nowymi platformami i systemami dzia艂aj膮cymi "na g贸rze" 艂a艅cuch贸w blok贸w, takich jak blockchain Bitcoina. Jednym z popularniejszych protoko艂贸w drugiej warstwy jest sie膰 Lightning Network, umo偶liwiaj膮ca mikrop艂atno艣ci dokonywane off-chain, czyli poza rejestrem g艂贸wnym.

Lightning Network to sie膰 drugiej warstwy dzia艂aj膮ca w ramach Bitcoina. G艂贸wnym celem Lightning Network je zaoferowanie mo偶liwo艣ci przesy艂ania wi臋kszej liczby transakcji w kr贸tszym czasie. Transakcje s膮 zbierane poza g艂贸wnym 艂a艅cuchem blok贸w i buforowane, tak aby finalnie mog艂a je przetworzy膰 sie膰 Bitcoin.

Sie膰 Lightning Network zosta艂a pierwotnie opracowana dla Bitcoina. Jednak kilka innych projekt贸w kryptowalut pracuje nad wdro偶eniem technologii dla swoich w艂asnych blockchain贸w. Spowoduje to nie tylko skr贸cenie czasu potwierdzania transakcji, ale tak偶e pobudzi prace badawcze nad nowymi rozwi膮zaniami problemu skalowalno艣ci.


SegWit kontra SegWit2x

Aktualizacja SegWit nale偶y do kategorii soft fork'贸w, dlatego jest wstecznie kompatybilna. Oznacz to, 偶e w臋z艂y sieci Bitcoin, kt贸re nie s膮 aktualizowane w celu uwzgl臋dnienia SegWi, nadal mog膮 przetwarza膰 transakcje zawieraj膮ce SegWit. Niemniej zaproponowano p贸藕niej inn膮 implementacj臋 SegWit o nazwie SegWit2x (S2X), wymagaj膮c膮 hard-fork'a.

G艂贸wna r贸偶nica mi臋dzy SegWit, a SegWit2x polega na tym, 偶e ten ostatni nie tylko wprowadzi艂by zmian臋 w serii transakcji, lecz tak偶e zwi臋kszy艂 rozmiar bloku (z 1 MB do 2 MB). Jednak wi臋kszy rozmiar bloku zwi臋kszy艂by obci膮偶enie operator贸w w臋z艂贸w i g贸rnik贸w, poniewa偶 musieliby oni przetworzy膰 znacznie wi臋cej danych.聽

Inna istotna r贸偶nica polega na tym, 偶e propozycja SegWit zosta艂a poparta i wyegzekwowana przez spo艂eczno艣膰 Bitcoina. Narodzi艂o to koncepcj臋 UASF, kt贸ra oznacza聽mi臋kki fork aktywowany przez u偶ytkownik贸w (user-activated soft fork).

Z drugiej strony SegWit2x proponowa艂 znacz膮c膮 zmian臋 jednej z podstawowych zasad reguluj膮cych Bitcoina. Poniewa偶 jednak deweloperzy nie byli w stanie doj艣膰 do konsensusu w sprawie przyj臋cia i wdro偶enia, ruch SegWit2x ostatecznie podupad艂 i rozpad艂 si臋.


Przemy艣lenia ko艅cowe

Wdro偶enie SegWit by艂o najwi臋ksz膮 aktualizacj臋 protoko艂u Bitcoin, a fakt, 偶e by艂a ona wspierana i wdra偶ana przez zdecentralizowan膮 spo艂eczno艣膰, czyni ca艂膮 spraw臋 jeszcze ciekawsz膮.

Wprowadzenie SegWit by艂o wa偶nym krokiem naprz贸d w rozwi膮zywaniu wielu problem贸w zwi膮zanych z Bitcoinem i sieciami blockchain - zw艂aszcza w odniesieniu do skalowalno艣ci. Dzi臋ki po艂膮czeniu SegWit i protoko艂贸w drugiej warstwy, sieci blockchain mog膮 obs艂ugiwa膰 wi臋ksz膮 liczb臋 transakcji przy znaczniejszej wydajno艣ci i ni偶szych kosztach.

Mimo 偶e jest to pot臋偶ne i innowacyjne rozwi膮zanie, SegWit nie zosta艂 jeszcze w pe艂ni przyj臋ty. Obecnie odsetek adres贸w Bitcoin korzystaj膮cych z SegWit wynosi oko艂o 53%.