:RU: Понимание безопасности блокчейна

Перевод статьи https://cexplorer.io/article/understanding-blockchain-security

image

Безопасность - это обширная тема. Она включает в себя защиту от создания новых монет из воздуха, децентрализацию, протокол консенсуса, неизменность леджера, безопасность транзакций, конфиденциальность, самостоятельное хранение активов, кибератаки, устойчивость к различным атакам, управление и бюджет безопасности. Блокчейн - это сложная система, в которой одни компоненты зависят от безопасности других. Зависимости иногда не очевидны на первый взгляд. Цель статьи - показать новичкам масштаб темы и вдохновить их на дальнейшее изучение. Мы не будем вдаваться в подробности. Многие темы подробно рассмотрены в наших предыдущих статьях. Цель состоит в том, чтобы читатель понял, что безопасность - это не какая-то одна тема (атака 51%) и что необходимо рассматривать этот вопрос комплексно.

Требования пользователя

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

Люди используют сеть через блокчейн кошелек. Они должны понимать, что доверяют программному обеспечению (протоколу), которое поддерживается командой. Управление, которое может принимать различные формы, попадает в эту категорию. Кроме того, пользователи доверяют всем участникам консенсуса, то есть тем, кто производит блоки и/или делегирует дорогостоящий ресурс (например, монеты ADA пулам Cardano или хешрейт пулам Bitcoin).

Можно сказать, что пользователи верят, что сеть децентрализована. Как вы увидите далее в тексте, безопасность часто зависит от децентрализации.

Каковы ожидания людей?

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

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

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

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

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

Давайте подведем итог. Требования к безопасности предъявляются к:

  • Команде и управлению. Возможность исправлять ошибки и устранять недочеты.
  • Качеству исходного кода (в нем не должно быть уязвимостей).
  • Честному поведению участников консенсуса (производителей блоков и делегатов).
  • Сетевому консенсусу. Он должен обеспечивать непрерывность, неизменность истории блокчейна и целостность данных.
  • Децентрализации (распределение полномочий по принятию решений).
  • Экономической устойчивости и механизму вознаграждения. Это способствует обеспечению справедливого поведения участников консенсуса и долговечности системы.
  • Функциональности, которая гарантирует, что никто (команда, участники консенсуса и т.д.) не украдет активы у пользователей, которые самостоятельно их хранят. В статье мы в основном сосредоточимся на транзакциях.

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

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

Cardano - это платформа SC, поэтому другой широкой темой может быть безопасность, связанная с использованием сервисов DeFi. Мы не будем освещать эту тему в этой статье.

Давайте покажем несколько примеров, которые угрожают безопасности блокчейна.

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

Атака 51%

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

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

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

В сети Bitcoin более 55% блоков создается только двумя доминирующими пулами. Существует теоретический риск того, что эти два участника будут сотрудничать для совершения внутренней атаки, но этого может никогда не произойти. Риск - это не двоичная переменная, а масштаб.

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

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

Хотя атака 51% и позволяет злоумышленнику манипулировать блокчейном определенным образом, она не дает ему возможности создавать транзакции от имени пользователей или изменять баланс кошелька. Злоумышленник может влиять только на транзакции, которые он отправляет.

Обратите внимание, что безопасность зависит от децентрализации. По мере снижения децентрализации риск атаки возрастает. Если есть возможность получить доминирующее положение во владении дорогостоящим ресурсом, можно атаковать сеть.

Децентрализация Cardano является одной из самых высоких в криптографии, с тысячами активных пулов и 1,3 млн стейкеров. На данный момент возможность совершения 51%-ной атаки кажется маловероятной.

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

Возможность предпринять атаку с вероятностью 51% является неотъемлемой особенностью публичного блокчейна. Единственным препятствием являются высокие затраты или сложность совершения атаки.

Безопасность и децентрализация

Безопасность и децентрализация тесно связаны.

Децентрализация защищает блокчейн не только от 51% атак, но и от различных сетевых атак, таких как DDoS-атака.

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

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

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

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

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

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

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

Устойчивость к изменению клиентских правил

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

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

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

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

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

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

Сеть Solana в прошлом приходилось перезапускать несколько раз. Никто не терял активы. Однако, если команда и производители блоков договорились бы между собой, что, например, они удалят последние 10 блоков, активы могли быть потеряны (удаленные транзакции изменяют историю).

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

Неожиданное отключение сети может произойти только в случае какой-либо программной ошибки. Сеть Cardano никогда не останавливалась с момента своего запуска. Это справедливо и для большинства других проектов.

Бюджет безопасности и механизм вознаграждения

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

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

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

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

Последняя тема, которую мы рассмотрим, - это бюджет безопасности и способность сети платить участникам консенсуса.

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

Проблему легко объяснить на примере сетей PoW, таких как Bitcoin. Сети PoW должны потреблять огромное количество электроэнергии для вычислительной мощности (хешрейта). Расходы на эксплуатацию Bitcoin покрываются майнерами. Майнеры получают новые BTC по протоколу Bitcoin за каждый созданный блок.

Проблема в том, что количество монет BTC ограничено 21 миллионом, а в настоящее время в обращении находится более 19,5 миллионов монет. Запасы монет BTC постепенно заканчиваются. С каждым халвингом (уменьшением вознаграждения вдвое), который происходит каждые 4 года, вознаграждение в BTC за создание блока уменьшается.

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

Снижение безопасности означает, что будет дешевле совершить атаку 51%. Отток майнеров может привести к снижению децентрализации.

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

Cardano и многие другие блокчейн сети сталкиваются, по сути, с одной и той же проблемой. Преимущество PoS сетей в том, что они дешевле в эксплуатации (операционные расходы ниже на 99%). Cardano выпустит в обращение всего 45 млрд монет ADA. В резерве осталось менее 9 миллиардов монет ADA.

Как и в случае с Bitcoin, когда резерв Cardano истощиться, комиссии должны быть достаточными для вознаграждения операторов пулов (SPO) и стейкеров (делегатов).

Бюджет безопасности опасен для пользователей тем, что трудно оценить его будущие изменения. Риск может возрастать постепенно и теоретически очень медленно. Однако атака с вероятностью 51% может произойти неожиданно.

Вывод

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

Хорошей новостью является то, что большинство атак не приводят к потере активов пользователей. Если пользователи используют некастодиальные кошельки и самостоятельно хранят активы, могут защитить криптографический секрет (парольную фразу), они почти наверняка не потеряют активы. Как объясняется в статье, в чем должны быть заинтересованы пользователи, так это в возможности тратить активы.

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском языке можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова, а также на канале Чарльз Хоскинсон на русском. Хотите поговорить или задать вопрос о Cardano? Тогда приглашаем в наше уютное русскоязычное сообщество Cardano в Telegram. Оставайтесь на связи, все только начинается!