42 / 736FORK↑

Hard Fork

Zmiana zasad, którą stare oprogramowanie może odrzucić

Hard Fork dopuszcza coś, czego stare zasady Bitcoina zabraniały. Nowy węzeł może więc przyjąć blok odrzucony przez stary. Jeśli obie grupy idą własną drogą, rozchodzą się też ich historie płatności; nie tworzy to automatycznie dwóch trwałych walut.

Hard Fork zmienia zasady poprawności bloków lub transakcji bez zachowania zgodności wstecznej ze starszymi węzłami. Aby śledzić nowy, niekompatybilny łańcuch, węzeł musi przyjąć nowe zasady. Samo ogłoszenie zmiany ani większa moc wydobycia go do tego nie zmuszą.

Anna i Paweł uruchamiają Full Node, czyli komputer samodzielnie sprawdzający zasady Bitcoina. Anna instaluje program pozwalający na większe bloki, Paweł zachowuje pierwotny limit. Dociera blok spełniający nowe warunki, ale przekraczający stary limit. Anna go przyjmuje, Paweł odrzuca. Nie zawiodło połączenie: ich programy nie zgadzają się, co może należeć do wspólnej historii. To praktyczne znaczenie Hard Fork. Nazwanie go „aktualizacją” nie przekona komputera Pawła do zignorowania własnej zasady. Dwie gałęzie mogą trwać, jeśli ktoś tworzy bloki dla każdej i ludzie z nich korzystają. Jeśli uczestnicy przejdą na jeden zestaw zasad, dwie aktywne sieci nie muszą pozostać. [1]

Stary węzeł odrzuca niekompatybilny blok oraz gałąź budowaną na nim. Nie oznacza to jednak, że zatrzyma się na zawsze. Jeżeli górnicy kontynuują inną gałąź według pierwotnych zasad, może dalej przyjmować jej bloki. Bez takiej kontynuacji pozostanie przy ostatnim bloku, który uważa za poprawny. Liczą się zasady programu, nie liczba zwolenników zmiany. Aby śledzić niekompatybilną gałąź, operator musi świadomie zmienić te zasady. [1]

Bitcoin Cash oddzielił się od Bitcoina na wysokości bloku 478 559 dnia 1 sierpnia 2017 roku. Przyjął reguły dopuszczające większe bloki niż te, które akceptowały wówczas węzły Bitcoina, i stworzył własny, dalej działający łańcuch. Węzły Bitcoina odrzuciły bloki poprawne wyłącznie w BCH, a węzły BCH podążały za własną poprawną historią. Jest to przykład Hard Fork, który nie zastąpił Bitcoina przez aktualizację w dotychczasowej sieci, lecz stworzył oddzielną sieć. [3] [4]

Pomyśl o zapisie otrzymanej kwoty, której jeszcze nie wydano: Bitcoin nazywa takie niewydane wyjście transakcji UTXO. Gałęzie o wspólnej przeszłości dziedziczą ten zapis, a następnie prowadzą go niezależnie. Jeśli kontrolujesz potrzebne klucze i obie sieci nadal uznają wyjście, zwykle możesz wydać odpowiadające mu monety w obu. To nie podwaja ich wartości: są różnymi aktywami z własnym popytem. Przy środkach na giełdzie otrzymanie monet drugiej sieci zależy też od zasad ich przyznawania przez giełdę. [4] [6]

Mając monety w obu gałęziach, możesz chcieć zapłacić tylko w jednej. Bez ochrony ktoś może skopiować podpisaną transakcję i rozgłosić ją także w drugiej sieci, gdzie również może być poprawna. To ryzyko replay. Sprawdź ochronę konkretnej sieci i obsługę w portfelu. Na przykład zmiana sighash, czyli zasad określających dane obejmowane podpisem, może powiązać transakcję z konkretnym łańcuchem. Inny wygląd adresów pomaga odróżnić sieci, ale sam nie zapewnia kryptograficznej ochrony przed replay. [3]

Aktywacja to wyznaczony moment rozpoczęcia stosowania nowych zasad. Wysokość oznacza pozycję bloku w łańcuchu. Ustalona data, wysokość bloku lub sygnalizacja górników mogą koordynować uczestników, którzy przyjęli aktualizację, ale nie mogą zmienić oprogramowania węzła, który jej nie przyjął. Jeśli przy każdym z dwóch zestawów reguł pozostaną uczestnicy o istotnym znaczeniu gospodarczym, oba łańcuchy mogą być kontynuowane. Plan aktywacji Hard Fork jest zatem planem migracji obarczonym ryzykiem podziału. [1]

Zarządzanie oznacza tu sposób podejmowania decyzji o zmianach. Ticker to symbol handlowy aktywa, na przykład BTC lub BCH. Deweloperzy mogą opublikować kod, górnicy przenieść hash rate, firmy wybrać symbol giełdowy i zasady wpłat, a użytkownicy wybrać oprogramowanie. Żadne z tych działań samo w sobie nie zmienia zasad, według których inne węzły sprawdzają bloki. Trwały podział może się utrzymywać, jeśli wystarczająco wielu niezależnych uczestników dobrowolnie utrzymuje i ceni oba zestawy reguł; nie każda niekompatybilna zmiana musi stworzyć dwie stale działające sieci. Określenie jednej gałęzi jako „aktualizacji” jest kwestią społeczną, a nie regułą konsensusu. [1]

Sieć może się podzielić, nawet jeśli nikt nie zamierza tworzyć nowej waluty. W marcu 2013 roku niektóre starsze węzły nie mogły przetworzyć bloku z wyjątkowo dużą liczbą wejść transakcji. Osiągały limit blokad bazy danych, które zapobiegają jednoczesnemu zmienianiu tych samych danych przez różne operacje. Nowsza wersja 0.8 korzystała z innej bazy i przyjęła blok. Pule wydobywcze BTC Guild i Slush wróciły do wersji 0.7 i zaczęły wydobywać bloki na gałęzi akceptowanej również przez starsze węzły. Gdy zgromadziła ona więcej pracy, dołączyły do niej także nowsze węzły. Było to usunięcie niezamierzonej rozbieżności oprogramowania, a nie próba trwałego utrzymania odrębnej sieci, jak w przypadku Bitcoin Cash. [2]

Soft Fork zaostrza dotychczasowe zasady. Blok spełniający nowe ograniczenia jest więc zgodny również ze starymi regułami. Stary węzeł może go przyjąć, choć sam nie sprawdza dodatkowych ograniczeń. Hard Fork nie zapewnia takiej zgodności: blok przyjęty przez nowe oprogramowanie może naruszać stare zasady. Aby go zaakceptować, operator starego węzła musi zmienić reguły swojego oprogramowania. Soft Fork także nie gwarantuje, że sieć pozostanie spójna: jeśli górnicy utworzą blok naruszający nowe ograniczenie, stare i nowe węzły mogą ocenić go inaczej. [1]

Oznaczmy przez V(stare) zbiór wszystkich bloków przyjmowanych według pierwotnych reguł. Hard Fork występuje wtedy, gdy nowe oprogramowanie przyjmuje co najmniej jeden blok spoza tego zbioru, a więc V(nowe) nie jest podzbiorem V(stare). Często oznacza to rozszerzenie zbioru poprawnych bloków, ale decydująca jest kompatybilność: jeśli blok poprawny dla nowego węzła może być niepoprawny dla starego, stary walidator nie może podążać za nowym łańcuchem bez zmiany reguł. [1]

Chainwork oznacza łączną pracę wykazaną wydobyciem bloków całej gałęzi. Hashrate natomiast określa szybkość obliczeń wydobywczych. Węzeł wybiera gałąź o największej skumulowanej pracy tylko spośród łańcuchów zgodnych z jego zasadami. Jeśli blok je narusza, dodatkowa praca nie sprawi, że stanie się dopuszczalny. Paweł z początkowego przykładu nie przyjmie więc zbyt dużego bloku tylko dlatego, że większość górników buduje na nim kolejne bloki. Proof of Work może rozstrzygać między poprawnymi gałęziami, ale nie wybiera zasad za operatora węzła. [1]

Najpierw sprawdź sieć, obsługiwany portfel i ochronę przed replay. Znana nazwa monety lub podobny adres nie wystarczą. Nie podawaj Seed Phrase, słów odzyskiwania portfela, nieznanej usłudze obiecującej odebranie monet z forka. Na własnym węźle możesz też sprawdzić wersję programu, połączone węzły, ostatni przyjęty blok i odcisk bloku w miejscu podziału. Ten odcisk nazywa się hashem. Porównaj dane z dokumentacją sieci; eksplorator internetowy nie zastępuje samodzielnej kontroli zasad. [5] [6]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Soft Fork, Reguły konsensusu, Full Node, Reorg, Wojna o rozmiar bloków, UTXO. Do tego hasła prowadzą również odsyłacze z Soft Fork, BIP (Bitcoin Improvement Proposal), Reorg, Wojna o rozmiar bloków.

DOC · 001Bitcoin Developer Guide — Consensus rule changesDokumentacja DOC · 002BIP 50 — March 2013 chain fork post-mortemSpecyfikacja DOC · 003Bitcoin Cash upgrade specification — 2017 hard forkSpecyfikacja DOC · 004BCHN Technical Bulletin — shared history and 2017 splitŹródło pierwotne DOC · 005Bitcoin Core v29.0: getblockchaininfoDokumentacja DOC · 006Bitcoin.org — Securing your walletDokumentacja
Zaktualizowano: Najpierw źródła · To nie jest porada inwestycyjna