Blockchain to w dużym uproszczeniu zapis kryptograficzny informacji, w którym kolejna dana posiada informacje o poprzedniej. Taki układ powoduje, że ingerencja w dane historyczne np. zmiana zapisów wydaje się być niemożliwa. Ze względu na to, że technologia jest oparta na peer-to-peer (nie posiada centralnego serwera) jest w dużej mierze odporna na potencjalne cyberataki[1].
Mimo potencjalnej odporności technologii blockchain na ingerencje z zewnątrz, istnieje możliwość zaistnienia „zamieszania” w systemie wywoływanego przez tzw. fork[2]. Fork (z angielskiego rozłam) jest to sytuacja, gdy ciąg danych blockchain rozchodzi się na dwie równoległe ścieżki. Rozwidlenie takie trwa do czasu gdy jedna ze ścieżek jest przejmowana przez użytkowników, a druga zostaje porzucana[3]. Taka sytuacja rozwidlenia ścieżek pojawia się dość często w momencie gdy dwóch minerów znajdzie dany blok w niewielkim odstępie czasu. Wybór która ścieżka pozostanie a która zostanie porzucona następuje poprzez dołączanie się kolejnych bloków do jednej z nich, w ten sposób tworząc dłuższy łańcuch.
Wyróżnić można trzy rodzaje forków[4]:
- hard fork,
- soft fork,
- UASF.
Pierwszy z wymienionych, twardy rozłam (hard fork) powstaje w przypadku aktualizacji oprogramowania wprowadzającego nową zasadę niekompatybilną z poprzednią wersją blockchain. Zwykle jest to rozszerzenie zasad, jak na przykład zwiększenie pojemności bloku. Węzły, które działają na niezaktualizowanym oprogramowaniu uznają transakcje działające na nowych zasadach za nieprawidłowe. By móc się przełączyć na nowy łańcuch i dalej „kopać” nowe bloki, wszystkie węzły muszą się przełączyć na nowe zasady.
Przy hard fork problemy mogą pojawić się wraz z narastającym konfliktem wewnętrznym podczas podejmowania decyzji dotyczących kwestii akceptacji nowych reguł, bądź ich odrzucenia przez społeczność. Nie liczy się siła łańcucha lecz jego zawartość, ponieważ to ona stanowi podstawę decyzji czy dalej rozwijać łańcuch, inaczej mówiąc czy w dalszym ciągu na nim „kopać”.
Przykładem hard fork jest rozłam społeczności wobec nowych reguł w sieci Ethereum, gdzie obecnie mamy dwa blockchainy różniące się wariantami oprogramowania: Ethereum i Ethereum Classic. Obecnie oba kierują się różnymi wartościami i obsługują inną kryptowalutę.
Kolejnym rodzajem jest miękki rozłam (soft fork), w którym podział pojawia się przy uściśleniu reguł. Na przykład zamiast 1MB bloku, nowa zasada może zezwalać jedynie na bloki wielkości do 500 kB. Niezaktualizowane węzły będą postrzegały nowe transakcje jako poprawne (500 kB < 1MB, a więc taki który spełnia „stare” zasady). Jednak bloki znalezione przez te węzły, nie będą akceptowane przez zaktualizowaną część sieci. Z tego też powodu "miękkie rozłamy" potrzebują większości mocy sieci, aby doszły do skutku. Kiedy soft fork jest wspierany tylko przez mniejszą część sieci, może stać się krótszym łańcuchem i zostać „osieroconym”, porzuconym przez użytkowników, lub istnieje druga możliwość, że zachowa się jak hard fork, czyli stworzy odrębny łańcuch. Soft fork jest metodą na aktualizowanie blockchain, gdyż w takim układzie występuje najniższe ryzyko trwałego podziału łańcucha. Przykładami udanych soft-forków są między innymi aktualizacje takie jak BIP66 (który odpowiadał za walidację podpisów) i P2SH (który zmienił formatowanie adresów)[5].
Ostatnim (do dnia dzisiejszego tylko teoretycznym) forkiem jest UASF (User Activated Soft Fork – wspartym przez użytkowników soft forkiem). Idea stojąca za UASF zakłada pominięcie wsparcia kopalń i nadanie mocy sprawczej giełdom, portfelom i pełnym węzłom. Oznacza to, że użytkownicy wsparliby zmiany, zanim byłyby realnie wprowadzone. Ten sposób wymaga znacznie więcej czasu na wprowadzenie zmian, niż polegający na mocy obliczeniowej jak to jest w soft fork. Uważa się, że pełen proces napisania kodu i przygotowania wszystkich do aktualizacji mógłby potrwać nawet rok. Ponadto, jeśli większość kopaczy postanowi nie czekać i wprowadzi zmiany od razu, to mogą użyć swojej mocy do rozbicia łańcucha i podzielenia sieci.
Zagrożenia fork są dyskutowane przez konsorcjum instytucji finansowych Japonii jako potencjalne zagrożenie ograniczające wprowadzenia blockchain w rozliczeniach[6] jako rozwiązanie, które mogło by zastąpić np. SWIFT, tym bardziej, że hard fork mógłby być użyty jako działanie regulatora rynku[7].
Ewelina Lendzion-Stachera
[1] K. Piech, Technologia Blockchain – wprowadzenie, Uczelnia Łazarskiego (http://www.lazarski.pl/pl/wydzialy-i-jednostki/instytuty/wydzial-ekonomii-i-zarzadzania/centrum-technologii-blockchain/technologia-blockchain-wprowadzenie/)
[2] hbr.org/2017/04/who-controls-the-blockchain
[3] bitcoinmagazine.com/articles/bitcoin-network-shaken-by-blockchain-fork-1363144448/
[4] www.coindesk.com/short-guide-bitcoin-forks-explained/
[5] kryptopomocnik.pl/bitcoin-fork-co-to-jest-fork/
[6] www.meti.go.jp/english/press/2017/pdf/0329_004a.pdf
[7] fee.org/articles/government-needs-a-blockchain-and-a-hard-fork/