Что такое Ripple-эквивалент «атаки 51%»?

В Биткойне, если участник получает контроль над более чем 50% хэш-мощности, он может выполнить атаку двойного расходования. «Атака» может исходить изнутри, скажем, если существующие могущественные майнеры решат изменить правила.

Есть ли у Ripple аналогичная проблема, когда несколько человек могут эффективно контролировать систему? Если да, то как это работает?

Ответы (2)

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

Эквивалент атаки 51% Биткойна в Ripple был бы, если бы какая-то группа получила контроль над достаточным количеством валидаторов, что процесс консенсуса потерпел неудачу. Поскольку люди специально выбирают валидаторов, которые, по их мнению, вряд ли вступят в сговор, сделать это будет исключительно сложно.

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

В этом случае серверы автоматически объявят сеть Ripple непригодной для использования. Пока проблема не будет решена, нельзя полагаться ни на какие результаты транзакций.

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

Таким образом, вам придется завоевать доверие людей, а затем в процессе атаки вы потеряете это доверие и вам придется начинать все сначала.

Напротив, если кто-то приобрел ASIC для атаки на биткойн, он может неоднократно атаковать биткойн. Непонятно, как Биткойн может отреагировать на такую ​​атаку, но изменение алгоритма майнинга (чтобы сделать ASIC атакующего бесполезным), вероятно, не имеет смысла, поскольку это также сделает бесполезными все инвестиции майнеров Биткойна в ASIC.

Как сеть следит за тем, чтобы не возникало кластеров валидаторов? Если я прав, узлы игнорируют предложения от других узлов, кроме тех, которым они доверяют. Что происходит, когда возникает кластер узлов, доверяющих только другим в кластере, но не имеющих связи с каким-либо другим узлом за пределами кластера?
Форк блокчейна :)
«Пока проблема не будет решена, нельзя полагаться ни на какие результаты транзакций». Означает ли это, что транзакции не будут проходить? Знал бы пользователь, что система находится в этом состоянии?
В биткойнах вы можете совершать двойные траты, если у вас достаточно хэш-мощности, и это сделано специально. Вы хотите сказать, что просто не можете дважды потратить в Ripple, а только просто остановить систему из-за отсутствия консенсуса (даже если вы контролируете большинство проверяющих узлов)?
@StevenRoose: Нет ничего плохого в кластере валидаторов, они просто образуют свою собственную сеть. Если вы хотите поддерживать согласованность с глобальной сетью валидаторов и хотите быть в той же книге, что и они, вы должны сообщить программе, что вы этого хотите.
@Manish: Да, в основном это правильно, если UNL обслуживаются должным образом. Но подумайте об этом — скажем, вы попали в это состояние, и теперь у вас есть две половины сети, которые не согласны. Сеть остановилась, и единственный способ исправить это — выбрать ту или иную сторону. Преимущество в том, что у вас не должно быть людей, которые полагались на транзакции одной или другой стороны.
Является ли это состояние «остановки» чем-то, о чем знает каждый узел? Или это похоже на биткойн, где вы могли бы счастливо продолжать строить альтернативную ветку вечно (и в итоге получить два реестра)? Что означает «остановка», означает ли это, что больше транзакций не будет?
@Manish: у сервера Ripple есть внутренние «ворота». Он продолжает работать на основе того, что видит в сети, формируя консенсус со всем, что может. Но он только сообщает клиентам о подтвержденных транзакциях, когда они проходят через эти «ворота». Если валидаторы не согласны, то через ворота ничего не пройдет. Сервер сообщит клиентам об устаревших данных и сообщит им, что у него нет текущих данных. Нельзя было полагаться на результаты каких-либо сделок. Если биткойн находится в аналогичном состоянии сбоя, он все равно успешно обрабатывает транзакции и сообщает о подтверждениях. (Хотя это очень редко.)

Напротив, если кто-то приобрел ASIC для атаки на биткойн, он может неоднократно атаковать биткойн.

Проблема в том, что на Земле недостаточно ASIC, чтобы организовать эффективную атаку на Биткойн. Существующие майнеры должны быть кооптированы как часть атаки, которая фактически становится разветвлением: новая цепочка отделяется с другими правилами. Что и произошло с фиаско bcash. Старая цепочка остается неизменной, в то время как новая сокращается, поскольку майнеры в конечном итоге капитулируют и возвращаются к более прибыльной цепочке консенсуса.