PoS: ошибочное инженерное мышление — Часть 1

2d0d1700bcaeb6480dd613f5f9518e6d

Консенсус доказательства доли (PoS) – яростно набирает популярность. У всех на слуху Ethereum Casper, Cardano, Ouroboros и ряд других проектов. Растущий интерес к PoS протоколам в сочетании с ошибочным представлением о том, что доказательство работы (PoW) в определённой степени «расточительно» (детали рассуждений здесь), вероятно, связан с желанием бесконечно масштабировать блокчейн.

В PoS протоколах есть одна плохо раскрытая тема — это низкая отказоустойчивость при возникновении наихудших сценариев работы[1]. Например: экстраординарные события способные отключить или разделить значительную часть сети или даже всю сеть. Или риск кражи (покупки) приватных ключей.

Можно подумать, что такие сценарии редки или маловероятны, но:

  • Они могут случаться не так редко, как вы считаете;
  • Даже вероятность в 0,1% означает, что в долгосрочной перспективе это может произойти. Нассим Талеб назвал такое теорией Черного лебедя.

Проще говоря, эти события крайне маловероятны, но когда они происходят, то результаты в большинстве случаев катастрофичны. Мы, люди, регулярно недооцениваем серьёзные события с далеко идущими последствиями. Находимся в иллюзии, что завтра будет так же безопасно только потому, что мир был безопасным в последние 10 или 100 лет.

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

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

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

В прошлом было много громких инженерных сбоев, которые четко демонстрируют этот тип скрытой опасности. Например:

1) Крушение Конкорда

Concorde (1976-2003) был одним из двух когда-либо существовавших сверхзвуковых пассажирских самолетов. Крушение Конкорда произошло в результате того, что во время взлета лопнувшая шина попала в топливный бак, вызвав цепную реакцию. Когда-то Конкорд считался одним из “самых безопасных в мире самолётов”.

2) Катастрофа Челенджера

Первоначально НАСА подсчитало, что вероятность неудачи равна 1 из 100 000. Ричард Фейнман возглавил расследование, которое обнаружило причину отказа уплотнительных колец расширяться при погодных условиях в 32 градуса. Истинные шансы были ближе к 1 из 100. Тысячекратный просчет!

3) Авария на Фукусиме (2011)

Япония — одна из самых лучших стран относительно технологий и безопасности для зон землетрясений. Расплавление реактора Фукусимы произошло в результате того, что можно назвать идеальным совпадением нескольких бедствий: землетрясение магнитудой девять баллов, самое мощное из когда-либо зарегистрированных в Японии, а затем 15-метровое цунами, происходящее раз в тысячу лет.

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

Давайте рассмотрим как PoW и PoS справляются с сегментированием сети и неожиданным отключением[2].

Отметим, что этот сценарий не так надуман, как можно было бы предположить: во время движения «Арабская весна» турецкое правительство успешно выполнило атаку по типу BGP hijacking, чтобы заблокировать трафик Twitter от турецких граждан. У Китая в распоряжении ещё более сложные инструменты для блокировки Интернет-трафика, что является частью их Великого Брандмауэра.

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

Итак, насколько устойчивы PoW или PoS-системы применительно к этим сценариям? Давайте рассмотрим несколько примеров.

Сценарий №1: Вся сеть принудительно отключается на некоторый период. Затем происходит перезагрузка

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

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

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

В PoS-консенсусе узлы не имели бы понятия, какая цепь является более “правильной” цепью. В отличие от PoW, в PoS отсутствует объективный критерий для сравнения “реальности” между 2 цепями. Поведение неопредёленно и его невозможно автоматизировать без введения некоторых сторонних правил, которые увеличивают вероятность атаки. Разделение может стать постоянным, так как некоторые PoS-протоколы не позволяют заходить слишком далеко в историю цепи.

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

Сценарий №2: Некоторые части сети отделяются от основной сети

Оказывается этот сценарий приводит к аналогичному результату, что мы наблюдали в сценарии №1. Изолированные участки сети продолжают работать так, как будто всё в норме, за исключением того, что количество “активных” узлов производящих монеты в каждом изолированном сегменте очень маленькое. Когда разделённые части восстановят контакт с основной сетью, возникнет путаница. Узлы понятия не имеют, какая цепь является канонической (главной) цепью.

Одно из важнейших различий между сценарием 1 и сценарием 2 заключается в том, что вероятность реализации сценария 2 гораздо выше. Перенаправление трафика проще, чем его полномасштабное блокирование — мы уже видели, как это делается. Изолированные части могут быть настолько малы, как сеть небольшого города. Можно представить, что нечто подобное происходит раз в несколько лет или даже чаще.

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

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

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

В PoW, это равносильно получению контроля над большей частью хешрейта сети.

Что может сделать участник сети, контролирующий наибольший хешрейт в PoW? Он может попытаться провести двойное расходование средств или переписать историю. Но для осуществления двойной траты он должен потратить много денег. Контроль над большей частью хешрейта это только первый шаг. Как бы страшно это ни звучало, но даже при таком сценарии протокол по-прежнему функционирует так как ожидалось, и только одна цепь может считаться действительной (хотя узлы SPV могут запутаться и поэтому в таких случаях часто дают рекомендацию запускать полные узлы). Для переписывания истории транзакций понадобится сумасшедшее количество средств, поэтому риск потери баланса (монет) для обычного пользователя невелик. Пользователи могут выбрать, и либо переждать шторм, либо принять меры для изменения PoW алгоритма.

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

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

  • переписать историю, если в протоколе отсутствуют контрольные точки;
  • вызвать противоречивые разделения цепи, если в протоколе есть контрольные точки (например, Casper). Изменение алгоритма PoS не поможет, поскольку практически нет затрат на переключение, в отличие от инвестиций в аппаратные средства в PoW.

Подводя итог, можно утверждать, что PoW дает два преимущества, относительно гарантий безопасности:

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

PoS не предлагает ничего из вышеперечисленного. Сторонники PoS могут утверждать, что контрольные точки облегчают проблему № 2, но на самом деле, контрольные точки просто переносят проблему из одной области в другую. Контрольные точки — это централизованное решение, открывающее еще одну банку червей[3].

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

Протоколы PoS построены на ошибочных и наивных предположениях, которые отказывают при активации наихудших сценариев. PoS — это шаг в неверном направлении, снижение уровня качества вместо его повышения.

[1]: Некоторый предварительный анализ PoS: Andrew Poelstra, ‘On Stake & Consensus’ https://download.wpsoftware.net/bitcoin/pos.pdf

[2]: Разделение сетей как важная часть исследования. Ethan Heilman: https://eprint.iacr.org/2015/263.pdf

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

Тема «атаки на приватные ключи» будет детально рассмотрена во второй части. Следите за обновлениями на сайте, подписывайтесь на BitNovosti в Telegram!

Источник: https://bitfeed.ru/pos-oshibochnoe-inzhenernoe-myshlenie-chast-1/

Add Comment

Required fields are marked *. Your email address will not be published.