Считается, что блокчейн является одной из наиболее безопасных технологий использования сетей. Однако, как недавно заявила группа исследователей, существует немало факторов для ее уязвимости. О содержании опубликованной ими научной статьи рассказал портал ZDNet.
Действительно ли блокчейн — сеть глобально распределенных онлайновых реестров — является безопасной технологией? Ее поборники отвечают на этот вопрос утвердительно, поскольку она регистрирует транзакции или смарт-контракты в неизменяемом реестре, верифицируемом многими сторонами. Тем не менее, недавно была опубликована исследовательская статья, в которой освещается целый ряд уязвимых сторон блокчейн.
В статье, авторами которой является Сяоци Ли (Xiaoqi Li), Пен Дзян (Peng Jiang) и Сяопи Ло (Xiapu Luo) из Гонконгского политехнического университета, Тинь Чен (Ting Chen) из Университета электронной науки и технологии Китая и Цяоен Вэн (Qiaoyan Wen) из Пекинского университета, утверждается, что в блокчейн присутствует группа факторов уязвимости, про которые необходимо знать пользователям.
Поскольку блокчейн все активнее проникает в бизнес-операции, существует необходимость более досконально исследовать потенциальные риски безопасности, которые несет новая технология. С ростом числа децентрализованных приложений на базе блокчейн, утверждают авторы статьи, «риски утечки секретных данных станут более серьезными. Само по себе децентрализованное приложение, как и процесс коммуникаций между приложением и Интернетом, подвержены рискам утечки секретной информации». Для решения этой проблемы авторы рекомендуют шире применять такие специальные методы, как обфускация кода, упрочнение защиты приложений и хардверные технологии Trusted Execution.
Исследователи описывают основные известные им факторы риска, связанные с блокчейн.
Производительность. Начнем с того, что на саму производительность технологии блокчейн может накладываться бремя сложных механизмов консенсуса и некорректных данных. Как отмечают соавторы статьи, механизмы консенсуса, работающие через Интернет, являются поглотителями вычислительных ресурсов. Примером является самый популярный из этих механизмов Proof of Work (PoW), который исследователи называют «расточительством ресурсов». И неудивительно, что предпринимаются усилия по разработке более эффективных гибридных механизмов консенсуса, соединяющих PoW и Proof of Stake (PoS). Помимо этого, блокчейны генерируют массы данных (информацию о блоках, данные транзакций, байт-код контрактов), зачастую являющихся устаревшими и бесполезными. Встречается много смарт-контрактов, не содержащих никакого кода или с полным дублированием кода в Ethereum. Многие смарт-контракты после записи в блокчейн никогда не исполняются. Чтобы улучшить производительность блокчейн-систем, желателен эффективный механизм детектирования и очистки данных.
Уязвимость 51%. Чтобы установить взаимное доверие, блокчейн использует распределенный механизм консенсуса. Однако в самом механизме консенсуса содержится так называемая уязвимость 51%, которая может использоваться злоумышленниками для контроля над всей блокчейн. Точнее говоря, если в блокчейнах на базе PoW один майнер получит Hash Power, составляющую больше 50% суммарной Hash Power всей блокчейн, он может инициировать атаку 51%. Следовательно, концентрация мощности майнинга в нескольких майнинговых пулах может угрожать неожиданной ситуацией, когда один пул получает контроль над более чем половиной всей вычислительной мощности.
Безопасность секретного ключа. При использовании блокчейн секретный ключ пользователя рассматривается как подтверждающий реквизит для идентификации и безопасности, генерируемый и сохраняемый самим пользователем. Например, при создании офлайнового кошелька для биткоинов пользователь должен импортировать свой секретный ключ. У злоумышленника есть возможность восстановить секретный ключ пользователя, так как процесс его генерации не является достаточно случайным. Если же пользователь утерял секретный ключ, его невозможно восстановить. Поскольку блокчейн не зависит от каких-то централизованных сторонних доверительных организаций, то в случае кражи секретного ключа трудно отследить дальнейшее поведение преступников и восстановить измененную ими блокчейн-информацию.
Преступная деятельность. Некоторые платформы торговли, поддерживающие расчеты в биткоинах, позволяют покупать или продавать все что угодно. Контролировать действия их пользователей, а тем более применять к ним правовые санкции ввиду анонимности процесса очень трудно. С использованием биткоина часто связаны такие виды преступной деятельности, как распространение программ-вымогателей, черные рынки и отмывание денег.
Двойная трата. Хотя в блокчейн транзакции удостоверяются механизмом консенсуса, это не позволяет исключить двойную трату или многократное использование для транзакций одной и той же криптовалюты. Злоумышленник может осуществить быструю атаку, используя промежуток времени между инициированием и подтверждением двух транзакций.
Утечка тайны транзакций. К сожалению, говорится в статье, меры защиты приватной информации в блокчейн не очень сильны. Криминальные смарт-контракты могут упростить утечку конфиденциальной информации, кражу криптографических ключей и создавать возможности для различных преступлений в реальном мире (убийства, поджоги, терроризм и т. п.).
Уязвимости в смарт-контрактах. Как программы, работающие в блокчейн, смарт-контракты могут иметь уязвимости безопасности, обусловленные программными дефектами. Так, в одном исследовании было установлено, что 8833 из 19 366 смарт-контрактов Ethereum уязвимы из-за таких факторов, как зависимость от запроса на транзакцию, зависимость от метки времени, неправильная обработка исключений и реентерабельность кода.
Недооптимизированные смарт-контракты. Когда пользователь взаимодействует со смарт-контрактом в Ethereum, он должен за это заплатить определенную сумму «газа». Газ и эфир (криптовалюта Ethereum) могут обмениваться друг на друга. Это порождает мертвый код, непрозрачные предикаты и затратные операции в циклах.
Недооцененные операции. Ethereum определяет стоимость газа исходя из времени исполнения, пропускной способности, заполнения оперативной памяти и других параметров. В целом стоимость газа пропорциональна вычислительным ресурсам, потребляемым операцией. Однако трудно точно измерить, сколько ресурсов потребляет конкретная операция, и поэтому часть оценок стоимости газа является некорректной. Например, стоимость газа для некоторых операций с интенсивным вводом-выводом устанавливается заниженной, что позволяет выполнять большое число таких операций за одну транзакцию. Благодаря этому злоумышленник может инициировать DoS-атаку на Ethereum.