Книга: Биткойн для чайников
Назад: Глава 9. На стороне закона
Дальше: Глава 11. Майнинг биткойнов

Глава 10. Безопасность биткойна

В этой главе…
• Анализ защищенности, присущей децентрализации
• Как предотвратить атаку 51%
• Двойное расходование средств и как его избежать

 

Защищен ли биткойн? Один из наиболее частых вопросов о биткойне – “Достаточно ли хорошо защищена вся экосистема биткойна, чтобы противостоять атакам хакеров (людей, стремящихся нарушить работу сети в попытке многократно потратить свои монеты)?”
Ответ на этот вопрос выходит за рамки простого “да” и порой включает технический жаргон. В этой главе будут описаны основы и дано объяснение, почему биткойн защищен и что делается для усиления уровня безопасности по мере роста его экосистемы.

Сеть биткойна: как это работает

Если верить СМИ, то за последние несколько лет сеть и протокол биткойна неоднократно взламывались. Однако это далеко не так. Сама по себе сеть биткойна ни разу не была успешно взломана и, вероятно, никогда не будет – в традиционном понимании того, что такое взлом.
Конечно, некоторые биткойн-пользователи за эти годы потеряли свои монеты, но ни один из этих случаев нельзя отнести к дырам в системе безопасности самой сети. Такие сервисы, как биржи и провайдеры облачных кошельков, выстроенные поверх сети биткойна, стали жертвами их собственных недостатков в системах безопасности. Как только эти сервисы оказывались взломанными, пользователи теряли хранящиеся там монеты. Повторим еще раз: это не имеет ничего общего с дырами в безопасности самой сети Биткойн, так как децентрализованные сети по типу биткойна не могут быть “взломаны”.
Что делает сеть биткойна безопасной
Что делает сеть биткойна настолько безопасной, что нечего даже беспокоиться об угрозах со стороны хакеров? Давайте посмотрим.
• Сеть биткойна децентрализована. Участие в системе множества пользователей, ни один из которых не обладает “особыми полномочиями”, гарантирует отсутствие единой точки отказа, через которую можно было бы взломать протокол биткойна. Каждый отдельно взятый пользователь может стать жертвой хакерской атаки, но эго не окажет никакого влияния на сеть биткойна в целом. Даже если все пользователи в одной стране одномоментно подвергнутся хакерской атаке, сеть биткойна продолжит работать как ни в чем не бывало.
• Для гарантии целостности и сохранения хронологической последовательности блокчейна и всех сохраненных в нем связанных транзакций в сети биткойна используется мощнейшая криптография. Теоретически криптография такою уровня могла бы быть взломана, но это потребовало бы объединенной вычислительной мощности всех существующих на данный момент суперкомпьютеров на протяжении неопределенного периода времени (число с 15-ю нулями; мы вместе с редакцией не знаем правильного слова для его обозначения; пожалуй, можно описать его как квантовый скачок компьютерных мощностей), чтобы получить призрачный шанс взлома сети биткойна как таковой.
• Каждый отдельно взятый биткойн-адрес защищен закрытым ключом, который необходимо предъявить при отправке в сеть транзакции со средствами с этого адреса. Пользователи биткойн-кошельков, устанавливаемых на компьютер или мобильное устройство, являются единственными владельцами закрытого ключа. И до тех пор, пока устройство не скомпрометировано, никто другой в мире не может заполучить этот ключ.
• Процесс генерации новых биткойнов, называемый майнингом (за дополнительной информацией о майнинге обратитесь к главе II), работает на основе распределенной консенсусной системы, которая подтверждает (или отклоняет) транзакции, распространяющиеся в сети Биткойн посредством сложного вычислительного алгоритма. Для успешного майнинга биткойнов требуется специализированное компьютерное оборудование, и общее количество такого оборудования, используемого по всему миру, до сих пор от месяца к месяцу растет. Плюс к тому ключевую роль в этом процессе играет децентрализация, поскольку биткойн-майнеры рассеяны по всему миру. У правительства нет возможности раз и навсегда остановить создание новых биткойнов, поскольку в системе отсутствует централизованное управление (оно же – точка отказа).
Для более детального ознакомления с устройством сети Биткойн читайте описание биткойна от его создателя Сатоши Накамото https://bitnovosti.com/2012/12/22/bitcoin-genesis/ (оригинал на английском: https://bitcoin.org/bitcoin.pdf).
Роль полных узлов биткойна
Отдельные пользователи биткойна – не единственная движущая сила в отношении усиления безопасности сети. В течение последних нескольких лет специально выделенные биткойн-узлы присоединялись к сети с единственной целью – прием и распространение новых биткойн-транзакций среди других пользователей и узлов сети. Это действие выводит аспект децентрализации биткойна на принципиально новый уровень.
Каждый узел сети Биткойн это устройство (такое, как, например, компьютер, мобильное устройство или даже микрокомпьютер по типу Raspberry Pi 2), на котором размещается весь блокчейн, начиная с генезис-блока, созданного в 2009 году. Генезис-блок был первым блоком данных в сети биткойна; за его майнинг Сатоши Накамото получил награду в 50 биткойнов. Начиная с этого момента пользователи биткойна получили возможность генерировать биткойны и распространять биткойн-транзакции по всему миру.
Биткойн-узел совмещен с биткойн-клиентом, но этот софт не принимает и не рассылает монеты сам по себе, если это противоречит воле его оператора. Такие узлы просто выполняют функцию хранения копии блокчейна с целью возможности проверки целостности, нейтральности и хронологической последовательности транзакций начиная с генезис-блока и до текущего момента (больше о блокчейне – в главе 7).
Запуск и поддержание работы биткойн-узла не приносит его владельцу вознаграждения в виде новых биткойнов. Единственным смыслом существования биткойн-узла является усиление сети. На момент написания этой книги в сети было уже более 6 тысяч полных узлов, и все время добавляются новые. Распределение полных биткойн-узлов по странам мира можно увидеть на сайте .

Защита биткойна от хакеров

Как уже упоминалось, сеть биткойна основывается на защищенной технологии, которую не могут взломать даже самые “продвинутые” хакеры с помощью мощнейших компьютеров. Криптография – технология безопасных коммуникаций в присутствии посторонних с использованием длинных последовательностей секретных кодов, которые невозможно разгадать – играет немаловажную роль в безопасности биткойна. При правильном использовании криптография может сделать систему экстремально защищенной.
В последние годы в СМИ была большая путаница относительно того, как именно работает биткойн. Вопреки распространенному мнению биткойн не управляется каким-то одним лицом или организацией, т. е. нет какого-то “биткойн-босса” или “биткойн-директора”. Все пользователи равноправны и ни один из них не играет какой-то особенной роли и не обладает специальными полномочиями. Это делает биткойн непривлекательной мишенью для хакеров.
Попытка взлома сети биткойна была бы подобна взлому Интернета. Это просто невозможно. И биткойн, и Интернет по природе своей децентрализованы и не имеют единой точки отказа. Если какая-то часть сети отключится, маршрутизация пакетов перестроится таким образом, чтобы обходить проблемный участок, и сеть продолжит работу. Те же самые принципы применимы к сети биткойна.
Отсутствие центральной точки отказа означает, что у сети биткойна нет “выключателя”. Сеть биткойна охватывает весь мир, работает на всех континентах, и невозможно одновременно выключить каждый компьютер и все прочие устройства, подключенные к сети. Даже правительства не смогут это сделать. Официальные лица могут запретить использование биткойна в каких-то странах, но это не будет означать, что сеть прекратит работать даже там.
Кроме того, стимулы для взлома сети биткойна отсутствуют, так как это не дает хакерам никакой финансовой выгоды. Все предыдущие блоки включают биткойны, которые уже были высланы одними и получены другими пользователями биткойна, и это! факт невозможно изменить. И свежесозданные монеты – даже если сеть была бы взломана (что практически невозможно) – также не попадут напрямую к хакеру.
Сеть биткойна по праву можно назвать технологическим чудом, так как она дает невиданный ранее уровень финансовой защищенности. Но несмотря на все эти перспективы в сети биткойна – и в блокчейне, лежащем в ее основе – есть многое, что пока непонятно и что может послужить поводом для беспокойства. Полное постижение сети биткойна и ее технологической мощи придет через много лет, именно поэтому так важно продолжать расширять сообщество биткойна. У каждого участника свой взгляд на вещи и на то, как что-то можно было бы улучшить или использовать для взлома. Предотвращение атаки всегда лучше, чем исправление ее последствий.
Взлом сервисов на основе биткойна
Конечно, всегда существует возможность того, что в какой-то точке платформа биткойна может быть взломана. Причина этого проста: несмотря на общую концепцию полной децентрализации сети большинство биткойн-сервисов и платформ (в отличие от биткойн-сети самой по себе) развернуто и работает на одном или нескольких централизованных серверах.
Когда у хакеров есть цель в виде централизованной точки отказа, выключение единичного сервиса значительно проще, чем атака на саму сеть биткойна. Даже если хакеры взломают биткойн-сервис, это не скажется на работе самой биткойн-сети, поскольку эти два элемента не связаны между собой.
Биткойн-сервисы используют блокчейн для проверки и обработки транзакций, но блокчейн не зависит от них. Некоторые полагают, что если биткойн-биржа оказывается взломанной, то ее связь с блокчейном сделает сеть биткойна также уязвимой. Но это не так, поскольку биткойн-биржи представляют собой сервисы, построенные поверх блокчейна, и они действительно централизованы.
Фактически в настоящий момент нет прямой связи между сетью биткойна и каким-либо существующим биткойн-сервисом. Единственное, что связывает пользователей и блокчейн, – это биткойн-кошельки, которые, в свою очередь, образуют отдельный слой поверх блокчейна. Единичные пользователи не могут напрямую изменять блокчейн, поэтому взлом единичного пользователя никоим образом не влияет на работу биткойн-сети в целом. Тот же самый принцип применим и к взлому биткойн-сервисов. Они представляют собой слой поверх биткойн-сети, т. е. не оказывают влияния на работу всей сети как таковой. Все, что делают биткойн-сервисы, – эго распространяют определенные типы транзакций в сети биткойна, но если эти транзакции никогда не будут оттранслированы в сеть, то она продолжит работать так же, как и прежде.
По сути, биткойн-сеть не может быть затронута ничем находящимся за ее непосредственными пределами. Проблема возникла бы только в случае, если бы сеть биткойна подверглась взлому и была изменена 51 % или большим количеством хеш-мощности сети (подробнее – в следующем разделе). Принимая во внимание вычислительную мощность, обеспечивающую безопасность сети на текущий момент, набрать 51 % от ее общей вычислительной мощности – почти нереализуемая задача ни для частника, ни для правительства.
Вдобавок взлом биткойн-сервисов – гораздо более прибыльное дело, чем взлом сети как таковой. Например, биткойн-биржи хранят большое количество клиентских средств в биткойнах, что создает соблазн для хакеров попытаться украсть часть этих денег. Биржи, на которых безопасность была не на высоте, за время существования биткойна не раз становились жертвами таких атак благодаря именно плохой организации их индивидуальной защиты.
Независимо от того, сколько биткойн-бирж и сервисов было взломано, эти случаи не оказывают никакого влияния на сам блокчейн. До тех пор, пока хотя бы у одного пользователя запущен биткойн-клиент на любом поддерживаемом устройстве, блокчейн будет продолжать делать свое дело. И с каждым днем все увеличивающееся количество клиентских приложений помогает все лучше защищать сеть биткойна.

Поговорим об атака 51-го процента

Одна из очень немногих вещей, которые могли бы нанести существенный вред сети Биткойн, – это так называемая “атака 51 %”. Проще говоря (а мне нравятся простые формулировки, как и многим из вас), атака 51 % означает, что какой-то майнер или картель майнеров завладевает 51 % от общего количества вычислительных ресурсов сети. Это может привести к форку (разделению единого журнала транзакций, блокчейна, на два с определенного момента противоречащих друг другу варианта) сети биткойна. В результате будет создан новый “искусственный” вариант блокчейна, с точки зрения которого любые транзакции “старого” блокчейна будут недействительны.
Теория атаки 51%
Вероятность атаки 51 % в мире биткойна очень мала, хотя и не нулевая. Как только злоумышленник получит в свое распоряжение 51 % (или более) хеширующей мощности всей сети, он сможет по своему усмотрению блокировать новые транзакции или изменять их порядок, что позволит ему контролировать запись информации в блокчейн биткойна.
Атака 51 % может иметь неприятные последствия для сети биткойна в целом. Например, человек, группа лиц или компания, несущие ответственность за атаку 51 % в сети биткойна, получили бы возможность обращать транзакции на протяжении всего времени атаки. Транзакции с двойной тратой – возможностью потратить одни и те же биткойны дважды – в это время стали бы настоящей проблемой, ведь было бы невозможно понять, какая транзакция настоящая, а какая нет (мы поговорим об этом еще чуть позже в этой же главе).
Кроме того, лица, ответственные за атаку, могут помешать любой транзакции по выбору – или сразу всем – набирать подтверждения. К тому же стоит атакующим пожелать, и майнеры не смогут майнить правильные блоки в сети, при том что весь доход будет уходить к атакующим. Это основная из причин, по которым эксперты индустрии биткойна хотят быть уверены, что атака 51 % никогда не произойдет ни при каких обстоятельствах, хотя стопроцентной гарантии никто, конечно же, дать не может.
Но говоря об этой сугубо теоретической возможности, стоит упомянуть еще кое о чем. Чего злоумышленник (или злоумышленники) не сможет сделать, так это изменять транзакции, инициированные другими пользователями. Не смогут они также украсть биткойны других пользователей, ведь у них все равно не будет секретного ключа. Только собственные транзакции атакующих смогу! быть обращены, но даже одно только это может нанести сети биткойна значительный ущерб, ведь проведение транзакций другими пользователями также может стать невозможным, если атакующие решат помешать этим транзакциям получить подтверждения в сети. Подтверждения происходят в результате подписания новых блоков в биткойн-сети, и атака смогла бы полностью остановить этот механизм. Но создание монет из ничего или даже изменение награды за блок – это два базовых параметра сети, которые все равно никак нельзя изменить. В итоге получается, что, даже завладев 51 % вычислительной мощности сети биткойна, найдется не так уж и много вещей, на которые злоумышленники смогли бы повлиять.
Только теория
Надо понимать, что не все стратегии, существующие в теории, имеют шанс реализоваться в действительности. Именно к такой группе относится стратегия “Атаки 51 %”, по мнению подавляющего большинства блокчейн-экспертов.
Зачем же тогда вообще обсуждать эту проблему? В мире биткойна считается, что необходимо тщательно изучать любые потенциальные дыры в сетевом протоколе до того, как злоумышленники получат возможность их использования. Всегда гораздо лучше заранее “перебдеть”, чем потом сожалеть и пытаться исправить ситуацию, так что биткойн-девелоперы непрестанно работают, чтобы застраховать сеть от нанесения ей любого вреда.
По мере развития технологии девелоперам придется оставаться на переднем крае и принимать все технологические новинки близко к сердцу. Безопасность – постоянно меняющаяся сущность, и, если ей не уделять должного внимания, она может привести к многочисленным плохим последствиям. К счастью, биткойн-разработчики стоят на страже наших интересов.
Большинство экспертов в области безопасности ожидают, что в обозримом будущем атаки 51 % не произойдет. Нет каких-либо стимулов к атаке, кроме того что появится возможность двойной траты монет, которыми владеет сам злоумышленник. Если у злоумышленника мало монет, то проведение успешной (и, заметим, крайне дорогостоящей) атаки не принесло бы атакующему никакого монетарного вознаграждения. Если же у него большое количество монет, го проведение такой атаки способно их существенно обесценить, что вряд ли компенсируют попытки двойной траты, успешность которых тоже далеко не гарантирована.
Насколько вероятна атака 51%
Проведение атаки 51 % частным биткойн-майнером или хакером практически невозможно. Однако в последние годы некоторые из крупнейших майнинг-пулов подходили близко к тому, чтобы завладеть более чем пятьюдесятью процентами вычислительной мощности сети. Однако благодаря своевременно принятым мерам в отношении затронутых пулов потенциал доминирования единственного из участников сети был каждый раз успешно блокирован.
Узел Ghash.io, в прошлом один из крупнейших майнинг-пулов биткойна, неоднократно подходил к границе 51 % мощности сети. Последний раз Ghash.io пересек черту 51 % в июле 2014 года, вынудив биткойн-сообщество сесть за стол переговоров с владельцами пула и всем сообществом майнеров биткойна, чтобы найти решение.
Были разработаны меры, включавшие обязательство со стороны Ghash.io с этого момента никогда более не преступать порог в 29,99 % общего хешрейта (общая вычислительная мощность, определяемая как сумма мощностей всех майнеров) сети Биткойн. И несмотря на то что 29,99 % – это все равно слишком много для контроля со стороны одного майнинг-пула, это также может рассматриваться как буфер, чтобы помешать кому-то другому, кто захочет начать злонамеренную “атаку 51 %” на сеть.
Это был уже второй случай менее чем за год, когда Ghash.io был близок – или превзошел – уровень 51 % всей вычислительной мощности сети. В январе 2014 года Ghash.io также был близок к тому, чтобы завладеть 51 % хеш-мощности сети – результатом этого стало приостановление возможности регистрации в пуле новых пользователей на достаточно длительный период.
Впрочем, в мире майнинг-пулов ничего не остается постоянным, новые пулы появляются, набирают популярность, потом идут к закату и исчезают. То же самое произошло с Ghash.io. После 2014 года пул постепенно исчез с горизонта. Компания CEX.io – владелец узла Ghash.io – в конце 2014 года решила приостановить сервис облачного майнинга из-за того, что низкая цена биткойна делала бесприбыльной работу всего оборудования, используемого для майнинга в пуле Ghash.io. Если оборудование подразделения облачного майнинга CEX.io в будущем когда-либо будет включено вновь, будет интересно посмотреть, сможет ли Ghash.io стяжать былую славу.
На момент выхода книги вычислительная мощность сети биткойна делится между множеством майнинг-пулов. Самый крупный на текущий момент пул – китайский AntPool (в нем 17,8 % мощности сети); за ним следуют пул BTC.Тор (11,7 %), Bixin (9,7 %) и BitFury (8 %). Актуальную информацию о распределении хеш-мощности можно получить на странице .
Все вышеупомянутые пулы управляются китайскими операторами, что делает Китай страной, которой в настоящий момент принадлежит около половины вычислительной мощности сети биткойна.

Двойная трата

Одним из главных опасений в отношении биткойна является вопрос “Сможет ли хакер потратить свои монеты дважды?” Теоретически двойная трата могла бы произойти, и на практике она происходила. Тем не менее фактор риска, ассоциированный с таким событием, близок к нулю, поскольку шансы здесь в пользу биткойн-пользователя или торговца. Но что же такое атака двойной траты и как ее можно провести?
Атака двойной траты
Название говорит само за себя. Технически атака двойной траты позволяет одному пользователю дважды потратить все монеты, находящиеся у него на балансе. Например, если у кого-то в кошельке находится 5 биткойнов, то теоретически при реализации сценария двойной траты он мог бы потратить 10 биткойнов. Тем не менее в сети биткойна есть различные правила для предотвращения двойной траты, что делает ее крайне редким явлением.
Каждая биткойн-транзакция при ее распространении в блокчейне проверяется каждым отдельным узлом сети. Каждая биткойн-транзакция содержит ввод, эквивалентный последнему непотраченному выводу, на аккаунте, о котором здесь идет речь. Каждый непотраченный вывод может быть потрачен только однократно, что должно сделать двойную трату биткойнов невозможной.

 

Атака в спешке
И хотя атака двойной траты в настоящее время очень редка, все равно есть шансы, что кто-то может стать ее жертвой. Из соображений удобства интернет-торговцы и трейдеры склонны считать, что биткойн-платеж уже прошел даже при нуле подтверждений – это дает возможность атакующему потратить те же самые деньги еще раз. По мере того как транзакция набирает все больше подтверждений, шансы проведения двойной траты сокращаются экспоненциально.
Торговцы могут принять определенные меры предосторожности, чтобы обезопасить себя от атаки двойной траты. Во-первых, и в самых главных, это работа с биткойн-процессором платежей, который согласует риски на стороне торговца. – это шаг в правильном направлении. Большинство платежных процессоров защитят торговца от убытков даже в случае атаки двойной траты.
Во-вторых, торговцы и рядовые пользователи сети могут запретить входящие соединения в клиенте, чтобы он мог только сам соединяться с доверенными узлами. Эти действия сводят к нулю риск атаки двойной траты. Но даже если так, все равно лучше дожидаться как минимум шести подтверждений транзакции.
Против биткойн-сети могут быть применены различные типы атаки двойной траты. Мы только что обсудили атаку “в гонке”, которую можно провести, только пока транзакция не получила ни одного подтверждения.
Ожидание нескольких подтверждений – лучшее средство убедиться в том, что транзакция легитимна, даже если это и самый удобный вариант для торговцев.
Атака Финни
Еще одним популярным видом атаки двойной траты является атака Финни, которая требует участия биткойн-майнера сразу после того, как в сети был найден очередной блок. Меры предосторожности, предпринятые торговцем, не могут помешать успешному осуществлению атаки Финни, хотя для того, чтобы атака считалась успешной, злоумышленнику потребуется совершить вполне определенную последовательность действий. В целом этот метод достаточно дорогостоящ, что снижает риск проведения атак такого типа для торговцев и провайдеров сервисов.
Комбинация атаки “в спешке” и атаки Финни позволяет провести атаку Вектор76. Теоретически эта атака позволяет двойную трату биткойнов даже после первого сетевого подтверждения транзакции. Успешная атака будет стоить атакующему один блок – атакующий должен утаить этот блок и вместо того, чтобы распространить информацию о нем в сети, оттранслировать его атакуемому узлу в надежде, что успеет скрыться с товаром или воспользоваться сервисом до того, как сеть распознает атаку.

 

Брутфорс-атака
И последние, но не менее значимые – брутфорс-атака и атака >50 %. Для проведения обеих требуется неимоверное количество вычислительной мощности сети биткойна. Вероятность проведения любой из этих атак в настоящее время крайне мала, так как атакующему понадобилось бы получить контроль над существенным количеством всей майнинговой мощности сети биткойна.
Брутфорс-атака происходит так.

 

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

 

Вероятность успеха атаки – функция от хешрейта атакующего (как доли общего хешрейта сети) и числа подтверждений, которые будет дожидаться торговец перед тем, как выдать товар. Например, в случае, если атакующий контролирует 10 % хешрейта сети, но торговец ждет прохождения шести подтверждений, вероятность успеха атаки будет порядка 0,1 %.
Как описывалось в предыдущем разделе, атака >50 % преуспеет только в случае, если злоумышленник получит контроль над более чем 50 % хеш-мощности всей сети. Поскольку в этом случае злоумышленник может генерировать блоки быстрее, чем оставшаяся часть сети, он может попросту упорно наращивать блоки в своем форке до тех пор, пока его цепь не станет длиннее цепи, построенной “честной” сетью. Тогда никакое количество подтверждений не спасет от атаки.
Самую большую угрозу торговцам и провайдерам биткойн-сервисов несет атака >50 %. поскольку она также косвенным образом обеспечивает успех брутфорс-атаке. Но учитывая, до каких размеров выросла вычислительная мощность сети биткойна к настоящему времени, возникают большие сомнения в том, что такая атака когда-либо сможет быть успешно проведена.
Наибольшей проблемой биткойн-сети является то, что поверх нее понастроили слишком много централизованных сервисов. Почти каждая биткойн-биржа и каждый майнинг-пул представляют собой централизованные сервисы. Когда биткойн-биржа оказывается взломанной, это не оказывает влияния на блокчейн сам по себе, равно как и не открывает возможность к проведению атаки двойной траты. Но когда взламывают большой майнинг-пул, это может быть совсем другой коленкор. К счастью для всех участников, сейчас в сети нет майнинг-пула биткойнов, который контролировал бы половину сети. Самые большие майнинг-пулы контролируют до 25 % общей вычислительной мощности сети. Гем не менее, если злоумышленник решит провести брутфорс-атаку для двойной траты биткойнов, то такой доли мощности сети ему будет достаточно.
Назад: Глава 9. На стороне закона
Дальше: Глава 11. Майнинг биткойнов