Co to jest fork? | Baza wiedzy na temat rozwidleń blockchain

743
Hard fork i soft fork to terminy często używane w naszym środowisku. Nie zawsze jednak są do końca dobrze rozumianie zwłaszcza przez początkujących adeptów kryptowalutowej sztuki. Zakładając, że każdy fork ma ściśle ustaloną, można powiedzieć schematyczną ścieżkę, wiele forków różni się od siebie. De facto każdy fork jest inny i na swój sposób wyjątkowy. Każdy daje również inny wynik końcowy. W prawidłowym rozumieniu każdego przypadku z osobna pomoże na pewno znajomość kontekstu i szczegółów z nim związanych. Dzięki temu możemy szybciej wyłapać najbardziej istotne kwestie i niekiedy w porę wykorzystać te nagłe zmiany na swoją korzyść.

Co to jest fork?

Bitcoin to zdecentralizowana sieć płatności oraz kryptowaluta oparta o siec peer-to-peer. Sieć działa w oparciu o specjalny protokół programistyczny, który jest zestawem kodów obliczeniowych. Są one wykorzystywane jako określone z góry reguły dla całej sieci. Aby podjąć się próby zrozumienia, czym jest fork należy przypomnieć, że sieć Bitcoin posiada otwarte oprogramowanie. To dzięki temu dostęp do zawartych w niej kodów jest bezpłatny i szeroko dostępny dla każdego, kto zechce go przeglądać i z niego skorzystać.

U podstaw Bitcoina, jak wiemy, leży blockchain. Jest to rozproszona księga, która tworzy stale powiększający się, pojedynczy łańcuch bloków (stąd nazwa). Z uwagi na to, że Bitcoin jest siecią zdecentralizowaną, wszyscy jego uczestnicy zobligowani są do wspólnego ustalania zasad w celu zatwierdzania transakcji, aby osiągnąć konsensus. Na tej podstawie mamy do czynienia z jednym, wspólnym łańcuchem zweryfikowanych danych, na które wszyscy się zgadzają i które są poprawne. Jeżeli ten łańcuch ulega rozwidleniu lub podziałowi, mamy do czynienia z forkiem. Takie rozwidlenie może być przypadkowe lub zamierzone (o tym za chwilę).

Ogólne podziały i zmiany w regułach protokołu

Fork na blockchain jest zasadniczo zbiorowo uzgodniony przy każdej aktualizacji oprogramowania sieci. Blockchain zależy od zdecentralizowanych grup komputerów, które działają wspólnie dla jednego, wspólnego pożytku. Każdy pojedynczy komputer w sieci, powszechnie nazywany węzłem, uruchamia oprogramowanie potrzebne do weryfikacji księgi publicznej Blockchain i utrzymania sieci w stanie bezpieczeństwa. Im więcej pełnych węzłów jednocześnie uruchamia oprogramowanie, tym bezpieczniejsza jest sieć.

forki

Zródło: tutaj

Co najważniejsze, każdy pełny węzeł musi uruchomić to samo oprogramowanie, aby uzyskać dostęp do tej samej wspólnej księgi. Innymi słowy, każdy pełny węzeł, na którym działa podstawowe oprogramowanie Bitcoin (tj. Bitcoin Core) ma dostęp do księgi bloków Bitcoin i dlatego może weryfikować transakcje Bitcoin i uzyskiwać dostęp do jej historii transakcji. Istnieją dwie pobudki do forków:

Ogólne podziały w ramach konsensusu

Ponieważ Bitcoin jest rozproszoną i zdecentralizowaną siecią, problem pojawia się, gdy górnicy odkrywają blok w tym samym czasie, co skutkuje dwoma rozdzielonymi łańcuchami. Jest to jednak tymczasowy fork, ponieważ łańcuch, który znajduje następny blok, staje się najpierw najdłuższym łańcuchem i automatycznie staje się prawdą. Dlatego krótszy łańcuch zostanie porzucony przez sieć.

Zmiany w macierzystych regułach protokołu

Ten rodzaj podziału sieci jest świadomą zmianą kodów źródłowych dokonaną przez deweloperów i jest to zmiana o charakterze trwałym. Dlaczego jednak może zaistnieć potrzeba wprowadzenia takich zmian? Oto możliwe przyczyny:

  • Dodawanie nowych funkcji w celu zwiększenia funkcjonalności sieci
  • Zmiana jakiejś podstawowej reguły (np. zwiększenie rozmiaru bloku)

Ponieważ forki występujące w pierwszej kategorii (ogólne podziały w ramach konsensusu) są tymczasowe ich zakres (gdy mówimy o forku) powinien znajdować się w drugiej kategorii, czyli „zmiany w macierzystych regułach protokołu”. Forki w tej kategorii są trwałe i wymagają od uczestników sieci uaktualnienia oprogramowania Bitcoin, aby zintegrować nowe zmiany z ich obecnym oprogramowaniem.

Rodzaje forków

Przy aktualizacji oprogramowania ważna jest jego wersja. Jeśli programiści Bitcoin Core (lub ktokolwiek inny, kto jest w stanie przekonać wystarczającą liczbę pełnych węzłów do zmiany oprogramowania) zaktualizują kod Bitcoin w celu zainstalowania nowych funkcji lub zmiany ważnych parametrów, zaktualizowane oprogramowanie może nie być kompatybilne ze starszą wersją oprogramowania. W zależności od stopnia kompatybilności możemy wyróżnić:

Hard Fork

Twarde forki odnoszą się do aktualizacji oprogramowania, która nie jest kompatybilna z jego starszymi wersjami. Jest to z reguły zmiana polegająca na tym, że zmienione zostają reguły konsensusu w sposób, który uniemożliwia zachowanie zgodności z poprzednimi wersjami tego samego oprogramowania. Przykładem takiego rodzaju forka może być Casper w sieci Ethereum. Zmienia on zasady protokołu konsensusu z Proof of Work na Proof of Stake. To jest właśnie hard fork. Pełne węzły, które pozostają niezdecydowane w kontekście aktualizacji, nie są automatycznie kompatybilne ze zaktualizowanymi węzłami Casper.

Na szczęście hard forki Ethereum nie są zazwyczaj kontrowersyjne, a większość sieci zgadza się na aktualizację. W przeciwnym razie pełny węzeł, na którym działa zaktualizowane oprogramowanie Casper, nie miałby dostępu do tej samej księgi, co pełny węzeł z uruchomioną starszą wersją. Ponieważ każdy węzeł miałby inne reguły konsensusu, zasadniczo uruchamiałby oddzielny łańcuch bloków.

Muszę raz jeszcze podkreślić, że wszyscy uczestnicy muszą dokonać aktualizacji do nowego oprogramowania, aby móc kontynuować uczestnictwo w sieci i dalej weryfikować nowe transakcje. Ci z członków sieci, którzy nie dokonali aktualizacji, zostaną oddzieleni od sieci i nie będą mogli zweryfikować nowych transakcji. Ta separacja powoduje trwałą dywergencję łańcucha bloków. Dopóki istnieje wsparcie w łańcuchu mniejszości – w postaci górników uczestniczących w łańcuchu – oba łańcuchy będą jednocześnie istnieć.

hard fork

Zródło: tutaj

Hard Forki planowane

Kiedy jakaś zmiana protokołu był uwzględniona w planie projektu kryptowalutowego, możemy mówić o planowanym hard forku. W takiej sytuacji nie ma żadnych wątpliwości, co do zasadności przeprowadzenia podziału sieci. Mamy do czynienia bowiem z aktualizacją, która ma na celu ulepszenie możliwości i funkcjonalności blockchain. Cała społeczność z programistami na czele przechodzi  do nowego łańcucha, ponieważ aktualizacja wymaga zmiany podstawowej bazy kodu. Spowoduje to śmierć starego łańcucha, ponieważ nikomu nie opłaca się wspierać go z powodu braku zachęt. Dlatego nie pociąga to za sobą potrzeby stworzenia nowej monety.

Przykłady

Bizancjum Ethereum: 28 lutego 2019 roku druga najbardziej popularna kryptowaluta Ethereum pomyślnie przeszła aktualizację. Właściwie to dokonano dwóch aktualizacji o nazwach Konstantynopol i St Petersburg. Głównym celem tych hard forków była poprawa skalowalności sieci, jak również przełożenie w czasie aktualizacji kodu z powodu wykrytych błędów. Najbardziej istotną zmianą z punkty widzenia wydobycia było zmniejszenie nagrody w bloku z 3 ETH na 2 ETH, co wiąże się jednocześnie ze spadkiem inflacji. Więcej na temat hard forka Ethereum przeczytacie tutaj.

Monero: Również całkiem niedawno, bo 9 marca 2019 miała miejsce długo oczekiwana aktualizacja protokołu Monero. Także w tym przypadku wdrożono wiele istotnych zmian. Wśród nich należy wymienić poprawki w algorytmie Proof of Work, ograniczenie działalności i wpływu urządzeń ASIC na sieć i zredukowanie ryzyka ataków określanych mianem Big Bang. Więcej informacji na ten temat znajdziecie tutaj.

Hard Forki kontrowersyjne

Kontrowersyjny hard fork jest zwykle wynikiem nieporozumień i niezgody, do której dochodzi w danej społeczności. W wyniku tych nieporozumień dochodzi do sytuacji, że część węzłów tworzy nowy łańcuch, który wprowadza istotne zmiany w  kodzie, z możliwością tworzenia oddzielnej kryptowaluty włącznieJak pokazuje krótka, aczkolwiek intensywna historia kryptowalut, większość znanych hard forków należała właśnie do tej kategorii.

Kontrowersyjny hard fork pojawia się, gdy znaczna część pełnych węzłów nie zgadza się z wersją oprogramowania do uruchomienia. Na przykład włamanie Ethereum DAO (w którym skradziono ETH o wartości 55 mln USD) wywołało gorącą debatę w społeczności. Wiele pełnych węzłów chciało odwrócić skutki kradzieży i zwrócić fundusze na konta ich właścicieli. Jednak wielu innych twierdziło, że odwrócenie hacku zasadniczo podważyłoby legalność blockchaina. Obie strony nie mogły dojść do porozumienia. Społeczność, która była przeciwna odwróceniu hacka, ostatecznie się rozdzieliła i utworzyła nowy blockchain, Ethereum Classic.

Co ważne, właściciele oryginalnej kryptowaluty często otrzymują proporcjonalne kwoty nowej kryptowaluty stworzonej w spornym twardym widelcu. Po widelcu Ethereum Classic wszyscy właściciele ETH otrzymali ETC proporcjonalnie do ilości posiadanego ETH.

Przykłady

Bitcoin Cash: to przypadek hard fork zaaranżowany przez część społeczności, która chciała, aby Bitcoin skalował się lepiej poprzez zwiększenie jego wielkości bloku z obecnych 1 MB do 8 MB. Miało to umożliwić przetwarzanie większej liczby transakcji, a tym samym obniżyć opłaty, które płacą użytkownicy i zminimalizować wąskie gardło sieci Bitcoin wraz ze wzrostem użytkowania. Twardy widelec zaowocował stworzeniem nowej waluty o nazwie Bitcoin Cash. Dowiedz się więcej.

Ethereum Classic: Ethereum miał hard fork, aby odwrócić skutki włamania, które miało miejsce w jednej z ich aplikacji (zwanej Decentralized Autonomous Organization lub po prostu DAO). Mniejsza część  społeczności była jednak przeciwna zmianie bloku blockchain za wszelką cenę, aby zachować jego charakter niezmienności. Ponieważ główni programiści Ethereum i większość jego społeczności poszła naprzód z hard forkiem, mniejszość, która pozostała i nie aktualizowała swojego oprogramowania, kontynuowała wydobywanie tego, co jest obecnie znane jako Ethereum Classic (ETC). Ważne jest, aby pamiętać, że ponieważ większość przeszła do nowego łańcucha, nadal zachowali oryginalny symbol ETH, podczas gdy mniejszość wspierająca stary łańcuch otrzymała termin Ethereum Classic lub ETC. Więcej informacji znajdziesz tutaj.

Soft fork

W odróżnieniu od hard forków Istnieją też takie rozwidlenia sieci, które są kompatybilne ze starszymi wersjami oprogramowania. „Miękkie widelce” (soft fork) to aktualizacje oprogramowania, które nadal działają ze starszymi wersjami.

Przykładem może być chociażby słynny SegWit na Bitcoinie. Generalnie rzecz biorąc to bogaty zestaw ulepszeń, który miał na celu między innymi zwiększenie maksymalnej przepustowości Bitcoina. Dodatkowo rozwiązano problem z modyfikacją podpisanej transakcji (“transaction malleability”), wprowadzono liniowe skalowanie operacji hashowania podpisów (sighash), ustalono jednolity limit wielkości bloku i kilka innych, o których przeczytasz tutaj.

Po aktywacji SegWit została utworzona nowa klasa adresów (Bech32). Dodanie nie miało jednak wpływu na osoby używające starszych adresów P2SH. Pełny węzeł działający w wersji 0.1 oprogramowania Bitcoin Core może wysłać transakcję inną niż SegWit do węzła, na którym działa zaktualizowane oprogramowanie SegWit, a transakcja nadal przechodzi.

fork

Źródło: tutaj

Słowem podsumowania

Ogólnie rzecz biorąc forki są nieodłącznym elementem kryptowalutowego krajobrazu. Ważne jest w tym aspekcie poszanowanie prawa społeczności do rozwijania i zmian w zakresie interesujących ją projektów. To wymóg obligatoryjny, jeżeli mamy pozostać w zgodzie z zasadami decentralizacji i open-source. Nie wolno nam zapominać, że są to wartości przekazane pierwotnie przez Satoshiego Nakamoto.

Kluczem do prawidłowego zrozumienia i interpretacji idei forków jest przyjęcie na siebie odpowiedzialności w zakresie kontroli nad ekosystemem, którego jesteśmy częścią, a to jest niepodważalnie idea twórcy Bitcoina.

Pomimo historycznie wielu nieporozumień, sporów, pogrzebanych nadziei i spełnionych marzeń forki są potrzebne i w większości przypadków mocno uzasadnione. Bagatela, w niektórych przypadkach ulepszają nawet oryginalne oprogramowanie. To element rozwoju, którego nie sposób uniknąć.

Niewątpliwą zaletą podziałów sieci jest zapewnienie kryptospołeczności prawa głosu. Zawsze pozostaną zwolennicy dotychczasowego łańcucha oraz Ci, którzy oczekują konkretnych zmian. Tak naprawdę jedni i drudzy będą mieli rację. To jest własnie piękne.

Komentarze