Sybil Attack — це атака, за якої один противник контролює багато ідентичностей і представляє їх як незалежних учасників. У Bitcoin додаткові мережеві з’єднання самі собою не додають потужності для майнінгу й не дають права змінювати правила. Проте вони можуть допомогти впливати на джерела інформації певного вузла.
Анна обирає сервіс за рекомендаціями на форумі. Десятки облікових записів його хвалять, але всіма керує власник сервісу. За схожими відгуками стоїть один автор, а не незалежні думки. Джон Р. Дусер описав відповідну проблему комп’ютерних мереж у праці The Sybil Attack 2002 року: один противник може вдавати кількох учасників. Вигадати ім’я легко; отримати потрібні адреси, сервери (комп’ютери, що надають послуги іншим) і з’єднання може коштувати грошей і часу. [1]
У мережі Bitcoin пір — це просто інша сторона, з якою програма обмінюється даними. Петро може запустити кілька вузлів, а компанія — значно більше. Bitcoin не вимагає реєстру людей, який надавав би кожному лише один вузол. IP-адреса вказує місце в мережі, до якого підключається програма. Отже, інша IP-адреса не доводить, що власник також інший. Саме по собі керування кількома вузлами не є атакою; проблема починається зі зловживання їхньою уявною незалежністю. [1] [3]
Full Node Петра — це програма, яка самостійно перевіряє правила Bitcoin. Підписати тут означає за допомогою приватного ключа, секретного числового значення, створити перевірний доказ дозволу на платіж. Інші можуть перевірити підпис, не знаючи цього секрету. Навіть якщо всі підключені піри надішлють вузлу Петра транзакцію з недійсним підписом, він її відхилить. Однакові відповіді не рахуються як голоси. Блок об’єднує транзакції в пакет, який додають до спільної історії. Вузол також перевіряє цілі блоки: наприклад, чи не витрачають вони вже витрачені кошти та чи не створюють недозволеної винагороди. Мережа постачає дані; їхню дійсність визначають правила вузла, а не популярність відправника. [2] [6] [9]
Іноді існують дві конкуруючі дійсні гілки історії. Proof of Work дає змогу порівняти їхню накопичену роботу — вагу, що випливає зі складності знайдених блоків. Майнінг потребує реальних обчислювальних спроб; перейменування комп’ютера не додає роботи. Якщо нападник розподілить те саме обладнання між багатьма ідентичностями, його сумарна потужність від цього не зросте. Принцип «один обліковий запис — один голос» тут не діє. [2] [6]
Тисяча з’єднань не замінить приватного ключа, потрібного для витрачання чужих біткоїнів. Саме множення ідентичностей також не порушить правил емісії й не змусить вузол із правильною перевіркою прийняти недійсний блок. Це не гарантія захисту від будь-якої атаки. Противник може додатково отримати потужність майнінгу або використати помилку програми. Ці можливості треба оцінювати окремо, а не приписувати самій кількості облікових записів. [2] [9]
Повернімося до вузла Петра. Нападник може намагатися заповнити його список відомих адрес і зайняти з’єднання. Якщо він контролює всі суттєві шляхи до решти мережі, то може затримувати блоки й показувати неповну або застарілу картину подій. Таку ізоляцію називають Eclipse Attack. Sybil Attack може допомогти її досягти, але багато ворожих ідентичностей ще не доводять успіху ізоляції. Перевіряти отримані дані — не те саме, що знати про приховані від вас дані. [3] [5] [8]
Bitcoin Core поєднує кілька перешкод. Автоматично обираючи вихідні з’єднання, він прагне мережевої різноманітності й розподіляє відомі адреси на групи, щоб одному джерелу було складніше захопити весь вибір. Короткі пробні з’єднання feeler перевіряють доступність інших пірів. Ці механізми ускладнюють атаку; вони не встановлюють справжнього власника кожного сервера й не гарантують захисту від ізоляції. Реалізація розвивається — джерела тут показують Bitcoin Core 29.0. [4] [7] [8]
IP-адреса або адреса сервісу Tor вказує програмі, куди підключатися. Вона не засвідчує, що на іншому боці є нова незалежна людина. Один оператор може мати багато адрес, а кілька користувачів — спільну публічну IP-адресу чи частину мережевого шляху. Tor корисний для приватності з’єднання, але його адреса сама не доводить незалежності піра. Передавання повідомлень і вага під час вибору історії Bitcoin — різні речі. [3] [4]
Proof of Work розв’язує важливу частину проблеми удаваної більшості, але не всі ризики зв’язку. Мережа P2P — безпосередній обмін даними між учасниками — може зазнавати перевантаження, стеження й затримування повідомлень. Тому захист також передбачає керування з’єднаннями та обмеження споживання ресурсів. Безпека залежить від того, що саме контролює нападник: лише імена, мережеві шляхи, обчислювальну потужність або їх поєднання. [1] [5] [6]
Лічильник публічно доступних вузлів не показує кількості людей чи результату голосування щодо правил. Важливі також джерела інформації вузлів і їхні власні перевірки. Ваш Full Node дає змогу перевіряти отримані блоки, але потребує зв’язку з рештою мережі. Гаманець — це застосунок або пристрій для отримання й надсилання біткоїнів. Якщо він використовує чужий сервер, велика кількість вузлів десь іще не усуває цієї залежності. Більше контактів не означає автоматично більше незалежності. [1] [3] [9]
Для повної картини прочитайте також Nakamoto Consensus, Eclipse Attack, Selfish Mining, Block Propagation, Bitcoin, Proof of Work. На цю статтю також посилаються Byzantine Generals Problem, Nakamoto Consensus, Eclipse Attack, Selfish Mining.