Co to jest SegWit?
Segregated Witness (SegWit) to ulepszony protokół opracowany w 2015 roku. Koncepcja ta została wprowadzona w celu rozwiązania problemów ze skalowalnością, z jakimi borykają się obecnie sieci blockchain.
Sieć Bitcoin sprawdza średnio co 10 minut nowe bloki, a każdy blok zawiera kilka transakcji. W ten sposób wielkość bloku wpływa bezpośrednio na liczbę transakcji, które można potwierdzić w każdym bloku. Obecnie blockchain Bitcoin jest w stanie przetwarzać około 7 transakcji na sekundę.
Główną ideą Segregated Witness jest reorganizacja danych blokowych tak, aby podpisy nie były już przechowywane razem z danymi transakcyjnymi. Innymi słowy, aktualizacja SegWit obejmuje izolowanie walidatorów (podpisów) od danych transakcyjnych. Umożliwia to przechowywanie większej liczby transakcji w jednym bloku, zwiększając w ten sposób przepustowość transakcji w sieci.
Ponieważ na sekundę można przetwarzać tylko około 7 transakcji, realizacja transakcji Bitcoinem może czasami zająć dużo czasu. Znacznie wolniejsze niż tradycyjne rozwiązania płatnicze i sieci finansowe, które mogą obsłużyć tysiące transakcji na sekundę.
Segregated Witness został opracowany i zaktualizowany w 2015 roku przez programistę Bitcoin Pietera Wuille'a i innych współpracowników Bitcoin Core. W sierpniu 2017 r. wdrożono aktualizację Segregated Witness w formie miękkiego forka w sieci Bitcoin.
Obecnie istnieje kilka projektów kryptowalut korzystających z protokołu Segregated Witness, w tym Bitcoin i Litecoin. Aktualizacja protokołu przynosi wiele korzyści, takich jak zwiększona prędkość transakcji i pojemność bloków. Dodatkowo SegWit rozwiązuje tzw. problem plastyczności transakcji (omówiony poniżej).
Jakie są główne zalety SegWit?
zwiększyć pojemność
Jedną z największych zalet Segwitu jest zwiększona pojemność bloków. Usuwając dane podpisu z danych wejściowych transakcji, w bloku można zapisać więcej transakcji.
Transakcja składa się z dwóch głównych części: wejścia i wyjścia. Zasadniczo dane wejściowe zawierają adres publiczny nadawcy, a dane wyjściowe zawierają adres publiczny odbiorcy. Nadawca musi jednak udowodnić, że przekazał środki, a także musi zastosować podpis cyfrowy.
Bez SegWit dane podpisu mogą zajmować do 65% bloku. Korzystając z Segregated Witness, dane podpisu są usuwane z danych wejściowych transakcji. Zwiększa to efektywny rozmiar bloku z 1 MB do około 4 MB.
Należy pamiętać, że Segwit to nie tylko zwiększenie rozmiaru bloku. Jest to raczej rozwiązanie inżynieryjne mające na celu zwiększenie efektywnego rozmiaru bloku bez zwiększania limitu rozmiaru bloku (co wymagałoby hard forku). Mówiąc dokładniej, rzeczywisty rozmiar bloku wynosi nadal 1 MB, ale efektywny rozmiar bloku jest ograniczony do 4 MB.
Ponadto Segregated Witness wprowadza również koncepcję wagi bloku. Możemy myśleć o wadze bloku jako o koncepcji alternatywnej do rozmiaru bloku. Zasadniczo waga bloku to jednostka miary obejmująca wszystkie dane blokowe: w tym dane transakcyjne (1 MB) i dane podpisu (maksymalnie 3 MB), które nie są już częścią pól wejściowych.
Zwiększona prędkość transakcji
Oprócz możliwości przechowywania większej liczby bloków transakcji, Segregated Witness może również zwiększyć prędkość transakcji ze względu na dużą ilość danych transakcyjnych, które mogą być przechowywane w łańcuchu bloków. Nawet jeśli czas utworzenia bloku będzie taki sam, w bloku będzie można zmieścić więcej transakcji, przez co TPS będzie wyższy.
Zwiększona prędkość transakcji może również pomóc w obniżeniu kosztów transakcji w sieci Bitcoin. Przed wdrożeniem Segwit każda opłata transakcyjna wynosiła przeważnie ponad 30 dolarów. Jednak dzięki wdrożeniu SegWit koszty transakcji zostały znacznie obniżone do 1 dolara za transakcję.
Poprawki plastyczności transakcji
Kolejnym poważnym problemem, przed którym stoi Bitcoin, jest manipulowanie podpisami transakcji. Jeśli podpis zostanie naruszony, może to spowodować naruszenie transakcji między obiema stronami. Ponieważ dane przechowywane w łańcuchu bloków są w rzeczywistości niezmienne, nieprawidłowe transakcje są trwale przechowywane w łańcuchu bloków.
Dzięki SegWit podpis nie jest już częścią danych transakcyjnych, co eliminuje możliwość zmiany tych danych. Ta poprawka wspiera dalsze innowacje w społeczności blockchain, w tym protokoły warstwy 2 i inteligentne kontrakty.
Sieć SegWit i Lightning
Rozwiązując problemy ze skalowalnością transakcji, należy opracować protokoły warstwy 2. Mówiąc najprościej, protokół warstwy 2 to nowa platforma lub produkt zbudowany na bazie łańcucha bloków, takiego jak Bitcoin. Jednym z bardziej popularnych protokołów warstwy 2 jest Lightning Network, sieć płatności offline działająca poza łańcuchem.
Lightning Network to protokół drugiej warstwy działający w sieci Bitcoin. Głównym celem Lightning Network jest umożliwienie potwierdzania większej liczby transakcji w krótszym czasie, zapewniając w ten sposób użytkownikom szybsze transakcje. Transakcje są gromadzone poza łańcuchem, skutecznie je buforując do ostatecznego przetworzenia przez sieć Bitcoin.
Sieć Lightning została pierwotnie opracowana dla Bitcoina. Jednak kilka innych projektów kryptowalutowych i blockchain również pracuje nad wdrożeniem tej technologii. Nie tylko skróci to czas walidacji, ale także ułatwi opracowywanie rozwiązań problemów ze skalowalnością.
SegWit i SegWit2x
SegWit to aktualizacja typu soft fork, co oznacza, że obsługuje kompatybilność wsteczną. Innymi słowy, węzły Bitcoin, które nie zaktualizowały SegWit, nadal są w stanie przetwarzać transakcje. Istnieje jednak inna możliwa do wdrożenia wersja SegWit o nazwie SegWit2x (S2X), która wymaga aktualizacji typu hard fork.
Główną różnicą pomiędzy SegWit i SegWit2x jest to, że ten ostatni będzie obejmował nie tylko zmiany w grupowaniu transakcji, ale także zwiększenie rozmiaru bloku (z 1 MB do 2 MB). Niemniej jednak większe rozmiary bloków zwiększają obciążenie operatorów węzłów i górników, ponieważ muszą oni przetwarzać więcej danych.
Kolejną znaczącą różnicą jest to, że propozycja SegWit jest wspierana i wdrażana przez społeczność Bitcoin. Dało to również początek koncepcji UASF, czyli miękkiego widelca aktywowanego przez użytkownika.
SegWit2x proponuje natomiast istotne zmiany w podstawowych zasadach rządzących Bitcoinem. Jednak SegWit2x został ostatecznie zawieszony, ponieważ programiści nie byli w stanie osiągnąć konsensusu w sprawie jego przyjęcia i wdrożenia.
Różnica między zagnieżdżonym SegWit a natywnym SegWit (bech32)
Mówiąc najprościej, natywny SegWit (znany również jako bech32) to zaktualizowana wersja zagnieżdżonego SegWit. Adresy bech32 zwiększają prędkość transakcji, zapewniają lepsze mechanizmy wykrywania błędów, a nawet zmniejszają opłaty transakcyjne. Dodatkowo adresy bech32 pisane są małymi literami, co ułatwia ich odczytanie. Należy pamiętać, że transakcje pomiędzy adresami innymi niż SegWit (tj. oryginalnymi adresami Bitcoin, znanymi również jako Legacy), adresami Nested SegWit i SegWit (bech32) są w pełni kompatybilne. Jednak nie wszystkie giełdy i portfele kryptowalut obsługują SegWit, dlatego nie można wysyłać środków bezpośrednio na adres, który nie obsługuje SegWit. Binance obsługuje już adresy SegWit do wpłat i wypłat BTC. Aby uzyskać więcej informacji, zapoznaj się z FAQ SegWit.
Podsumować
Wdrożenie SegWit oznacza poważną aktualizację protokołu Bitcoin, który jest również wspierany i wdrażany przez społeczność rozproszoną, co czyni go jeszcze bardziej atrakcyjnym.
Uruchomienie SegWit może skutecznie rozwiązać problemy związane z Bitcoinem i innymi sieciami blockchain, szczególnie ważnym krokiem w skalowalności. Dzięki połączeniu SegWit i protokołów drugiej warstwy sieci blockchain mogą obsługiwać duże wolumeny transakcji z większą wydajnością i niższymi kosztami.
Chociaż SegWit jest potężnym i innowacyjnym rozwiązaniem, nie zostało jeszcze w pełni wdrożone. Obecnie około 53% adresów Bitcoin korzysta z protokołu SegWit.

