116 / 736SYBIL

Sybil Attack

Jeden napastnik za wieloma pozornie niezależnymi uczestnikami

Sto kont nie musi oznaczać stu osób. Sybil Attack wykorzystuje tę różnicę: jeden napastnik udaje wielu uczestników. Dlatego Bitcoin nie wybiera historii na podstawie liczby podłączonych komputerów.

Sybil Attack polega na kontrolowaniu wielu tożsamości i przedstawianiu ich jako niezależnych uczestników. W Bitcoinie dodatkowe połączenia sieciowe same nie zwiększają mocy wydobywczej ani nie dają prawa do zmiany zasad. Mogą jednak pomóc napastnikowi wpływać na to, skąd konkretny węzeł otrzymuje informacje.

Anna wybiera usługę na podstawie poleceń na forum. Dziesiątki kont ją chwalą, lecz wszystkimi zarządza właściciel usługi. Zgodność tych opinii nie powstała niezależnie. John R. Douceur opisał podobny problem sieci komputerowych w pracy The Sybil Attack z 2002 roku: jeden przeciwnik może udawać wielu uczestników. Wymyślić nazwę jest łatwo; zdobycie potrzebnych adresów, serwerów (komputerów świadczących usługi innym) i połączeń może już kosztować pieniądze i czas. [1]

Peer w sieci Bitcoin to po prostu druga strona, z którą program wymienia dane. Piotr może prowadzić kilka węzłów, a firma znacznie więcej. Bitcoin nie wymaga rejestru osób przydzielającego każdemu jeden węzeł. Adres IP wskazuje miejsce w sieci, z którym program nawiązuje połączenie. Inny adres IP nie dowodzi więc, że właściciel też jest inny. Samo prowadzenie wielu węzłów nie jest atakiem; problem zaczyna się od wykorzystywania ich pozornej niezależności. [1] [3]

Full Node Piotra to program, który sam sprawdza reguły Bitcoina. Podpisanie oznacza tu użycie klucza prywatnego, czyli tajnej wartości liczbowej, do utworzenia sprawdzalnego dowodu autoryzacji płatności. Inni mogą zweryfikować podpis, nie znając tej tajnej wartości. Jeśli wszystkie połączone węzły prześlą węzłowi Piotra transakcję z nieprawidłowym podpisem, nadal ją odrzuci. Zgodnych odpowiedzi nie liczy jako głosów. Blok grupuje transakcje w pakiet dołączany do wspólnej historii. Węzeł sprawdza również całe bloki: na przykład czy nie wydają już wydanych środków lub nie tworzą niedozwolonej nagrody. Sieć dostarcza danych; o poprawności decydują reguły węzła, a nie popularność nadawcy. [2] [6] [9]

Czasami istnieją dwie konkurujące, poprawne gałęzie historii. Proof of Work pozwala porównać ich skumulowaną pracę — wagę wynikającą z trudności znalezionych bloków. Wydobywanie wymaga rzeczywistych prób obliczeniowych; zmiana nazwy komputera nie dodaje pracy. Jeśli napastnik rozdzieli ten sam sprzęt wydobywczy między wiele tożsamości, nie zwiększy tym jego łącznej mocy. Zasada jedno konto, jeden głos tutaj nie obowiązuje. [2] [6]

Tysiąc połączeń nie zastąpi klucza prywatnego potrzebnego do wydania cudzych bitcoinów. Samo mnożenie tożsamości nie pozwala też złamać zasad emisji ani zmusić poprawnie weryfikującego węzła do przyjęcia nieprawidłowego bloku. Nie jest to gwarancja ochrony przed każdym atakiem. Napastnik może dodatkowo zdobyć moc wydobywczą lub wykorzystać błąd programu. Te możliwości trzeba oceniać osobno, zamiast przypisywać je samej liczbie kont. [2] [9]

Wróćmy do węzła Piotra. Napastnik może próbować zapełnić jego listę znanych adresów i zająć połączenia. Jeśli kontroluje wszystkie istotne drogi do reszty sieci, może zatrzymywać bloki i pokazywać niepełny lub opóźniony obraz sytuacji. Taka izolacja to Eclipse Attack. Sybil Attack może ją ułatwić, ale wiele tożsamości napastnika jeszcze nie dowodzi skutecznego odcięcia. Sprawdzanie otrzymanych danych nie oznacza wiedzy o tych, które ktoś zataja. [3] [5] [8]

Bitcoin Core łączy kilka zabezpieczeń. Przy automatycznym wyborze połączeń wychodzących szuka różnorodności sieciowej, a znane adresy dzieli na grupy, by jedno źródło nie zdominowało łatwo całego wyboru. Krótkie połączenia próbne, zwane feeler, sprawdzają osiągalność innych węzłów. Te mechanizmy utrudniają atak; nie ustalają faktycznego właściciela każdego serwera i nie gwarantują ochrony przed izolacją. Implementacja się rozwija — źródła pokazują tu Bitcoin Core 29.0. [4] [7] [8]

Adres IP lub adres usługi Tor wskazuje programowi, dokąd się połączyć. Nie potwierdza, że po drugiej stronie jest nowa, niezależna osoba. Jeden operator może mieć wiele adresów, a kilku użytkowników dzielić publiczny adres IP lub część trasy sieciowej. Tor pomaga chronić prywatność połączenia, lecz jego adres sam nie dowodzi niezależności drugiej strony. Przesyłanie wiadomości i waga przy wyborze historii Bitcoina to odrębne sprawy. [3] [4]

Proof of Work rozwiązuje ważną część problemu pozornej większości, ale nie wszystkie zagrożenia komunikacji. Sieć P2P — bezpośrednia wymiana danych między uczestnikami — może być narażona na zalewanie ruchem, śledzenie i zatrzymywanie wiadomości. Obrona obejmuje zatem zarządzanie połączeniami i ograniczanie zużycia zasobów. Bezpieczeństwo zależy od tego, czym napastnik faktycznie dysponuje: samymi nazwami, trasami sieciowymi, mocą obliczeniową czy ich połączeniem. [1] [5] [6]

Licznik publicznie osiągalnych węzłów nie pokazuje liczby ludzi ani wyniku głosowania nad zasadami. Ważne jest również, skąd węzły biorą informacje i co same sprawdzają. Własny Full Node pozwala weryfikować otrzymane bloki, ale potrzebuje łączności z resztą sieci. Portfel to aplikacja lub urządzenie do odbierania i wysyłania bitcoinów. Jeśli korzysta z cudzego serwera, wiele węzłów działających gdzie indziej nie usuwa tej zależności. Więcej kontaktów nie oznacza automatycznie większej niezależności. [1] [3] [9]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Nakamoto Consensus, Eclipse Attack, Selfish Mining, Block Propagation, Bitcoin, Proof of Work. Do tego hasła prowadzą również odsyłacze z Byzantine Generals Problem, Nakamoto Consensus, Eclipse Attack, Selfish Mining.

DOC · 001John R. Douceur — The Sybil AttackŹródło pierwotne DOC · 002Satoshi Nakamoto — Bitcoin whitepaperŹródło pierwotne DOC · 003Bitcoin Developer Guide — P2P NetworkDokumentacja DOC · 004Bitcoin Core v29.0 — Peer connectionsDokumentacja DOC · 005Heilman et al. — Eclipse Attacks on BitcoinŹródło pierwotne DOC · 006The Bitcoin Backbone ProtocolŹródło pierwotne DOC · 007Bitcoin Core v29.0 — Address managerDokumentacja DOC · 008Bitcoin Optech — Eclipse attacksDokumentacja DOC · 009Bitcoin Core v29.0 — Block validationDokumentacja
Zaktualizowano: Najpierw źródła · To nie jest porada inwestycyjna