Zespół Kopalnie Krypto - piątek 27 października 2023
Forki Blockchain - czym jest miękki i twardy Fork?
Współczesne projekty kryptowalutowe oparte są na technologii blockchain. Tego typu sieci rewolucjonizują podejście do kwestii bezpieczeństwa, a co ważniejsze – kładą nacisk na decentralizację. Łańcuchy bloków są podatne na powstawanie tak zwanych forków. W naszych wpisach wspominaliśmy o nich niejednokrotnie. Przekonajmy się, jak postrzega je zespół Chia Network.
Czym jest fork w przypadku technologii blockchain?
Zacznijmy od podstaw, a mianowicie od szybkiej definicji publicznego blockchainu. Można powiedzieć, że jest to księga rachunkowa, która wykorzystuje mechanizmy konsensusu na potrzeby zarządzania transakcjami. Każda kolejna transakcja powoduje, że łańcuch bloków rozrasta się. Sam blockchain natomiast skleja ze sobą wszystkie dane w sieci zgodnie z zasadami protokołu. A co, jeśli użytkownicy sieci zgodzą się na aktualizację tych zasad? Wówczas powstaje tak zwany fork konsensusu.
Mówiąc prościej, fork jest niczym innym jak aktualizacją oprogramowania. Wprowadza ona zmiany w blockchainie, zawężając lub poszerzając zakres panujących w sieci zasad. Bez względu na to wszystkie zaktualizowane węzły, czyli członkowie sieci, będą budować sieć w oparciu o wspólną ścieżkę rozwoju.
Jedną chwilę! A co z użytkownikami, którzy nie zdecydowali się na aktualizację? Być może nie spodobały im się zasady panujące w nowej wersji blockchainu? Tutaj dochodzimy do znaczenia nazwy „fork”. W dosłownym tłumaczeniu oznacza ona „rozwidlenie”. Jeśli jedna z dróg przeznaczona jest dla węzłów dokonujących aktualizacji, to druga ścieżka przeznaczona jest dla tych, którzy postanowili trzymać się starych zasad. Do szczegółów dotrzemy nieco później.
Czy forki wynikają wyłącznie z aktualizacji?
W tym momencie warto nadmienić, że forki nie muszą wynikać wyłącznie z aktualizacji zasad protokołu. O ile zazwyczaj powstają one z inicjatywy twórców danego blockchainu, o tyle większość z nich (w tym łańcuch bloków Chia) posiada otwarty kod źródłowy. Oznacza to, że każdy użytkownik posiadający wiedzę programistyczną może powielić ten kod i dokonać w nim pewnych zmian, tworząc swój zestaw zasad. Powstaje wówczas nic innego jak fork konsensusu.
Czy można zatem stworzyć fork innego forku? Owszem, o ile jego twórca udostępni kod źródłowy. W większości przypadków warto jednak korzystać z kodu pierwotnego rozwiązania. Mamy wówczas pewność, że bazujemy na aktualnym i najbogatszym w funkcje kodzie. Istnieją jednak sytuacje, w których dany projekt zostanie porzucony przez twórców, a pałeczkę przejmują inny użytkownicy. Wówczas lepiej skorzystać z kodu źródłowego takiego forku, ponieważ jego pierwowzór może być już bardzo przestarzały. Oczywiście warto wcześniej przeanalizować kod i upewnić się, że jest on w pełni bezpieczny.
Rodzaje forków
Porównywanie forku wyłącznie do aktualizacji oprogramowania byłoby sporym niedopowiedzeniem. Okazuje się, że zmian w łańcuchu bloków można dokonać na dwa podstawowe sposoby: za pomocą miękkiego forku (ang. soft fork) lub twardego forku (ang. hard fork). Ogólnie rzecz mówiąc: miękki fork zawęża zestaw zasad, natomiast twardy fork go rozbudowuje.
Miękki fork
Zacznijmy od miękkiego forku. Jest on kompatybilną wstecznie zmianą w protokole. Oznacza to, że węzły pracujące na nowym oprogramowaniu i te, które nie zdecydowały się na aktualizację, kroczą co prawda innymi ścieżkami, lecz wciąż mogą wchodzić ze sobą w interakcje, zachowując spójność sieci. Nawet jeśli aktualizacja nakłada bardziej restrykcyjny zestaw zasad, to „stare węzły” wciąż mogą przetwarzać nowe transakcje. Zaktualizowane węzły nie będą jednak w stanie przetwarzać transakcji opierających się na poprzednich wersjach protokołu.
Zademonstrujmy to na przykładzie. Powiedzmy, że w sieci panują zasady A, B, C. Jeśli społeczność zadeklaruje, że zasada C jest niepoprawna, ale zatrzyma zasady A i B, to nastąpi zawężenie zasad protokołu i powstanie miękkiego forku. W tej sytuacji użytkownicy nowej wersji działają w oparciu o zasady A i B, które funkcjonowały również przed aktualizacją. Dzięki temu mogą wchodzić w interakcję ze starymi węzłami, które wciąż „rozumieją” zasady A i B. Ot i cała zasada kompatybilności wstecznej.
Miękkie forki stosuje się zazwyczaj w przypadku drobnych usprawnień, takich jak wydajność transakcji lub poziom bezpieczeństwa. Wdrożenie miękkiego forku w większości przypadków wymaga aktualizacji oprogramowania przez użytkowników. Powinna ona zostać wykonana jak najszybciej przez jak największą ilość węzłów. W przeciwnym razie może na tym ucierpieć wydajność sieci.
Twardy fork
Twardy fork to bardziej drastyczna zmiana w protokole. Nie jest ona kompatybilna wstecznie, a to oznacza, że taki fork odcina się całkowicie od pierwotnego blockchainu. Węzły, które nie dokonały aktualizacji protokołu, stają się niekompatybilne z siecią i pozostają przy starym zestawie zasad. Użytkownicy dokonujący aktualizacji tworzą zupełnie nowy łańcuch bloków posiadający swoje standardy i cechy. W przeciwieństwie do miękkiego forku stare i nowe węzły kroczą zupełnie innymi ścieżkami i nie mają możliwości interakcji ze sobą.
Jak to działa w praktyce? Wróćmy do przykładu z zasadami A, B, C. Jeśli społeczność zadeklaruje dodanie zasady D, zachowując przy tym wszystkie poprzednie zasady, powstaje twardy fork, a zestaw zasad protokołu ulega rozszerzeniu. Zasady D nie było w starej wersji protokołu, zatem węzły korzystające wciąż z poprzedniej wersji zupełnie jej nie rozumieją, przez co nie mogą korzystać z nowej wersji sieci. W taki sposób działa aktualizacja, która nie jest wstecznie kompatybilna.
Twarde forki uznaje się za ostateczność. Dlaczego? Ponieważ wprowadzają spore zmiany w ekosystemie. To prawda, że zazwyczaj są to zmiany pożądane, ale oznaczają zupełne odcięcie tych użytkowników, którzy odmawiają aktualizacji. W przypadku miękkiego forku stare węzły wciąż mogą wspomagać nową wersję sieci. Twardy fork wprowadza separację, która może doprowadzić do fragmentacji ekosystemu.
Po co tworzy się twarde forki?
Częstotliwość przeprowadzania hard forków w różnych projektach blockchainowych może być znacznie zróżnicowana. Niektóre sieci przeprowadzają twarde forki regularnie, podczas gdy inne unikają ich jak ognia, wykonując je bardzo rzadko. Dlaczego w ogóle dochodzi do twardych forków? Technologia blockchain cały czas ewoluuje, zatem są one konieczne, aby wprowadzać istotne usprawnienia, które pozwalają na dostosowanie sieci do tychże zmian.
Twardy fork może dodawać funkcjonalności, niwelować luki bezpieczeństwa, modyfikować konsensus lub rozwiązywać spory wśród społeczności. Niemniej jednak tego rodzaju zmiany niosą pewne ryzyko, takie jak ataki typu "replay" czy naruszenia bezpieczeństwa, a także potencjalne podwojenie kosztów i utratę konsensusu. Mimo to trzeba mieć na uwadze, że nie każdy twardy fork jest ryzykowny. Przeprowadzenie tego typu aktualizacji w sposób przemyślany może stanowić istotny krok naprzód w rozwoju łańcucha bloków.
Jak do kwestii twardych forków podchodzi Chia Network?
Chia Network wyrobiło sobie nawyk wdrażania twardych forków wyłącznie wtedy, gdy jest to absolutnie potrzebne. Priorytetem twórców projektu od zawsze była stabilność sieci oraz jednogłośność społeczności w ramach podejmowania wspólnych decyzji. Twórcy tego innowacyjnego ekosystemu podchodzą z niezwykłą troską do „zdrowia” swojej sieci, wdrażając wszelakie zmiany w sposób ostrożny i przemyślany.
Twórcy Chia Network robią wszystko, aby ich autorski ekosystem pozostawał jednym z najbezpieczniejszych, trwałych i zgodnych blockchainów. Z tego właśnie powodu na horyzoncie pojawił się twardy fork. Będzie on oznaczał redukcję filtra plotów i wejdzie w życie w czerwcu 2024 roku. W momencie opracowania swojego autorskiego formatu działek Chia Network wiedziało, że przyszłe zmiany będą nieuniknione. O ile twardy fork jest czymś, od czego twórcy ekosystemu starają się stronić, o tyle zmiany te są konieczne, aby sieć mogła się dalej rozwijać. Chia Network deklaruje, że zostaną one wdrożone w sposób jak najbardziej przemyślany i jak najmniej uciążliwy dla użytkowników.
Podsumowanie
Fork blockchainu to dosyć istotna decyzja, która ma bezpośredni wpływ na sposób działania łańcucha bloków. Technologia blockchain jest z natury dynamiczna, a twarde i miękkie forki podkreślają jej zdolność do adaptacji w zależności od warunków.
Nieważne, czy mówimy o drobnych usprawnieniach wdrażanych przez miękkie forki, czy o kompletnej separacji sieci wywoływanej przez twarde forki – dowodzą one faktu, że technologia blockchain jest wytrzymała i ma moc kreowania nowej definicji zaufania w erze cyfrowej.