Можно ли взломать Биткоин?
Возможные уязвимости и способы противостояния им
Продолжаю рассматривать основные возражения противников и скептиков криптовалют, начатое в статье «Биткоин: Мифы и предрассудки».
Сейчас речь пойдет об утверждении, что Биткоин, как систему, можно взломать. А это означает, что надежность денежной системы и ваших денег в ней под угрозой.
Это утверждение опирается на многочисленные сообщения в СМИ о взломах криптовалютных бирж, начиная со знаменитого взлома биржи Mt.Gox в 2011 году, когда неизвестный злоумышленник (или злоумышленники) похитил биткоинов на сумму $8,75 млн.
Взломы криптовалютных бирж и компаний — не такое уж редкое событие. Вот, к примеру, список некоторых случаев:
- июль 2014 — Cryptsy (13 000 BTC и 300 000 LTC, что составляет примерно $5,2 млн по текущему курсу)
- январь 2015 — Bitstamp (похищено около 19 000 BTC на сумму $5 млн)
- апрель 2016 — ShapeShift (315 BTC, около $130 тыс.)
- май 2016 — Gatecoin (Суммарный ущерб составил 250 BTC ($114 500) и 185 000 ETH ($1 850 000), то есть суммарно около $2 млн)
- август 2016 — Bitfinex (119 756 BTC, что составило около $70 млн)
- июль 2017 — Parity Wallet (хакеры взломали сервис он-лайн кошельков и похитили 153 000 ETH — около $32 млн).
И это далеко не все примеры.Но взлом кода бирж еще не означает, что взломан сам Биткоин, как система. Это означает лишь то, что злоумышленники взломали стороннее хранилище приватных ключей, не более.
Биткоин, как система, не несет и не может нести в принципе ответственности за ненадлежащее хранение приватных ключей от биткоин-адресов. Ответственность за это хранение возложена на самих владельцев адресов.
Поэтому взлом криптовалютных бирж, либо других сервисов, на которых временно хранятся приватные ключи пользователей, не является по сути взломом системы Биткоин.
Аналогия: Если у вас супернадежный замок от входной двери вашей квартиры, а вор похитил из вашего кармана ключи, это не означает, что вор взломал сам замок.За всю историю существования Биткоина (с 2009 года) не было ни одного серьезного инцидента, связанного с безопасностью и взломом, приведшего к фатальным последствиям.
Но, тем не менее, потенциальные угрозы существуют и мы сейчас их рассмотрим и выясним, насколько они реальны. Всего я выделяю три основных угрозы безопасности системы Биткоин:
- Ошибка в коде системы, приводящая к уязвимости.
- Взлом приватных ключей.
- Захват управления блокчейном (т.н. «атака 51%»).
Ошибка в коде системы, приводящая к уязвимости
Биткоин — постоянно развивающаяся система и код её основного программного клиента Bitcoin Core неоднократно менялся и совершенствовался. Несмотря на то, что работу над этим кодом ведут независимые профессиональные программисты из разных уголков планеты, а окончательное решение по внесению изменений в код принимается после их всестороннего обсуждения, тем не менее существует потенциальная опасность возникновения непреднамеренных ошибок (багов) и уязвимостей. Этот риск мизерный, но он есть и его надо принимать во внимание. Тем более, что такое уже случалось в истории Биткоина.
15 августа 2010 года баг в программном коде стал причиной «грязной» транзакции в блоке №74638 — более 184 млрд BTC (точное значение — 184 467 440 737,09551616) были переданы в одном переводе. На два адреса было отправлено по 92,2 млрд BTC на каждый и еще на один — дополнительно 0,01 BTC, которых не существовало до транзакции. Это было возможно, потому что код, используемый для проверки транзакций, прежде чем включать их в блок, не учитывал настолько больших выходов, что они переполнялись при суммировании.
Спустя час ошибка была обнаружена, код был исправлен в течение нескольких часов и в результате преднамеренного форка «чистый» блок №74691 стал заменой для «грязного» в цепочке.
Это была единственная найденная и использованная существенная уязвимость за всю историю Биткоина.
Следует отметить, что подобного рода ошибки в блоках транзакций можно исправить только при помощи форка — создании более длинной цепи валидных блоков. При этом, разумеется, будут потеряны транзакции, попавшие в фейковую цепочку, но сохранены биткоины, бывшие на счетах клиентов до возникновения форка.
Взлом приватных ключей
Биткоин-адреса связаны с приватными ключами посредством криптографического алгоритма хэширования на основе функции SHA256.Хэш-функция SHA256 является необратимой. Это означает, что невозможно вычислить приватный ключ по известному биткоин-адресу. Потребуется только перебор всех возможных вариантов, которых насчитывается 2 в 256–й степени или 10 в 77-й степени, т.е. единица с 77 нулями. Это настолько огромное число, что для него даже нет названия.
Перебрать все эти варианты в поисках соответствия адреса ключу за сколь-нибудь приемлемое время при существующем уровне развития компьютерной техники невозможно. Говорят, что если бы все компьютеры Земли одновременно решали эту задачу, то потребовалось время, сравнимое со временем существования нашей Вселенной.
Но компьютерная техника и технологии не стоят на месте, а стремительно развиваются. Не исключено, что хэш-функция SHA256 будет когда-то взломана. Возможно, для этого будет использован разрабатывающийся сейчас квантовый компьютер. Однако, когда это случится, сколько для этого потребуется ресурсов, включая энергетические, пока предсказать сложно. Поэтому, взлом SHA256 в настоящее время — это из области фантастики.
Захват управления блокчейном («атака 51%»)
Об «атаке 51%» я уже писал в статье «Биткоин: Предупреждение о рисках». Это состояние, когда более половины вычислительной мощности сети Биткоина контролируется одним майнером или группой майнеров. Теоретически, этот объём вычислительной мощности дает власть над сетью. Это означает, что каждая клиентская программа в сети верит в подтвержденный блок транзакций атакующей стороны. Что позволяет атакующим осуществить контроль над сетью, включая следующие полномочия:
- создавать транзакции, конфликтующие с чужими;
- останавливать подтверждение чьей-либо транзакции;
- тратить одни и те же монеты несколько раз;
- мешать другим майнерам формировать действительные блоки.
Но, высокая затратность майнинга вследствие применения PoW(доказательства выполненной работы) служит надежной защитой от попыток взлома денежной сети и осуществления над ней контроля, делая экономически нецелесообразной т.н. «атаку 51%».
В настоящее время (29.12.2017) для проведения такой атаки необходимо приобрести оборудования на сумму более $4,5 млрд плюс нести затраты на электроэнергию в размере более $8 млн в сутки.Теоретически это возможно, но практически трудно осуществимо.
Итоги:
В настоящее время система Биткоин имеет достаточно надежную защиту от взлома и несанкционированных действий. Эта защита обеспечена:
- надежным и открытым программным кодом, над которым трудятся профессиональные программисты со всего мира;
- надежным критографическим алгоритмом хэш-функции SHA256;
- надежной защитой от «атаки 51%», делающей её очень дорогостоящей.