A. Протокол консенсуса блокчейна и майнинг
Пользователям биткойнов не требуется проходить аутентификацию перед подключением к сети в протоколе консенсуса PoW. Этот процесс делает протокол консенсуса в Биткойне очень масштабируемым для поддержки огромного количества пользователей. Однако протокол консенсуса на основе PoW подвержен определенным атакам, когда, по оценкам, злоумышленник получает контроль над более чем 51% мощности майнинга. В этом сценарии угрозы злоумышленники могут создать свой собственный блок транзакций или даже разветвить локальную цепочку блоков, чтобы позднее сойтись с основной цепочкой блоков. Это нарушение безопасности, по-видимому, может способствовать различным атакам на Биткойн, включая, помимо прочего, DoS и двойные траты. Поскольку Биткойн является полностью децентрализованной системой криптовалюты, не контролируемой какой-либо стороной или органом власти, многие злоумышленники могут использовать такую систему как простое средство для совершения мошенничества и взлома транзакций. Следовательно, в следующих подразделах мы представляем таксономический обзор существующих угроз безопасности и мер противодействия им в биткойнах, а также лежащие в их основе технологии.
B. Двойная трата
Процесс проверки биткойнов для каждого блока транзакций в конечном итоге приведет либо к принятию, либо к отклонению сомнительного блока. А именно, о принятии будет сигнализироваться продление цепочки блоков (т. е. к цепочке блоков добавляется новый блок), тогда как об отклонении будет сигнализироваться отбрасывание блока транзакций и сохранение только недавно обновленной цепочки блоков другими объектами. Например, рассмотрим следующий сценарий обмена биткойнами, в котором объект 1 может отправить блок транзакции объекту 2, т.е. 1 > 2, а затем к объекту 3, т.е. 1 > 3, с тем же биткойном. В этом транзакционном сценарии другим объектам в сети Биткойн невозможно выяснить, какой объект выполняет атаку на основе двойных расходов. Теперь, согласно правилам системы Биткойн, все активные объекты должны продлевать самую длинную цепочку блоков, и, следовательно, в этом сценарии двойных расходов оба объекта 2 и 3 будут иметь блокчейн точно такой же длины. Это приведет к двум типичным сценариям:
- Объект 2 может ожидать подтверждения, чтобы добавить сомнительную транзакцию 1 > 2 в локальный блокчейн. Эта операция исключит любую возможность получения подтверждения для другой транзакции, такой как транзакция 1 > 3.
- Объект 2 может просто потерять ранее полученный блок транзакции 1 > 2 сразу после того, как узнает о блокировке транзакции 1 > 3, т. е. поскольку все блоки транзакций в сети Биткойн объявляются (транслируются).
Однако шансы иметь уязвимости двойного расходования резко уменьшаются по мере увеличения количества подтверждающих сообщений (что в конечном итоге и происходит, поскольку в текущей сети Биткойн существует до 6 подтверждающих сообщений). Ожидается, что сообщение с подтверждением также будет получено сетью Биткойн в течение фиксированного периода времени, прежде чем она примет решение о полученной транзакции в блокчейне.
C. Уязвимости майнинг-пула
Пулы майнинга биткойнов представляют собой совокупность ресурсов, используемых майнинговыми организациями, которые совместно используют свои собственные вычислительные мощности в сети P2P. Эти пулы помогают равномерно разделить вознаграждение в зависимости от скорости работы, которую они вносят в вероятность обнаружения блока транзакции. Нынешняя инфраструктура Биткойн состоит из отдельных майнеров, открытых пулов, которые позволяют любому узлу майнера присоединиться к сети, и закрытого пула, для доступа к которому требуется частное (приватное) отношение. Эти пулы для майнинга предназначены для увеличения любой вычислительной мощности, которая быстро влияет на время проверки блока транзакции, тем самым увеличивая вероятность получения вознаграждения за майнинг. Как правило, за последние несколько лет было создано много пулов майнинга, контролируемые менеджерами, которые отправляют неразрешенные единицы конкретным членам узла майнера. В свою очередь, участники пула создают полные доказательства работы (FPoW) и частичные доказательства работы (PPoW), а затем передают их обратно менеджеру пула в виде долей. Как только член пула находит новый блок транзакций, он передает его менеджеру пула вместе с полными доказательствами работы. Затем менеджер пула будет рекламировать исследованный блок транзакции в сети, чтобы получить вознаграждение за майнинг. Затем полученное вознаграждение будет разделено между участвующими майнерами в соответствии с их долей. Следовательно, частичные доказательства работы используются только для определения того, как вознаграждения распределяются между клиентами.
Атака с перепрыгиванием через бассейн
Атаку с переключением между пулами, в которой злоумышленник использует информацию о количестве переданных долей в майнинговом пуле для осуществления эгоистичного майнинга (т. е. процесс майнинга биткойнов, при котором группа майнеров вступает в сговор для увеличения своего дохода). В рамках этой модели угрозы злоумышленник пытается выполнить непрерывный анализ количества долей, передаваемых смежными узлами майнера своему менеджеру пула, с целью изучения нового блока транзакции. Обещание здесь заключается в том, что вознаграждения распределяются в соответствии с переданными акциями. Поэтому, если передается огромное количество долей и нет нового блока транзакций, злоумышленник в конечном итоге получит относительно небольшую часть вознаграждения. И наоборот, Бутерин и др. также определили «спонсируемую блокировку атаки», в котором эгоистичный майнер может присоединиться к другому пулу, чтобы получить вознаграждение от этого пула и атаковать другой пул.
Взяточничество
Модель атаки, называемая взяточничеством, в которой злоумышленник может получить большую часть вычислительных ресурсов в течение фиксированного периода времени посредством взяточничества. Есть три метода внедрения взяточничества в сеть Биткойн. Пул майнинга с отрицательной комиссией, когда злоумышленник создает пул, выплачивая более высокую прибыль. Внеполосный платеж, когда злоумышленник платит владельцу вычислительными ресурсами и напрямую заставляет этих обманутых владельцев добывать блоки транзакций, назначенные взломщиком. Если хакер обладает большей частью мощности хеширования, он может организовать различные типы атак, включая, помимо прочего, DDoS и двойные траты. Кроме того, майнерские узлы, принимающие взятки, получат лишь краткосрочную прибыль, которая может быть подорвана потерями от существования Goldfinger и DDoS-атак или даже из-за краха обменного курса.
D. Уязвимости в криптографических приложениях
Управление закрытыми ключами в биткойнах и блокчейнах до сих пор остается нерешенной проблемой. Текущие приложения Биткойн используют закрытый ключ для проверки личности пользователей и выполнения транзакции на основе оплаты. Однако надежность закрытого ключа зависит только от предположения, что информация не может быть подделана. В биткойне, в отличие от классической криптографии с открытым ключом, клиенты несут ответственность за свои закрытые ключи. Каждый клиент несет ответственность за создание своих собственных закрытых ключей и их обслуживание (а не за третьих лиц). Если закрытые ключи будут потеряны, клиенты-владельцы не смогут получить доступ к своим цифровым активам в сети Биткойн. Более того, приложения на основе криптографических алгоритмов могут представлять собой неизвестные бэкдоры и угрозы. А именно, поскольку криптографические алгоритмы, такие как Rivest-Shamir-Adleman (RSA) и Криптография на эллиптических кривых (ECC) широко используется в блокчейне, бэкдоры или угрозы могут появляться в самих таких алгоритмах или даже на этапе их реализации. Таким образом, несмотря на то, что биткойн-кошелек гарантирует гибкость в управлении и обслуживании закрытого ключа пользователя, сохранение его в локальной сети объекта может создать огромные риски для безопасности в случае кражи.
E. Атаки Голдфингера
Новая модель атаки, называемая атакой «золотой палец», в которой намерение большинства организаций, занимающихся майнингом, состоит в том, чтобы явно нарушить стабильность сети Биткойн. Например, такой сценарий атаки может произойти, когда подключенный объект в сети пытается нанести вред Биткойну, чтобы предотвратить конкуренцию со своей собственной валютой. Кроме того, один пользователь может попытаться инвестировать в конкурирующую валюту. Тем не менее, эти типичные уязвимости были устранены с помощью уничтожения альткойнов, где атака глубокого форка противопоставлялась конкурирующей валюте с очень низкой мощностью майнинга, которая была эффективно установлена с использованием узлов майнинга биткойнов.
F. Угроза расщепления перьев
Модель атаки, называемая перьевым разветвлением, когда узлы майнеров пытаются отслеживать черный список транзакций, публично гарантируя, что конкретная транзакция добавлена в черный список в блокчейне. Хакер отбрасывает блок, содержащий целевую транзакцию, а затем попытается разветвить блокчейн. В целом ожидается, что хакеры, владеющие менее чем 50% мощностей майнинга, лишатся валюты. Тем не менее, они могут заблокировать конкретный блок транзакций из черного списка только с определенным уровнем вероятности. Кроме того, если у злоумышленников есть возможность убедительно доказать серьезность ответного форка, они также могут навязать свой назначенный черный список без каких-либо возможных затрат. То есть до тех пор, пока оставшиеся майнерские узлы подтвердят, что противник намеревается провести дорогостоящую ответную атаку с разветвлением перьев.
G. Сетевые уязвимости
По оценкам, предполагаемые атаки в сети Биткойн потребляют более 50% вычислительной мощности злонамеренного объекта. Тем не менее, несколько наступательных испытаний могут быть установлены следующим образом.
- Кража монет с определенных адресов других объектов. Маловероятно украсть монеты с других узлов, поскольку для этого потребуется взломать криптографические алгоритмы. Однако для кражи монет злоумышленник должен инициировать блок транзакции с помощью закрытого ключа целевого объекта. Получение закрытого ключа, соответствующего открытому ключу, будет криптографически сложным с существующими вычислительными возможностями.
- Ограничение блоков транзакций в блокчейне. Злоумышленники могут реально искажать транзакции, которые обеспечивают платежи конкретному майнеру (т. е. адресу). Однако, несмотря на то, что в Биткойн принята P2P-сеть, этот тип атаки в конечном итоге будет обнаружен, поскольку все транзакции блокчейна объявляются каждому майнеру, и такое обнаружение достигается благодаря существованию честных майнеров в сети Биткойн, которые должным образом выполняют это.
- Атака с вознаграждением за блок: этот тип атак также невозможен, потому что вредоносный узел майнера не может контролировать копию программного обеспечения, распространяемого во всей сети Биткойн. Когда разработчики обновят копию программного обеспечения, изменение будет видно всем клиентам в глобальной сети. Однако такая атака может привести к тому, что клиенты потеряют доверие к системе, и цена биткойнов определенно пострадает без какой-либо атаки со стороны злонамеренных лиц. Следовательно, эта атака практически осуществима, и ключевая проблема заключается в том, что она требует значительных инвестиций, чтобы превзойти хэш-мощность, но ее трудно осуществить на практике. Хотя за последние несколько лет в сетевой инфраструктуре Биткойн также были выявлены многочисленные модели угроз, а многие важные модели атак были проигнорированы. Например, валютные угрозы на уровне инфраструктур интернет-маршрутизации, где было установлено, что частями биткойн-потоков можно реально манипулировать (перехватывая сетевые потоки или манипулируя объявлениями маршрутизации, например, протоколом пограничного шлюза (BGP)).
Протокол консенсуса блокчейна и майнинг
Пользователям биткойнов не требуется проходить аутентификацию перед подключением к сети в протоколе консенсуса PoW. Этот процесс делает протокол консенсуса в Биткойне очень масштабируемым для поддержки огромного количества пользователей. Однако протокол консенсуса на основе PoW подвержен определенным атакам, когда, по оценкам, злоумышленник получает контроль над более чем 51% мощности майнинга. В этом сценарии угрозы злоумышленники могут создать свой собственный блок транзакций или даже разветвить локальную цепочку блоков, чтобы позднее сойтись с основной цепочкой блоков. Это нарушение безопасности, по-видимому, может способствовать различным атакам на Биткойн, включая, помимо прочего, DoS и двойные траты. Поскольку Биткойн является полностью децентрализованной системой криптовалюты, не контролируемой какой-либо стороной или органом власти, многие злоумышленники могут использовать такую систему как простое средство для совершения мошенничества и взлома транзакций. Следовательно, в следующих подразделах мы представляем таксономический обзор существующих угроз безопасности и мер противодействия им в биткойнах, а также лежащие в их основе технологии.
Двойная трата
Процесс проверки биткойнов для каждого блока транзакций в конечном итоге приведет либо к принятию, либо к отклонению сомнительного блока. А именно, о принятии будет сигнализироваться продление цепочки блоков (т. е. к цепочке блоков добавляется новый блок), тогда как об отклонении будет сигнализироваться отбрасывание блока транзакций и сохранение только недавно обновленной цепочки блоков другими объектами. Например, рассмотрим следующий сценарий обмена биткойнами, в котором объект 1 может отправить блок транзакции объекту 2 , т.е. 1 > 2 , а затем к объекту 3, т.е. 1 > 3 , с тем же биткойном. В этом транзакционном сценарии другим объектам в сети Биткойн невозможно выяснить, какой объект выполняет атаку на основе двойных расходов. Теперь, согласно правилам системы Биткойн, все активные объекты должны продлевать самую длинную цепочку блоков, и, следовательно, в этом сценарии двойных расходов оба объекта 2 и 3 будут иметь блокчейн точно такой же длины. Это приведет к двум типичным сценариям:
Объект 2 может ожидать подтверждения, чтобы добавить сомнительную транзакцию 1 > 2 в локальный блокчейн. Эта операция исключит любую возможность получения подтверждения для другой транзакции, такой как транзакция 1 > 3.
Объект 2 может просто потерять ранее полученный блок транзакции 1 > 2 сразу после того, как узнает о блокировке транзакции 1 > 3 , т. е. поскольку все блоки транзакций в сети Биткойн объявляются (транслируются).
Однако шансы иметь уязвимости двойного расходования резко уменьшаются по мере увеличения количества подтверждающих сообщений (что в конечном итоге и происходит, поскольку в текущей сети Биткойн существует до 6 подтверждающих сообщений). Ожидается, что сообщение с подтверждением также будет получено сетью Биткойн в течение фиксированного периода времени, прежде чем она примет решение о полученной транзакции в блокчейне.
Уязвимости майнинг-пула
Пулы майнинга биткойнов представляют собой совокупность ресурсов, используемых майнинговыми организациями, которые совместно используют свои собственные вычислительные мощности в сети P2P. Эти пулы помогают равномерно разделить вознаграждение в зависимости от скорости работы, которую они вносят в вероятность обнаружения блока транзакции. Нынешняя инфраструктура Биткойн состоит из отдельных майнеров, открытых пулов, которые позволяют любому узлу майнера присоединиться к сети, и закрытого пула, для доступа к которому требуется частное (приватное) отношение. Эти пулы для майнинга предназначены для увеличения любой вычислительной мощности, которая быстро влияет на время проверки блока транзакции, тем самым увеличивая вероятность получения вознаграждения за майнинг. Как правило, за последние несколько лет было создано много пулов майнинга, контролируемые менеджерами, которые отправляют неразрешенные единицы конкретным членам узла майнера. В свою очередь, участники пула создают полные доказательства работы (FPoW) и частичные доказательства работы (PPoW), а затем передают их обратно менеджеру пула в виде долей. Как только член пула находит новый блок транзакций, он передает его менеджеру пула вместе с полными доказательствами работы. Затем менеджер пула будет рекламировать исследованный блок транзакции в сети, чтобы получить вознаграждение за майнинг. Затем полученное вознаграждение будет разделено между участвующими майнерами в соответствии с их долей. Следовательно, частичные доказательства работы используются только для определения того, как вознаграждения распределяются между клиентами.
Атака с перепрыгиванием через бассейн
Атаку с переключением между пулами, в которой злоумышленник использует информацию о количестве переданных долей в майнинговом пуле для осуществления эгоистичного майнинга (т. е. процесс майнинга биткойнов, при котором группа майнеров вступает в сговор для увеличения своего дохода). В рамках этой модели угрозы злоумышленник пытается выполнить непрерывный анализ количества долей, передаваемых смежными узлами майнера своему менеджеру пула, с целью изучения нового блока транзакции. Обещание здесь заключается в том, что вознаграждения распределяются в соответствии с переданными акциями. Поэтому, если передается огромное количество долей и нет нового блока транзакций, злоумышленник в конечном итоге получит относительно небольшую часть вознаграждения. И наоборот, Виталик Бутерин также определил «спонсируемую блокировку атаки», в котором эгоистичный майнер может присоединиться к другому пулу, чтобы получить вознаграждение от этого пула и атаковать другой пул.
Взяточничество
Модель атаки, называемая взяточничеством, в которой злоумышленник может получить большую часть вычислительных ресурсов в течение фиксированного периода времени посредством взяточничества. Есть три метода внедрения взяточничества в сеть Биткойн. Пул майнинга с отрицательной комиссией, когда злоумышленник создает пул, выплачивая более высокую прибыль. Внеполосный платеж, когда злоумышленник платит владельцу вычислительными ресурсами и напрямую заставляет этих обманутых владельцев добывать блоки транзакций, назначенные взломщиком. Если хакер обладает большей частью мощности хеширования, он может организовать различные типы атак, включая, помимо прочего, DDoS и двойные траты. Кроме того, майнерские узлы, принимающие взятки, получат лишь краткосрочную прибыль, которая может быть подорвана потерями от существования Goldfinger и DDoS-атак или даже из-за краха обменного курса.
Уязвимости в криптографических приложениях
Управление закрытыми ключами в биткойнах и блокчейнах до сих пор остается нерешенной проблемой. Текущие приложения Биткойн используют закрытый ключ для проверки личности пользователей и выполнения транзакции на основе оплаты. Однако надежность закрытого ключа зависит только от предположения, что информация не может быть подделана. В биткойне, в отличие от классической криптографии с открытым ключом, клиенты несут ответственность за свои закрытые ключи. Каждый клиент несет ответственность за создание своих собственных закрытых ключей и их обслуживание (а не за третьих лиц). Если закрытые ключи будут потеряны, клиенты-владельцы не смогут получить доступ к своим цифровым активам в сети Биткойн. Более того, приложения на основе криптографических алгоритмов могут представлять собой неизвестные бэкдоры и угрозы. А именно, поскольку криптографические алгоритмы, такие как Rivest-Shamir-Adleman (RSA) и Криптография на эллиптических кривых (ECC) широко используется в блокчейне, бэкдоры или угрозы могут появляться в самих таких алгоритмах или даже на этапе их реализации. Таким образом, несмотря на то, что биткойн-кошелек гарантирует гибкость в управлении и обслуживании закрытого ключа пользователя, сохранение его в локальной сети объекта может создать огромные риски для безопасности в случае кражи.
Атаки Голдфингера
Новая модель атаки, называемая атакой «золотой палец», в которой намерение большинства организаций, занимающихся майнингом, состоит в том, чтобы явно нарушить стабильность сети Биткойн. Например, такой сценарий атаки может произойти, когда подключенный объект в сети пытается нанести вред Биткойну, чтобы предотвратить конкуренцию со своей собственной валютой. Кроме того, один пользователь может попытаться инвестировать в конкурирующую валюту. Тем не менее, эти типичные уязвимости были устранены с помощью уничтожения альткойнов, где атака глубокого форка противопоставлялась конкурирующей валюте с очень низкой мощностью майнинга, которая была эффективно установлена с использованием узлов майнинга биткойнов.
F. Угроза расщепления перьев
Модель атаки, называемая перьевым разветвлением, когда узлы майнеров пытаются отслеживать черный список транзакций, публично гарантируя, что конкретная транзакция добавлена в черный список в блокчейне. Хакер отбрасывает блок, содержащий целевую транзакцию, а затем попытается разветвить блокчейн. В целом ожидается, что хакеры, владеющие менее чем 50% мощностей майнинга, лишатся валюты. Тем не менее, они могут заблокировать конкретный блок транзакций из черного списка только с определенным уровнем вероятности. Кроме того, если у злоумышленников есть возможность убедительно доказать серьезность ответного форка, они также могут навязать свой назначенный черный список без каких-либо возможных затрат. То есть до тех пор, пока оставшиеся майнерские узлы подтвердят, что противник намеревается провести дорогостоящую ответную атаку с разветвлением перьев.
G. Сетевые уязвимости
По оценкам, предполагаемые атаки в сети Биткойн потребляют более 50% вычислительной мощности злонамеренного объекта. Тем не менее, несколько наступательных испытаний могут быть установлены следующим образом.
Кража монет с определенных адресов других объектов. Маловероятно украсть монеты с других узлов, поскольку для этого потребуется взломать криптографические алгоритмы. Однако для кражи монет злоумышленник должен инициировать блок транзакции с помощью закрытого ключа целевого объекта. Получение закрытого ключа, соответствующего открытому ключу, будет криптографически сложным с существующими вычислительными возможностями.
Ограничение блоков транзакций в блокчейне. Злоумышленники могут реально искажать транзакции, которые обеспечивают платежи конкретному майнеру (т. е. адресу). Однако, несмотря на то, что в Биткойн принята P2P-сеть, этот тип атаки в конечном итоге будет обнаружен, поскольку все транзакции блокчейна объявляются каждому майнеру, и такое обнаружение достигается благодаря существованию честных майнеров в сети Биткойн, которые должным образом выполняют это.
Атака с вознаграждением за блок: этот тип атак также невозможен, потому что вредоносный узел майнера не может контролировать копию программного обеспечения, распространяемого во всей сети Биткойн. Когда разработчики обновят копию программного обеспечения, изменение будет видно всем клиентам в глобальной сети. Однако такая атака может привести к тому, что клиенты потеряют доверие к системе, и цена биткойнов определенно пострадает без какой-либо атаки со стороны злонамеренных лиц. Следовательно, эта атака практически осуществима, и ключевая проблема заключается в том, что она требует значительных инвестиций, чтобы превзойти хэш-мощность, но ее трудно осуществить на практике. Хотя за последние несколько лет в сетевой инфраструктуре Биткойн также были выявлены многочисленные модели угроз, а многие важные модели атак были проигнорированы. Например, валютные угрозы на уровне инфраструктур интернет-маршрутизации, где было установлено, что частями биткойн-потоков можно реально манипулировать (перехватывая сетевые потоки или манипулируя объявлениями маршрутизации, например, протоколом пограничного шлюза (BGP)).