PoS: атака через приватные ключи и подлинная ценность забытого героя — Часть 2

PoS: атака через приватные ключи и подлинная ценность забытого героя — Часть 2 Каталог ICO

В предшествующей статье дискуссировалась слабенькая устойчивость PoS относительно PoW при развитии событий по наихудшим сценариям. В данной статье я желаю разобрать наихудший сценарий №3: атака через приватные ключи.

Существует два типа атак с внедрением приватных ключей: атака через старенькые ключи и атака через действующие ключи.

Атака через старенькые приватные ключи

PoS: атака через приватные ключи и подлинная ценность забытого героя — Часть 2В наиболее ранешних версиях PoS обычно употребляется фиксированный перечень валидаторов (узлов создающих новейшие блоки). Это значит, что юзеры, которые продали свои монеты в некий момент в прошедшем, всё ещё могут участвовать в процессе проверки (в PoS проверка равносильна созданию блоков) в дальнейшем. Это серьёзная дыра, поэтому что хоть какой, кто обладает этими устаревшими приватными ключами, в состоянии сделать много средств, переписывая историю, и при всем этом совсем ничем не рискуя. Эта неувязка также известна как «ничего на кону».

Для решения данной задачи в новейших версиях PoS употребляются динамические списки валидаторов и/либо контрольные точки. Мысль заключается в том, чтоб отменить Право недействительных заинтересованных сторон участвовать в будущей проверке.

Но, даже такие меры для PoS протоколов не могут вполне убрать делему. Два типа узлов как и раньше в особенности уязвимы:

  • Новейшие узлы лишь что присоединившиеся к сети;
  • длительно бездействовавшие узлы.

Так как эти узлы начинают работать с незапятанной памятью, или у их большой пробел в памяти, им будет тяжело найти тот факт, что пока они были в оффлайне, некие валидаторы уже продали свои монеты в “настоящей” цепи.

Некие сторонники PoS поторопятся сделать возражение, что подобная неувязка существует и для вновьподключившихся узлов в PoW, так что это допустимый вариант.

Этот аргумент является очень обманчивым. Хотя это и правда, что новейшие юзеры в системе PoW должны доверять кому-то, чтоб загрузить животрепещущую версию программного обеспечения и включить сам узел, но доверие не распространяется на выбор реальной цепи блоков.

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

Но оператор PoS-узла, даже с испытанным загруженным ПО, будет часто обращаться к доверенным третьим лицам за гарантией того, что он остаётся в канонической цепи. ужас утратить контакт с главный сетью и попасть в некорректную цепь будет постоянно, может быть весьма длительно даже опосля того, как доверенные третьи лица закончат существовать! Это свидетельствует о существенном ухудшении положения в области сохранности.

Все протоколы PoS мучаются от данной базовой задачи.

Атака через действующие приватные ключи

Во 2-м типе атаки приватные ключи являются действующими. Это значит, что не посодействуют ни списки динамических валидаторов, ни контрольные точки. (Практически, автоматические контрольные точки усугубили бы делему, сделав недопустимые разделения неизменными.)

Как это работает: злодей, получивший доступ к закрытым ключам, контролирующим по последней мере 1/3 всего объёма монет[1], просто сумеет сделать два реальных блока с схожим параметром порядкового номера, при этом ни один из блоков не будет казаться наиболее “правильным” для остальной части сети (отлично создавая разделение цепи). Это уже является разрушительным фактором для большинства протоколов PoS, потому что они обязаны приостановить работу, если порог добросовестного большинства 2/3+ не соблюдается. Ни один блок сейчас не быть может «запечатан» для хоть какого данного раунда. PoS цепь намертво зависнет в таком круговороте.

(Способность гарантировать непрерывное функционирование системы понятно как свойство «живучести»).

Наиболее пристальный взор на некие реализации PoS
Tendermint

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

«Подмножество валидаторов обязано согласовываться при помощи наружных средств для подписания предложения по реорганизации, которое выбирает форк.”

Честность хвалебна, но я вполне не согласен с тем, что это “решение” совершенно является решением. Завышенная зависимость от ручного вмешательства человека значит, что протокол является наименее масштабируемым и наиболее подверженным коррупции. Это далековато не та надежность к которой мы должны стремиться при разработке критически принципиального программного обеспечения на уровне инфраструктуры. Это базовая неувязка мышления, о которой я давал информацию в собственной предшествующей статье.

Casper

Casper тоже может зависнуть, если атакующий контролирует наиболее чем 1/3 монет.

Casper представляет проблемную теорию «утечки бездействия», где узлы штрафуются за уход в оффлайн. Преднамеренно вы перебегайте в автономный режим, чтоб причинить вред либо нет — не имеет значения. Это супер развращенное правило, поэтому что:

  • оно вводит новейшую уязвимость, когда злодей может устроить DDOS атаку на добросовестных валидаторов, вынудить их уйти в оффлайн и утратить средства;
  • это является возможным препятствием для роли узлов в процессе сотворения монет из-за ужаса штрафа и утраты средств. Таковая ситуация оказывает негативное воздействие на общую сохранность, так как роль в стейкинге (процессе сотворения и проверки блоков) очень принципиально для PoS (подробнее о этом ниже).

DFINITY

В DFINITY блок должен быть «нотариально заверен», практически доказан два раза, до этого чем он быть может запечатан. Атакующий с количеством монет больше чем 1/3 от общего объёма также может приостановить процесс нотариального подписывания блоков и заморозить протокол.

Есть несколько вещей, которые необходимо отметить в DFINITY.

DFINITY вводит механизм, который пробует эмулировать свойство «вес» цепи PoW (для решения конфликтов разделения цепи), но без издержек энергии. Механизм случайным образом присваивает “ранг” любому валидатору в раунде, через нечто, называемое “случайным маяком”. «Вес» всякого блока равен рангу валидатора, который его сделал. Проще говоря, мысль веса DFINITY базирована лишь на случайности (и все согласны с одной и той же случайностью).

Оставляя в стороне вопросец о том, вправду ли «случайный маяк» быть может реализован неопасно и децентрализованным методом, становится интуитивно понятно, что это неверная мысль.

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

С иной стороны, вес блока DFINITY субъективен и, как следует, им можно манипулировать. Этот воображаемый вес становится глупым, если:

  • узлы когда-либо не согласились со случайными значениями;
  • отказал источник случайных значений (к примеру: неспособность нотариально заверить блоки принудила бы случайный маяк зависнуть).

В целом, сохранность DFINITY быть может ужаснее, чем Tendermint и Casper. «Пороговая группа» это не плохая мысль, но представляет собой лишь подмножество всех активных валидаторов (k < N). Так как подмножества выбираются случайным образом, злостных узлов может оказаться очень много в неких подмножествах (и напротив, очень не много в остальных). Атакующий, который контролирует 1/3 перечня валидаторов, может обладать наиболее 1/3 толики роли в подмножестве. Он может ещё больше прирастить шансы, «измельчая» свои личности, пока не получит хотимый коэффициент роли. (Ему необходимо надзирать лишь некие пороговые группы и необязательно все.)

Роль в стейкинге

До сего времени в этом анализе мы подразумевали, что в худшем случае атакующий получает контроль над 1/3+ от общего объёма монет, что тяжело, но полностью может быть. Но по сути требования к атакующему намного ниже, потому что ему необходимо больше 1/3 монет лишь интенсивно участвующих в стейкинге.

Очень маловероятно, что все держатели монет будут участвовать в процессе стейкинга и проверки. Допустим, что толика роли составляет 50%, тогда злодею требуется не 1/3, а лишь 1/6 от общего объёма монет, чтоб сделать конфликтующие блоки/контрольные точки. Если толика роли составляет 25%, злодею требуется лишь 1/12. Это очень тревожно, так как, как уже говорилось, распределение богатства следует законам власти. Горстка самых богатых хозяев могла бы просто надзирать 1/12 припаса монет.

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

Еще один вопросец, усугубляющий делему кражи работающих ключей, это требование неизменного подключения в PoS: валидаторы должны держать свои приватные ключи для стейкинга в режиме онлайн, чтоб подписывать транзакции. Тот факт, что эти ключи постоянно подключены к сети значит, что они намного наиболее уязвимы для взлома либо кражи. Не имеет значения, контролируют эти ключи конкретно средства отвечающие за процесс стейкинга либо нет, но те, кто получает контроль над большинством этих ключей (которые принадлежат активному списку валидаторов), получают контроль над создаваемыми блоками [3].

Подлинная Ценность: позабытый герой

Проделав шажок вспять, давайте разберём секрет прорывных нововведений Биткойна. Есть три главных составляющих:

  • Случайность.
  • «Подлинная Ценность”.
  • Средства поощрения.
  • №1 и №2 являются качествами майнинга PoW, хотя №3 встроен в консенсусный код.

    №1 относится к области компьютерных наук и криптографии, в то время как №3 попадает в область экономики и теории игр.

    С иной стороны, №2 не вписывается ни в одну дисциплину. Ментальные модели, нужные для осознания №2 и его значимости, исходят из сочетания разных дисциплин, таковых как археология, эволюционная психология, Экономика и даже физика[2].

    Может быть, из-за этого недостаточно изученного нрава №2 почти все отвергли его и существенно недооценили его

    Это разумеется на примере одержимости DFINITY случайностью. Создатели DFINITY считают, что случайность — это ключ к решению всего.

    Ethereum Casper, с иной стороны, одержим стимулами до таковой степени, что выдумывает глупый термин: “криптоэкономика”. Исследователи Ethereum считают, что обмысленные проекты стимулов — это ключ к решению всего.

    Древняя поговорка «для молотка всё является гвоздём» как недозволено лучше открывает сущность разработки PoS-протокола.

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

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

    [1]: Отношение 1/3 происходит из отлично исследованной области обычных систем BFT (подмножеством которых и являются PoS-протоколы). Классические системы BFT не работают, когда 1/3 либо наиболее узлов стают злостными. термин BFT происходит от задачи византийских генералов, которая была определена Лэмпортом, Пизом и Шостаком в 1982 году.

    [2]: Прочитайте эссе Ника Сабо о происхождении средств, чтоб осознать значимость подлинной ценности.

    [3] Спасибо @datavetaren за проработку вопросца.

    Источник

    Оцените статью
    Добавить комментарий