Данный материал является переводом статьи блокчейн-энтузиаста и колумниста Medium, Хьюго Нгуена. Материал отображает его личное мнение и может не совпадать с позицией редакции.
Сегодня алгоритм Proof-of-Stake (PoS) очень популярен. На нем основаны Ethereum Casper, Cardano Ouroboros и т. д. Растущий интерес к PoS-протоколам связан, вероятно, с желанием добиться безграничного масштабирования блокчейнов, а также с ошибочным представлением о «расточительности» к ресурсам алгоритма Proof-of-Work (PoW). Но при этом не уделяется должного внимания проблеме PoS-протоколов: свойственному им отсутствию запаса прочности при реализации наихудших вариантов развития событий [1].
В качестве примера здесь можно привести экстраординарные ситуации, способные привести к выходу из строя или отделению значительной части или даже всей сети. Или риск кражи и перепродажи закрытых ключей.
Можно подумать, что такие события случаются редко, но а) они могут происходить чаще, чем вы думаете, и б) даже вероятность 0,1 % означает, что в долгосрочной перспективе оно произойдет. Нассим Талеб назвал такого рода события «черным лебедем».
Другими словами, эти события маловероятны, но когда они случаются, последствия часто бывают катастрофическими. Мы, люди, постоянно недооцениваем значимые события «длинного хвоста». Например, сюда можно отнести иллюзию того, что завтра все будет хорошо, потому что так было последние 10 или 100 лет.
Тщательное рассмотрение событий «длинного хвоста» особенно важно при разработке протокола, способного стать основой мировой экономики, на который будут полагаться миллионы людей и предприятий.
Мы должны обращаться с ПО Биткоина так же осторожно, как с ПО ядерного реактора. В технической литературе этот класс программного обеспечения называют критически важными системами. Существует три типа таких систем: критически важные для обеспечения безопасности, для выполнения задачи и для жизнедеятельности предприятия. Биткоин соответствует всем трем типам (потеря денег может привести и к потере жизни). Права на ошибку нет.
Даже текущий уровень безопасности Биткоина, далекий от совершенства, едва ли способен удовлетворить требования опытных инженеров. Они знают, что мы постоянно находимся в одном шаге от катастрофы, несмотря на то, что в теории все выглядит надежно и пока дела идут хорошо.
В прошлом инженеры допускали немало крупных ошибок, которые наглядно демонстрируют скрытые опасности такого рода. Вот несколько примеров.
1) Крушение «Конкорда» (2003).
«Конкорд» (1976–2003) был одним из двух типов сверхзвуковых пассажирских самолетов во всем мире. Крушение «Конкорда» произошло из-за того, что во время взлета лопнула шина и ее фрагмент повредил топливный бак, вызвав цепную реакцию. «Конкорд» когда-то считался одним из «самых безопасных самолетов в мире».
2) Катастрофа шаттла «Челленджер» (1986).
Согласно первоначальным подсчетам НАСА, вероятность неудачи составляла 1 на 100 000. Расследование инцидента возглавлял Ричард Фейнман. Вместе с комиссией он выяснил, что причиной катастрофы стали уплотнительные кольца, которые теряли эластичность при 0 °C. То есть фактическая вероятность неудачи приближалась к 1 на 100. Просчитались в тысячу раз!
3) Авария на АЭС Фукусима (2011).
Япония – одна из стран, в которых хорошо развиты технологии для защиты от землетрясений.
Авария на АЭС Фукусима произошла в результате того, что можно назвать идеальным стечением крайне неблагоприятных обстоятельств: землетрясение магнитудой 9 (самое сильное из когда-либо зарегистрированных в Японии) с последовавшим за ним цунами с высотой волны 15 м, которое случается раз в тысячу лет.
Рассматривать наихудшие сценарии при работе с критически важными системами абсолютно необходимо. И еще более важно это делать, если такие системы функционируют в масштабе всего мира.
* * *
Давайте посмотрим, насколько PoW и PoS уязвимы для разделения сети и внезапных перебоев в ее работе [2].
Не стоит думать, что такие сценарии маловероятны. Во время волны протестов «Арабская весна» правительство Турции успешно захватило определенные группы IP-адресов, чтобы заблокировать относящийся к твиттеру трафик, исходящий от граждан Турции. В Китае используются еще более сложные инструменты для блокировки интернет-трафика, которые являются частью их «Великого файервола».
Сюда также можно отнести войны, в ходе которых страны могут попытаться уничтожить коммуникационную инфраструктуру противника, так как лучшая связь дает преимущество.
Итак, насколько устойчивы алгоритмы PoW или PoS при реализации сценариев такого рода? Рассмотрим несколько примеров.
Сценарий 1. Всю сеть на некоторое время отключают. Затем перезагружают.
Так как все регионы не могут одновременно перезагрузить сеть и восстановить связь друг с другом, скорее всего, в итоге несколько из них начнут поддерживать собственную независимую цепочку, начиная с последнего общего блока, добытого непосредственно перед отключением сети. Фактически, основная цепочка разделится на несколько ветвей.
После восстановления связи между регионами ноды этих независимых цепочек вступят в контакт друг с другом.
В случае с PoW ноды автоматически самоорганизуются, и в итоге начнут поддерживать одну цепочку, которая собрала больше вычислительной мощности (и является наиболее безопасной). Это будет болезненный процесс, так как некоторые цепочки исчезнут. Но протокол будет работать, и его поведение предопределено.
В случае с PoS ноды не будут знать, какая цепочка более «правильная». В отличие от PoW, здесь нет объективного критерия для сравнения «подлинности» цепочек. Поведение протокола нельзя предопределить и невозможно автоматизировать без ввода некоторых произвольных правил, которые увеличивают поверхность атаки. Разделение может стать необратимым, так как некоторые PoS-протоколы ограничивают возможности для отката изменений.
Разработчики PoS-протоколов часто идут на все, чтобы «наказать» злоумышленников. Но они не учитывают того, что разделение цепочки может произойти, даже если все ноды работают добросовестно!
Сценарий 2. От основной сети отделили некоторые ее части.
Этот сценарий приводит к тому же результату, что и первый. Отдельные части сети продолжат работать так же, как и раньше, только уменьшится количество «активных» нод в каждой из них. Когда эти части восстановят связь с основной сетью, возникнет путаница, так как ноды не будут знать, какую цепочку считать канонической.
Главное отличие этого сценария от первого состоит в том, что вероятность его развития еще выше. Перенаправить трафик проще, чем заблокировать его полностью. Мы уже видели, как это происходит. Отдельные части могут быть размером с сеть небольшого города. Несложно себе представить, что нечто подобное может происходить раз в несколько лет или еще чаще.
* * *
Сценарий 3. PoS хуже приспособлен и к другим неблагоприятным сценариям, например, к краже закрытых ключей.
Распределение материальных благ часто подчиняется степенным законам, и нет оснований полагать, что криптовалюты являются исключением. «1 % криптосообщества», который может быть представлен всего парой-тройкой людей, вполне способен контролировать значительную или большую часть всего предложения коинов.
Закрытые ключи этих самых богатых держателей долей в PoS-сети могут украсть в результате тщательно продуманных атак с использованием социальной инженерии (похищение людей, пытки, вымогательство и т. д.). Поскольку злоумышленник крадет ключи, а не занимает или покупает коины на открытом рынке, он избегает повышения стоимости валюты во время атаки. Удивительно, но при рассмотрении этого вектора атаки разработчики протокола PoS часто предполагают, что покупка коинов на открытом рынке – единственный способ получить контрольную долю в сети. Исходя из этого, они ошибочно приходят к выводу, что затраты на атаку PoS-сети определяются рыночной стоимостью ее валюты. Кража закрытых ключей позволяет обойти такую «защиту» и значительно снизить расходы на атаку.
(Как вариант, злоумышленники могут купить старые ключи у бывших крупных держателей, которые больше не заинтересованы во владении этой валютой).
В случае PoW, это равносильно получению контроля над большей частью вычислительной мощности.
Что может сделать человек с таким возможностями в сети PoW? Он может попытаться совершить двойное расходование или переписать историю транзакций. Но для двойного расходования ему придется потратить много денег. Получение контроля над большей частью вычислительной мощности – это только первый шаг. Как бы плохо это ни звучало, даже при таком сценарии протокол продолжит функционировать должным образом и только одна цепочка будет считаться правильной (хотя ноды SPV [Simple Payment Verification] могут запутаться, поэтому часто рекомендуют поддерживать именно полные ноды). Для того чтобы переписать историю транзакций, требуется безумное количество денег, поэтому маловероятно, что пользователи лишатся своих средств. Они могут переждать этот неблагоприятный период или принять меры для изменения PoW-протокола.
Это довольно неприятная ситуация. Но, как мы видим, контроль над большей частью вычислительной мощности в сети PoW не дает злоумышленнику неограниченной власти. Чтобы совершить атаку, необходимо получить контроль над вычислительными мощностями И потратить немало денег. Это можно рассматривать как двухуровневую защиту. При атаке поведение протокола предопределено и нодам всегда понятно, какую цепочку считать правильной. Эту устойчивость к неблагоприятным условиям часто недооценивают.
В случае же с PoS, получение контрольной доли в общем объеме предложения коинов дает неограниченную власть. Это позволяет совершить двойное расходование, не тратя лишних денег. Можно также а) переписать историю, если в протоколе не предусмотрены контрольные точки, или б) разделить цепочку, если контрольные точки есть (как, например, в Casper). Изменение PoS-протокола не поможет, так как переход на обновленный протокол практически не требует затрат, в отличие от инвестиций в оборудование в случае PoW.
Подводя итог, можно сказать, что PoW имеет два преимущества в плане обеспечения безопасности.
- PoW защищает будущее. Когда происходит разделение цепочки, он предоставляет объективный механизм, автоматизированный способ разрешения конфликтов, не требующий ручного вмешательства человека или доверенных третьих сторон.
- PoW защищает прошлое. Контроль большей части вычислительной мощности не предоставляет злоумышленнику абсолютную власть. Для того чтобы переписать историю, требуется очень много времени и денег. Поэтому счета пользователей находятся в относительной безопасности.
PoS не предлагает ничего подобного. Сторонники PoS могут утверждать, что контрольные точки смягчают проблему #2, но в действительности они просто переносят проблему из одной области в другую. Контрольные точки – это централизованное решение, которое привносит еще больше проблем [3].
* * *
Когда речь заходит о Биткоине и разработке блокчейн-протокола, очень важно иметь правильное представление об этом вопросе. Речь здесь идет о критически важных системах, которые заслуживают высококлассной инженерной поддержки.
PoS-протоколы основаны на ошибочных и наивных предположениях, которые быстро опровергаются при рассмотрении наихудших сценариев. PoS – это шаг в неправильном направлении, снижение планки качества вместо ее повышения.
Сноски
[1]: Один из предварительных анализов PoS: Эндрю Полстра, On Stake & Consensus («О доле и консенсусе») https://download.wpsoftware.net/bitcoin/pos.pdf.
[2]: Разделение сети – важная область исследований. Вот работа Итана Хейлмана на эту тему (англ.): https://eprint.iacr.org/2015/263.pdf.
[3]: Контрольные точки можно реализовать в децентрализованном виде, но они вызовут проблемы, которые в будущем потребуют централизованных решений. По сути, использование контрольных точек ведет к централизации системы.
Будь в курсе! Подписывайся на Криптовалюта.Tech в Telegram.
Обсудить актуальные новости и события на Форуме
Запись Почему Proof-of-Stake на самом деле не так хорош впервые появилась Криптовалюта.Tech.
Криптовалюта.Tech
Автор: Saffron