P2P-сеть Ethereum: почему больший пул не всегда безопаснее
На протяжении многих лет общепринятым мнением в блокчейн-пространстве было то, что чем больше, тем лучше. Глобальная сеть Ethereum (EGN), обширный одноранговый (P2P) уровень, поддерживающий тысячи сервисов от основной сети Ethereum до бесчисленных других проектов, был построен именно на этой идее[cite: 4, 25]. Теория была проста: массивная, смешанная сеть, где каждый делит одно и то же пространство, будет способствовать обнаружению узлов и сделает экосистему более устойчивой к атакам[cite: 34, 35].
Однако критическая исследовательская работа «Место для каждого против каждого на своем месте: измерение и атака глобальной сети Ethereum» оспаривает это основополагающее убеждение. Исследование показывает, что эта архитектура «место для каждого», вместо того чтобы быть источником силы, приводит к серьезным неэффективностям и тревожным уязвимостям безопасности, которые могут затронуть сервисы с общей рыночной капитализацией более 500 миллиардов долларов США[cite: 6, 24].
Кошмар неэффективности: крик в толпе
Обещание EGN заключалось в том, что узлы могли легко находить и подключаться к одноранговым узлам, предлагающим тот же сервис[cite: 34]. Реальность оказалась совершенно иной. Исследование показало, что узлы отчаянно пытаются найти своих собратьев в огромном, шумном море EGN[cite: 8].
Неэффективность поразительна:
- Потерянные соединения: более 75% попыток подключения узла направлены на одноранговые узлы из совершенно разных сервисов[cite: 8].
- Чрезвычайные затраты на подключение: в одном поразительном случае узлу пришлось совершить в среднем 45 908 попыток подключения, чтобы найти одного действительного соседа[cite: 9]. Это резко контрастирует с предполагаемым показателем успеха Биткойна — один из четырех[cite: 54].
- Шаг назад: новый протокол обнаружения, Discv5, который должен был стать улучшением, работает еще хуже. В 12-часовом тесте узлы, использующие Discv5, установили три или менее соединений, в основном потому, что критически важный «механизм обнаружения тем», предназначенный для рекламы сервисов, остается нереализованным во всех основных клиентах[cite: 57, 59].
Основная проблема заключается в том, что подавляющее большинство узлов в EGN имеют таблицы маршрутизации (их «адресные книги»), заполненные нерелевантными одноранговыми узлами. Исследование показало, что большинство узлов Discv4 поддерживают менее 5% одноранговых узлов того же сервиса в своих DHT (распределенных хеш-таблицах)[cite: 44].
Иллюзия безопасности: уязвимый гигант
Вторым столпом аргумента «чем больше, тем лучше» была безопасность — что огромный размер EGN ослабит влияние любого злоумышленника[cite: 35]. В статье опровергается это предположение путем моделирования атаки загрязнения DHT, фундаментальной атаки, при которой вредоносные узлы заполняют адресные книги сети своими собственными записями[cite: 61, 62].
Результаты показывают, что смешанная природа EGN является не защитой, а критической уязвимостью[cite: 10, 65]:
- Разрушительно эффективно: всего 300 вредоносных узлов (менее 0,3% сети) могут загрязнить сеть настолько эффективно, что показатели успешности подключения для большинства сервисов упадут ниже 1%[cite: 11, 63].
- Массовая изоляция: всего через 24 часа эта мелкомасштабная атака смогла успешно разделить сеть, изолировав тысячи честных узлов от их сервисов[cite: 11, 64].
- Особенность дизайна, а не ошибка: эта уязвимость обусловлена не багом, а является неотъемлемым следствием смешанной архитектуры[cite: 65]. Когда та же атака была смоделирована на отдельных, выделенных сетях для каждого сервиса, она оказалась «в значительной степени неэффективной», потому что таблицы маршрутизации были чистыми и заполнены только релевантными одноранговы ми узлами[cite: 66].
Путь вперед: «Каждый на своем месте»
Исследование приходит к выводу, что смешанная архитектура EGN вредна, особенно для небольших сервисов, которые становятся побочным ущербом в этой неэффективной и небезопасной среде[cite: 37]. Решение состоит не в том, чтобы отказаться от глобальной сети, а в том, чтобы лучше ее организовать, перейдя от «места для каждого» к обеспечению того, чтобы «каждый был на своем месте»[cite: 522].
В статье предлагаются два ключевых решения:
- DHT, специфичные для сервисов: Обязать все узлы включать информацию о своем сервисе непосредственно в свою запись узла Ethereum (ENR)[cite: 490, 491]. Это простое изменение позволит узлам фильтровать и приоритизировать одноранговые узлы того же сервиса, значительно повышая эффективность обнаружения и безопасность без ущерба для децентрализации[cite: 495].
- Более надежные бутноды: Моделирование подчеркнуло критическую роль бутнодов как последней линии защиты от разделения сети[cite: 496]. В статье рекомендуется, чтобы сервисы увеличили количество своих бутнодов и настроили их на приоритетное хранение одноранговых узлов того же сервиса, создавая устойчивую основу для восстановления сети[cite: 499].
Для разработчиков и здоровья всей экосистемы эти выводы являются важным тревожным звонком. Надежный и эффективный P2P-уровень — это основа любого децентрализованного сервиса. Внедряя эти предложенные исправления, сообщество может двигаться к более организованной, безопасной и по-настоящему глобальной сети, которая работает для всех.