W technologii blockchain hard forki i soft forki to dwa różne sposoby uaktualniania i aktualizowania protokołów sieciowych. Różnią się one znacząco sposobem implementacji, a różnice te mogą bezpośrednio wpływać na strukturę i działanie sieci blockchain.
Hard Fork
Hard fork to zmiana reguły, w wyniku której nowa wersja sieci nie jest już kompatybilna ze starą wersją. W rezultacie blockchain dzieli się na dwie odrębne gałęzie, które działają równolegle i nie wpływają na siebie.
Miękki widelec
Miękki fork to zmiana reguły, w ramach której węzły, które przyjmują nowe reguły, mogą nadal wchodzić w interakcję z węzłami, które nie zostały zaktualizowane. W takim przypadku nowa wersja sieci pozostaje kompatybilna ze starą wersją.
Porównanie
Twardy widelec
Przykład: DAO 2016
Stara wersja nie jest kompatybilna z nową siecią
Działa w ramach różnych protokołów
Miękki widelec
Przykład: SegWit 2017
Nowa sieć pozostaje kompatybilna ze starą wersją
Działa w ramach tej samej ogólnej struktury protokołu
Analiza sytuacji
Hard Fork
Załóżmy na przykład, że połowa węzłów sieciowych chce zwiększyć rozmiar bloku z 2MB do 3MB. Jeśli blok 3MB zostanie wysłany do węzłów starej wersji, węzły te odrzucą je, ponieważ ich reguły nadal definiują 2MB jako maksymalny rozmiar bloku. W tym przypadku sieć dzieli się na dwa osobne protokoły, a każdy oddział może posługiwać się inną walutą. Wszystkie salda kont są kopiowane z oryginalnej sieci do nowej sieci. Na przykład, jeśli użytkownik trzymał 20 BTC przed forkiem, wówczas miałby 20 BTC w pierwotnym łańcuchu i 20 nowych BTC w nowym łańcuchu.
Miękki widelec
Na przykład, jeśli pierwotny rozmiar bloku wynosi 2MB, a połowa węzłów sieci wprowadzi bardziej rygorystyczną regułę ograniczającą rozmiar bloku do 1MB, bloki większe niż 1MB będą traktowane jako nieprawidłowe przez zmodernizowane węzły. Jednak węzły starej wersji mogą nadal odbierać i rozgłaszać bloki. W tej sytuacji nowa sieć może nadal obejmować wszystkie węzły, bez ograniczeń wynikających z różnych wersji reguł. Segregated Witness (SegWit) Bitcoina jest typowym przykładem miękkiego forka. To uaktualnienie w sprytny sposób wprowadziło nowy format bloków i transakcji. Węzły, które nie zostały zaktualizowane, mogą nadal otrzymywać informacje blokowe, ale nie biorą udziału w walidacji nowego formatu transakcji.
