Czym s膮 Hard Forki i Soft Frorki
Strona G艂贸wna
Artyku艂y
Czym s膮 Hard Forki i Soft Frorki

Czym s膮 Hard Forki i Soft Frorki

艢rednio zaawansowany
Opublikowane Nov 29, 2018Zaktualizowane Feb 9, 2023
8m


Spis Tre艣ci


Wprowadzenie

Gdy pojawia si臋 powiadomienie o zaktualizowaniu aplikacji banku na smartfonie, prawdopodobnie nawet si臋 nie zastanawiasz i j膮 pobierasz. By膰 mo偶e Tw贸j telefon aktualizuje si臋 automatycznie, a Ty nawet tego nie zauwa偶asz. W ko艅cu jest to konieczny proces 鈥 je艣li nie zainstalujesz najnowszej wersji oprogramowania, ryzykujesz odmow膮 dost臋pu do danej us艂ugi.

W kryptowalutach typu open-source sytuacja przedstawia si臋 zupe艂nie inaczej. Nie musisz czyta膰 ka偶dego wiersza kodu, kt贸ry stanowi podstaw臋 Bitcoina, aby go u偶ywa膰, ale posiadanie takiego wyboru jest wa偶ne. Widzisz, nie ma tu 偶adnej hierarchii ani banku, kt贸ry mo偶e po prostu przesy艂a膰 aktualizacje i zmienia膰 rzeczy wed艂ug w艂asnego uznania. W rezultacie wdra偶anie nowych funkcji w sieciach blockchain mo偶e by膰 wyzwaniem.
W tym artykule zbadamy, w jaki spos贸b sieci kryptowalut mog膮 by膰 aktualizowane pomimo braku organu centralnego. W tym celu u偶ywaj膮 dw贸ch r贸偶nych mechanizm贸w: hard fork贸w i soft fork贸w.聽


Kto podejmuje decyzje w sieci blockchain?

Chc膮c dowiedzie膰 si臋, jak dzia艂aj膮 forki, wa偶ne jest, aby najpierw zrozumie膰 uczestnik贸w zaanga偶owanych w proces podejmowania decyzji (lub zarz膮dzania) sieci膮.
W Bitcoinie mo偶emy wyr贸偶ni膰 trzy podzbiory uczestnik贸w 鈥 deweloper贸w, g贸rnik贸w i u偶ytkownik贸w pe艂nych w臋z艂贸w. S膮 to strony, kt贸re faktycznie wsp贸艂tworz膮 sie膰. Lekkie w臋z艂y (tj. portfele w telefonach, laptopach itp.) s膮 szeroko u偶ywane, ale tak naprawd臋 nie s膮 鈥瀠czestnikami鈥 sieci.


Deweloperzy

Deweloperzy s膮 odpowiedzialni za tworzenie i aktualizowanie kodu. W przypadku typowej monety ka偶dy mo偶e wnie艣膰 sw贸j wk艂ad w ten proces. Kod jest dost臋pny publicznie, wi臋c mog膮 przesy艂a膰 zmiany do przegl膮du przez innych programist贸w.聽


G贸rnicy

G贸rnicy zabezpieczaj膮 sie膰. Uruchamiaj膮 kod kryptowaluty i przeznaczaj膮 zasoby na dodawanie nowych blok贸w do blockchaina. W sieci Bitcoin robi膮 to poprzez Proof of Work. S膮 nagradzani za swoje wysi艂ki w postaci nagrody blokowej.


U偶ytkownicy pe艂nych w臋z艂贸w

Pe艂ne w臋z艂y s膮 kr臋gos艂upem sieci kryptowalut. Sprawdzaj膮, wysy艂aj膮 i odbieraj膮 bloki oraz transakcje, a tak偶e przechowuj膮 kopi臋 ca艂ego blockchaina.


Te kategorie cz臋sto si臋 pokrywaj膮. Mo偶esz na przyk艂ad by膰 programist膮 i u偶ytkownikiem pe艂nego w臋z艂a lub g贸rnikiem i u偶ytkownikiem pe艂nego w臋z艂a. Mo偶esz by膰 ka偶dym z tych trzech lub 偶adnym. W rzeczywisto艣ci wielu z tych, kt贸rych uwa偶amy za u偶ytkownik贸w kryptowalut, nie pe艂ni 偶adnej z powy偶szych r贸l. Zamiast tego decyduj膮 si臋 na u偶ycie lekkich w臋z艂贸w lub scentralizowanych us艂ug.

Patrz膮c na powy偶sze opisy, mo偶esz przedstawi膰 mocne stanowiska deweloper贸w i g贸rnik贸w podejmuj膮cych decyzje dotycz膮ce sieci. Programi艣ci tworz膮 kod 鈥 bez nich nie mieliby艣cie 偶adnego oprogramowania do uruchomienia ani nikogo, kto naprawia艂by b艂臋dy lub dodawa艂by nowe funkcje. G贸rnicy zabezpieczaj膮 sie膰 鈥 bez zdrowej konkurencji g贸rniczej blockchain mo偶e zosta膰 przej臋ty b膮d藕 zatrzymany.
Gdyby jednak te dwie grupy pr贸bowa艂y zmusi膰 reszt臋 sieci do pod膮偶ania za ich wol膮, nie sko艅czy艂oby si臋 to zbyt dobrze. Dla wielu rzeczywista moc koncentruje si臋 w pe艂nych w臋z艂ach. W du偶ej mierze jest to funkcja opt-in, co oznacza, 偶e u偶ytkownicy mog膮 wybra膰, jakie oprogramowanie u偶ywaj膮.聽
Programi艣ci nie w艂amuj膮 si臋 do Twojego domu z pistoletem w r臋ce i nie zmuszaj膮 ci臋 do pobrania plik贸w binarnych Bitcoin Core. Je艣li g贸rnicy przyjm膮 postaw臋 鈥瀖oja droga lub 偶adna鈥, aby wymusi膰 na u偶ytkownikach niechcian膮 zmian臋, c贸偶, u偶ytkownicy po prostu wybior膮 alternatyw臋.聽
Te strony nie s膮 wszechmocnymi w艂adcami 鈥 s膮 dostawcami us艂ug. Je艣li ludzie zdecyduj膮 si臋 nie korzysta膰 z sieci, moneta straci na warto艣ci. Utrata warto艣ci wp艂ywa bezpo艣rednio na g贸rnik贸w (ich nagrody s膮 warte mniej, gdy s膮 denominowane w dolarach). Je艣li chodzi o programist贸w, u偶ytkownicy mog膮 ich po prostu zignorowa膰.
Widzisz, to nie jest tak, 偶e oprogramowanie jest zastrze偶one. Mo偶esz wprowadzi膰 dowolne zmiany, a je艣li inni uruchomi膮 zmodyfikowane przez Ciebie oprogramowanie, wszyscy mo偶ecie si臋 komunikowa膰. W takim przypadku聽forkujesz oprogramowanie i tworzysz now膮 sie膰.


Czym jest fork?

Fork oprogramowania nast臋puje w punkcie, w kt贸rym oprogramowanie jest kopiowane i modyfikowane. Oryginalny projekt trwa nadal, ale jest teraz oddzielony od nowego, kt贸ry zmierza w innym kierunku. Za艂贸偶my, 偶e zesp贸艂 Twojej ulubionej witryny z tre艣ci膮 o kryptowalutach mia艂 powa偶ny sp贸r co do dalszego post臋powania. Cz臋艣膰 zespo艂u mo偶e powiela膰 witryn臋 w innej domenie. Ale w przysz艂o艣ci b臋d膮 publikowa膰 inne rodzaje tre艣ci ni偶 orygina艂.

Projekty opieraj膮 si臋 na wsp贸lnej p艂aszczy藕nie i maj膮 wsp贸ln膮 histori臋. Podobnie jak pojedyncza droga, kt贸ra p贸藕niej si臋 rozdziela, teraz ich 艣cie偶ki trwale si臋 rozchodz膮.

Zauwa偶, 偶e tego rodzaju rzeczy zdarzaj膮 si臋 cz臋sto w projektach open-source i mia艂y miejsce przez d艂ugi czas przed pojawieniem si臋 Bitcoina lub Ethereum. Jednak rozr贸偶nienie mi臋dzy hard forkami i sort forkami jest prawie wy艂膮czne dla przestrzeni blockchain. Powiedzmy sobie o tym nieco wi臋cej.



Hard forki a soft forki

Pomimo podobnych nazw i tego samego celu, hard forki i soft forki si臋 od siebie r贸偶ni膮. Przyjrzyjmy si臋 im dok艂adniej.


Czym jest hard fork?

Hard forki to聽niekompatybilna wstecz聽aktualizacje oprogramowania. Zazwyczaj ma on miejsce, gdy w臋z艂y dodaj膮 nowe regu艂y w spos贸b, kt贸ry jest sprzeczny z regu艂ami starych w臋z艂贸w. Nowe w臋z艂y mog膮 komunikowa膰 si臋 tylko z tymi, kt贸re obs艂uguj膮 now膮 wersj臋. W rezultacie blockchain dzieli si臋, tworz膮c dwie oddzielne sieci: jedn膮 ze starymi zasadami, a drug膮 z nowymi.


Podczas aktualizacji w臋z艂y zmieniaj膮 kolor na niebieski. Starsze 偶贸艂te w臋z艂y je odrzucaj膮, podczas gdy niebieskie 艂膮cz膮 si臋 ze sob膮.


Wi臋c teraz istniej膮 dwie sieci dzia艂aj膮ce r贸wnolegle. Obie b臋d膮 nadal propagowa膰 bloki i transakcje, ale nie mog膮 ju偶 pracowa膰 na tym samym blockchainie. Wszystkie w臋z艂y mia艂y identyczny blockchain do momentu forka (i jest to ju偶 histori膮), lecz p贸藕niej charakteryzowa膰 si臋 b臋d膮 osobnymi transakcjami i blokami.



Poniewa偶 istnieje ta wsp贸lna historia, sko艅czysz z coinami w obu sieciach, je艣li trzymasz je przed forkiem. Za艂贸偶my, 偶e mia艂e艣 5 BTC, gdy nast膮pi艂 fork w bloku 600,000. Mo偶esz wyda膰 te 5 BTC na starym blockchainie w bloku 600,001, ale nie zosta艂y one wydane w bloku 600,001 nowego blockchaina. Zak艂adaj膮c, 偶e kryptografia si臋 nie zmieni艂a, Twoje klucze prywatne nadal zawieraj膮 pi臋膰 monet w rozwidlonej sieci.聽
Przyk艂adem hard forka by艂 fork z 2017 roku, w kt贸rym Bitcoin podzieli艂 si臋 na dwa oddzielne blockchainy - oryginalny, Bitcoin (BTC) i nowy, Bitcoin Cash (BCH). Fork nast膮pi艂 po wielu k艂贸tniach o najlepsze podej艣cie do skalowania. Zwolennicy Bitcoin Cash chcieli zwi臋kszy膰 rozmiar bloku, podczas gdy zwolennicy Bitcoin byli przeciwni zmianie.
Zwi臋kszenie rozmiaru bloku wymaga modyfikacji regu艂 funkcjonowania sieci. By艂o to przed soft forkiem SegWit (wi臋cej o tym wkr贸tce), wi臋c w臋z艂y akceptowa艂y tylko bloki mniejsze ni偶 1 MB. Je艣li utworzy艂e艣 blok o rozmiarze 2 MB, kt贸ry by艂 prawid艂owy, inne w臋z艂y nadal go odrzuca艂y.

Tylko w臋z艂y, kt贸re zmieni艂y oprogramowanie, aby zezwala膰 na bloki o rozmiarze przekraczaj膮cym 1 MB, mog艂y zaakceptowa膰 te bloki. Oczywi艣cie spowodowa艂oby to, 偶e by艂yby niekompatybilne z poprzedni膮 wersj膮, wi臋c tylko w臋z艂y z tymi samymi modyfikacjami protoko艂u mog艂y si臋 komunikowa膰.


Czym jest soft fork?

Soft fork jest aktualizacj膮聽kompatybiln膮 wstecz,聽co oznacza, 偶e zaktualizowane w臋z艂y mog膮 nadal komunikowa膰 si臋 z niezaktualizowanymi. To, co zazwyczaj widzisz w soft forku, to dodanie nowej regu艂y, kt贸ra nie koliduje ze starszymi regu艂ami.
Na przyk艂ad聽zmniejszenie rozmiaru bloku mo偶na zrealizowa膰 za pomoc膮 soft-forkingu. Ponownie skorzystajmy z Bitcoina, aby to zilustrowa膰: chocia偶 istnieje ograniczenie co do tego, jak du偶y mo偶e by膰 blok, nie ma ograniczenia co do tego, jak ma艂y mo偶e by膰. Je艣li chcesz akceptowa膰 tylko bloki poni偶ej okre艣lonego rozmiaru, wystarczy odrzuci膰 wi臋ksze.

Jednak nie powoduje to automatycznego od艂膮czenia Ci臋 od sieci. Nadal komunikujesz si臋 z w臋z艂ami, kt贸re nie stosuj膮 tych regu艂, ale odfiltrowujesz niekt贸re informacje, kt贸re Ci przekazuj膮.

Dobry przyk艂ad z 偶ycia wzi臋ty to wspomniany wcze艣niej soft fork, Segregated Witness (SegWit), kt贸ry nast膮pi艂 wkr贸tce po podziale Bitcoin/Bitcoin Cash. SegWit by艂 aktualizacj膮, kt贸ra zmieni艂a format blok贸w i transakcji, ale zosta艂a sprytnie wykonana. Stare w臋z艂y nadal mog艂y weryfikowa膰 bloki i transakcje (formatowanie nie 艂ama艂o regu艂), ale po prostu ich nie rozumia艂y. Niekt贸re pola mo偶na odczyta膰 tylko wtedy, gdy w臋z艂y prze艂膮czaj膮 si臋 na nowsze oprogramowanie, co umo偶liwia im analizowanie dodatkowych danych.



Nawet dwa lata po aktywacji SegWit nie wszystkie w臋z艂y zosta艂y zaktualizowane. Ma to swoje zalety, a sama aktualizacja nie jest nagl膮ca, poniewa偶 nie wprowadza prze艂omowej zmiany do sieci.


Hard forki kontra soft forki 鈥 co jest lepsze?

Zasadniczo oba powy偶sze typy fork贸w s艂u偶膮 r贸偶nym celom. Sporne hard forki mog膮 dzieli膰 spo艂eczno艣膰, ale planowane pozwalaj膮 na swobod臋 modyfikowania oprogramowania za zgod膮 wszystkich.

Soft forki to delikatniejsza opcja. Og贸lnie rzecz bior膮c, masz bardziej ograniczone mo偶liwo艣ci, poniewa偶 nowe zmiany nie mog膮 kolidowa膰 ze starymi zasadami. To powiedziawszy, je艣li Twoj膮 aktualizacj臋 mo偶na spreparowa膰 w taki spos贸b, aby by艂a kompatybilna, nie musisz si臋 martwi膰 o fragmentacj臋 sieci.


Przemy艣lenia ko艅cowe

Hard forki i soft forki maj膮 kluczowe znaczenie dla d艂ugoterminowego sukcesu sieci blockchain. Pozwalaj膮 nam wprowadza膰 zmiany i aktualizacje w zdecentralizowanych systemach, pomimo braku organu centralnego.

Forki umo偶liwiaj膮 blockchainom i kryptowalutom integracj臋 nowych funkcji w miar臋 ich opracowywania. Bez tych mechanizm贸w potrzebowaliby艣my scentralizowanego systemu z odg贸rn膮 kontrol膮. W przeciwnym razie utkn臋liby艣my przy tych samych zasadach przez ca艂y okres istnienia protoko艂u.