Sieci blockchain są często opisywane jako trwałe i niezmienne, ale nie oznacza to, że oprogramowanie, na którym działają, pozostaje takie samo na zawsze. Jak każda złożona technologia, blockchainy muszą się rozwijać. Twórcy oprogramowania odkrywają błędy, pojawiają się nowe techniki bezpieczeństwa, użytkownicy oczekują lepszej wydajności, a społeczności proponują nowe funkcje.
Aktualizacja zdecentralizowanej sieci bardzo różni się jednak od aktualizacji zwykłej strony internetowej lub aplikacji. Zazwyczaj nie ma jednego administratora, który może po prostu zainstalować nową wersję dla wszystkich. Zamiast tego twórcy oprogramowania, operatorzy węzłów, walidatorzy, górnicy, użytkownicy, aplikacje, a czasem także posiadacze tokenów muszą koordynować zmiany we wspólnym protokole.
Zrozumienie, jak działają aktualizacje blockchainów, pomaga wyjaśnić takie pojęcia jak hard forki, soft forki, propozycje protokołu, testnety, progi aktywacji i governance sieci.
Dlaczego sieci blockchain potrzebują aktualizacji?
Protokół blockchain określa zasady, których uczestnicy przestrzegają podczas komunikacji z siecią. Zasady te określają, jak transakcje są weryfikowane, jak tworzone są bloki, jak działa konsensus, jak obliczane są opłaty i jakie informacje mogą być przechowywane on-chain.
Z czasem zasady te mogą wymagać zmian.
Sieci mogą wprowadzać aktualizacje, aby:
- Naprawiać błędy lub luki w zabezpieczeniach
- Zwiększać przepustowość transakcji
- Zmniejszać opłaty lub wymagania dotyczące przetwarzania
- Wprowadzać nowe typy transakcji
- Poprawiać prywatność
- Zmieniać mechanizmy konsensusu
- Dodawać funkcje smart kontraktów
- Poprawiać interoperacyjność
- Zwiększać wydajność działania węzłów
- Przygotowywać protokół na przyszłe funkcje
Niektóre aktualizacje są niewielkimi ulepszeniami technicznymi. Inne fundamentalnie zmieniają sposób działania blockchaina.
Ponieważ w tej samej sieci mogą uczestniczyć tysiące niezależnych komputerów, zmiana tych zasad wymaga koordynacji.
Zasady protokołu i oprogramowanie węzłów
Sieć blockchain składa się z wielu węzłów uruchamiających oprogramowanie implementujące protokół sieci.
Protokół to zestaw zasad. Oprogramowanie węzła to program, który przestrzega tych zasad.
Gdy twórcy oprogramowania publikują nową wersję oprogramowania węzła, operatorzy mogą zdecydować, czy ją zainstalować. W zależności od charakteru aktualizacji stare i nowe wersje mogą nadal normalnie się komunikować, albo zmiana może ostatecznie doprowadzić do powstania niekompatybilnych wersji sieci.
To rozróżnienie jest jednym z powodów, dla których aktualizacje blockchainów są zwykle określane jako soft forki lub hard forki.
Czym jest soft fork?
Soft fork zmienia protokół, pozostając pod pewnymi warunkami zgodny ze starszymi wersjami.
Nowe zasady zwykle zaostrzają wymagania dotyczące walidacji. Węzły korzystające ze starszego oprogramowania mogą nadal rozpoznawać bloki utworzone według nowych zasad, ponieważ bloki te spełniają również starsze zasady.
Wyobraź sobie, że pierwotny protokół dopuszcza bloki zawierające kilka różnych formatów transakcji. Aktualizacja może ograniczyć, które formaty są dozwolone. Starsze węzły mogą nadal uznawać nowe bloki za prawidłowe, ponieważ mieszczą się one w szerszych pierwotnych zasadach.
Soft forki mogą więc umożliwiać sieciom wprowadzanie zmian bez konieczności jednoczesnej aktualizacji przez wszystkich uczestników.
Koordynacja nadal jest jednak ważna. Walidatorzy, górnicy, twórcy oprogramowania, giełdy, portfele i inni dostawcy infrastruktury mogą potrzebować aktualizacji swoich systemów, aby w pełni obsługiwać lub wykorzystywać nowe funkcje.
Czym jest hard fork?
Hard fork wprowadza zasady protokołu, które nie są zgodne ze starszymi wersjami.
Węzły korzystające ze starych zasad mogą odrzucać bloki utworzone według nowych zasad, podczas gdy zaktualizowane węzły mogą je akceptować.
Jeśli prawie wszyscy przeprowadzą aktualizację, blockchain może nadal działać jako jedna sieć korzystająca z nowych zasad.
Jeśli znacząca grupa zdecyduje się nie przeprowadzać aktualizacji, mogą powstać dwie oddzielne sieci.
Obie sieci mogą początkowo dzielić tę samą historię blockchaina aż do momentu rozdzielenia. Od tego punktu tworzą różne bloki zgodnie z różnymi zasadami.
Dlatego niektóre istniejące dziś sieci blockchain mają wspólne historyczne początki.
Hard fork nie oznacza automatycznie trwałego podziału łańcucha. Wiele hard forków to starannie zaplanowane aktualizacje protokołu, w których większość ekosystemu zgadza się przejść na nową wersję.
Kto decyduje o przeprowadzeniu aktualizacji?
Nie istnieje jeden uniwersalny proces aktualizacji dla wszystkich sieci blockchain.
Różne projekty korzystają z różnych struktur governance.
W aktualizacji mogą uczestniczyć:
- Twórcy głównego protokołu
- Niezależne zespoły deweloperskie
- Walidatorzy lub górnicy
- Operatorzy węzłów
- Posiadacze tokenów
- Fundacje
- Firmy działające w ekosystemie
- Twórcy aplikacji
- Członkowie społeczności
Niektóre sieci korzystają z formalnych systemów governance on-chain, w których posiadacze tokenów lub przedstawiciele głosują bezpośrednio nad zmianami protokołu.
Inne opierają się głównie na koordynacji off-chain poprzez dyskusje twórców oprogramowania, propozycje techniczne, fora społeczności, spotkania i przyjmowanie nowych wersji oprogramowania.
W wielu sieciach twórcy oprogramowania mogą proponować i wdrażać zmiany, ale nie mogą zmusić niezależnych operatorów węzłów do ich zainstalowania.
Ostatecznie zasady protokołu zaczynają obowiązywać tylko wtedy, gdy przyjmie je wystarczająca liczba odpowiednich uczestników sieci.
Propozycje ulepszeń blockchaina
Wiele ekosystemów blockchain korzysta z formalnych systemów propozycji do dokumentowania potencjalnych zmian protokołu.
Propozycja zazwyczaj wyjaśnia:
- Co powinno się zmienić
- Dlaczego zmiana jest potrzebna
- Jak działałaby zmiana
- Szczegóły techniczne wdrożenia
- Kwestie dotyczące kompatybilności
- Konsekwencje dla bezpieczeństwa
Propozycja może następnie zostać publicznie przeanalizowana przez twórców oprogramowania i członków społeczności.
Bitcoin, Ethereum i wiele innych ekosystemów blockchain korzystają ze zorganizowanych procesów propozycji ulepszeń, choć terminologia i procedury różnią się między sieciami.
Propozycja nie musi oznaczać, że dana funkcja zostanie wdrożona. Niektóre propozycje są dyskutowane przez lata, podczas gdy inne zostają odrzucone lub zastąpione alternatywnymi rozwiązaniami.
Od pomysłu do aktualizacji
Duża aktualizacja blockchaina zwykle przechodzi przez kilka etapów.
1. Identyfikacja problemu lub możliwości
Ktoś identyfikuje coś, co można ulepszyć.
Na przykład twórcy oprogramowania mogą odkryć, że przetwarzanie transakcji może być bardziej wydajne albo że sieć potrzebuje dodatkowych funkcji.
2. Badania i dyskusja
Twórcy oprogramowania i badacze analizują możliwe rozwiązania.
Dyskusje techniczne mogą odbywać się w repozytoriach, na forach, podczas rozmów społeczności, konferencji, poprzez listy mailingowe lub specjalne kanały badawcze.
Różne rozwiązania mogą ze sobą konkurować, zanim społeczność zacznie skłaniać się ku preferowanemu podejściu.
3. Przygotowanie formalnej propozycji
Proponowana zmiana może zostać udokumentowana w ramach procesu propozycji ulepszeń danej sieci.
Daje to innym twórcom oprogramowania dokładną specyfikację techniczną do przeanalizowania.
4. Implementacja
Twórcy oprogramowania implementują proponowane zmiany w oprogramowaniu węzłów.
Ten etap może obejmować rozbudowany przegląd kodu i testy, ponieważ błędy w oprogramowaniu konsensusu mogą mieć poważne konsekwencje.
5. Wdrożenie w testnecie
Przed wprowadzeniem zmian w głównym blockchainie aktualizacje są często wdrażane w sieciach testowych.
Testnety pozwalają twórcom oprogramowania, walidatorom, zespołom aplikacji i dostawcom infrastruktury eksperymentować z nowymi zasadami bez ryzykowania prawdziwych aktywów w głównej sieci.
Problemy wykryte podczas testów można naprawić przed wdrożeniem.
6. Przygotowanie ekosystemu
Dostawcy portfeli, giełdy, explorery, usługi infrastrukturalne, twórcy smart kontraktów, walidatorzy i inni uczestnicy mogą potrzebować aktualizacji swoich systemów.
Duże aktualizacje są zazwyczaj ogłaszane z dużym wyprzedzeniem, aby uczestnicy ekosystemu mieli czas na przygotowanie.
7. Aktywacja
Aktualizacja zostaje ostatecznie aktywowana.
Aktywacja może nastąpić przy wcześniej określonej:
- Wysokości bloku
- Epoce
- Sygnaturze czasu
- Wartości progowej walidatorów
- Wartości progowej sygnalizacji górników
- Decyzji governance
Po spełnieniu warunku aktywacji uczestniczące węzły zaczynają egzekwować nowe zasady.
Dlaczego mechanizmy aktywacji są ważne
Blockchain nie zawsze może wprowadzić nowe zasady konsensusu natychmiast po opublikowaniu oprogramowania.
Różni operatorzy węzłów mogą instalować aktualizacje w różnym czasie.
Mechanizmy aktywacji zapewniają skoordynowany punkt przejścia.
Na przykład aktualizacja może określać, że nowe zasady stają się aktywne przy bloku 10,000,000.
Węzły, które już zainstalowały oprogramowanie, nadal przestrzegają dotychczasowego protokołu aż do osiągnięcia tego bloku. Gdy nadejdzie blok aktywacyjny, zaczynają jednocześnie egzekwować nowe zasady.
Inne sieci mogą wymagać, aby określony odsetek walidatorów lub górników zasygnalizował poparcie przed aktywacją.
Dokładny mechanizm zależy od modelu konsensusu i governance danego blockchaina.
Co się dzieje, jeśli węzły nie przeprowadzą aktualizacji?
Odpowiedź zależy od rodzaju aktualizacji.
W przypadku zwykłych ulepszeń oprogramowania, które nie zmieniają zasad konsensusu, starszy węzeł może nadal działać, choć może nie mieć nowszych funkcji lub ulepszeń bezpieczeństwa.
W przypadku zmian konsensusu konsekwencje mogą być poważniejsze.
Nieaktualny węzeł może:
- Odrzucać bloki, które zaktualizowana sieć uznaje za prawidłowe
- Akceptować bloki, które zaktualizowane węzły odrzucają
- Przestać podążać za głównym łańcuchem
- Utracić dostęp do niektórych funkcji sieci
- Stać się podatny na wcześniej naprawione błędy
Operatorzy węzłów muszą więc zwracać uwagę na ogłoszenia dotyczące aktualizacji, szczególnie gdy aktualizacja zmienia zasady konsensusu.
Walidatorzy i górnicy odgrywają ważną rolę
Uczestnicy konsensusu są szczególnie ważni podczas aktualizacji.
W systemach proof-of-work górnicy tworzą bloki.
W systemach proof-of-stake walidatorzy zazwyczaj proponują i poświadczają bloki.
Jeśli uczestnicy konsensusu korzystają z niekompatybilnego oprogramowania, może dojść do zakłóceń w działaniu sieci.
Z tego powodu duże aktualizacje często wymagają koordynacji z pulami wydobywczymi, operatorami walidatorów, dostawcami usług stakingowych, firmami infrastrukturalnymi i giełdami.
Sieć może technicznie mieć tysiące węzłów, ale uczestnicy konsensusu mogą odgrywać szczególnie ważną rolę przy określaniu, który łańcuch nadal tworzy prawidłowe bloki.
Twórcy oprogramowania nie zawsze mogą kontrolować sieć
Jedną z nietypowych cech zdecentralizowanego rozwoju blockchaina jest to, że tworzenie oprogramowania nie daje automatycznie twórcom kontroli nad siecią.
Twórcy oprogramowania mogą opublikować nową wersję klienta zawierającą inne zasady.
Niezależni uczestnicy nadal jednak sami decydują, czy będą jej używać.
Jeśli operatorzy węzłów, walidatorzy, górnicy, giełdy i użytkownicy odrzucą zmianę, proponowane zasady mogą nie zostać przyjęte.
Tworzy to ważne rozróżnienie między rozwijaniem oprogramowania protokołu a zarządzaniem aktywną zdecentralizowaną siecią.
Wpływ twórców oprogramowania nadal może być znaczący, szczególnie gdy wiedza techniczna koncentruje się wśród stosunkowo niewielkiej liczby współtwórców. Jednak wdrożenie, przyjęcie, bodźce ekonomiczne i wsparcie społeczności wspólnie wpływają na wynik dużych zmian protokołu.
Jaką rolę odgrywają giełdy i portfele?
Giełdy i dostawcy portfeli zazwyczaj nie ustalają bezpośrednio zasad protokołu, ale mogą odgrywać ważną rolę podczas dużych aktualizacji.
Giełdy mogą tymczasowo wstrzymać wpłaty i wypłaty w czasie aktualizacji, aby zmniejszyć ryzyko operacyjne.
Dostawcy portfeli mogą potrzebować zaktualizować formaty transakcji, obliczanie opłat, obsługę adresów lub inne interakcje z siecią.
Jeśli łańcuch się rozdzieli, giełdy mogą również potrzebować zdecydować, jak będą identyfikować, notować lub obsługiwać powstałe w ten sposób aktywa.
Twórcy aplikacji mierzą się z podobnymi wyzwaniami. Smart kontrakty, mosty, explorery, zdecentralizowane aplikacje i usługi infrastrukturalne mogą wymagać testów przed aktywacją aktualizacji.
Aktualizowanie platform smart kontraktów
Aktualizacje mogą być szczególnie złożone w sieciach smart kontraktów.
Tysiące aplikacji mogą polegać na określonym zachowaniu sieci.
Zmiana kosztów transakcji, zasad wykonywania, funkcji kryptograficznych lub zachowania maszyny wirtualnej może potencjalnie wpłynąć na istniejące aplikacje.
Twórcy oprogramowania muszą więc uważnie brać pod uwagę kompatybilność wsteczną.
Aktualizacje sieci mogą wprowadzać nowe funkcje, jednocześnie próbując zachować zachowanie oczekiwane przez istniejące smart kontrakty.
To jeden z powodów, dla których duże zmiany protokołu często przechodzą długie okresy testów i przeglądów.
Czy aktualizacje blockchaina mogą zmieniać politykę monetarną?
W niektórych sieciach tak.
Aktualizacje protokołu mogą potencjalnie zmieniać zasady dotyczące:
- Nagród za bloki
- Nagród dla walidatorów
- Emisji tokenów
- Dystrybucji opłat
- Spalania tokenów
- Harmonogramów podaży
Takie zmiany mogą być szczególnie kontrowersyjne, ponieważ bezpośrednio wpływają na bodźce ekonomiczne.
Różne zainteresowane strony mogą mieć bardzo odmienne interesy.
Walidatorzy mogą koncentrować się na nagrodach sieciowych, użytkownicy na kosztach transakcji, posiadacze tokenów na dynamice podaży, a twórcy oprogramowania mogą priorytetowo traktować długoterminową stabilność protokołu.
Dlatego zmiany ekonomiczne są często szeroko dyskutowane przed wdrożeniem.
Aktualizacje awaryjne
Nie każdą aktualizację można zaplanować z kilkumiesięcznym wyprzedzeniem.
Czasami twórcy oprogramowania odkrywają krytyczne luki w zabezpieczeniach, które wymagają szybkiego działania.
W takich sytuacjach zespoły deweloperskie mogą opublikować awaryjne aktualizacje oprogramowania i zachęcać operatorów węzłów do szybkiego przeprowadzenia aktualizacji.
Szczegóły poważnych luk w zabezpieczeniach mogą czasami być tymczasowo wstrzymywane do momentu, aż wystarczająca liczba uczestników sieci zainstaluje poprawkę. Zbyt wczesne opublikowanie szczegółów exploita mogłoby dać atakującym możliwość zaatakowania węzłów, które nie zostały jeszcze zaktualizowane.
Koordynacja w sytuacjach awaryjnych pokazuje ważną cechę systemów blockchain: decentralizacja nie eliminuje potrzeby komunikacji i współpracy.
Aktualizacje mogą być technicznie udane, ale społecznie kontrowersyjne
Governance blockchaina obejmuje zarówno elementy techniczne, jak i społeczne.
Twórcy oprogramowania mogą zgadzać się, że proponowana funkcja działa poprawnie, podczas gdy członkowie społeczności mogą nie zgadzać się co do tego, czy sieć powinna ją przyjąć.
Dyskusje mogą dotyczyć takich pytań jak:
- Czy dotychczasowe zachowanie powinno pozostać kompatybilne?
- Kto odnosi korzyści ze zmiany?
- Czy aktualizacja zmienia pierwotne cele sieci?
- Czy zwiększa wymagania sprzętowe?
- Czy wprowadza nowe założenia dotyczące zaufania?
- Czy wpływa na decentralizację?
- Czy zasady ekonomiczne powinny zostać zmienione?
Rzadko istnieje czysto techniczna odpowiedź na każde pytanie dotyczące governance.
Protokół może określać, w jaki sposób węzły osiągają konsensus, ale nie może całkowicie zautomatyzować sposobu, w jaki społeczności decydują, jakie zasady powinien zawierać protokół.
Podziały sieci są częścią zdecentralizowanego governance
Podziały łańcucha są czasem opisywane wyłącznie jako awarie techniczne, ale mogą też odzwierciedlać różnice zdań w zdecentralizowanym ekosystemie.
Jeśli dwie grupy zdecydowanie preferują różne zasady, obie mogą zdecydować się na utrzymywanie własnej wersji blockchaina.
Z technicznego punktu widzenia każdy łańcuch może działać niezależnie, jeśli ma wystarczającą liczbę użytkowników, twórców oprogramowania, infrastrukturę i uczestników konsensusu.
Uczestnicy rynku decydują następnie, czy jedna lub obie sieci pozostają istotne ekonomicznie.
Ta możliwość daje uczestnikom zdecentralizowanych sieci nietypową opcję: zamiast zmuszać wszystkich do zaakceptowania jednej decyzji, niekompatybilne grupy mogą czasami nadal działać według różnych zasad protokołu.
Testnety umożliwiają bezpieczniejsze aktualizacje
Sieci testowe należą do najważniejszych narzędzi w rozwoju blockchaina.
Testnet działa podobnie do głównej sieci, ale korzysta z tokenów bez istotnej wartości ekonomicznej.
Twórcy oprogramowania mogą używać testnetów do symulowania:
- Aktualizacji protokołu
- Zachowania walidatorów
- Interakcji smart kontraktów
- Przeciążenia sieci
- Nowych formatów transakcji
- Zmian konsensusu
Duże aktualizacje mogą również przechodzić przez kilka tymczasowych sieci testowych, zanim trafią do głównego blockchaina.
Nawet rozbudowane testy nie mogą zagwarantować wykrycia każdego problemu, ale znacząco zmniejszają ryzyko wprowadzenia nieoczekiwanego zachowania bezpośrednio do działającej sieci.
Różnorodność klientów może komplikować aktualizacje
Niektóre sieci blockchain mają wiele niezależnych klientów oprogramowania implementujących ten sam protokół.
Różnorodność klientów może zwiększać odporność, ponieważ cała sieć nie zależy od jednej bazy kodu.
Jednocześnie stwarza to dodatkowe wyzwania związane z koordynacją.
Każdy klient musi interpretować zasady protokołu w spójny sposób.
Jeśli jeden klient zaimplementuje aktualizację inaczej niż inny, węzły mogą nie zgadzać się co do tego, które bloki są prawidłowe.
Dlatego specyfikacje protokołu, frameworki testowe, testy interoperacyjności i skoordynowane wydania mogą być niezwykle ważne.
Aktualizacje pokazują, że blockchainy nie są statyczne
Dane zapisane w blockchainie mogą być zaprojektowane tak, aby były odporne na zmiany, ale sam protokół może się rozwijać.
To rozróżnienie jest ważne.
Niezmienność zazwyczaj odnosi się do trudności związanej z przepisywaniem wcześniej potwierdzonej historii blockchaina. Nie oznacza to, że społeczność nigdy nie może zmienić zasad dotyczących przyszłych bloków.
Blockchain, którego nie można byłoby aktualizować, miałby trudności z reagowaniem na nowe odkrycia dotyczące bezpieczeństwa, ulepszenia technologiczne lub zmieniające się wymagania użytkowników.
Skuteczne sieci muszą więc zachować równowagę między dwoma celami:
stabilnością i rozwojem.
Użytkownicy potrzebują pewności, że zasady protokołu nie będą zmieniać się w nieprzewidywalny sposób, a twórcy oprogramowania potrzebują wystarczającej elastyczności, aby ulepszać system, gdy jest to konieczne.
Dlaczego aktualizacje blockchainów są ważne
Aktualizacje blockchainów pokazują jeden z najciekawszych aspektów zdecentralizowanej technologii.
Sieć to nie tylko oprogramowanie działające na komputerach. To także system koordynacji obejmujący twórców oprogramowania, operatorów węzłów, walidatorów, górników, firmy, aplikacje i użytkowników.
Zmiana protokołu oznacza przekonanie wystarczającej liczby niezależnych uczestników do przestrzegania nowych zasad bez zakłócania działania wspólnej sieci.
Soft forki, hard forki, propozycje governance, testnety, mechanizmy aktywacji i aktualizacje klientów to narzędzia, które pomagają to umożliwić.
Zrozumienie tych procesów ułatwia śledzenie ważnych zmian w świecie blockchaina. Gdy projekt ogłasza aktualizację protokołu, ważne pytania dotyczą nie tylko tego, jaka nowa funkcja zostanie wprowadzona, ale także tego, w jaki sposób zmiana będzie testowana, aktywowana, przyjmowana i koordynowana w całym szerszym ekosystemie.
Sieci blockchain mogą być projektowane tak, aby zachowywać swoją historię, ale ich przyszłość jest nieustannie tworzona.
Pick your reaction
Dodaj swój komentarz