Blockchain

Hard forki, soft forki, wartości domyślne i przymus

Jednym z ważnych argumentów w przestrzeni blockchain jest to, czy preferowanym mechanizmem aktualizacji protokołu są hard forki, czy soft forki. Podstawowa różnica między nimi polega na tym, że miękkie forki zmieniają zasady protokołu ściśle redukujące zbiór transakcji, który jest ważny, więc węzły stosujące się do starych reguł nadal będą trafiać do nowego łańcucha (pod warunkiem, że większość górników/walidatorów zaimplementuje fork), podczas gdy hard forki pozwalają, aby wcześniej nieważne transakcje i bloki stały się ważne, więc klienci muszą ulepszać swoich klientów, aby pozostać w łańcuchu z twardym rozwidleniem. Istnieją również dwa podtypy hard forków: ściśle rozszerzający się hard forki, które ściśle rozszerzają zbiór ważnych transakcji, w związku z czym stare reguły są miękkim forkiem w stosunku do nowych reguł, oraz dwustronny hard forki, w których oba zestawy reguł są niekompatybilne w obie strony.

Oto diagram Venna ilustrujący typy wideł:

Korzyści powszechnie cytowane dla tych dwóch są następujące.
  • Hard forki pozwalają programistom na znacznie większą elastyczność w aktualizowaniu protokołu, ponieważ nie muszą się oni martwić, czy nowe reguły „pasują” do starych
  • Miękkie widelce są wygodniejsze dla użytkowników, ponieważ nie muszą dokonywać aktualizacji, aby pozostać w łańcuchu
  • Miękkie widelce rzadziej prowadzą do podziału łańcucha
  • Soft forki tak naprawdę wymagają jedynie zgody górników/walidatorów (ponieważ nawet jeśli użytkownicy nadal będą używać starych reguł, jeśli węzły tworzące łańcuch będą używać nowych reguł, to w każdym przypadku do łańcucha dostaną tylko rzeczy ważne zgodnie z nowymi regułami); wymagają hard forków Zapisz się zgody użytkowników

Poza tym jedną z głównych krytyk często formułowanych pod adresem hard forków jest to, że hard forki mają charakter „przymusowy”. Rodzaj przymusu, o którym tu mowa, nie jest siłą fizyczną; raczej jest przymus poprzez efekt sieciowy. Oznacza to, że jeśli sieć zmieni reguły z A na B, to nawet jeśli osobiście lubisz A, jeśli większość innych użytkowników polubi B i przełączy się na B, musisz przełączyć się na B pomimo osobistej dezaprobaty zmiany, aby pozostać włączonym tej samej sieci, co wszyscy inni.

Zwolennicy hard forków są często wyśmiewani jako próbujący spowodować „wrogie przejęcie” sieci i „zmusić” użytkowników, aby się z nimi zgodzili. Ponadto ryzyko podziału łańcucha jest często wykorzystywane do zaliczania hard forków jako „niebezpiecznych”.


Z mojego osobistego punktu widzenia krytyka ta jest błędna, a ponadto w wielu przypadkach całkowicie odwrotna. Ten punkt widzenia nie jest specyficzny dla Ethereum, Bitcoinu ani żadnego innego blockchainu; wynika to z ogólnych właściwości tych systemów i ma zastosowanie do każdego z nich. Co więcej, poniższe argumenty mają zastosowanie wyłącznie do kontrowersyjnych zmian, w przypadku których duża część co najmniej jednego okręgu wyborczego (górnicy/walidatorzy i użytkownicy) nie zgadza się z nimi; jeśli zmiana nie jest sporna, ogólnie można ją przeprowadzić bezpiecznie, niezależnie od formatu widelca.

Przede wszystkim omówmy kwestię przymusu. Zarówno twarde, jak i miękkie forki zmieniają protokół w sposób, który może nie podobać się niektórym użytkownikom; każdy zmiana protokołu zrobi to, jeśli ma mniej niż dokładnie 100% wsparcia. Co więcej, przynajmniej to jest prawie nieuniknione kilka dysydentów, w każdym scenariuszu, bardziej ceni efekt sieciowy wynikający z trzymania się większej grupy niż własne preferencje dotyczące zasad protokołu. Dlatego oba typy widełek mają charakter przymusowy w znaczeniu tego słowa związanym z efektem sieciowym.

Istnieje jednak zasadnicza różnica pomiędzy twardymi i miękkimi widelcami: Hard forki wymagają zgody, podczas gdy miękkie forki nie pozwalają użytkownikom na żadną opcję „decydowania”.. Aby użytkownik mógł dołączyć do łańcucha typu hard fork, musi osobiście zainstalować pakiet oprogramowania implementujący reguły fork, a zbiór użytkowników, którzy nie zgadzają się ze zmianą reguły jeszcze bardziej niż cenią efekty sieciowe, teoretycznie może po prostu pozostać na stara sieć – i praktycznie rzecz biorąc, takie wydarzenie już się wydarzyło.

Dzieje się tak zarówno w przypadku hard forków ściśle ekspandujących, jak i hard forków dwustronnych. Natomiast w przypadku soft forków jeśli rozwidlenie się powiedzie, nierozwidlony łańcuch nie istnieje. Stąd, miękkie widełki wyraźnie instytucjonalnie faworyzują przymus zamiast secesji, podczas gdy twarde widełki mają odwrotne nastawienie. Moje własne poglądy moralne skłaniają mnie do faworyzowania secesji zamiast przymusu, chociaż inni mogą się różnić (najczęściej podnoszonym argumentem jest to, że efekty sieciowe są naprawdę bardzo ważne i konieczne jest, aby „jedna moneta rządzi wszystkimi„, chociaż istnieją również bardziej umiarkowane wersje tego).

Gdybym miał zgadnąć, dlaczego pomimo tych argumentów soft fork jest często reklamowany jako „mniej przymusowy” niż hard fork, powiedziałbym, że dzieje się tak dlatego, że sprawia wrażenie, jakby hard fork „zmuszał” użytkownika do zainstalowania aktualizacji oprogramowania, podczas gdy dzięki miękkiemu widelcowi użytkownicy w ogóle „nie muszą” nic robić. Jednak ta intuicja jest błędna: nie liczy się to, czy poszczególni użytkownicy będą musieli wykonać prosty biurokratyczny krok polegający na kliknięciu przycisku „pobierz”, ale raczej to, czy użytkownik jest zmuszony do zaakceptowania zmiany zasad protokołu których raczej nie przyjmą. Według tej metryki, jak wspomniano powyżej, oba rodzaje forków są ostatecznie przymusowe, a hard forki okazują się nieco lepsze w zapewnianiu wolności użytkownika.

Przyjrzyjmy się teraz bardzo kontrowersyjnym forkom, zwłaszcza forkom, w których preferencje górnika/walidatora są sprzeczne z preferencjami użytkownika. Mamy tu trzy przypadki: (i) dwustronne hard forki, (ii) ściśle rozszerzające się hard forki oraz (iii) tak zwane „miękkie forki aktywowane przez użytkownika” (UASF). Czwarta kategoria to sytuacja, w której górnicy aktywują miękki fork bez zgody użytkownika; dojdziemy do tego później.

Po pierwsze, dwustronne hard forki. W najlepszym przypadku sytuacja jest prosta. Obie monety są przedmiotem obrotu na rynku, a handlowcy decydują o ich względnej wartości. Z przypadku ETC/ETH mamy przytłaczające dowody na to, że górnicy w przeważającej większości po prostu przypisują swój hashrate do monet w oparciu o stosunek cen, aby zmaksymalizować swój zysk, niezależnie od ich własnych poglądów ideologicznych.

Nawet jeśli niektórzy górnicy wyznają ideologiczne preferencje w jedną lub drugą stronę, jest niezwykle prawdopodobne, że znajdzie się wystarczająca liczba górników, którzy będą gotowi rozstrzygnąć wszelkie rozbieżności między stosunkiem ceny a stosunkiem mocy obliczeniowej i doprowadzić je do wyrównania. Jeśli kartel górników próbuje utworzyć się tak, aby nie wydobywać w jednym łańcuchu, istnieje przemożna zachęta do ucieczki.

Mamy tu dwa przypadki Edge. Pierwszą możliwością jest to, że z powodu nieefektywnego algorytmu dostosowywania trudności wartość wydobycia monety spada w przypadku spadku ceny, ale trudność nie spada, aby to zrekompensować, co sprawia, że ​​wydobycie staje się bardzo nieopłacalne i nie ma górników chętnych do wydobywania po cenie stratą w dalszym popychaniu łańcucha do przodu, aż jego trudność powróci do równowagi. Nie miało to miejsca w przypadku Ethereum, ale może się zdarzyć tak będzie w przypadku Bitcoina. Dlatego łańcuch mniejszościowy może po prostu nigdy nie ruszyć z miejsca i umrze. Należy pamiętać, że kwestia normatywna czy to dobra rzecz zależy od twoich poglądów na temat przymusu i secesji; jak możesz sobie wyobrazić z tego, co napisałem powyżej, osobiście uważam, że takie algorytmy dostosowywania trudności wrogiego łańcucha mniejszościowego są złe.

Drugi przypadek skrajny polega na tym, że jeśli rozbieżność jest bardzo duża, duży łańcuch może w 51% zaatakować mniejszy łańcuch. Nawet w przypadku podziału ETH/ETC w stosunku 10:1 tak się nie stało; więc na pewno nie jest to dane. Zawsze jednak istnieje taka możliwość, jeśli górnicy w dominującym łańcuchu wolą przymus od zezwolenia na secesję i działają w oparciu o te wartości.

Następnie przyjrzyjmy się ściśle rozszerzającym się hard forkom. W SEHF istnieje właściwość, że łańcuch bez rozwidlenia jest ważny zgodnie z zasadami rozwidlenia, więc jeśli widelec ma niższą cenę niż łańcuch bez rozwidlenia, będzie miał mniejszą moc mieszania niż łańcuch bez rozwidlenia i więc łańcuch nierozwidlony zostanie ostatecznie zaakceptowany jako najdłuższy łańcuch zarówno według reguł pierwotnego klienta, jak i rozwidlonego klienta – i tak rozwidlony łańcuch”zostanie unicestwiony".

Istnieje argument, że istnieje zatem silna, nieodłączna tendencja przeciwko powodzeniu takiego rozwidlenia, ponieważ możliwość unicestwienia rozwidlonego łańcucha zostanie wpisana w cenę, spychając cenę w dół, co jeszcze bardziej zwiększa prawdopodobieństwo, że łańcuch zostanie unicestwiony… Ten argument wydaje mi się mocny i dlatego jest to bardzo dobry powód, aby go wysunąć każdy kontrowersyjny hard fork dwustronny, a nie ściśle rozwijający się.

Twórcy Bitcoin Unlimited sugerują rozwiązanie tego problemu poprzez ręcznie tworząc hard fork dwustronny po tym, jak to nastąpi, ale lepszym wyborem byłoby wbudowanie dwustronności; na przykład w przypadku bitcoina można dodać regułę blokującą jakiś nieużywany kod operacji, a następnie dokonać transakcji zawierającej ten kod operacji w nierozwidlonym łańcuchu, tak że zgodnie z rozwidlonymi regułami nierozwidlony łańcuch będzie odtąd uznane za nieważne na zawsze. W przypadku Ethereum, ze względu na różne szczegóły dotyczące sposobu obliczania stanu, prawie wszystkie hard forki są niemal automatycznie dwustronne. Inne łańcuchy mogą mieć różne właściwości w zależności od ich architektury.

Ostatnim typem widelca, o którym mowa powyżej, jest soft fork aktywowany przez użytkownika. W UASF użytkownicy włączają reguły miękkiego widelca, nie zadając sobie trudu uzyskania konsensusu od górników; Oczekuje się, że górnicy po prostu podporządkują się interesom gospodarczym. Jeśli wielu użytkowników nie zgodzi się z UASF, nastąpi podział monet, co doprowadzi do scenariusza identycznego z ściśle rozwijającym się hard forkiem, z tą różnicą – i to jest naprawdę sprytna i przebiegła część tej koncepcji – to samo ciśnienie „ryzyka anihilacji”, które silnie faworyzuje rozwidlony łańcuch w ściśle rozszerzającym się hard forku, zamiast tego silnie faworyzuje rozwidlony łańcuch w UASF. Mimo że UASF jest na zasadzie „opt-in”, wykorzystuje asymetrię ekonomiczną, aby nastawić się na sukces (choć nastawienie to nie jest absolutne; jeśli UASF będzie zdecydowanie niepopularny, nie odniesie sukcesu i po prostu doprowadzi do podziału łańcucha).

Jednak UASF to niebezpieczna gra. Załóżmy na przykład, że twórcy projektu chcą stworzyć łatkę UASF, która konwertuje nieużywany kod operacji, który wcześniej akceptował wszystkie transakcje, na kod operacji, który akceptuje tylko transakcje zgodne z regułami jakiejś nowej, fajnej funkcji, choć takiej, która jest kontrowersyjne politycznie lub technicznie, a górnicy nie lubią. Górnicy mają sprytny i przebiegły sposób na walkę: mogą jednostronnie wdrożyć soft fork aktywowany przez górników, który sprawia, że ​​wszystkie transakcje wykorzystujące funkcję utworzoną przez soft fork zawsze kończą się niepowodzeniem.

Mamy teraz trzy zestawy reguł:

  1. Oryginalne zasady, w których opcode X jest zawsze ważny.
  2. Reguły, w których opcode X jest ważny tylko wtedy, gdy pozostała część transakcji jest zgodna z nowymi regułami
  3. Reguły, w których opcode X jest zawsze nieprawidłowy.

Należy zauważyć, że (2) jest miękkim rozwidleniem w odniesieniu do (1) i (3) jest miękkim rozwidleniem w odniesieniu do (2). Obecnie istnieje silna presja ekonomiczna na korzyść (3), w związku z czym soft fork nie osiąga swojego celu.

Wniosek jest taki. Soft forki to niebezpieczna gra, która staje się jeszcze bardziej niebezpieczna, jeśli jest kontrowersyjna, a górnicy zaczynają się bronić. Ściśle rozwijające się hard forki to także niebezpieczna gra. Aktywowane przez górników miękkie widelce działają przymusowo; Soft forki aktywowane przez użytkownika są mniej przymusowe, choć nadal dość represyjne ze względu na presję ekonomiczną, ale niosą także ze sobą niebezpieczeństwa. Jeśli naprawdę chcesz dokonać kontrowersyjnej zmiany i zdecydowałeś, że wysokie koszty społeczne są tego warte, po prostu wykonaj czysty dwustronny hard fork, poświęć trochę czasu na dodanie odpowiedniej ochrony przed powtórkami i pozwól rynkowi to rozwiązać .

Źródło: https://vitalik.eth.limo/general/2017/03/14/forks_and_markets.html