Co to jest SegWit?

Co to jest SegWit?

Segregated Witness, powszechnie określany jako SegWit, stanowi kluczową aktualizację protokołu Bitcoin Core, wprowadzoną w 2017 roku. SegWit, powstały jako sposób na radzenie sobie z wyzwaniami skalowania Bitcoina i szczególnymi lukami w zabezpieczeniach, wprowadził szereg znaczących ulepszeń. Wśród jego najważniejszych osiągnięć protokół rozwiązał problemy z plastycznością transakcji i zwiększył limit rozmiaru bloku Bitcoin, ułatwiając w ten sposób uwzględnianie większej liczby transakcji w każdym bloku. Co więcej, to uaktualnienie wprowadziło dwa innowacyjne typy skryptów dla transakcji Bitcoin i zaprezentowało nowe podejście do kodowania znane jako Bech32 .

Droga do aktywacji SegWit nie była pozbawiona wyzwań, ponieważ wywołała znaczną debatę w społeczności Bitcoin. Takie spory podkreślały nieodłączną zdecentralizowaną naturę Bitcoina – ekosystemu zależnego od konsensusu wśród jego globalnych uczestników. Podczas gdy scentralizowane systemy mogą wprowadzać zmiany poprzez autorytatywne dekrety, Bitcoin wymaga umowy zbiorowej w sprawie wszelkich modyfikacji protokołu. Pomimo sporów wokół SegWit, Bitcoin wykazał odporność i zdolność adaptacji, podkreślając swoją zdolność do przeciwstawiania się nadmiernym wpływom ze strony górników i prominentnych osobistości społecznych.

Jak działa SegWit?

Segregated Witness, bardziej znany jako SegWit, stanowi transformacyjną aktualizację protokołu transakcji Bitcoin. Jego podstawową intencją jest zwiększenie efektywności transakcji i rozwiązanie niezamierzonej plastyczności transakcji. Dzieląc transakcję na dwa komponenty, z których pierwszy obejmuje adresy portfela nadawcy i odbiorcy, a drugi zawiera podpisy transakcji lub dane świadków, SegWit zmniejsza wagę bloku. To oddzielenie zapewnia, że więcej transakcji zmieści się w jednym bloku Bitcoin, zwiększając w ten sposób przepustowość i zmniejszając opłaty transakcyjne.

W przeciwieństwie do hard forku, który dzieli łańcuch bloków na dwa odrębne łańcuchy, SegWit został zaimplementowany jako soft fork . Oznacza to, że pozostał ujednolicony łańcuch bloków Bitcoin, akceptujący bloki zarówno od użytkowników z włączoną, jak i niewłączoną funkcją SegWit. Przenosząc dane podpisu poza podstawowy blok transakcji, zachowując jednocześnie możliwości weryfikacji, integralność Bitcoina zostaje zachowana, umożliwiając więcej transakcji w ramach standardowego bloku o wielkości 1 megabajta. Rezultatem jest sieć Bitcoin, która jest zarówno szybsza, jak i bezpieczniejsza.

Uzupełnieniem SegWit jest standard adresowania Bech32. Te „natywne adresy SegWit”, które można rozpoznać po prefiksie „ bc1 ”, kontrastują z tradycyjnymi adresami Legacy rozpoczynającymi się od „1”. Dzięki przyjęciu standardu SegWit i Bech32 użytkownicy mogą skorzystać z obniżonych opłat transakcyjnych. Należy pamiętać, że chociaż Bitcoin przechowywany pod adresami Legacy pozostaje tam do momentu przeprowadzenia transakcji, każda zmiana tych adresów, będąca częścią transakcji, zostanie przeniesiona na adres SegWit. Z biegiem czasu, gdy użytkownicy będą przeprowadzać transakcje i otrzymywać środki na adresy SegWit, ich salda Bitcoin będą organicznie przesuwać się w stronę bardziej wydajnych adresów.

W jaki sposób SegWit rozwiązuje problem plastyczności transakcji?

Segregated Witness, powszechnie znany jako SegWit, to kluczowe ulepszenie protokołu Bitcoin, zaprojektowane przede wszystkim w celu rozwiązania problemu plastyczności transakcji. Problem ten dotyczy potencjalnej modyfikacji danych transakcji przed jej zatwierdzeniem na blockchainie.

Zagłębianie się w plastyczność transakcji

Wyobraź sobie scenariusz, w którym John jest winien Stevenowi 10 BTC. Steven w złośliwych zamiarach zmienia dane świadka Johna, zanim sieć potwierdzi transakcję. Identyfikator transakcji ulega zmianie, mimo że treść transakcji pozostaje niezmieniona. Po potwierdzeniu zmanipulowanej transakcji pierwotna transakcja zostaje anulowana. Jeśli Steven fałszywie oświadczy, że nie otrzymał 10 BTC, John może ponownie wysłać BTC, stając się ofiarą oszustwa, nawet nie zdając sobie z tego sprawy. Takie manipulacje były niewidoczne dla sieci, przez co trudno było im zapobiec.

Rozwiązanie problemu przez SegWit

Podstawową funkcją SegWit jest oddzielanie danych świadków od danych transakcji, zapewniając, że nie można ich zmienić w celu zmiany identyfikatorów transakcji. Opracowując łańcuch boczny do przechowywania danych świadków oddzielnie od głównego łańcucha bloków, SegWit eliminuje możliwość takich złośliwych zmian.

Ponadto SegWit zachowuje kompatybilność wsteczną, co oznacza, że węzły działające w oparciu o protokół SegWit mogą nadal wchodzić w interakcję ze starszymi węzłami. Ten rodzaj aktualizacji to soft fork, w przeciwieństwie do hard forków, które nie są kompatybilne wstecz i mogą dzielić łańcuch bloków. Unikalnym aspektem SegWit jest to, że chociaż szyfruje wszystkie dane świadków w łańcuchu bocznym, kod główny pozostaje w głównym łańcuchu bloków.

SegWit i skalowalność : dopasowanie stworzone na przyszłość

Poza rozwiązaniem kwestii plastyczności transakcji, SegWit zapewnia znaczne korzyści w zakresie skalowalności. Skalowalność to zdolność sieci do obsługi rosnącej liczby transakcji bez utraty szybkości. Chociaż wiele sieci blockchain spowalnia w miarę ich rozwoju, SegWit zwiększa wydajność Bitcoina.

Proces konsensusu jest podstawową przyczyną wyzwań związanych ze skalowalnością wielu kryptowalut. Transakcja musi zostać zweryfikowana przez ponad połowę węzłów Bitcoin przed dodaniem do łańcucha bloków. Przy rosnącej liczbie węzłów osiągnięcie konsensusu trwa dłużej. Jednak SegWit łagodzi te obawy. Wcześniej dane świadków zajmowały około 65% przestrzeni bloku Bitcoin. Podejście SegWit polegające na odciążaniu danych świadków z głównego łańcucha bloków zapewnia więcej miejsca na transakcje, optymalizując zdolność przetwarzania sieci bez powiększania łańcucha bloków Bitcoin. Zasadniczo SegWit usprawnia blockchain, czyniąc go bardziej wydajnym.

Czy SegWit ma wady?

SegWit, czyli Segregated Witness, jest ściśle powiązany z ewolucją Bitcoina i stwarza różne perspektywy na temat jego skuteczności i celów.

W swej istocie projekt SegWit ma na celu optymalizację pojemności bloku poprzez selektywne przechowywanie określonych danych transakcyjnych poza głównym łańcuchem bloków, wykorzystując łańcuch główny jako punkt odniesienia. Podejście to zostało opracowane w celu złagodzenia problemów ze skalowalnością nieodłącznie związanych z oryginalnym projektem Bitcoin. Krytycy twierdzą, że odciążanie danych zagraża integralności łańcucha bloków, co sugeruje, że jest to obejście systemu z natury wadliwego.

Ten sceptycyzm wobec SegWit doprowadził część społeczności do rozbieżności, inicjując hard fork, który doprowadził do powstania Bitcoin Cash w 2017 roku. W istocie Bitcoin Cash odzwierciedla oryginalny model Bitcoina sprzed wdrożenia SegWit. Rozwiązanie problemów ze skalowalnością skupia się na zwiększeniu rozmiaru bloku, zapewniając, że wszystkie dane transakcyjne pozostaną w łańcuchu. To podejście wyraźnie kontrastuje z filozofią programistów Bitcoin Core, którzy postrzegają SegWit jako podstawę wielowarstwowego systemu blockchain.

Ewolucja Bitcoina i rozwój Bitcoin Cash ilustrują różnorodne perspektywy najlepszego skalowania i utrzymywania zdecentralizowanych sieci blockchain. Pojawiły się różne inne kryptowaluty i protokoły, z których każdy przynosi nowe rozwiązania i innowacje. Chociaż SegWit pozostaje znaczącym kamieniem milowym dla społeczności programistów Bitcoin, reprezentuje także szerszy, stale ewoluujący krajobraz technologii blockchain i jej różnorodne podejścia do rozwiązywania nieodłącznych wyzwań.

SegWit umożliwia korzystanie z sieci Lightning

Jednym z najbardziej przełomowych osiągnięć możliwych dzięki SegWit była integracja Lightning Network, rozwiązania drugiej warstwy zaprojektowanego w celu sprostania wyzwaniom związanym ze skalowalnością Bitcoina. Sieć Lightning zapewnia szybsze prędkości transakcji i obniżone opłaty, tworząc kanały płatności poza łańcuchem między stronami. To innowacyjne podejście pozwala na przetwarzanie wielu transakcji poza głównym łańcuchem bloków Bitcoin, przy czym w łańcuchu rejestrowane są tylko salda końcowe rachunków. Rezultatem jest bardziej wydajny i usprawniony system, zdolny do obsługi większej liczby transakcji w ułamku czasu.

Jednakże pełny potencjał Lightning Network nie mógłby zostać wykorzystany bez aktywacji SegWit. Dzieje się tak przede wszystkim dlatego, że fundamenty Lightning Network w dużym stopniu opierały się na niepotwierdzonych transakcjach bitcoinowych. W początkowym stanie sieci Bitcoin transakcje te były podatne na rodzaj ataku zwanego „plastycznością transakcji”. Zasadniczo osoby atakujące mogą zmienić unikalną identyfikację transakcji przed jej potwierdzeniem, tworząc rozbieżności i potencjalne scenariusze podwójnych wydatków.

Aktywując SegWit, społeczność Bitcoin rozwiązała ten problem z plastycznością transakcji. W ten sposób nie tylko wzmocnił obronę sieci, ale także utorował drogę do bezpiecznego wdrożenia Lightning Network. Bez ryzyka plastyczności transakcji sieć Lightning Network może działać płynnie, zapewniając użytkownikom możliwość przeprowadzania transakcji z większą szybkością, bezpieczeństwem i opłacalnością.

Zwiększenie rozmiaru bloku SegWit

SegWit, choć sklasyfikowany jako soft fork, przyniósł znaczące zmiany w jednej z podstawowych zasad konsensusu Bitcoina. Zmiana ta została wdrożona w sposób zachowujący kompatybilność wsteczną i miała na celu zwiększenie przepustowości transakcji w ramach każdego bloku.

Przed pojawieniem się SegWit każdy blok miał ograniczenie przechowywania do 1 MB danych, co przekładało się na około 1650 transakcji, gdy blok był zapełniony do maksymalnej pojemności. Jednak SegWit zapoczątkował koncepcję wagi bloku, która wyparła rozmiar bloku jako główne ograniczenie zawartości bloku. Obecnie w pełni załadowany blok obsługuje blisko 2700 transakcji.

Warto zauważyć to rozróżnienie: przed wprowadzeniem SegWit każdy blok był ograniczony rozmiarem 1 MB, co reprezentuje 1 milion bajtów danych transakcyjnych.

Natomiast w przypadku masy bloku stosuje się bardziej zróżnicowany system pomiaru, oparty na jednostkach masy. W tym systemie bajt danych transakcji innych niż Witness odpowiada 4 jednostkom wagi, podczas gdy bajt danych Witness odpowiada zaledwie 1 jednostce wagi. Przy ograniczeniu ustawionym na 4 miliony jednostek wagowych dla bloku, blok wypełniony wyłącznie transakcjami innymi niż SegWit nadal będzie podlegał poprzedniemu ograniczeniu do 1 miliona bajtów.

Ta innowacyjna metoda pomiaru zapewnia, że przyrost wielkości bloku pozostaje zgodny z zasadami miękkiego widelca. Dodatkowo przedstawia zarówno górnikom Bitcoin, jak i użytkownikom motywacje finansowe do przyjęcia SegWit. Użytkownicy dokonujący transakcji za pomocą SegWit mogą skorzystać z obniżonych opłat transakcyjnych, ponieważ dane Witness zajmują mniejszą część limitu wagi bloku. Jednocześnie górnicy przetwarzający transakcje SegWit mają możliwość zawarcia większej liczby transakcji w swoich blokach, co prowadzi do wzrostu przychodów z opłat.

Nowe typy skryptów SegWit

W świecie Bitcoina typy skryptów reprezentują różne metody transakcji Bitcoinami na blockchainie za pośrednictwem zastrzeżonego języka skryptowego o nazwie „Script”. Wraz z pojawieniem się SegWit wprowadzono dwa nowe typy skryptów, aby wykorzystać możliwości pola Witness: mianowicie Pay-to-Witness-Pubkey-Hash (P2WPKH) i Pay-to-Witness-Script-Hash (P2WSH).

Niezbędny spostrzeżenie: Te typy skryptów, w tym P2PKH i P2SH, które istniały przed erą SegWit, nazywane są „starszymi typami skryptów”.

Hash PubKey Pay-to-Witness (P2WPKH)

Przed założeniem SegWit najczęściej używanym skryptem był Pay-to-Pubkey-Hash (P2PKH), mechanizm, który skutecznie zakotwiczał bitcoiny w hashu klucza publicznego. P2WPKH, innowacja SegWit, odzwierciedla funkcjonalność P2PKH z subtelną różnicą. W scenariuszu wykorzystania wyjścia P2WPKH istotne komponenty — podpis i klucz publiczny — są bezpiecznie ukryte w Witness. Tymczasem ScriptSig pozostaje nietknięty. To strategiczne posunięcie ma na celu uniknięcie potencjalnej plastyczności identyfikatora transakcji.

Hash skryptu Pay-to-Witness (P2WSH)

Po P2PKH, Pay-to-Script-Hash (P2SH) zyskał popularność jako znaczący starszy typ skryptu. Umożliwia użytkownikom wysyłanie bitcoinów do unikalnego skrótu dowolnego skryptu, zwanego skryptem wykupu. Każdy, kto posiada ten skrypt wykupienia i spełnia określone kryteria, może odzyskać ten bitcoin.

Na początku swojej działalności P2SH obsługiwał głównie transakcje multisig, oferując zarówno większą wydajność przestrzenną, jak i dyskrecję w porównaniu do swoich odpowiedników, takich jak bare multisig.

Wprowadź skrót skryptu Pay-to-Witness firmy SegWit (P2WSH). Jego sposób działania jest ściśle powiązany z P2SH. Wyjścia P2WSH zostają odblokowane po przedstawieniu skryptu Witness (wersja skryptu wykupu firmy SegWit) wraz z wymaganymi podpisami i kluczami publicznymi. Odzwierciedlając podejście w P2WPKH, dane wejściowe P2WSH wymagają wolnego pola ScriptSig, relegując Script Witness — obejmujące istotne podpisy i klucze publiczne — do terytorium świadka.

Opakowany SegWit

Wprowadzenie nowatorskich typów skryptów do protokołu Bitcoina to nie lada wyczyn, biorąc pod uwagę mnóstwo portfeli, aplikacji i usług, które z nim współdziałają. Aby ułatwić przejście i ułatwić stopniowe wdrażanie SegWit, opracowano koncepcję pośrednika zwanego „opakowanym SegWit”.

W skrócie, opakowany SegWit działa jak tradycyjny wariant skryptu P2SH. Bezproblemowo integruje natywny skrypt SegWit, niezależnie od tego, czy jest to P2WPKH, czy P2WSH, i wykorzystuje go w roli skryptu wykupienia skryptu P2SH. W rezultacie powstałe opakowane skrypty SegWit są klasyfikowane jako P2SH-P2WPKH lub P2SH-P2WSH.

Takie rozwiązanie gwarantuje, że nawet te systemy, które nie są zaktualizowane dla SegWit, będą mogły przesyłać bitcoiny na adresy SegWit. Beneficjenci tych transakcji SegWit są uprawnieni do wykorzystania bitcoinów poprzez dane wejściowe SegWit, co może być potencjalną drogą do oszczędności w opłatach.

Pamiętaj, że Plisio oferuje również:

Twórz faktury Crypto za pomocą 2 kliknięć and Przyjmuj darowizny kryptowalutowe

12 integracje

6 biblioteki dla najpopularniejszych języków programowania

19 kryptowalut i 12 łańcuch bloków