Niezależnie od dowodu pracy PoW, dowodu własności PoS czy delegowanego dowodu własności DPoS, o ile istnieje kwestia konsensusu, teoretycznie nie da się uniknąć ataków 51%. Osoba atakująca kontroluje główną sieć przez 51% odwracalne bloki, w wyniku czego powstaje podwójny kwiat.
wiedza podstawowa
Jako zdecentralizowany rozproszony system przechowywania danych publicznych, blockchain nie posiada centralnej organizacji zarządzającej. Zamiast tego jest wspólnie utrzymywany przez rozproszone węzły przy użyciu protokołów kryptograficznych, a każdy węzeł utrzymuje cały system. Spójność księgi musi być zapewniona poprzez podstawowy protokół konsensusu. Blockchainy mają różne praktyczne zastosowania w różnych scenariuszach z życia codziennego, takich jak łańcuchy publiczne, łańcuchy prywatne i łańcuchy sojuszy. Różne łańcuchy korzystają z różnych algorytmów konsensusu, takich jak konsensus PoW używany przez Bitcoin i konsensus PoW używany przez Ethereum. , DPoS konsensus stosowany przez EOS, a bezpieczeństwo związane z różnymi algorytmami konsensusu jest inne.
W tym artykule szczegółowo opisano ryzyko ataku występujące w protokołach konsensusu PoW używanych przez Bitcoin i Ethereum.
Mechanizm konsensusu PoW
Najpierw przyjrzyjmy się, czym jest protokół konsensusu PoW.
Z perspektywy zdecentralizowanego systemu księgi głównej każdy węzeł przyłączający się do systemu musi prowadzić pełną księgę, ale każdy węzeł nie może prowadzić rachunków w tym samym czasie, ponieważ węzły znajdują się w różnych środowiskach i otrzymują różne informacje. Dlatego do osiągnięcia potrzebne jest konsensus który węzeł ma prawo prowadzić konta. Blockchainy Bitcoin i Ethereum rozwiązują problem spójności zdecentralizowanego systemu rachunkowości poprzez rachunkowość konkurencyjną, czyli mechanizm wykorzystujący moc obliczeniową każdego węzła, czyli „moc obliczeniową” do rywalizacji o prawa księgowe. Proces praw księgowych jest „górnictwo”.
Kto jednak w systemie zdecentralizowanym ma prawo decydować o wyniku konkurencji? Systemy blockchain Bitcoin i Ethereum są realizowane poprzez mechanizm konsensusu zwany Proof of Work (PoW).
PoW (Proof of Work), czyli „Proof of Work”. W uproszczeniu PoW to certyfikat potwierdzający, że końcówka robocza wykonała określoną ilość pracy. Końcówka robocza musi wykonać pewną ilość trudnej pracy, aby uzyskać wynik, a weryfikator wykorzystuje wyniki, aby sprawdzić, czy końcówka robocza wykonała odpowiednią pracę.
W wydobywaniu poprzez konsensus dotyczący dowodu pracy należy przestrzegać trzech zasad:
Tylko jedna osoba może pomyślnie rejestrować konta w określonym czasie
Rywalizuj o wyłączne prawo księgowe rozwiązując zagadki kryptograficzne (czyli dowód pracy)
Pozostałe węzły weryfikują i kopiują wyniki rozliczeń
Na przykład, biorąc pod uwagę ciąg „blockchain”, wymaganym przez nas obciążeniem jest to, że możemy połączyć ciąg wartości całkowitych o nazwie nonce po tym ciągu i wykonać operację skrótu SHA256 na połączonym ciągu. Jeśli Uzyskany wynik mieszania (wyrażony w formacie szesnastkowym formularz) zaczyna się od kilku zer, następnie weryfikacja przebiega pomyślnie. Aby osiągnąć ten cel w postaci dowodu pracy, musimy stale zwiększać wartość jednorazową i wykonywać operację skrótu SHA256 na nowym uzyskanym ciągu.
Hash (wartość poprzedniego Hash, zestaw informacji o rekordzie transakcji) = 29329385BNDH749 Hash (wartość poprzedniego Hash, zestaw informacji o rekordzie transakcji, liczba losowa nonce) = 000029329385BNDH749
Na przykład skrót wysokości bloku 512884 w Bitcoin to:
000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69
Dowodem pracy wymaganej do wygenerowania tego bloku poprzez księgowanie jest 16**18 obliczeń skrótu, co stanowi bardzo dużą ilość obliczeń.
51% ataku
Po krótkim przedstawieniu prostych zasad bloków pakowania poprzez księgowość i PoW, wróćmy do naszego pytania, czym jest atak 51% i czym jest atak podwójnego wydatku?
Atak polegający na podwójnym wydatkowaniu odnosi się po prostu do ataku, w którym token jest używany za pośrednictwem wielu metod płatności, co oznacza, że ta sama waluta jest wydawana wielokrotnie. Istnieje wiele sposobów przeprowadzenia ataku polegającego na podwójnych wydatkach, w tym następujące formy:
51% ataku
Atak rasowy
Atak wektora 76
Atak historii alternatywnej
Oznacza to, że jeśli atakujący kontroluje więcej niż 50% mocy obliczeniowej całej sieci, może zastosować podwójne wydatki poprzez atak 51%.
Tutaj analizujemy jedynie proces ataku 51%.
Atak 51%, znany również jako atak większości. Atak ten powoduje podwójne wydatki poprzez kontrolowanie mocy obliczeniowej sieci. Jeśli atakujący kontroluje więcej niż 50% mocy obliczeniowej w sieci, to w okresie kontrolowania mocy obliczeniowej może odwrócić blok, przeprowadzić odwrotne transakcje i osiągnąć podwójne wydatki.
W protokole konsensusu PoW system blockchain pozwala na jednoczesne istnienie wielu rozwidlonych łańcuchów, a każdy łańcuch może zadeklarować światu zewnętrznemu, że jest poprawny. Istnieje jednak najdłużej obowiązująca zasada w koncepcji projektu blockchainu: „Nieważne. W którym momencie najdłuższy łańcuch jest uważany za główny, wymagający najwięcej pracy?”
Zasymulujmy krótko proces ataku 51%:
Jeśli jest taki atakujący, to celowo rozgłasza pierwszą transakcję do połowy sieci, a drugą transakcję do drugiej połowy sieci, po czym po obu stronach jest dokładnie dwóch górników, którzy uzyskują uprawnienia księgowe po niemal identycznych cenach czas i odpowiednie uprawnienia księgowe. Blok jest transmitowany do wszystkich. W tej chwili możesz wybrać dowolną księgę. Pierwotna ujednolicona księga uległa rozwidleniu.
Następnie, jeśli następny górnik zdecyduje się kontynuować księgowanie w oparciu o A, gałąź A będzie dłuższa niż gałąź B. Zgodnie z zasadami blockchain, rozpoznana zostanie najdłuższa gałąź, krótsza gałąź zostanie porzucona, a księga nadal będzie be powróci do jednego i tylko jedna transakcja będzie ważna.
W tym momencie zostaje rozpoznana gałąź A i potwierdzona odpowiednia transakcja. Jeśli atakujący zdobędzie produkt, natychmiast przemienia się w górnika i zdobywa dwa kolejne uprawnienia księgowe, po czym dodaje dwa bloki do gałęzi B.
Następnie oddział B staje się uznanym oddziałem. W tym momencie oddział A zostaje porzucony. Transakcja w oddziale A nie jest już ustanowiona. Waluta płatnicza atakującego w oddziale A jest już ponownie ważna, ale atakujący zdobył już towar. atak wydatków został pomyślnie zakończony. Problem polega na tym, że gdy gałąź B pozostaje w tyle, w rzeczywistości bardzo trudno jest zmusić ją do prześcignięcia gałęzi A, a prawdopodobieństwo powodzenia jest bardzo niskie, jeśli jednak atakujący kontroluje więcej niż 50% mocy obliczeniowej sieci całej sieci, to nawet jeśli zostanie w tyle, sporo, a dogonienie go jest tylko kwestią czasu. Jest to wspomniany powyżej „atak 51%.
Analiza przypadku ataku Bitcoin Gold 51%.
W prawdziwym świecie blockchain doszło do wielu podwójnych wydatków spowodowanych atakami 51%.
Na przykład problem podwójnego wydawania w Bitcoin Gold (moneta BTG) to atak 51% Proces ataku przebiega następująco:
Atakujący kontroluje ponad 51% mocy obliczeniowej w sieci Bitcoin Gold W okresie kontrolowania mocy obliczeniowej wysłał do swojego portfela na giełdzie pewną ilość BTG. Nazwaliśmy ten oddział oddziałem A.
W tym samym czasie wysłał te BTG do innego portfela, który kontrolował. Nazwaliśmy ten oddział oddziałem B.
Po potwierdzeniu transakcji w oddziale A atakujący natychmiast sprzedaje BTG i otrzymuje gotówkę. W tym momencie gałąź A staje się głównym łańcuchem.
Następnie atakujący eksploruje gałąź B. Ponieważ kontroluje ona ponad 51% mocy obliczeniowej, atakujący ma duże prawdopodobieństwo uzyskania praw rozliczeniowych, więc wkrótce długość gałęzi B przekroczy główny łańcuch (czyli długość gałęzi A), wówczas gałąź B stanie się łańcuchem głównym, a transakcje na gałęzi A zostaną wycofane, przywracając dane do ostatniego prawidłowego stanu.
Innymi słowy, oddział A zostaje przywrócony do stanu sprzed zainicjowania przez atakującego pierwszej transakcji, a BTG, które atakujący wcześniej zamienił na gotówkę, znów znajduje się w jego rękach.
Na koniec osoba atakująca wysyła te BTG do innego swojego portfela. W ten sposób atakujący kontrolował ponad 51% mocy obliczeniowej, aby osiągnąć „podwójne wydanie” tego samego tokena.
Zgodnie z raportem dotyczącym danych blockchain dotyczących tego ataku, atakujący pomyślnie odwrócił 22 bloki. Adres Bitcoin Gold objęty tym atakiem otrzymał ponad 388 200 dolarów BTG Zakładając, że wszystkie te transakcje są związane z podwójnymi wydatkami, atakujący może osiągnąć 18,6 miliona dolarów Z giełdy mogła zostać skradziona wartość środków
Oprócz problemu podwójnego wydawania, który wystąpił w Bitcoin Gold, istnieje wiele przypadków ataków podwójnego wydawania spowodowanych atakami 51%:
Anonimowy handlarz walutą cyfrową złośliwie wydobył kiedyś ponad 35 milionów #xvg w ciągu zaledwie kilku godzin o wartości około 1,75 miliona dolarów.
Japońska kryptowaluta Monacoin najwyraźniej została dotknięta atakiem polegającym na odliczaniu bloków po tym, jak górnik uzyskał do 57% mocy obliczeniowej sieci.
Oficjalne wiadomości Litecoin Cash (LCC), LCC doznało ataku 51%.
Cyfrowa waluta #zen również doznała ataku 51%.
Niedawno Ethereum Classic #etc doznał ataku 51%.

