Przejdź do głównej zawartości
Change page

Atak i obrona w Ethereum proof-of-stake

Strona ostatnio zaktualizowana: 14 lutego 2026

Złodzieje i sabotażyści stale szukają okazji do atakowania oprogramowania klienckiego Ethereum. Ta strona przedstawia znane wektory ataków na warstwę konsensusu Ethereum i opisuje, jak można się przed nimi bronić. Informacje na tej stronie są adaptacją dłuższej wersjiopens in a new tab.

Wymagania wstępne

Wymagana jest podstawowa znajomość proof-of-stake. Pomocna będzie również podstawowa znajomość warstwy motywacyjnej Ethereum i algorytmu wyboru forka, LMD-GHOST.

Czego chcą atakujący?

Powszechnym błędem jest przekonanie, że skuteczny atakujący może generować nowy ether lub wysysać ether z dowolnych kont. Żadna z tych rzeczy nie jest możliwa, ponieważ wszystkie transakcje są wykonywane przez wszystkich klientów wykonawczych w sieci. Muszą one spełniać podstawowe warunki ważności (np. transakcje są podpisane kluczem prywatnym nadawcy, nadawca ma wystarczające saldo itp.), w przeciwnym razie są po prostu wycofywane. Istnieją trzy klasy wyników, na które atakujący może realnie liczyć: reorganizacje, podwójna nieodwołalność lub opóźnienie nieodwołalności.

„Reorg” to przetasowanie bloków w nowej kolejności, być może z dodaniem lub odjęciem bloków w kanonicznym łańcuchu. Złośliwy reorg może zapewnić, że określone bloki zostaną uwzględnione lub wykluczone, umożliwiając podwójne wydatkowanie lub ekstrakcję wartości poprzez transakcje typu front-running i back-running (MEV). Reorganziacje mogą być również używane do uniemożliwienia włączenia niektórych transakcji do kanonicznego łańcucha - jest to forma cenzury. Najbardziej ekstremalną formą reorgu jest „odwrócenie nieodwołalności”, które usuwa lub zastępuje bloki, które zostały wcześniej sfinalizowane. Jest to możliwe tylko wtedy, gdy atakujący zniszczy ponad ⅓ całkowitego stakowanego etheru - ta gwarancja jest znana jako „nieodwołalność ekonomiczna” - więcej na ten temat później.

Podwójna nieodwołalność to mało prawdopodobny, ale poważny stan, w którym dwa forki mogą sfinalizować się jednocześnie, tworząc trwały rozłam w łańcuchu. Jest to teoretycznie możliwe dla atakującego, który jest gotów zaryzykować 34% całkowitego stakowanego etheru. Społeczność byłaby zmuszona do koordynacji off-chain i dojścia do porozumienia, którego łańcucha przestrzegać, co wymagałoby siły w warstwie społecznej.

Atak opóźniający nieodwołalność uniemożliwia sieci osiągnięcie warunków niezbędnych do sfinalizowania fragmentów łańcucha. Bez nieodwołalności trudno jest zaufać aplikacjom finansowym zbudowanym na Ethereum. Celem ataku opóźniającego nieodwołalność jest prawdopodobnie po prostu zakłócenie działania Ethereum, a nie bezpośredni zysk, chyba że atakujący ma jakieś strategiczne krótkie pozycje.

Atak na warstwę społeczną może mieć na celu podważenie publicznego zaufania do Ethereum, dewaluację etheru, zmniejszenie adopcji lub osłabienie społeczności Ethereum w celu utrudnienia koordynacji pozapasmowej.

Po ustaleniu, dlaczego przeciwnik mógłby zaatakować Ethereum, w następnych sekcjach zbadamy, jak mógłby to zrobić.

Metody ataku

Ataki na warstwę 0

Przede wszystkim osoby, które nie uczestniczą aktywnie w Ethereum (poprzez uruchamianie oprogramowania klienckiego), mogą atakować, celując w warstwę społeczną (warstwa 0). Warstwa 0 jest fundamentem, na którym zbudowane jest Ethereum, i jako taka stanowi potencjalną powierzchnię dla ataków, których konsekwencje rozprzestrzeniają się na resztę stosu. Niektóre przykłady mogą obejmować:

  • Kampania dezinformacyjna może podważyć zaufanie społeczności do planu działania Ethereum, zespołów deweloperów, aplikacji itp. To z kolei może zmniejszyć liczbę osób chętnych do udziału w zabezpieczaniu sieci, pogarszając zarówno decentralizację, jak i bezpieczeństwo kryptoekonomiczne.

  • Ukierunkowane ataki i/lub zastraszanie skierowane przeciwko społeczności deweloperów. Może to prowadzić do dobrowolnego odejścia deweloperów i spowolnienia postępów Ethereum.

  • Zbyt gorliwe regulacje można również uznać za atak na warstwę 0, ponieważ mogłyby one gwałtownie zniechęcić do udziału i adopcji.

  • Infiltracja do społeczności deweloperów przez kompetentnych, ale złośliwych aktorów, których celem jest spowolnienie postępów poprzez jałowe dyskusje, opóźnianie kluczowych decyzji, tworzenie spamu itp.

  • Łapówki dla kluczowych graczy w ekosystemie Ethereum w celu wpłynięcia na podejmowanie decyzji.

To, co czyni te ataki szczególnie niebezpiecznymi, to fakt, że w wielu przypadkach wymagają one bardzo niewielkiego kapitału lub wiedzy technicznej. Atak na warstwę 0 może być mnożnikiem ataku kryptoekonomicznego. Na przykład, jeśli cenzura lub odwrócenie nieodwołalności zostałyby osiągnięte przez złośliwego udziałowca większościowego, podważenie warstwy społecznej mogłoby utrudnić skoordynowanie odpowiedzi społeczności w trybie pozapasmowym.

Obrona przed atakami na warstwę 0 prawdopodobnie nie jest prosta, ale można ustalić pewne podstawowe zasady. Jedną z nich jest utrzymywanie ogólnie wysokiego stosunku sygnału do szumu w przypadku informacji publicznych o Ethereum, tworzonych i rozpowszechnianych przez uczciwych członków społeczności za pośrednictwem blogów, serwerów Discord, specyfikacji z adnotacjami, książek, podcastów i YouTube. Tutaj, na ethereum.org, staramy się utrzymywać dokładne informacje i tłumaczyć je na jak najwięcej języków. Zalewanie przestrzeni wysokiej jakości informacjami i memami jest skuteczną obroną przed dezinformacją.

Innym ważnym wzmocnieniem przeciwko atakom na warstwę społeczną jest jasna misja i protokół zarządzania. Ethereum pozycjonuje się jako lider decentralizacji i bezpieczeństwa wśród warstw 1 z inteligentnymi kontraktami, jednocześnie wysoko ceniąc skalowalność i zrównoważony rozwój. Niezależnie od nieporozumień pojawiających się w społeczności Ethereum, te podstawowe zasady są naruszane w minimalnym stopniu. Ocena narracji w odniesieniu do tych podstawowych zasad i badanie jej w kolejnych rundach przeglądu w procesie EIP (propozycji ulepszeń Ethereum) może pomóc społeczności w odróżnieniu dobrych aktorów od złych i ograniczyć zakres, w jakim złośliwi aktorzy mogą wpływać na przyszły kierunek rozwoju Ethereum.

Wreszcie, kluczowe jest, aby społeczność Ethereum pozostała otwarta i przyjazna dla wszystkich uczestników. Społeczność z "gatekeeperami" i wyłącznością jest szczególnie podatna na ataki społeczne, ponieważ łatwo jest budować narracje „my i oni”. Trybalizm i toksyczny maksymalizm szkodzą społeczności i podważają bezpieczeństwo warstwy 0. Etereanie, którzy mają żywotny interes w bezpieczeństwie sieci, powinni postrzegać swoje zachowanie w sieci i w świecie rzeczywistym jako bezpośredni wkład w bezpieczeństwo warstwy 0 Ethereum.

Atakowanie protokołu

Każdy może uruchomić oprogramowanie klienckie Ethereum. Aby dodać walidatora do klienta, użytkownik musi stakować 32 ethery w kontrakcie depozytowym. Walidator pozwala użytkownikowi aktywnie uczestniczyć w bezpieczeństwie sieci Ethereum, proponując i poświadczając nowe bloki. Walidator ma teraz głos, którego może użyć, aby wpłynąć na przyszłą zawartość blockchaina – może to robić uczciwie i powiększać swoje zasoby etheru poprzez nagrody, lub może próbować manipulować procesem na własną korzyść, ryzykując swoją stawką. Jednym ze sposobów przeprowadzenia ataku jest zgromadzenie większej części całkowitej stawki, a następnie wykorzystanie jej do przegłosowania uczciwych walidatorów. Im większa część stawki kontrolowana przez atakującego, tym większa jego siła głosu, zwłaszcza na pewnych etapach ekonomicznych, które omówimy później. Jednak większość atakujących nie będzie w stanie zgromadzić wystarczającej ilości etheru, aby zaatakować w ten sposób, więc zamiast tego muszą używać subtelnych technik, aby zmanipulować uczciwą większość do działania w określony sposób.

Zasadniczo wszystkie ataki z małą stawką są subtelnymi wariacjami na temat dwóch rodzajów niewłaściwego zachowania walidatorów: niedostatecznej aktywności (brak poświadczania/proponowania lub robienie tego z opóźnieniem) lub nadmiernej aktywności (proponowanie/poświadczanie zbyt wiele razy w jednym slocie). W swoich najprostszych formach działania te są łatwo obsługiwane przez algorytm wyboru forka i warstwę motywacyjną, ale istnieją sprytne sposoby na oszukanie systemu na korzyść atakującego.

Ataki z wykorzystaniem niewielkich ilości ETH

reorgi

W kilku pracach wyjaśniono ataki na Ethereum, które powodują reorgi lub opóźnienie nieodwołalności przy użyciu tylko niewielkiej części całkowitego stakowanego etheru. Ataki te zazwyczaj polegają na tym, że atakujący wstrzymuje pewne informacje przed innymi walidatorami, a następnie udostępnia je w jakiś subtelny sposób i/lub w dogodnym momencie. Zwykle mają na celu usunięcie niektórych uczciwych bloków z kanonicznego łańcucha. Neuder i in. 2020opens in a new tab pokazali, w jaki sposób atakujący walidator może utworzyć i poświadczyć blok (B) dla określonego slotu n+1, ale powstrzymać się od jego propagacji do innych węzłów w sieci. Zamiast tego, wstrzymują ten poświadczony blok do następnego slotu n+2. Uczciwy walidator proponuje blok (C) dla slotu n+2. Prawie jednocześnie atakujący może opublikować wstrzymany blok (B) i jego wstrzymane poświadczenia, a także poświadczyć, że B jest głową łańcucha swoimi głosami za slot n+2, skutecznie zaprzeczając istnieniu uczciwego bloku C. Kiedy uczciwy blok D zostaje opublikowany, algorytm wyboru forka postrzega D budujący się na B jako cięższy niż D budujący się na C. Atakujący zdołał zatem usunąć uczciwy blok C w slocie n+2 z kanonicznego łańcucha za pomocą 1-blokowego reorgu ex ante. Atakujący z 34%opens in a new tab stawki ma bardzo dużą szansę na powodzenie w tym ataku, jak wyjaśniono w tej notatceopens in a new tab. W teorii jednak atak ten mógłby być podejmowany z mniejszymi stawkami. Neuder i in. 2020opens in a new tab opisali ten atak działający przy 30% stawki, ale później wykazano, że jest on wykonalny przy 2% całkowitej stawkiopens in a new tab, a następnie ponownie dla pojedynczego walidatoraopens in a new tab przy użyciu technik równoważenia, które omówimy w następnej sekcji.

reorg ex-ante

Schemat koncepcyjny ataku reorgu jednego bloku opisanego powyżej (adaptacja z https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pairopens in a new tab)

Bardziej wyrafinowany atak może podzielić zestaw uczciwych walidatorów na oddzielne grupy, które mają różne poglądy na temat głowy łańcucha. Jest to znane jako atak równoważący. Atakujący czeka na swoją szansę na zaproponowanie bloku, a gdy ona nadejdzie, dopuszcza się ekwiwokacji i proponuje dwa. Wysyłają jeden blok do połowy zestawu uczciwych walidatorów, a drugi blok do drugiej połowy. Ekwiwokacja zostałaby wykryta przez algorytm wyboru forka, a proposer bloku zostałby poddany slashingowi i usunięty z sieci, ale oba bloki nadal by istniały i miałyby około połowy zestawu walidatorów poświadczających każdy fork. W międzyczasie pozostali złośliwi walidatorzy wstrzymują swoje poświadczenia. Następnie, poprzez selektywne uwalnianie poświadczeń faworyzujących jeden lub drugi fork do wystarczającej liczby walidatorów w momencie, gdy algorytm wyboru forka jest wykonywany, przechylają skumulowaną wagę poświadczeń na korzyść jednego lub drugiego forka. Może to trwać w nieskończoność, a atakujący walidatorzy utrzymują równy podział walidatorów między dwoma forkami. Ponieważ żaden fork nie może przyciągnąć 2/3 superwiększości, sieć nie zostałaby sfinalizowana.

Ataki odbijające są podobne. Głosy są ponownie wstrzymywane przez atakujących walidatorów. Zamiast uwalniać głosy, aby utrzymać równy podział między dwoma forkami, używają swoich głosów w dogodnych momentach, aby uzasadnić checkpointy, które naprzemiennie przełączają się między forkiem A i forkiem B. To przerzucanie uzasadnienia między dwoma forkami uniemożliwia istnienie par uzasadnionych źródłowych i docelowych checkpointów, które można sfinalizować na którymkolwiek z łańcuchów, zatrzymując nieodwołalność.

Zarówno ataki odbijające, jak i równoważące, opierają się na bardzo precyzyjnej kontroli atakującego nad czasem wiadomości w całej sieci, co jest mało prawdopodobne. Niemniej jednak, w protokole wbudowane są mechanizmy obronne w postaci dodatkowej wagi przyznawanej szybkim wiadomościom w porównaniu z wolnymi. Jest to znane jako proposer-weight boostingopens in a new tab. Aby bronić się przed atakami odbijającymi, algorytm wyboru forka został zaktualizowany tak, że najnowszy uzasadniony checkpoint może przełączyć się na checkpoint alternatywnego łańcucha tylko podczas pierwszej 1/3 slotów w każdej epoceopens in a new tab. Warunek ten uniemożliwia atakującemu gromadzenie głosów w celu późniejszego ich wykorzystania – algorytm wyboru forka po prostu pozostaje wierny checkpointowi, który wybrał w pierwszej 1/3 epoki, w czasie której większość uczciwych walidatorów już by zagłosowała.

W połączeniu, środki te tworzą scenariusz, w którym uczciwy proposer bloku emituje swój blok bardzo szybko po rozpoczęciu slotu, a następnie następuje okres ~1/3 slotu (4 sekundy), w którym ten nowy blok może spowodować, że algorytm wyboru forka przełączy się na inny łańcuch. Po tym samym terminie, poświadczenia, które napływają od powolnych walidatorów, mają mniejszą wagę w porównaniu z tymi, które dotarły wcześniej. To zdecydowanie faworyzuje szybkich proposerów i walidatorów w określaniu głowy łańcucha i znacznie zmniejsza prawdopodobieństwo udanego ataku równoważącego lub odbijającego.

Warto zauważyć, że samo wzmocnienie proposera (proposer boosting) chroni jedynie przed „tanimi reorgami”, tj. tymi, które są podejmowane przez atakującego z małą stawką. W rzeczywistości, samo wzmocnienie proposera (proposer-boosting) może być wykorzystane przez większych udziałowców. Autorzy tego postuopens in a new tab opisują, jak atakujący z 7% stawki może strategicznie wykorzystać swoje głosy, aby oszukać uczciwych walidatorów, by budowali na jego forku, reorganizując uczciwy blok. Atak ten został opracowany przy założeniu idealnych warunków opóźnień, które są bardzo mało prawdopodobne. Szanse atakującego są nadal bardzo małe, a większa stawka oznacza również większy kapitał zagrożony i silniejszą zniechętę ekonomiczną.

Zaproponowano również atak równoważący skierowany specjalnie na regułę LMDopens in a new tab, który miał być wykonalny pomimo wzmocnienia proposera. Atakujący tworzy dwa konkurencyjne łańcuchy, dokonując ekwiwokacji swojej propozycji bloku i propagując każdy blok do około połowy sieci, tworząc przybliżoną równowagę między forkami. Następnie, współpracujący walidatorzy dokonują ekwiwokacji swoich głosów, tak aby połowa sieci otrzymała najpierw ich głosy na fork A, a druga połowa najpierw otrzymała ich głosy na fork B. Ponieważ reguła LMD odrzuca drugie poświadczenie i zachowuje tylko pierwsze dla każdego walidatora, połowa sieci widzi głosy na A i żadnych na B, a druga połowa widzi głosy na B i żadnych na A. Autorzy opisują, że reguła LMD daje przeciwnikowi „niezwykłą moc” do przeprowadzenia ataku równoważącego.

Ten wektor ataku LMD został zamknięty poprzez zaktualizowanie algorytmu wyboru forkaopens in a new tab, tak aby całkowicie odrzucał on ekwiwokujących walidatorów z rozważań dotyczących wyboru forka. Algorytm wyboru forka również dyskontuje przyszły wpływ walidatorów dopuszczających się ekwiwokacji. Zapobiega to opisanemu powyżej atakowi równoważącemu, jednocześnie utrzymując odporność na ataki lawinowe.

Inna klasa ataków, zwana atakami lawinowymiopens in a new tab, została opisana w pracy z marca 2022 rokuopens in a new tab. Aby przeprowadzić atak lawinowy, atakujący musi kontrolować kilku kolejnych proposerów bloków. W każdym ze slotów propozycji bloków atakujący wstrzymuje swój blok, zbierając je, aż uczciwy łańcuch osiągnie równą wagę poddrzewa z wstrzymanymi blokami. Następnie wstrzymane bloki są uwalniane w taki sposób, aby maksymalnie ekwiwokowały. Autorzy sugerują, że wzmocnienie proposera – główna obrona przed atakami równoważącymi i odbijającymi – nie chroni przed niektórymi wariantami ataku lawinowego. Jednakże, autorzy zademonstrowali ten atak tylko na wysoce wyidealizowanej wersji algorytmu wyboru forka Ethereum (użyli GHOST bez LMD).

Atak lawinowy jest łagodzony przez część LMD algorytmu wyboru forka LMD-GHOST. LMD oznacza „sterowany najnowszą wiadomością” i odnosi się do tabeli utrzymywanej przez każdego walidatora, zawierającej najnowszą wiadomość otrzymaną od innych walidatorów. To pole jest aktualizowane tylko wtedy, gdy nowa wiadomość pochodzi z późniejszego slotu niż ten, który już znajduje się w tabeli dla danego walidatora. W praktyce oznacza to, że w każdym slocie pierwsza otrzymana wiadomość jest tą akceptowaną, a wszelkie dodatkowe wiadomości są ekwiwokacjami, które należy zignorować. Innymi słowy, klienci konsensusu nie liczą ekwiwokacji – używają pierwszej wiadomości od każdego walidatora, a ekwiwokacje są po prostu odrzucane, co zapobiega atakom lawinowym.

Istnieje kilka innych potencjalnych przyszłych ulepszeń reguły wyboru forka, które mogłyby zwiększyć bezpieczeństwo zapewniane przez wzmocnienie proposera (proposer-boost). Jednym z nich jest view-mergeopens in a new tab, gdzie poświadczający zamrażają swój widok wyboru forka n sekund przed rozpoczęciem slotu, a proposer następnie pomaga zsynchronizować widok łańcucha w całej sieci. Innym potencjalnym ulepszeniem jest nieodwołalność w jednym slocieopens in a new tab, która chroni przed atakami opartymi na czasie wiadomości poprzez finalizację łańcucha już po jednym slocie.

Opóźnienie nieodwołalności

Ta sama pracaopens in a new tab, która jako pierwsza opisała tani atak reorgu pojedynczego bloku, opisała również atak opóźniający nieodwołalność (znany również jako „awaria żywotności”), który polega na tym, że atakujący jest proposerem bloku na granicy epoki. Jest to kluczowe, ponieważ te bloki na granicy epok stają się checkpointami, których Casper FFG używa do finalizowania fragmentów łańcucha. Atakujący po prostu wstrzymuje swój blok, dopóki wystarczająca liczba uczciwych walidatorów nie użyje swoich głosów FFG na korzyść poprzedniego bloku granicznego epoki jako obecnego celu finalizacji. Następnie uwalniają swój wstrzymany blok. Poświadczają swój blok, a pozostali uczciwi walidatorzy również to robią, tworząc forki z różnymi docelowymi checkpointami. Jeśli zgrają to w czasie, uniemożliwią nieodwołalność, ponieważ nie będzie superwiększości 2/3 poświadczającej którykolwiek z forków. Im mniejsza stawka, tym bardziej precyzyjny musi być czas, ponieważ atakujący kontroluje bezpośrednio mniej poświadczeń, a także mniejsze są szanse, że atakujący będzie kontrolował walidatora proponującego dany blok graniczny epoki.

Ataki dalekiego zasięgu

Istnieje również klasa ataków specyficzna dla blockchainów proof-of-stake, która polega na tym, że walidator, który uczestniczył w bloku genezy, utrzymuje oddzielny fork blockchaina obok uczciwego, ostatecznie przekonując uczciwy zestaw walidatorów do przejścia na niego w dogodnym momencie znacznie później. Ten typ ataku nie jest możliwy w Ethereum ze względu na gadżet nieodwołalności, który zapewnia, że wszyscy walidatorzy zgadzają się co do stanu uczciwego łańcucha w regularnych odstępach czasu („checkpointy”). Ten prosty mechanizm neutralizuje atakujących z dalekiego zasięgu, ponieważ klienci Ethereum po prostu nie zreorganizują sfinalizowanych bloków. Nowe węzły dołączające do sieci robią to poprzez znalezienie zaufanego, niedawnego hasza stanu (checkpointu „słabej subiektywnościopens in a new tab”) i użycie go jako pseudo-bloku genezy do budowania na nim. Tworzy to „bramę zaufania” dla nowego węzła wchodzącego do sieci, zanim będzie on mógł samodzielnie rozpocząć weryfikację informacji.

Odmowa usługi

Mechanizm PoS Ethereum wybiera jednego walidatora z całego zestawu walidatorów, aby był proposerem bloku w każdym slocie. Można to obliczyć za pomocą publicznie znanej funkcji i możliwe jest, aby przeciwnik zidentyfikował następnego proposera bloku z niewielkim wyprzedzeniem przed jego propozycją bloku. Następnie atakujący może spamować proposera bloku, aby uniemożliwić mu wymianę informacji z innymi węzłami. Dla reszty sieci wyglądałoby to tak, jakby proposer bloku był offline, a slot po prostu pozostałby pusty. Może to być forma cenzury wobec określonych walidatorów, uniemożliwiająca im dodawanie informacji do blockchaina. Wdrożenie wyborów tajnego pojedynczego lidera (SSLE) lub wyborów tajnego niepojedynczego lidera złagodzi ryzyko DoS, ponieważ tylko proposer bloku wie, że został wybrany, a wybór nie jest znany z góry. Nie jest to jeszcze zaimplementowane, ale jest to aktywny obszar badań i rozwojuopens in a new tab.

Wszystko to wskazuje na fakt, że bardzo trudno jest skutecznie zaatakować Ethereum z małą stawką. Wykonalne ataki, które zostały tu opisane, wymagają wyidealizowanego algorytmu wyboru forka, mało prawdopodobnych warunków sieciowych lub wektory ataków zostały już zamknięte za pomocą stosunkowo niewielkich poprawek w oprogramowaniu klienckim. Oczywiście nie wyklucza to możliwości istnienia exploitów zero-day, ale pokazuje to niezwykle wysoką poprzeczkę umiejętności technicznych, znajomości warstwy konsensusu i szczęścia, wymaganą do skuteczności atakującego z mniejszościową stawką. Z perspektywy atakującego najlepszym rozwiązaniem może być zgromadzenie jak największej ilości etheru i powrót uzbrojonym w większą część całkowitej stawki.

Atakujący używający >= 33% całkowitej stawki

Wszystkie ataki wspomniane wcześniej w tym artykule stają się bardziej prawdopodobne do odniesienia sukcesu, gdy atakujący ma więcej stakowanego etheru do głosowania i więcej walidatorów, którzy mogą zostać wybrani do proponowania bloków w każdym slocie. Złośliwy walidator może zatem dążyć do kontrolowania jak największej ilości stakowanego etheru.

33% stakowanego etheru to punkt odniesienia dla atakującego, ponieważ przy każdej kwocie większej niż ta, ma on możliwość uniemożliwienia finalizacji łańcucha bez konieczności precyzyjnego kontrolowania działań innych walidatorów. Mogą po prostu wszyscy razem zniknąć. Jeśli 1/3 lub więcej stakowanego etheru złośliwie poświadcza lub nie poświadcza, superwiększość 2/3 nie może istnieć, a łańcuch nie może się sfinalizować. Obroną przed tym jest wyciek nieaktywności (inactivity leak). Wyciek nieaktywności identyfikuje tych walidatorów, którzy nie poświadczają lub poświadczają wbrew większości. Stakowany ether posiadany przez tych niepoświadczających walidatorów jest stopniowo uszczuplany, aż w końcu zbiorowo reprezentują oni mniej niż 1/3 całości, dzięki czemu łańcuch może ponownie się sfinalizować.

Celem wycieku nieaktywności jest ponowne umożliwienie finalizacji łańcucha. Jednak atakujący traci również część swojego stakowanego etheru. Utrzymująca się nieaktywność walidatorów reprezentujących 33% całkowitego stakowanego etheru jest bardzo kosztowna, mimo że walidatorzy nie są poddawani slashingowi.

Zakładając, że sieć Ethereum jest asynchroniczna (tzn. występują opóźnienia między wysyłaniem a odbieraniem wiadomości), atakujący kontrolujący 34% całkowitej stawki mógłby spowodować podwójną nieodwołalność. Dzieje się tak, ponieważ atakujący może dokonać ekwiwokacji, gdy zostanie wybrany na producenta bloku, a następnie podwójnie zagłosować wszystkimi swoimi walidatorami. Tworzy to sytuację, w której istnieje fork blockchaina, a każdy z nich ma 34% głosującego na niego stakowanego etheru. Każdy fork wymaga tylko 50% pozostałych walidatorów, aby zagłosowali na jego korzyść, aby oba forki były wspierane przez superwiększość, w którym to przypadku oba łańcuchy mogą się sfinalizować (ponieważ 34% walidatorów atakującego + połowa pozostałych 66% = 67% na każdym forku). Konkurujące bloki musiałyby być odebrane przez około 50% uczciwych walidatorów, więc ten atak jest wykonalny tylko wtedy, gdy atakujący ma pewien stopień kontroli nad czasem propagacji wiadomości w sieci, aby mógł pchnąć połowę uczciwych walidatorów na każdy łańcuch. Atakujący zniszczyłby z konieczności całą swoją stawkę (34% z ~10 milionów etheru przy dzisiejszym zestawie walidatorów), aby osiągnąć tę podwójną nieodwołalność, ponieważ 34% jego walidatorów głosowałoby podwójnie jednocześnie - jest to wykroczenie podlegające slashingowi z maksymalną karą za korelację. Obroną przed tym atakiem jest bardzo duży koszt zniszczenia 34% całkowitego stakowanego etheru. Wyjście z tego ataku wymagałoby od społeczności Ethereum koordynacji „pozapasmowej” i uzgodnienia, że należy podążać za jednym z forków i ignorować drugi.

Atakujący używający ~50% całkowitej stawki

Przy 50% stakowanego etheru złośliwa grupa walidatorów mogłaby teoretycznie podzielić łańcuch na dwa forki o równej wielkości, a następnie po prostu użyć całej swojej 50% stawki, aby głosować przeciwnie do uczciwego zestawu walidatorów, utrzymując w ten sposób oba forki i uniemożliwiając nieodwołalność. Wyciek nieaktywności na obu forkach ostatecznie doprowadziłby do sfinalizowania obu łańcuchów. W tym momencie jedyną opcją jest powrót do odzyskiwania społecznego.

Jest bardzo mało prawdopodobne, że grupa wrogich walidatorów mogłaby konsekwentnie kontrolować dokładnie 50% całkowitej stawki, biorąc pod uwagę pewien stopień zmienności liczby uczciwych walidatorów, opóźnienia sieciowe itp. – ogromny koszt przeprowadzenia takiego ataku w połączeniu z niskim prawdopodobieństwem sukcesu wydaje się być silną zniechętą dla racjonalnego atakującego, zwłaszcza gdy niewielka dodatkowa inwestycja w uzyskanie więcej niż 50% odblokowuje znacznie więcej mocy.

Przy >50% całkowitej stawki atakujący mógłby zdominować algorytm wyboru forka. W tym przypadku atakujący byłby w stanie poświadczać głosem większości, co dałoby mu wystarczającą kontrolę do przeprowadzania krótkich reorgów bez konieczności oszukiwania uczciwych klientów. Uczciwi walidatorzy poszliby za tym przykładem, ponieważ ich algorytm wyboru forka również postrzegałby faworyzowany przez atakującego łańcuch jako najcięższy, więc łańcuch mógłby się sfinalizować. Umożliwia to atakującemu cenzurowanie niektórych transakcji, przeprowadzanie reorgów krótkiego zasięgu i wydobywanie maksymalnego MEV poprzez zmianę kolejności bloków na swoją korzyść. Obroną przed tym jest ogromny koszt większościowej stawki (obecnie nieco poniżej 19 miliardów USD), który jest zagrożony przez atakującego, ponieważ warstwa społeczna prawdopodobnie wkroczy i zaadoptuje uczciwy fork mniejszościowy, co drastycznie zdewaluuje stawkę atakującego.

Atakujący używający >=66% całkowitej stawki

Atakujący posiadający 66% lub więcej całkowitego stakowanego etheru może sfinalizować preferowany przez siebie łańcuch bez konieczności zmuszania jakichkolwiek uczciwych walidatorów. Atakujący może po prostu zagłosować na preferowany przez siebie fork, a następnie go sfinalizować, po prostu dlatego, że może głosować nieuczciwą superwiększością. Jako udziałowiec z superwiększością, atakujący zawsze kontrolowałby zawartość sfinalizowanych bloków, mając moc wydawania, cofania i ponownego wydawania, cenzurowania niektórych transakcji i reorganizowania łańcucha do woli. Kupując dodatkowy ether, aby kontrolować 66% zamiast 51%, atakujący skutecznie kupuje zdolność do przeprowadzania reorgów ex post i odwracania nieodwołalności (tj. zmiany przeszłości, a także kontrolowania przyszłości). Jedynymi prawdziwymi mechanizmami obronnymi są tutaj ogromny koszt 66% całkowitego stakowanego etheru oraz opcja powrotu do warstwy społecznej w celu skoordynowania przyjęcia alternatywnego forka. Możemy to zbadać bardziej szczegółowo w następnej sekcji.

Ludzie: ostatnia linia obrony

Jeśli nieuczciwym walidatorom uda się sfinalizować preferowaną przez nich wersję łańcucha, społeczność Ethereum znajdzie się w trudnej sytuacji. Kanoniczny łańcuch zawiera nieuczciwą sekcję wbudowaną w swoją historię, podczas gdy uczciwi walidatorzy mogą zostać ukarani za poświadczanie alternatywnego (uczciwego) łańcucha. Należy pamiętać, że sfinalizowany, ale nieprawidłowy łańcuch może również powstać w wyniku błędu w kliencie większościowym. Ostatecznie, ostatecznym wyjściem jest poleganie na warstwie społecznej – warstwie 0 – w celu rozwiązania sytuacji.

Jedną z mocnych stron konsensusu PoS Ethereum jest to, że istnieje szereg strategii obronnychopens in a new tab, które społeczność może zastosować w obliczu ataku. Minimalna odpowiedź mogłaby polegać na przymusowym usunięciu walidatorów atakujących z sieci bez żadnej dodatkowej kary. Aby ponownie wejść do sieci, atakujący musiałby dołączyć do kolejki aktywacyjnej, która zapewnia stopniowy wzrost zestawu walidatorów. Na przykład dodanie wystarczającej liczby walidatorów, aby podwoić ilość stakowanego etheru, zajmuje około 200 dni, co skutecznie daje uczciwym walidatorom 200 dni, zanim atakujący będzie mógł podjąć próbę kolejnego ataku 51%. Społeczność mogłaby jednak również zdecydować się na surowsze ukaranie atakującego, poprzez cofnięcie przeszłych nagród lub spalenie części (do 100%) jego stakowanego kapitału.

Niezależnie od kary nałożonej na atakującego, społeczność musi również wspólnie zdecydować, czy nieuczciwy łańcuch, mimo że jest faworyzowany przez algorytm wyboru forka zakodowany w klientach Ethereum, jest w rzeczywistości nieważny i czy społeczność powinna zamiast tego budować na uczciwym łańcuchu. Uczciwi walidatorzy mogliby wspólnie zgodzić się na budowanie na zaakceptowanym przez społeczność forku blockchaina Ethereum, który mógłby na przykład oddzielić się od kanonicznego łańcucha przed rozpoczęciem ataku lub mieć przymusowo usuniętych walidatorów atakującego. Uczciwi walidatorzy byliby zmotywowani do budowania na tym łańcuchu, ponieważ uniknęliby kar nakładanych na nich za (słuszne) niepoświadczanie łańcucha atakującego. Giełdy, rampy wejściowe i aplikacje zbudowane na Ethereum prawdopodobnie wolałyby być na uczciwym łańcuchu i podążałyby za uczciwymi walidatorami do uczciwego blockchaina.

Byłoby to jednak poważne wyzwanie w zakresie zarządzania. Niektórzy użytkownicy i walidatorzy niewątpliwie straciliby w wyniku powrotu do uczciwego łańcucha, transakcje w blokach zwalidowanych po ataku mogłyby zostać potencjalnie wycofane, zakłócając warstwę aplikacji, a to po prostu podważa etykę niektórych użytkowników, którzy skłaniają się ku wierze, że „kod jest prawem”. Giełdy i aplikacje najprawdopodobniej powiązały działania offchain z transakcjami onchain, które mogą teraz zostać wycofane, rozpoczynając kaskadę wycofań i rewizji, które trudno byłoby sprawiedliwie rozwikłać, zwłaszcza jeśli nieuczciwie zdobyte zyski zostały zmieszane, zdeponowane w DeFi lub innych instrumentach pochodnych z wtórnymi skutkami dla uczciwych użytkowników. Niewątpliwie niektórzy użytkownicy, być może nawet instytucjonalni, już odnieśli korzyści z nieuczciwego łańcucha, albo dzięki sprytowi, albo przypadkowi, i mogliby sprzeciwić się forkowi w celu ochrony swoich zysków. Pojawiły się wezwania do przećwiczenia reakcji społeczności na ataki >51%, aby można było szybko przeprowadzić rozsądną, skoordynowaną akcję łagodzącą. Jest kilka przydatnych dyskusji Vitalika na ethresear.ch tutajopens in a new tab i tutajopens in a new tab oraz na Twitterze tutajopens in a new tab. Celem skoordynowanej odpowiedzi społecznej powinno być bardzo ukierunkowane i konkretne ukaranie atakującego oraz zminimalizowanie skutków dla innych użytkowników.

Zarządzanie jest już skomplikowanym tematem. Zarządzanie awaryjną reakcją na poziomie warstwy 0 na nieuczciwy, finalizujący się łańcuch byłoby niewątpliwie wyzwaniem dla społeczności Ethereum, ale zdarzyło się todwa razy – w historii Ethereum).

Niemniej jednak, jest coś dość satysfakcjonującego w ostatecznym wyjściu awaryjnym osadzonym w świecie rzeczywistym. Ostatecznie, nawet z tym fenomenalnym stosem technologii nad nami, gdyby kiedykolwiek doszło do najgorszego, prawdziwi ludzie musieliby skoordynować swoje wyjście z tej sytuacji.

Podsumowanie

Na tej stronie zbadano niektóre sposoby, w jakie atakujący mogą próbować wykorzystać protokół konsensusu proof-of-stake Ethereum. Zbadano reorganizacje i opóźnienia nieodwołalności dla atakujących z rosnącymi proporcjami całkowitego stakowanego etheru. Ogólnie rzecz biorąc, bogatszy atakujący ma większe szanse na sukces, ponieważ jego stawka przekłada się na siłę głosu, której może użyć do wpływania na zawartość przyszłych bloków. Przy pewnych progowych ilościach stakowanego etheru, moc atakującego wzrasta:

33%: opóźnienie nieodwołalności

34%: opóźnienie nieodwołalności, podwójna nieodwołalność

51%: opóźnienie nieodwołalności, podwójna nieodwołalność, cenzura, kontrola nad przyszłością blockchaina

66%: opóźnienie nieodwołalności, podwójna nieodwołalność, cenzura, kontrola nad przyszłością i przeszłością blockchaina

Istnieje również szereg bardziej wyrafinowanych ataków, które wymagają niewielkich ilości stakowanego etheru, ale polegają na bardzo wyrafinowanym atakującym, który ma precyzyjną kontrolę nad czasem wiadomości, aby przekonać do siebie uczciwy zestaw walidatorów.

Ogólnie rzecz biorąc, pomimo tych potencjalnych wektorów ataku, ryzyko udanego ataku jest niskie, z pewnością niższe niż w przypadku odpowiedników proof-of-work. Dzieje się tak z powodu ogromnego kosztu stakowanego etheru, który jest zagrożony przez atakującego dążącego do przytłoczenia uczciwych walidatorów swoją siłą głosu. Wbudowana warstwa motywacyjna „kija i marchewki” chroni przed większością nadużyć, zwłaszcza w przypadku atakujących z niską stawką. Bardziej subtelne ataki odbijające i równoważące również mają małe szanse na powodzenie, ponieważ rzeczywiste warunki sieciowe sprawiają, że precyzyjna kontrola dostarczania wiadomości do określonych podzbiorów walidatorów jest bardzo trudna do osiągnięcia, a zespoły klienckie szybko zamknęły znane wektory ataków odbijających, równoważących i lawinowych za pomocą prostych łatek.

Ataki 34%, 51% lub 66% prawdopodobnie wymagałyby pozapasmowej koordynacji społecznej w celu ich rozwiązania. Chociaż byłoby to prawdopodobnie bolesne dla społeczności, zdolność społeczności do reagowania pozapasmowego jest silną zniechętą dla atakującego. Warstwa społeczna Ethereum jest ostatecznym zabezpieczeniem – technicznie udany atak mógłby zostać zneutralizowany przez społeczność zgadzającą się na przyjęcie uczciwego forka. Doszłoby do wyścigu między atakującym a społecznością Ethereum – miliardy dolarów wydane na atak 66% prawdopodobnie zostałyby zniweczone przez udany atak koordynacji społecznej, gdyby został on przeprowadzony wystarczająco szybko, pozostawiając atakującego z ciężkimi torbami niepłynnego, stakowanego etheru na znanym, nieuczciwym łańcuchu, ignorowanym przez społeczność Ethereum. Prawdopodobieństwo, że ostatecznie byłoby to opłacalne dla atakującego, jest na tyle niskie, że stanowi skuteczny środek odstraszający. Dlatego tak ważna jest inwestycja w utrzymanie spójnej warstwy społecznej o ściśle zbieżnych wartościach.

Dalsza lektura

Czy ten artykuł był pomocny?