Любая сеть может быть атакована, и блокчейн — не исключение. Однако угрозы для распределенных реестров отличаются от угроз для обычных компьютерных сетей: в большинстве случаев злоумышленники стараются манипулировать процессом достижения консенсуса, чтобы изменить вносимую в реестр информацию.
В этой статье мы разберем основные угрозы для блокчейнов с механизмом достижения консенсуса PoW и как они предотвращаются.
/ изображение Peter Shanks CC
Чтобы понять, как атакующие могут влиять на системы с принципом защиты Proof-of-Work (например, биткойн), сперва посмотрим, каким образом сеть обеспечивает неизменяемость данных.
Хотя в блокчейне много участников (число узлов в биткойне составляет примерно 11 тыс.), новые блоки с транзакциями добавляются по одному. Чтобы закрепить блок в цепочке, майнеры решают вычислительно сложную задачу. Тот, кто находит ответ первым, получает право добавить информацию о транзакциях пользователей в блокчейн. Майнеры действуют в собственных интересах, поскольку за каждый решенный блок они получают вознаграждение (на сегодняшний день в биткойне оно составляет 12,5 монет).
Решаемая вычислительная задача не просто сложная, её ответ должен удовлетворять определённым условиям, например, необходимо, чтобы формируемый хеш был меньше определенной цели. Поэтому крайне маловероятно, что два майнера найдут решение блока одновременно. Но такая ситуация возможна. В этом случае оба участника сети засылают свои блоки в блокчейн, и цепочка раздваивается — возникает форк.
Далее, сообщество продолжает майнить и добавлять новую информацию к блокчейну. Каждый последующий майнер связывает блок с той цепочкой, которая, по его мнению, будет считаться основной. Со временем становится понятно, какую цепь сообщество посчитало валидной — она выбирается в качестве консенсуса.
В дальнейшем мелкие форки забываются и игнорируются, а любая добавляемая к ним информация подлежит повторной обработке. При этом, если майнер добавляет новый блок к неактивной цепочке, он не получает награды за его решение. Поэтому большинство майнеров игнорируют форки в реестре и поддерживают самую длинную из цепочек.
Это подводит нас к «атаке 51%». Если один (или несколько) участников сети получит большую часть «голосов», то сможет контролировать консенсус и включать в блокчейн только свои данные. Однако даже при получении преимущества в один процент над другой половиной сообщества, очень сложно изменить уже записанную информацию. Злоумышленник может лишь достраивать блоки к нужным ему веткам. Отметим, что реализовать атаку можно и при меньших мощностях (<50%), хотя вероятность успеха в этом случае резко снижается.
Подобные условия позволяют злоумышленнику провести еще одну атаку, известную как «Double-spending»: потратить больше денег, чем у него есть на самом деле. Для этого он создает несколько транзакций с использованием одних и тех же монет. По идее, сеть посчитает лишние транзакции некорректными и отклонит их: майнеры просто не включат их в блок.
Тем не менее, если злоумышленник получает возможность разместить блок, то он может включить в него информацию с double-spending самостоятельно. В этом случае честные майнеры разветвят блокчейн и начнут строить параллельную валидную ветку, игнорируя блок атакующего. Однако, если у последнего в распоряжении оказывается 51% вычислительных мощностей, он сможет повлиять на консенсус и выстроить собственную цепь с «некорректными» транзакциями, которая будет считаться «истинной».
История помнит несколько подобных случаев. Например, блокчейны на базе Ethereum Krypton и Shift стали жертвами атак 51% в августе 2016 года. Тогда злоумышленникам удалось украсть монеты через double-spending. После этого разработчики проектов внедрили дополнительные системы защиты, например, в Krypton увеличили число подтверждений, необходимых для одобрения транзакции, до одной тысячи.
В биткойн-блокчейне используется похожий подход: блок не считается валидным до тех пор, пока к нему не «зацепятся» пять или более блоков, подтверждающих записанные транзакции.
Другой пример: майнинговый пул ghash.io в 2014 году превысил 51% вычислительной мощности биткойн-сети из-за своей популярности. Но тогда сообщество и руководство площадки приняло решение добровольно снизить свою долю в сети и не превышать пороговое значение 39.99% в будущем.
Не имея таких ресурсов, провести атаку double-spending маловероятно. При этом стоит учитывать, что даже в случае успешного её выполнения, выгода может оказаться незначительной. Чаще всего гораздо доходнее заниматься честным майнингом: на наградах за решение блока и комиссиях участник сети может заработать больше.
Вознаграждение за майнинг — это один из сдерживающих факторов для злоумышленников. Помимо него мошенничество ограничивает ориентация майнеров на долгосрочную выгоду (разваливать экосистему ради сиюминутной прибыли, которую при этом будет сложно или невозможно обналичить, попросту не выгодно).
Еще в 2015 году мы писали, что комиссия на транзакции останется главным гарантом обеспечения безопасности биткойн-блокчейна. На сегодняшний день ситуация остается прежней — криптоэкономика в permissionless-блокчейнах продолжает играть очень важную роль. В биткойне, поскольку эмиссия ограничена, рост суммарной комиссии за транзакции представляется единственно возможным способом поддерживать мотивацию майнеров (и заодно безопасность системы).
Этот рост можно обеспечивать как за счет увеличения количества транзакций, так и за счет повышения комиссии за отдельную транзакцию. При этом стоит учитывать, что возможности permissionless-блокчейнов по пропускной способности достаточно ограничены для того, чтобы блокчейн-сеть оставалась децентрализованной (чем больше узлов в сети, тем меньше ее пропускная способность, так как каждый узел должен обрабатывать все транзакции). Поэтому, если поднять пропускную способность до сотен транзакций в секунду, то в сети останутся только узлы, принадлежащие крупным компаниям.
Согласно совместному исследованию Швейцарской высшей технической школы Цюриха и NEC Laboratories, верхний предел составляет несколько десятков транзакций в секунду. К тому же, в биткойне вопрос повышения потенциальной пропускной способности (за счет увеличения максимального размера блока) сильно политизирован.
Все это, опять же, возвращает нас к важности комиссии за транзакции. Есть предположения, что в будущем биткойн-блокчейн начнет использоваться как средство арбитража для эксклюзивных блокчейнов и сайдчейнов и сформирует базовый слой для финансовой системы следующего поколения. В этом случае комиссия за транзакции может быть дополнительно увеличена за счет роста интереса к блокчейн-экосистеме, чтобы сохранить уровень надежности высоким.
Атака получила свое название в честь клинического случая, описывающего женщину с диссоциативным расстройством личности. По аналогии с этим кейсом, атака Сибиллы подразумевает ситуацию, когда один узел в сети приобретает несколько сущностей.
Атаку Сибиллы впервые описал исследователь из Microsoft Джон Досье (John Douceur). Она основывается на том, что сеть не может достоверно различать физические машины. Принимались попытки разработки механизмов для установления идентичности компьютеров: с помощью сертификационного ПО, IP-адресов, логинов и паролей, однако они не дали эффекта. Друзья могут передавать данные аккаунтов друг другу, а некоторые сервисы предоставляют один IP-адрес для всех своих пользователей.
Вред от атаки Сибиллы проявляется по-разному. Например, с её помощью фальсифицируют интернет-голосования или накручивают рейтинг на Google Page Rank.
В случае блокчейн-решений, атакующий может попытаться заполнить сеть подконтрольными ему клиентами. Это позволяет «проворачивать» следующие схемы:
В централизованных решениях атаки Сибиллы обычно исключаются с помощью набора эвристических правил. Например, система может требовать, чтобы с одного IP-адреса создавалось лишь ограниченное количество аккаунтов в отведенный промежуток времени.
Другой вариант — обратиться к доверенному сертификационному центру, который будет верифицировать пользователей сети. Однако такой подход не дает 100% результата и требует большое количество сетевых ресурсов. Еще вариант — оценка ресурсов. В этом случае система оценивает размер хранилища, пропускную способность сети и другие параметры хоста и определяет, принадлежат ли собранные данные отдельным компьютерам или одному атакующему компьютеру со множеством «личностей».
В биткойн-блокчейне атаки Сибиллы исключаются путем предъявления требований к генерации блоков. Консенсус Накамото гласит, что способность генерации блоков должна быть пропорциональна вычислительной мощности PoW-механизма. Это обеспечивает надежную криптографическую защиту от атак Сибиллы, потому что злоумышленник может создавать лишь ограниченное количество блоков. Получается, что мошеннику нужно обладать реальной вычислительной мощностью, которую нельзя подделать, что делает подобную атаку невыгодной.
/ изображение Anders Lindman PD
DDoS — еще один тип хакерских атак, идея которого заключается в пересылке большого количества похожих запросов. Биткойн имеет встроенную защиту от атак типа «отказ в обслуживании». Например, размер блока ограничен до 1 МБ, чтобы усложнить забивание пулов памяти полных узлов, а размер каждого скрипта не превышает 10 тыс. байт. Также ограничено число проверок подписи, которое может затребовать блок (20 тыс.), и количество мультиподписей (20 ключей максимум).
При этом клиенты биткойна блокируют все подозрительные узлы и транзакции. Например, в последней версии клиента Bitcoin Satoshi добавили функцию для регистрации нестандартных транзакций (больше 100 килобайт). Также при обработке транзакций клиент проверяет, что все выходы являются «не потраченными».
Есть мнение, что квантовые компьютеры в будущем превзойдут по мощности классические системы. Но, как говорит эксперт по квантовым вычислениям из Google Джон Мартинис (John Martinis), человечеству потребуется еще лет десять на создание такого компьютера. Однако этот факт все равно вызывает у криптосообщества беспокойство.
Производительность квантовых систем в определенном спектре задач выше, чем у классических компьютеров. Например, система D-Wave, использующая метод квантового отжига, в 100 миллионов раз быстрее обычных компьютеров.
Одной из задач, которые необходимо учитывать в данном отношении, является проблема факторизации. Квантовые алгоритмы, например, алгоритм Шора, в теории смогут сломать RSA-шифрование и, как следствие, цифровые подписи, используемые в биткойн-сетях.
Поэтому уже сегодня ведется разработка решений, цель которых — помочь криптопроектам устоять под натиском квантовых машин.
Например, Агентство национальной безопасности США в 2015 году анонсировало разработку квантоустойчивых криптографических систем. Криптографы из других контор также работают в этом направлении, например, команда Quantum Resistant Ledger создает блокчейн-систему, устойчивую к «квантовым атакам».
Команда работает над криптографическими алгоритмами, в основе которых лежат хеш-функции. В этом случае закрытые ключи генерируются на базе открытых с помощью сложных криптографических структур, основанных на хеш-функциях. Специалисты стремятся отойти от использования факторизации простых чисел для этой задачи. Таким образом, между ключами появляется более сложная и устойчивая связь, менее уязвимая для алгоритма Шора.
Нам еще предстоит увидеть, насколько успешными будут эти инициативы в будущем. Но потенциально переход на подобные решения позволит исключить проблему «квантовой» угрозы и усилить всю цифровую экосистему в целом.
О другой стороне вопроса — от каких киберугроз защищает блокчейн — мы писали в одном из наших прошлых материалов:
P.S. Мы также подготовили дайджесты на тему блокчейн-технологий, которые вы найдете на нашей Facebook-страничке:
В этой статье мы разберем основные угрозы для блокчейнов с механизмом достижения консенсуса PoW и как они предотвращаются.
/ изображение Peter Shanks CC
Чтобы понять, как атакующие могут влиять на системы с принципом защиты Proof-of-Work (например, биткойн), сперва посмотрим, каким образом сеть обеспечивает неизменяемость данных.
Хотя в блокчейне много участников (число узлов в биткойне составляет примерно 11 тыс.), новые блоки с транзакциями добавляются по одному. Чтобы закрепить блок в цепочке, майнеры решают вычислительно сложную задачу. Тот, кто находит ответ первым, получает право добавить информацию о транзакциях пользователей в блокчейн. Майнеры действуют в собственных интересах, поскольку за каждый решенный блок они получают вознаграждение (на сегодняшний день в биткойне оно составляет 12,5 монет).
Решаемая вычислительная задача не просто сложная, её ответ должен удовлетворять определённым условиям, например, необходимо, чтобы формируемый хеш был меньше определенной цели. Поэтому крайне маловероятно, что два майнера найдут решение блока одновременно. Но такая ситуация возможна. В этом случае оба участника сети засылают свои блоки в блокчейн, и цепочка раздваивается — возникает форк.
Далее, сообщество продолжает майнить и добавлять новую информацию к блокчейну. Каждый последующий майнер связывает блок с той цепочкой, которая, по его мнению, будет считаться основной. Со временем становится понятно, какую цепь сообщество посчитало валидной — она выбирается в качестве консенсуса.
В дальнейшем мелкие форки забываются и игнорируются, а любая добавляемая к ним информация подлежит повторной обработке. При этом, если майнер добавляет новый блок к неактивной цепочке, он не получает награды за его решение. Поэтому большинство майнеров игнорируют форки в реестре и поддерживают самую длинную из цепочек.
«Атака 51%» и Double-spending
Это подводит нас к «атаке 51%». Если один (или несколько) участников сети получит большую часть «голосов», то сможет контролировать консенсус и включать в блокчейн только свои данные. Однако даже при получении преимущества в один процент над другой половиной сообщества, очень сложно изменить уже записанную информацию. Злоумышленник может лишь достраивать блоки к нужным ему веткам. Отметим, что реализовать атаку можно и при меньших мощностях (<50%), хотя вероятность успеха в этом случае резко снижается.
Подобные условия позволяют злоумышленнику провести еще одну атаку, известную как «Double-spending»: потратить больше денег, чем у него есть на самом деле. Для этого он создает несколько транзакций с использованием одних и тех же монет. По идее, сеть посчитает лишние транзакции некорректными и отклонит их: майнеры просто не включат их в блок.
Тем не менее, если злоумышленник получает возможность разместить блок, то он может включить в него информацию с double-spending самостоятельно. В этом случае честные майнеры разветвят блокчейн и начнут строить параллельную валидную ветку, игнорируя блок атакующего. Однако, если у последнего в распоряжении оказывается 51% вычислительных мощностей, он сможет повлиять на консенсус и выстроить собственную цепь с «некорректными» транзакциями, которая будет считаться «истинной».
История помнит несколько подобных случаев. Например, блокчейны на базе Ethereum Krypton и Shift стали жертвами атак 51% в августе 2016 года. Тогда злоумышленникам удалось украсть монеты через double-spending. После этого разработчики проектов внедрили дополнительные системы защиты, например, в Krypton увеличили число подтверждений, необходимых для одобрения транзакции, до одной тысячи.
В биткойн-блокчейне используется похожий подход: блок не считается валидным до тех пор, пока к нему не «зацепятся» пять или более блоков, подтверждающих записанные транзакции.
Другой пример: майнинговый пул ghash.io в 2014 году превысил 51% вычислительной мощности биткойн-сети из-за своей популярности. Но тогда сообщество и руководство площадки приняло решение добровольно снизить свою долю в сети и не превышать пороговое значение 39.99% в будущем.
Не имея таких ресурсов, провести атаку double-spending маловероятно. При этом стоит учитывать, что даже в случае успешного её выполнения, выгода может оказаться незначительной. Чаще всего гораздо доходнее заниматься честным майнингом: на наградах за решение блока и комиссиях участник сети может заработать больше.
Вознаграждение за майнинг — это один из сдерживающих факторов для злоумышленников. Помимо него мошенничество ограничивает ориентация майнеров на долгосрочную выгоду (разваливать экосистему ради сиюминутной прибыли, которую при этом будет сложно или невозможно обналичить, попросту не выгодно).
Еще в 2015 году мы писали, что комиссия на транзакции останется главным гарантом обеспечения безопасности биткойн-блокчейна. На сегодняшний день ситуация остается прежней — криптоэкономика в permissionless-блокчейнах продолжает играть очень важную роль. В биткойне, поскольку эмиссия ограничена, рост суммарной комиссии за транзакции представляется единственно возможным способом поддерживать мотивацию майнеров (и заодно безопасность системы).
Этот рост можно обеспечивать как за счет увеличения количества транзакций, так и за счет повышения комиссии за отдельную транзакцию. При этом стоит учитывать, что возможности permissionless-блокчейнов по пропускной способности достаточно ограничены для того, чтобы блокчейн-сеть оставалась децентрализованной (чем больше узлов в сети, тем меньше ее пропускная способность, так как каждый узел должен обрабатывать все транзакции). Поэтому, если поднять пропускную способность до сотен транзакций в секунду, то в сети останутся только узлы, принадлежащие крупным компаниям.
Согласно совместному исследованию Швейцарской высшей технической школы Цюриха и NEC Laboratories, верхний предел составляет несколько десятков транзакций в секунду. К тому же, в биткойне вопрос повышения потенциальной пропускной способности (за счет увеличения максимального размера блока) сильно политизирован.
Все это, опять же, возвращает нас к важности комиссии за транзакции. Есть предположения, что в будущем биткойн-блокчейн начнет использоваться как средство арбитража для эксклюзивных блокчейнов и сайдчейнов и сформирует базовый слой для финансовой системы следующего поколения. В этом случае комиссия за транзакции может быть дополнительно увеличена за счет роста интереса к блокчейн-экосистеме, чтобы сохранить уровень надежности высоким.
Атака Сибиллы
Атака получила свое название в честь клинического случая, описывающего женщину с диссоциативным расстройством личности. По аналогии с этим кейсом, атака Сибиллы подразумевает ситуацию, когда один узел в сети приобретает несколько сущностей.
Атаку Сибиллы впервые описал исследователь из Microsoft Джон Досье (John Douceur). Она основывается на том, что сеть не может достоверно различать физические машины. Принимались попытки разработки механизмов для установления идентичности компьютеров: с помощью сертификационного ПО, IP-адресов, логинов и паролей, однако они не дали эффекта. Друзья могут передавать данные аккаунтов друг другу, а некоторые сервисы предоставляют один IP-адрес для всех своих пользователей.
Вред от атаки Сибиллы проявляется по-разному. Например, с её помощью фальсифицируют интернет-голосования или накручивают рейтинг на Google Page Rank.
В случае блокчейн-решений, атакующий может попытаться заполнить сеть подконтрольными ему клиентами. Это позволяет «проворачивать» следующие схемы:
- Злоумышленник может отказаться передавать и принимать блоки, «отключив» пользователей от сети.
- Возникает опасность «атаки 51%» и double-spending.
- Появляется возможность видеть все транзакции, используя специальные программы.
В централизованных решениях атаки Сибиллы обычно исключаются с помощью набора эвристических правил. Например, система может требовать, чтобы с одного IP-адреса создавалось лишь ограниченное количество аккаунтов в отведенный промежуток времени.
Другой вариант — обратиться к доверенному сертификационному центру, который будет верифицировать пользователей сети. Однако такой подход не дает 100% результата и требует большое количество сетевых ресурсов. Еще вариант — оценка ресурсов. В этом случае система оценивает размер хранилища, пропускную способность сети и другие параметры хоста и определяет, принадлежат ли собранные данные отдельным компьютерам или одному атакующему компьютеру со множеством «личностей».
В биткойн-блокчейне атаки Сибиллы исключаются путем предъявления требований к генерации блоков. Консенсус Накамото гласит, что способность генерации блоков должна быть пропорциональна вычислительной мощности PoW-механизма. Это обеспечивает надежную криптографическую защиту от атак Сибиллы, потому что злоумышленник может создавать лишь ограниченное количество блоков. Получается, что мошеннику нужно обладать реальной вычислительной мощностью, которую нельзя подделать, что делает подобную атаку невыгодной.
/ изображение Anders Lindman PD
DDoS
DDoS — еще один тип хакерских атак, идея которого заключается в пересылке большого количества похожих запросов. Биткойн имеет встроенную защиту от атак типа «отказ в обслуживании». Например, размер блока ограничен до 1 МБ, чтобы усложнить забивание пулов памяти полных узлов, а размер каждого скрипта не превышает 10 тыс. байт. Также ограничено число проверок подписи, которое может затребовать блок (20 тыс.), и количество мультиподписей (20 ключей максимум).
При этом клиенты биткойна блокируют все подозрительные узлы и транзакции. Например, в последней версии клиента Bitcoin Satoshi добавили функцию для регистрации нестандартных транзакций (больше 100 килобайт). Также при обработке транзакций клиент проверяет, что все выходы являются «не потраченными».
Взлом криптографии
Есть мнение, что квантовые компьютеры в будущем превзойдут по мощности классические системы. Но, как говорит эксперт по квантовым вычислениям из Google Джон Мартинис (John Martinis), человечеству потребуется еще лет десять на создание такого компьютера. Однако этот факт все равно вызывает у криптосообщества беспокойство.
Производительность квантовых систем в определенном спектре задач выше, чем у классических компьютеров. Например, система D-Wave, использующая метод квантового отжига, в 100 миллионов раз быстрее обычных компьютеров.
Одной из задач, которые необходимо учитывать в данном отношении, является проблема факторизации. Квантовые алгоритмы, например, алгоритм Шора, в теории смогут сломать RSA-шифрование и, как следствие, цифровые подписи, используемые в биткойн-сетях.
Поэтому уже сегодня ведется разработка решений, цель которых — помочь криптопроектам устоять под натиском квантовых машин.
Например, Агентство национальной безопасности США в 2015 году анонсировало разработку квантоустойчивых криптографических систем. Криптографы из других контор также работают в этом направлении, например, команда Quantum Resistant Ledger создает блокчейн-систему, устойчивую к «квантовым атакам».
Команда работает над криптографическими алгоритмами, в основе которых лежат хеш-функции. В этом случае закрытые ключи генерируются на базе открытых с помощью сложных криптографических структур, основанных на хеш-функциях. Специалисты стремятся отойти от использования факторизации простых чисел для этой задачи. Таким образом, между ключами появляется более сложная и устойчивая связь, менее уязвимая для алгоритма Шора.
Нам еще предстоит увидеть, насколько успешными будут эти инициативы в будущем. Но потенциально переход на подобные решения позволит исключить проблему «квантовой» угрозы и усилить всю цифровую экосистему в целом.
О другой стороне вопроса — от каких киберугроз защищает блокчейн — мы писали в одном из наших прошлых материалов:
P.S. Мы также подготовили дайджесты на тему блокчейн-технологий, которые вы найдете на нашей Facebook-страничке:
vics001
Ну бред же… он сможет повлиять на консенсус… Пишите как есть. Имея X ресурсов можно построить две цепочки, в одной цепочки будут потрачены деньги, а во второй нет и в удобный момент продолжить строить ту цепочку, которая более длинная и успеть продать эти «двойные» коины кому-то за нал. Это все можно подсчитать, поэтому и требуют 6 подтверждений, тогда вероятность успешности этой атаки < 10%/
KatbertW
В статье в целом все корректно написано. Число шесть для количества подтверждений в bitcoin-сети было выбрано потому, что такое количество блоков генерируются час, а это круглое число. При этом, как посчитал Сатоши, маловероятно, что атакующий сможет набрать более 10% хешрейта, а в этом случае шесть блоков выводят вероятность двойной траты за пределы 0,1% — он решил, что этого достаточно.
Что касается 51%, то шесть блоков могут и не помочь, потому что «хакер» получает контроль над консенсусом. Вот здесь есть инструмент, который позволяет подсчитать вероятность проведения double spending в зависимости от числа подтверждений и процента вычислительной мощности: people.xiph.org/~greg/attack_success.html"