Pull to refresh

Comments 9

Предполагается, что большая часть валидаторов будет говорить истину

А что мешает злоумышленнику поднять ещё N тысяч валидаторов?

Думаю, совмещение данного алгоритма и PoS может быть вполне эффективным. В таком случае для поднятия N тысяч валидаторов злоумышленнику придется застэйкать кучу крипты.

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

Из этого следует, что сам алгоритм консенсуса уязвим к концентрациям связи, что вполне может приводить к выстраиванию картелей валидаторов. Но и при этом сам консенсус также продолжает работать, в том числе и для "подчиняющихся" монополии узлов. Эта проблематика схожа с ядром Tendermint, базируемым на задаче византийских генералов, где необходимым условием консенсуса является +2/3 сети вне зависимости от того, кто такую сеть наполняет.

Суть проблемы базируется на количественной мере выстраивания консенсуса, в то время как качественная способна содержаться в бизнес-логике. Решений может быть множество, начиная от централизованной валидации каждого узла (что более схоже с PoA), совмещением других алгоритмов консенсуса (подобия PoS, PoB) и заканчивая сохранением наиболее релевантных транзакций с последующей возможностью определения их внесения в новый блок (исходя из чего узлы смогут понимать, кто являлся злоумышленником, заменяющим транзакции).

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

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

Да, выкидывание определенных транзакций — это первое что приходит в голову
(или просто их замедление: хотите быстрее — платите держателю валидаторов).

Потенциально можно добиваться ненахождения консенсуса (commit), т.к. каждое взаимодействие между валидаторами (merge) его меняет.

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

Решений может быть множество, начиная от централизованной валидации каждого узла (что более схоже с PoA), совмещением других алгоритмов консенсуса (подобия PoS, PoB)

PoA — это отказ от децентрализации, тогда и блокчейн не нужен.
Добавление PoS нивелирует надобность в PoU, тогда можно и один PoS оставить.

Согласен с начальными суждениями.

Да, выкидывание определенных транзакций — это первое что приходит в голову

(или просто их замедление: хотите быстрее — платите держателю валидаторов).

...

Итого всё упрётся в бизнес-логику определения неправильных валидаторов,

Следующее суждение под вопросом.

Потенциально можно добиваться ненахождения консенсуса (commit), т.к.
каждое взаимодействие между валидаторами (merge) его меняет.

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

Добавление PoS нивелирует надобность в PoU, тогда можно и один PoS оставить.

Одна бизнес-логика (БЛ) (коей является PoS алгоритм, как бы это парадоксально не звучало) не приводит к консенсусу. Это можно наблюдать на примере PoS, который обязан объединяться с другими алгоритмами консенсуса, будь это BFT (задача византийских генералов, примером которой может являться Tendermint+Cosmos) или PoW. Наилучшее описание такого поведения можно найти также в статье на хабре https://habr.com/ru/post/600113.

PoU по своему определению более схож с BFT (как способу сетевого консенсуса), нежели с PoS (как консенсусу на базе БЛ). Одно без другого, как показывает практика, не способно существовать. Таким образом, PoS алгоритм может быть соединён с PoU, равно как и PoS с BFT.

PoA — это отказ от децентрализации, тогда и блокчейн не нужен.

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

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

По поводу вышеприведённого мне действительно нужно будет обдумать правильность суждения, потому как я исхожу из противостояния PoU и PoS, хотя в большей степени нужно исходить из разницы PoU с BFT (как сетевыми и количественными моделями обеспечения консенсуса).

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

То есть получаем такую атаку:

  • разделяем сеть так, чтобы жертва оказалась в меньшей подсети

  • в меньшей подсети проводим транзакцию и получаем от жертвы профит

  • восстанавливаем связность сети и транзакция откатывается автоматически

Не очень понял, в какой момент происходит коммит? Когда мы получили блоки от всех валидаторов? Или по таймауту? Аак добавляются новые валидаторы? Как вся сеть узнаёт общее количество валидаторов в каждый момент времени?

Не вижу, чтобы тут был возникал хоть какой-то консенсус. Как, например, решается проблема double spend?

Текст читается как философский трактат, отчего возникает ощущение, что перед мной разворачиваются фантазии автора. Отсутствие какой-то четкости в описании алгоритма лишь усиливает подозрение в том, что это и не алгоритм вовсе, а какая-то чепуха.

Sign up to leave a comment.

Articles