1
Что такое атака 51%?
Атака 51% — это уязвимость PoW-блокчейнов, с помощью которой злоумышленник захватывает контроль над подтверждением транзакций и генерацией блоков.
2
Что дает обладание 51% мощности сети?
Имея в распоряжении 51% мощности, атакующие:
- не дают остальным майнерам (валидаторам) находить блоки (selfish mining);
- проводят двойную трату монет, чтобы воровать у поставщиков услуг, бирж или обменников (double spend);
- форкают основной блокчейн, разделяя сеть на две конкурирующие цепочки;
- не дают транзакциям или блокам подтверждаться;
- во время атаки собирают все награды за блок и комиссии с транзакций.
Атака носит более серьезный характер, если атакующие контролируют значительно больше, чем 51% сети. Тогда они:
- воруют из любых контрактов типа deposit-challenge-verify и каналов состояния/Lightning Network, если атакующие были их участниками;
- уменьшают и манипулируют сложностью сети;
- воруют монеты, которые не датированы генезис-блоком (путем отката старых блоков и переполучения наград за эти блоки);
- удаляют контракты или историю транзакций (за счет отката старых блоков и редактирования списка включаемых транзакций).
Атака 51% сама по себе не позволяет атакующим:
- заполучить ваш приватный ключ или подделать подпись;
- заполучить монеты, полученные в результате неправильной работы контракта;
- отправлять, замораживать в стейкинг или сжигать ваши монеты вместо вас (за исключением техник, упомянутых выше);
- управлять решениями держателей полных узлов (валидаторов).
3
Сколько ресурсов потребуется, чтобы выполнить атаку 51%?
Злонамеренный майнинговый пул может нанять дополнительные ресурсы и запустить атаку на выбранную криптовалюту. На основании данных сервиса 51crypto авторами исследования «Изучая виды атак на блокчейн» составлена таблица из шести криптовалют и указана цена атаки в час (cost).
Данные получены в апреле 2019 года. Как видим, чтобы атаковать биткоин, нужно тратить по $486 000 в час. Атака на Dash (с рыночной капитализацией в $2,3 млрд), стоит всего $15 000 в час.
4
Что такое эгоистичный майнинг (selfish mining)?
Стратегия, позволяющая майнерам увеличить свою прибыль за счет сокрытия блоков от публичной сети. Майнеры не отправляют блок в сеть каждый раз после генерации, а продолжают майнить новые блоки поверх любых самостоятельно найденных блоков. Пока конкуренты майнят поверх более старых блоков, эгоистичный майнер получает преимущество.
Происходит негласная гонка между публичной цепью «честных майнеров» и приватной цепью «эгоистичных майнеров». У атакующих должно быть достаточно вычислительной мощности, чтобы сделать тайную цепочку длиннее публичной.
Как только приватный блокчейн становится длиннее публичного, злоумышленники выпускают его в сеть, чтобы получить награды за нахождение блоков и комиссии пользователей. Если мощность приватной сети составляет от 25% мощности всей сети, эгоистичные майнеры будут продолжать выигрывать гонку цепочек, пока их не вытеснит другой эгоистичный майнер или ущемленное меньшинство.
В работающих на алгоритме Proof-of-Work (PoW) блокчейнах важна не самая длинная цепочка, а самая «подкрепленная».
Самая длинная цепочка представляет большинство вычислительной мощности только если в сети нет монополиста (обладателя 51% и более мощности). Если он есть, то самая длинная цепочка может и не представлять волю большинства майнеров.
5
Как происходит двойная трата криптовалюты (double spend)?
Представим, что злоумышленник обладает значительной вычислительной мощью. Он расплачивается за товар или услугу с поставщиком, тот принимает крупную сумму в криптовалюте и сделка почти завершена. Транзакция отправляется в общий блокчейн и после трех подтверждений участники сделки прощаются.
Когда злодей убежден, что жертва его не найдет, он «возвращает» монеты себе. Для этого атакующий после отправки денег откатывает блокчейн к более раннему состоянию.
Другой, более скрытный вариант: атакующий майнит параллельную цепочку блоков, на манер эгоистичного майнинга. Туда вместо честной транзакции была включена транзакция двойной траты. Такая транзакция отправляет те же монеты на другой адрес, принадлежащий мошеннику. Остается «скормить» валидной цепочке альтернативную порцию блоков (с правильным PoW), в ожидании, что сеть их примет.
Таким образом, сеть «исключит» верную транзакцию из истории. Поставщик заглядывает в кошелек и видит, что утратил свои монеты и доказательств сделки нет. Он даже не сделал скриншоты кошелька, не скопировал ID транзакции, когда получил монеты.
В теории, если у транзакции есть одно и более подтверждений, двойная трата исключена. Многие не знают, что делать, когда транзакция «исчезает» из кошелька для биткоинов.
Благодаря таким «схемам», монеты то и дело возвращаются в кошелек атакующего, и можно их тратить дважды, трижды, и так далее. Частые двойные траты приводят к угрозе снятия криптовалюты с торгов на пострадавших от двойной траты биржах. Кроме того, атакованные криптовалюты теряют рыночную капитализацию после атаки. Например, криптовалюта Verge подверглась атаке в мае 2018 года, и потеряла с тех пор более 95% своей стоимости.
6
Хардфорк после атаки 51% как метод создания нового актива
При помощи атаки 51% можно создать новую криптовалюту. Алгоритм консенсуса PoW разрабатывался для доказательства целостности цепочки, не для предотвращения появления ответвлений.
Предположим, атакующие скрытно майнят несколько блоков, а затем «сбрасывают» их на основную сеть. Если за атакующим нет поддержки сообщества, честное меньшинство из остальных 49% отвергнет такую цепочку. Но несколько тайно найденных блоков позволяют атакующему отделиться от сети и продолжать майнить свою собственную цепочку, тогда как остальные майнеры продолжат старую. Так появляется два актива, один — всем известен, а другой – новый.
Пока майнеров достаточно, чтобы блокчейн работал, даже образуемые в результате хардфорка новые блокчейны не нанесут существенного вреда.
7
Возможно ли выполнить атаку 51% не обладая 51% мощностей?
Известный «биткоин-гуру» Андреас Антонопулос считает, что сеть биткоина больше не подвержена риску атаки 51% из-за ресурсов, которые тратят майнеры на поддержание сети. Андреас заявляет, что в 2019 году атаковать биткоин уже нет смысла, это будет слишком затратно даже для правительств. Зато можно атаковать менее мощные альткоины, уточняет Андреас.
Чтобы осуществить атаку на блокчейн, злоумышленнику не всегда необходимо иметь 51% и более вычислительной мощности. Вероятность успеха рассчитывается исходя из времени атаки и количества вычислительных мощностей.
Даже если атакующий контролирует 40% сети, он сможет провести атаку на протяжении двух блоков с 40% вероятностью успеха.
Но майнеры являются лишь малой частью модели безопасности блокчейнов. Спустя 10 лет мы увидели реальные примеры атак и оказалось, что угроза сильно преувеличена.
8
Примеры атаки 51% из истории криптовалют
Атака 51% не является неосуществимой. Майнинговый пул Ghash.io в течение короткого периода времени в июле 2014 года обладал более 50% вычислительной мощности Bitcoin. Это привело к тому, что пул добровольно попытался уменьшить свою долю в сети. В заявлении было сказано, что в будущем он не достигнет 40% от общего объема добычи.
В августе 2016 группа хакеров из «51 crew» взломала блокчейн проекты Krypton и Shift. При помощи серии двойных трат им удалось увести приблизительно 20 000 токенов Krypton.
В мае 2018 года группа злонамеренных хакеров получила контроль над 51% сети альткоина Bitcoin Gold, что позволило им украсть $18 млн долларов в криптовалюте у Bittrex, Binance, Bitinka, Bithumb и Bitfinex. Bittrex обвинила разработчиков в халатности и потребовала от них компенсации, в противном случае биржа обещала закрыть торги в BTG. Разработчики ответили, что это известный тип угрозы. Биржа Bittrex не позаботилась о мерах предосторожности и сама виновата в случившемся.
В июне 2018 года Monacoin, Zencash, Verge, и Litecoin Cash, подверглись атаке 51%. Это привело к многомиллионным потерям. В результате атаки некоторые биржи потеряли приблизительно $90 000 в Monacoin, $500 000 в ZenCash и $1,7 миллиона в Verge.
В ноябре 2018 года вследствие атаки 51% на Aurum Coin с биржи Cryptopia похищено более $500 000.
В мае 2019 года два крупных майнинговых пула осуществили атаку 51% на сеть Bitcoin Cash. По их словам, они предотвратили кражу незащищенных монет SegWit, которые хранились на адресах, откуда их мог забрать кто угодно. Эти монеты остались в сети после отделения от Bitcoin в 2017 году, но были заблокированы разработчиками. Пока не оказались случайно разблокированными хардфорком в мае 2019.