Nano Hash - криптовалюты, майнинг, программирование

Как вы нейтрализуете атаки переполнения номера предложения в Byzantine Paxos?

В последнее время я провел много исследований о Паксосе, и одна вещь, о которой я всегда задавался вопросом, я не вижу ответов, а это значит, что я должен спросить.

Paxos включает увеличивающийся номер предложения (и, возможно, также отдельный круглый номер, в зависимости от того, кто написал статью, которую вы читаете). И, конечно же, два потенциальных лидера могут вступить в дуэль, где каждый пытается превзойти другого в порочном круге. Но поскольку я работаю в византийской среде P2P, это заставляет меня задуматься о том, что делать с теми, кто предлагает, которые попытаются установить слишком большое число предложений — например, максимальное 32-битное или 64-битное слово.

Как протокол на основе Paxos, не зависящий от языка и платформы, должен работать с целочисленными максимумами для количества предложений и/или числа раундов? Особенно преднамеренные/злонамеренные случаи, которые делают модульно-арифметический подход переполнения обратно к 0 немного непривлекательным?


Ответы:


1

Из того, что я прочитал, я думаю, что это все еще открытый вопрос, который не рассматривается в литературе.

Byzantian Proposer Fast Paxos устраняет отказ в обслуживании, но только будет задерживать отправку сообщений из-за атак, не связанных с флудом, с увеличивающимися (предлагаемыми) счетчиками.

Сказав это, целочисленное переполнение, вероятно, является наименьшей из ваших проблем. Вместо того, чтобы думать о целочисленном переполнении, вы можете сначала рассмотреть атаки членства (через DoS). Получение информации о членстве после получения консенсуса от нескольких узлов может быть жизнеспособной стратегией, но, вероятно, все еще уязвимой для атак Sybil на каком-то уровне.

Другой стратегией может быть включение некоторой системы подтверждения выполнения предложений по ограничению поток запросов. Однако трудно понять, что использовать в качестве метрики для баланса (например, бесплатная валюта при майнинге цепочки блоков в биткойнах). Это действительно зависит от того, какой тип системы вы пытаетесь построить. Вы должны учитывать ценность информации в вашей системе, а затем создать систему проверки работоспособности, для обхода которой потребуется несколько больше затрат.

Однако если у вас есть возможность замедлить работу счетчика предложений, вам все равно придется беспокоиться о целочисленных максимумах в любой системе с большим количеством (действительных) операций. У вас должна быть стратегия переноса чисел или схема с множественной точностью, с помощью которой вы сможете четко определить, сколько лет/десятилетий ваша сеть может работать, не сталкиваясь с проблемами и не сбрасывая счетчик с фиксированной точностью. Если вы можете определить, что ваша система будет работать в течение 100 лет (или сколько-то еще), не сбивая счетчик с фиксированной точностью, даже с вредоносными объектами, тогда вы можете упростить ситуацию.

С другой (важной) стороны, системная модель, используемая в большинстве статей, не отражает всего, что делает практическую реализацию в реальной жизни (Raft является хорошим исключением из этого правила). Во всяком случае, некоторые авторы виновны в создании модели системы, предназначенной для того, чтобы избежать трудной проблемы, на которую они не нашли ответа. Итак, если кто-то говорит, что X решит все, имейте в виду, что они имеют в виду только то, что он решает все в очень конкретной модели системы, которую они определили. С другой стороны, вы должны учитывать, что модель системы тесно связана с утверждением, в котором говорится: «Y невозможно». Хорошим примером для объяснения этой концепции является полностью асинхронная передача сообщений Алгоритм консенсуса Бен-Ор, который использует недетерминизм в конечном автомате модели системы, чтобы избежать ограничений, указанных результат невозможности FLP (который указывает, что консенсус требует частично асинхронной передачи сообщений, когда конечный автомат системной модели является детерминированным).

Таким образом, вы должны продолжать рассматривать «невозможное» после того, как прочтете доказательство, в котором говорится, что это невозможно сделать. Нэнси Линч сделала хорошую статью об этой концепции.

Я думаю, что я действительно говорю, что хорошего решения вашего вопроса пока не существует. Если вы это выясните, пожалуйста, опубликуйте ее (или дайте мне знать, если вы найдете существующую статью).

05.02.2014
  • Отличный ответ! К сожалению, у меня до сих пор нет ответа на этот вопрос. Однако благодаря несвязанным упрощениям протокола мне удалось полностью избежать этой проблемы, используя модель, которая похожа только на Paxos и вообще не требует счетчика. Вероятно, это хороший пример из реальной жизни создания системной модели, предназначенной для того, чтобы избежать сложной проблемы, на которую они не нашли ответа, но есть и другие преимущества. Простое всегда лучше, если его можно заставить работать. 09.02.2014
  • Отличный ответ! Мне интересно, можно ли использовать доказательство работы для избрания лидера в невизантийском контексте? Я также подозреваю, что есть решения этой проблемы, подобные блокчейну. Интересно - есть ли византийское обобщение плота? 24.09.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..