В этом блоге представлена архитектура наложения P2P Anoma, цель которой — учесть неоднородность узлов, сохраняя при этом преимущества текущих наложений благодаря концепции суверенных доменов.
Введение
В основе каждой распределенной системы лежит сеть связи. Эта коммуникационная сеть используется для обмена данными и координации задач между различными компонентами. То, как она спроектирована, зависит от требований распределенной системы.
Система блокчейна — это распределенная система: несколько компонентов обмениваются данными и координируют задачи, чтобы поддерживать византийский отказоустойчивый реплицируемый конечный автомат. Но в отличие от других распределенных систем, таких как традиционные архитектуры клиент-сервер, децентрализация является основным принципом систем блокчейна: каждая цепочка не должна иметь центрального органа или единой точки контроля. Таким образом, для этого также требуется децентрализованная коммуникационная сеть. Это именно то, что предлагают одноранговые (P2P) оверлеи.
Что такое оверлей P2P?
Оверлей P2P — это виртуальная сеть, построенная на базе Интернета. Это «виртуально»; в том смысле, что он создает логическую сеть взаимосвязанных узлов, которые не обязательно могут быть физически соседними или напрямую связанными. Наложение структурировано таким образом, что нет центральных сторон, которые облегчают координацию. Вместо этого стороны полагаются на своих соседей (также известных как коллеги) в оверлее. Узлы могут выступать в качестве клиентов при доступе к информации и в качестве серверов при предоставлении данных или услуг другим узлам. Поскольку у оверлея нет центрального органа управления, его узлы отвечают за управление виртуальными соединениями и обеспечение соответствия требованиям приложения, которое оно обслуживает, в нашем случае блокчейна.
Что блокчейны требуют от своих P2P-оверлеев?
Различным распределенным системам требуются разные сети связи. Из-за разнообразия архитектур различных блокчейн-систем сложно сделать обобщения относительно их требований к наложению P2P. Тем не менее, существуют определенные общие требования, которые мы разделяем на функциональные и нефункциональные.
Функциональные требования
Функциональные требования описывают конкретные функции и возможности, которые должен выполнять оверлей P2P. Блокчейны полагаются на свои P2P-оверлеи для:
Распространение данных: системы блокчейн полагаются на свои P2P-наложения для распространения данных соответствующим сторонам. Например, узлам-валидаторам необходимо распределять блоки транзакций по сети для локальной проверки, что имеет решающее значение для репликации состояния.
Хранение данных: оверлеи P2P играют ключевую роль в безопасном хранении данных. Важные данные должны храниться безопасно, чтобы гарантировать их доступность, даже если некоторые узлы становятся недоступными. Например, вновь полученные транзакции должны быть надежно сохранены для будущего выполнения.
Получение данных: наложение P2P также облегчает извлечение данных из блокчейна. Когда узел хочет получить доступ к определенным данным из блокчейна, он отправляет запрос соответствующим узлам, имеющим необходимую информацию. Например, если узел узнает, что ему не хватает транзакции, указанной в предложенном блоке, он может запросить недостающие транзакции у своих одноранговых узлов.
Нефункциональные требования
Нефункциональные требования описывают качества и атрибуты, которыми должно обладать наложение P2P. Системы блокчейна нуждаются в оверлеях P2P, чтобы предлагать:
Децентрализация: Оверлей P2P должен избегать единой точки контроля, что соответствует децентрализованной природе систем блокчейна.
Производительность. Чтобы обеспечить бесперебойную работу блокчейна, оверлей P2P должен обеспечивать распространение и извлечение данных с малой задержкой. Медленное распространение данных может привести к задержкам достижения консенсуса, что может привести к проблемам с синхронизацией блоков и открыть возможности для таких атак, как форк и двойное расходование.
Безопасность: оверлей должен противостоять атакам оверлея на узлы и их (виртуальные) соединения, а также обеспечивать безопасную среду для распространения, хранения и извлечения данных. Атаки с использованием оверлеев используют децентрализованную, распределенную природу оверлеев P2P, чтобы поставить под угрозу их безопасность и доступность. К распространенным оверлейным атакам относятся атаки Сивиллы, атаки затмения, атаки маршрутизации и атаки типа «отказ в обслуживании» (DoS).
Надежность: даже при наличии сбоев узла или соединения оверлей должен быстро восстановиться и продолжать предоставлять услуги блокчейну. Например, в системах блокчейна частота оттока (присоединение и удаление узлов) может быть высокой, и оверлей должен гарантировать, что протоколы, связанные с распространением, хранением и извлечением данных, достаточно надежны, чтобы справиться с этой динамической средой.
Масштабируемость: оверлей должен обеспечивать участие большого количества узлов без значительного ухудшения других нефункциональных требований.
Соответствуют ли текущие наложения P2P этим требованиям?
Очевидно, что существующие оверлеи P2P соответствуют своим функциональным требованиям, поскольку существующие блокчейны действительно работают. Однако существующие наложения создают нефункциональные проблемы для систем блокчейна. Например, исследования показали, что медленное распространение данных в оверлее Биткойн P2P может привести к разветвлениям блокчейна. Аналогичным образом, конструкция распространения данных P2P-оверлея Ethereum уязвима для атаки eclipse, которая может разделить P2P-сеть Ethereum. Очевидно, что есть некоторые проблемы, но прежде чем ответить на поставленный вопрос, нам нужно лучше понять, как устроены текущие P2P-оверлеи.
Текущие наложения P2P в системах блокчейна
Подавляющее большинство систем блокчейна полагаются на неструктурированные наложения P2P. В неструктурированном наложении P2P узлы соединяются с другими случайным образом, что приводит к случайной топологии графа. Узлы, получающие транзакции и блоки, передают их либо подмножеству своих соседей (сплетни), либо всем своим соседям (флуд). Неструктурированные наложения популярны благодаря присущей им надежности, поскольку они не требуют дополнительных усилий для восстановления определенной структуры топологии в случае сбоя узла или соединения. Однако неструктурированные наложения демонстрируют неоптимальную производительность и масштабируемость, когда дело доходит до распространения информации. В схемах лавинной рассылки нагрузка на каждого узла растет линейно с общим количеством широковещательных сообщений в оверлее, которое, в свою очередь, растет с размером оверлея. Протоколы сплетен создают меньшую нагрузку, но часто приводят к дополнительным задержкам распространения.
Попытки устранить проблемы с существующими наложениями P2P часто приводят к компромиссу между различными нефункциональными требованиями. Например, Kadcast использует структурированное наложение (Kademlia) как более производительная альтернатива топологии со случайным графом, но она менее надежна в среде, где узлы часто присоединяются к сети или покидают ее. BloXroute и Fiber уменьшают задержку в своих протоколах распространения, но не полностью децентрализовано: они вводят в сеть доверенные ретрансляторы.
Реальная проблема с этими наложениями P2P
Хотя мы, безусловно, поощряем улучшение существующих накладных программ, важно признать, что они сосредоточены на симптомах, а не на коренных причинах, что делает их малоподходящими для устойчивого долгосрочного развертывания. Основная причина этих проблем лежит глубже: существует фундаментальное несоответствие между развернутыми в настоящее время оверлеями P2P и сетями блокчейнов. Эти наложения, структурированные или неструктурированные, изначально были разработаны для приложений, которые не учитывали внутренние различия между узлами, что приводило, например, к снижению производительности в гетерогенных средах.
Блокчейны по самой своей природе содержат в себе гетерогенность: подмножества узлов обладают разными возможностями и предпочтениями в отношении задержки, пропускной способности и устойчивости к сбоям. Например, легким клиентам требуется меньшая пропускная способность по сравнению с валидаторами, поскольку они часто участвуют в обмене данными «один к одному», в то время как узлы валидатора участвуют в широковещательной передаче «один ко многим» по всей оверлейной сети и могут быть готовы использовать большую пропускную способность, если они могут достичь низкой задержки. Эти разнообразные требования требуют оверлейной архитектуры, способной учитывать неоднородность узлов.
Что мы могли с этим поделать?
Существующие работы над наложениями P2P, которые могут учитывать неоднородность узлов, обычно группируют узлы в отдельные подсети, которые требуют меньше связи с другими подсетями, и каждая подсеть имеет свое собственное независимое наложение P2P. Меньшие наложения P2P, как правило, могут распространять информацию более эффективно, поэтому эти многоуровневые архитектуры в системах блокчейна способствуют более быстрому распространению информации по сравнению с одним большим наложением. Более того, этот подход обеспечивает гибкость в адаптации протоколов распространения, хранения и извлечения данных к характеристикам и потребностям узлов в каждой подсети.
Например, Ethereum имеет один выделенный P2P-оверлей для узлов консенсуса (для обмена информацией о блоках) и один для узлов исполнения (для обмена информацией о транзакциях). . Оба наложения имеют разные спецификации и разные протоколы. В Polkadot каждый гетерогенный парачейн имеет свои отдельные (независимые) оверлеи P2P. Основное различие между двумя архитектурами заключается в масштабе: каждый узел Ethereum участвует в обоих оверлеях, тогда как каждый узел Polkadot участвует в одном парачейне или цепочке ретрансляции. По сути, архитектура Ethereum напоминает два параллельных оверлея, охватывающих всю сеть, тогда как P2P-сеть Polkadot состоит из нескольких меньших федеративных оверлеев, выделенных для подсетей.
Хотя эти оверлейные архитектуры P2P могут обеспечить гибкость, позволяющую компенсировать неоднородность узлов, они сопряжены с другими проблемами. Поскольку Ethereum требует, чтобы узлы запускали обе P2P-сети одновременно, это означает, что каждое наложение P2P имеет размер всей сети. Это устраняет преимущества в производительности, связанные с наложением P2P меньшего размера. С другой стороны, архитектура Polkadot, которая способствует более быстрому распространению и извлечению данных, обнаруживает уязвимости безопасности из-за разделения сети на более мелкие независимые подсети. Меньшие по размеру наложения P2P более восприимчивы к атакам наложения, поскольку злоумышленники могут скомпрометировать значительную часть наложения с меньшим количеством ресурсов.
Что нам с этим делать?
Идеальным решением является наличие оверлейной архитектуры, которая учитывает неоднородность узлов, сохраняя при этом преимущества существующих оверлеев. Именно это и призвана обеспечить архитектура оверлея P2P Anoma.
Подход Anoma предполагает сегментирование оверлея на более мелкие суверенные домены, каждый из которых работает независимо со своей собственной внутренней топологией и протоколами для данных. распространение, хранение и поиск. Эти протоколы можно адаптировать к характеристикам, потребностям и возможностям узлов домена.
Домены
Узлы могут инициировать домены для определенных целей. Например, узлы могут создавать домены для сервисов, специфичных для блокчейна (например, решения намерений) или сервисов, специфичных для сети (например, анонимная маршрутизация). Узлы могут одновременно участвовать в любом количестве доменов, в каком угодно количестве, ограничиваясь только собственными возможностями и протоколом членства каждого домена. Например, домен решателей намерений в Anoma может принимать запросы на присоединение только от доверенных решателей, а домен может удалять узлы, демонстрирующие хаотичное поведение.
Внутридоменные и междоменные протоколы
Узлы участвуют как во внутридомене, так и междомене протоколы. Узлы, участвующие в домене, несут ответственность за управление доменом. Это означает, что все узлы используют внутридоменные протоколы, такие как обнаружение узлов, для поддержания соединений с доступными узлами в этом домене. В отличие от федеративных многоуровневых архитектур, узлы в архитектуре Anoma также могут поддерживать соединения с небольшим подмножеством узлов из других доменов, обеспечивая междоменную маршрутизацию. Например, решателям в определенном домене решателя может потребоваться установить междоменные соединения с узлами в домене валидатора для отправки решенных намерений для выполнения блока. Такой подход обеспечивает междоменное общение и сотрудничество.
Репутация на основе узла и репутация на основе группы
Архитектура Anoma также поддерживает механизмы доверия, построенные на моделях репутации как на основе узлов, так и на основе групп. В этих системах репутации узлы ведут статистику о поведении других узлов и групп узлов и используют эту статистику, чтобы сделать вывод о том, как эти узлы и группы узлов могут вести себя в будущем.
Системы репутации на основе узлов позволяют узлам обнаруживать и учитывать надежность, предпочтения и возможности своих коллег. Например, узлы локально измеряют задержку прибытия сообщений. На основе этой информации узел может решить отправить сообщение по более длинному пути (больше переходов) в оверлее, но более быстрому, поскольку он избегает узлов с высокими ограничениями пропускной способности. Однако полагаться исключительно на систему репутации на основе узлов может оказаться неэффективной, поскольку она может быть ненадежной в динамических сетях.
Чтобы устранить это ограничение, в архитектуре Anoma также реализована групповая репутация, которая агрегирует историческое поведение узлов с течением времени, уменьшая влияние временных узлов. Групповая репутация способствует сотрудничеству и подотчетности, способствуя сотрудничеству между узлами и стимулируя их коллективно поддерживать положительную репутацию. Примечательно, что наша архитектура по своей сути облегчает поддержание репутации группы, поскольку наложение естественным образом сегментируется на отдельные группы (домены). Эта сегментация закладывает основу для надежного управления репутацией, гарантируя, что домены соответствуют таким требованиям, как производительность и безопасность. Например, репутация группы может использоваться для определения того, скомпрометирован ли злоумышленником небольшой домен, а честные узлы могут использовать эту информацию для присоединения к атакованному домену для восстановления функциональности.
Заключение
Архитектура наложения P2P от Anoma предлагает решение фундаментальных проблем, с которыми сталкиваются существующие наложения P2P в системах блокчейна. Вводя концепцию суверенных доменов и позволяя использовать как внутридоменные, так и междоменные протоколы, он предоставляет элегантные средства учета неоднородности узлов. Кроме того, включение моделей репутации на основе узлов и групп повышает производительность, безопасность и надежность наложения. Подход Anoma открывает путь для наложений P2P, которые могут лучше удовлетворять разнообразные требования сетей блокчейнов.