Segregowana Świadomość (SegWit): Co to jest

Segregowana Świadomość (SegWit): Co to jest

Marcin Woźniak 14 września, 2023
8 min czytania

Segregowany świadek (SegWit) został wdrożony w 2017 roku, kiedy wojna w społeczności bitcoinów o rozmiar bloku osiągnęła swój szczyt.

Były osoby, które naciskały na zwiększenie limitu rozmiaru bloku poza 1 MB, który został początkowo ustalony przez jego twórcę, Satoshi Nakamoto. Argumentem było to, że w miarę skalowania bitcoina coraz więcej osób będzie z niego korzystać, a rozmiar bloku 1 MB będzie postrzegany jako ograniczenie, ponieważ może obsłużyć tylko ograniczoną liczbę transakcji na sekundę.

Ograniczenie to doprowadziło do słynnej “debaty na temat rozmiaru bloku”, w której różne części społeczności opowiadały się za różnymi rozwiązaniami. Niektórzy chcieli zwiększyć rozmiar bloku, podczas gdy inni preferowali rozwiązania poza łańcuchem lub w warstwie wtórnej.

Brak zgody co do podejścia do skalowania Bitcoina doprowadził do kilku forków w świecie kryptowalut. Bitcoin Cash (BCH), inna kryptowaluta, powstała w wyniku braku porozumienia w tej kwestii i rozpoczęła się od limitu rozmiaru bloku 8 MB, który później został zwiększony.

W tym artykule nie będziemy wdawać się w zbyt wiele szczegółów na temat wojny o rozmiar bloku, ale jeśli jesteś zainteresowany, możesz zapoznać się z książką “The Block Size War” autorstwa Jonathana Biera.

Wdrożenie SegWit do sieci Bitcoin.

SegWit został po raz pierwszy wprowadzony jako rozwiązanie problemu złośliwości transakcji, a później jako metoda zwiększenia efektywnego rozmiaru bloku bez konieczności hard forka. Deweloper Bitcoin Pieter Wuille po raz pierwszy zaprezentował go na konferencji Scaling Bitcoin w grudniu 2015 roku.

Implementacja w Bitcoin Core

Deweloperzy zintegrowali kod SegWit z bazą kodową Bitcoin Core. Biorąc pod uwagę znaczenie tej zmiany, kod przeszedł obszerny przegląd i testy.

Strona została zaimplementowana w Bitcoin jako soft fork. Soft fork to kompatybilny wstecz sposób aktualizacji łańcucha bloków. Oznacza to, że niezaktualizowane węzły mogą nadal uczestniczyć w sieci. Są one często określane jako “starsze węzły”.

Aktywacja górników przez BIP 9

SegWit wykorzystał bity wersji BIP 9 do wdrożenia. Oznaczało to, że SegWit aktywowałby się, gdy 95% górników zasygnalizowałoby wsparcie w ciągu jednego okresu dostosowywania trudności (około dwóch tygodni). Jednak uzyskanie wystarczającego wsparcia górników wymagało czasu.

Aktualizacja sieci

Po aktywacji, węzły Bitcoin w całej sieci zaczęły rozpoznawać i walidować transakcje SegWit. Portfele i inni dostawcy usług zintegrowali następnie obsługę transakcji SegWit, a proces ten trwał przez kolejne miesiące i lata.

Trwająca adopcja

Po aktywacji, szerszy ekosystem (portfele, giełdy, dostawcy płatności) zaczął przyjmować i wspierać SegWit, co było procesem stopniowym.

Z biegiem czasu coraz większy odsetek transakcji Bitcoin korzystał z SegWit, czerpiąc korzyści z jego obniżonej struktury opłat.

Czym jest Segregated Witness (SegWit)?

Przed wprowadzeniem SegWit w sieci blockchain Bitcoina (i innych kryptowalut) istniało wyzwanie związane z możliwością modyfikacji transakcji.

W swej istocie, malowalność transakcji odnosi się do możliwości zmiany przez kogoś unikalnego identyfikatora transakcji (zwanego identyfikatorem transakcji lub TXID) transakcji przed jej potwierdzeniem, bez zmiany rzeczywistych istotnych elementów transakcji (tj. nadawcy, odbiorcy i kwoty).

Po aktywacji SegWit wprowadzono zmianę w formacie transakcji bitcoina, która nie tylko rozwiązała problem złośliwości transakcji, ale także umożliwiła skuteczne zwiększenie rozmiaru bloku bez zwiększania limitu bloków.

Jak Segregated Witness (SegWit) rozwiązał problemy

Rozwiązanie dla transakcji bitcoin

Przed SegWit, w oryginalnym protokole Bitcoin, TXID był obliczany poprzez hashowanie całej transakcji, w tym danych świadków (podpisów). Ponieważ podpisy mogły zostać nieznacznie zmienione bez zmiany rzeczywistego znaczenia transakcji, TXID mógł zostać zmodyfikowany przez stronę trzecią przed potwierdzeniem transakcji.

SegWit oznacza Segregated Witness, a “Witness” oznacza podpis. Tak więc z nazwy możemy uzyskać całkiem przyzwoitą wskazówkę na temat tego, co robi ta aktualizacja.

“Usuwa” ona podpis z transakcji. Oddzielenie to oznacza, że dane świadka (podpis) nie są uwzględniane przy obliczaniu identyfikatora transakcji, dzięki czemu format transakcji jest bardziej elastyczny i rozwiązuje kwestię plastyczności transakcji.

Więcej miejsca w blokach

Dzięki oddzieleniu danych świadków, w każdym bloku jest więcej miejsca na transakcje. Chociaż nie jest to bezpośredni wzrost rozmiaru bloku, jest to dostosowanie sposobu obliczania rozmiaru bloku. Zmiana ta, określana jako “waga bloku”, pozwoliła na zmieszczenie większej liczby transakcji w bloku, co z kolei pomaga nieco złagodzić obawy związane ze skalowalnością.

Wprowadzenie koncepcji wagi bloku

Wraz z SegWit pojęcie rozmiaru bloku zostało nieco przedefiniowane. Zamiast prostego rozmiaru bloku 1 MB, Bitcoin wdrożył system “wagi bloku”. System ten nadaje różne “wagi” różnym częściom transakcji.

  • Główna część transakcji (bez danych świadków) ma wagę 1 bajta na bajt.
  • Dane świadków (takie jak podpisy) mają wagę 1/4 bajta na bajt.

Dlatego przy tym systemie ważenia blok może mieć maksymalną wagę 4 milionów jednostek. W praktyce oznacza to, że w zależności od składu transakcji, bloki mogą być większe niż 1 MB, aż do teoretycznego limitu 4 MB, gdyby składały się w całości z danych świadków (co jest mało prawdopodobnym skrajnym scenariuszem). W rzeczywistości bloki z SegWit Tx często mają nieco ponad 1 MB, a 2 MB są bardziej praktycznym górnym limitem dla średnich mieszanek transakcji.

Zwiększone bezpieczeństwo

Oprócz swojego głównego celu, SegWit poprawił również bezpieczeństwo sieci Bitcoin. Aktualizacja zmieniła sposób podpisywania danych, zmniejszając pewne ryzyko związane z podpisywaniem transakcji.

Oferując różne korzyści, jego przyjęcie było stopniowe.

Nie wszyscy dostawcy usług, portfele i giełdy natychmiast obsługiwały transakcje SegWit. Z biegiem czasu, w miarę jak coraz więcej podmiotów go przyjmowało, sieć zaczęła zdawać sobie sprawę z jego pełnych korzyści. Obserwując dane transakcyjne, można zauważyć rosnący odsetek transakcji w sieci przy użyciu Segregated Witness w miarę upływu czasu.

Wpływ na transakcje Bitcoin po wprowadzeniuSegWit:

Oddzielenie podpisu (Świadka) umożliwiło zmieszczenie większej liczby transakcji w bloku. Zmniejszyło to konkurencję o przestrzeń blokową, co doprowadziło do zmniejszenia opłat transakcyjnych.

Mając więcej miejsca w blokach, transakcje mogły być potwierdzane szybciej, zwłaszcza w okresach dużego ruchu.

Po SegWit popularność zaczęły zdobywać nowe formaty adresów, takie jak bech32.

Podczas gdy adresy zaczynające się od “1” są starszymi adresami, te zaczynające się od “bc1” są natywne dla SegWit i umożliwiają pełne wykorzystanie aktualizacji.

Przykłady:

Bech32: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq

Legacy: 157fRrqAKrDyGHr1Bx3yDxeMv8Rh45aUet

Jak SegWit utorował drogę dla sieci Lightning:

Lightning Network (LN) to rozwiązanie drugiej warstwy dla Bitcoina, zaprojektowane w celu ułatwienia szybszych i bardziej skalowalnych transakcji.

Lightning Network opiera się na transakcjach typu chained commitment.

Jeśli złośliwy aktor może zmienić TXID wcześniejszej transakcji w łańcuchu, spowoduje to, że kolejne transakcje zobowiązania będą nieważne, ponieważ odwołują się do TXID poprzedniej transakcji.

Zdestabilizowałoby to i potencjalnie zagroziło bezpieczeństwu kanałów LN.

Rola SegWit

SegWit zajął się kwestią zmienności transakcji, usuwając dane podpisu (dane świadka) z części danych transakcji, które są hashowane w celu utworzenia TXID.

Dzięki temu, nawet jeśli dane świadka zostaną zmienione, TXID pozostaje taki sam. Po rozwiązaniu tego problemu, stworzono podstawy dla niezawodnych i bezpiecznych kanałów LN.

Wydajność przestrzeni blokowej

Chociaż SegWit nie jest ścisłą koniecznością dla LN, sprawił również, że wykorzystanie przestrzeni blokowej stało się bardziej wydajne poprzez segregację danych świadków.

Pośrednio pomaga to LN, ponieważ otwieranie i zamykanie kanałów LN wiąże się z transakcjami w łańcuchu. Bardziej wydajne wykorzystanie przestrzeni blokowej oznacza, że transakcje te są bardziej ekonomiczne, co dodatkowo zachęca do korzystania z LN.

Zwiększona elastyczność inteligentnych kontraktów

Zmiany SegWit w systemie skryptowym Bitcoina pozwalają na większą elastyczność. Jest to również korzystne dla bardziej złożonych inteligentnych kontraktów i rozwiązań off-chain, takich jak LN.

Podsumowując, podczas gdy teoretyczne podstawy Lightning Network mogły zostać opracowane bez SegWit, jego rozwiązania konkretnych wyzwań technicznych sprawiły, że praktyczne i bezpieczne wdrożenie LN stało się wykonalne.

Wnioski

Segregated Witness, kluczowa aktualizacja protokołu Bitcoina, rozwiązała problem zmienności transakcji przy jednoczesnej optymalizacji przestrzeni blokowej. Jego wdrożenie utorowało drogę do lepszej skalowalności. Zmniejszając opłaty, przygotowano grunt pod zaawansowane rozwiązania, takie jak Lightning Network. Jako świadectwo zdolności adaptacyjnych Bitcoina, SegWit pokazuje zaangażowanie sieci w ciągłą ewolucję w odpowiedzi na jej wyzwania.

Jeśli chcesz zanurzyć się głębiej i dowiedzieć się więcej o Bitcoinie, możesz sprawdzić nasze Bitcoin Hub, aby uzyskać więcej przydatnych artykułów!

FAQ

1. Co to jest Segregated Witness (SegWit)? SegWit to aktualizacja protokołu, która zmienia sposób przechowywania danych w transakcjach Bitcoin, zwiększając pojemność łańcucha bloków i rozwiązując problem zmienności transakcji.

2. Dlaczego wprowadzono SegWit? SegWit został wprowadzony w celu poprawy skalowalności sieci Bitcoin, umożliwiając jej przetwarzanie większej liczby transakcji bez znacznego zwiększania rozmiaru bloku. Rozwiązał on również problem podatności transakcji na zniekształcenia.

3. Jak działa SegWit? SegWit oddziela dane świadków (podpisy) od danych transakcji. Dzięki temu transakcje mają mniejszy rozmiar, co pozwala zmieścić więcej transakcji w bloku.

4. Czym jest plastyczność transakcji? Zmienność transakcji odnosi się do możliwości zmiany unikalnego identyfikatora transakcji bez zmiany jej zawartości. SegWit rozwiązuje ten problem, zapewniając, że dane podpisu nie wpływają na identyfikator transakcji.

5. Jak SegWit wpływa na opłaty transakcyjne? Optymalizując przestrzeń w blokach, SegWit może prowadzić do obniżenia opłat transakcyjnych, ponieważ więcej transakcji mieści się w bloku.

6. Czy SegWit był hard czy soft forkiem? SegWit został wprowadzony jako soft fork, co oznacza, że był wstecznie kompatybilny z węzłami, które nie dokonały aktualizacji.

7. Czy SegWit wpływa na bezpieczeństwo Bitcoina? Nie, SegWit utrzymuje bezpieczeństwo sieci Bitcoin, jednocześnie optymalizując jej pojemność transakcyjną.

8. W jaki sposób SegWit utorował drogę dla Lightning Network? Dzięki rozwiązaniu problemu zmienności transakcji, SegWit sprawił, że rozwój rozwiązań drugiej warstwy, takich jak Lightning Network, stał się bardziej wykonalny.

9. Czy wszystkie portfele Bitcoin obsługują SegWit? Chociaż wiele nowoczesnych portfeli obsługuje transakcje SegWit, zawsze dobrze jest sprawdzić u konkretnego dostawcy portfela.

10. Jak mogę sprawdzić, czy adres Bitcoin obsługuje SegWit? Adresy obsługujące SegWit zazwyczaj zaczynają się od “3” (format P2SH) lub “bc1” (format bech32). Jednak nie wszystkie adresy zaczynające się od “3” są adresami SegWit.

Marcin Woźniak

W 2018 roku Marcin po raz pierwszy zetknął się z technologią blockchain i Bitcoinem, co natychmiast wzbudziło jego zainteresowanie. Posiada głęboką pasję do innowacji technologicznych i trwającej cyfryzacji sektora finansowego. Marcin z niecierpliwością oczekuje na globalny, transformacyjny wpływ technologii blockchain i z entuzjazmem przyczynia się do tego rewolucyjnego ruchu.