В среду, 4 апреля, сеть анонимной криптовалюты Verge подверглась так называемой «Атаке 51%». В результате в течение трех часов мошенники полностью контролировали сеть и проходящие в ней транзакции. Мы рассмотрели, как происходят подобные атаки, в каких случаях они наиболее вероятны и как именно атака на сеть Verge стала возможной.

Как происходит «Атака 51%»

«Атака 51%» происходит, когда у атакующей стороны, в роли которой может выступать сравнительно небольшое количество майнеров, находится «контрольный пакет» хэшрейта, то есть вычислительных мощностей. В результате атаки майнеры получают контроль над всей сетью и могут создавать блоки по своему усмотрению.

Все криптовалюты основаны на блокчейн-сетях — распределенных реестрах, работу которых поддерживают майнеры. Данные реестры хранят информацию о всех когда-либо проводимых транзакциях в блоках — откуда и исходит название «блокчейн» или «цепочка блоков». Подтверждением транзакций, генерацией новых блоков и добавлением их в блокчейн занимаются майнеры, которые за свою работу получают вознаграждение в криптовалюте.

В сети, которая использует алгоритм консенсуса PoW (Proof-of-Work), для того чтобы добавить новый блок, майнеры должны проводить сложные вычисления, тем самым доказывая, что они проделали работу. Первый майнер, который предлагает верное решение задачи, получает возможность создать новый блок и соответствующее вознаграждение за это. Чем больше вычислительных мощностей находится в распоряжении майнера, тем выше шансы найти верное решение быстрее всех и тем больше размер вознаграждения. Когда май­не­р на­хо­дит верное ре­ше­ние, си­сте­ма опо­ве­ща­ет об этом всех участ­ни­ков сети.

Именно эта ключевая роль вычислительных мощностей приводит к угрозе «Атаки 51%». Если майнер или пул майнеров контролирует больше половины хэшрейта, то у них появляется возможность полностью контролировать сеть: они могут добавлять новые блоки, манипулировать двусторонним операциями и не подтверждать новые транзакции. Также «Атака 51%» может привести к тому, что недобросовестные майнеры смогут использовать одну и ту же монету несколько раз, отзывая совершенные с ней транзакции, что называется double-spending, или двойной тратой. При этом атакующая сторона не может менять информацию в уже добавленных блоках и генерировать новые криптовалюты.

Стоит отметить, что блокчейн-сети, использующие алгоритм консенсуса PoS (Proof-of-Stake), угрозе «Атаки 51%» подвержены намного меньше, поскольку при данном алгоритме поддержанием работоспособности блокчейна занимаются валидаторы, работа которых основана на их доле владения криптовалютой сети (или стейком), а не на вычислительных мощностях их нод. Любая попытка атаки в этой системе становится невыгодной.

Чаще всего под угрозу «Атаки 51%» попадают новые криптовалюты, которые еще не успели заручиться поддержкой и доверием криптосообщества, и, соответственно, майнерам нужны меньшие мощности, чтобы получить «контрольный пакет» хэшрейта такой сети. Однако данная атака вряд ли принесет майнерам финансовую выгоду и, скорее, будет использоваться как способ устранения конкурента. Другой случай атаки — это атака на коммерчески успешную криптовалюту, но это на порядок сложнее, так как злоумышленникам потребуются огромные вычислительные мощности, которые доступны немногим.

Известные случаи «Атаки 51%»

В июле 2014 года майнинговый пул Ghash.io ненадолго получил контроль над 55% мощности сети Bitcoin. Однако пул добровольно согласился снизить собственные мощности и не превышать пороговое значение 40% в будущем. Но даже несмотря на это, в тот период курс биткоина упал на четверть от былой стоимости.

В августе 2016 года блокчейны криптовалют Krypton и Shift, работающие на базе Ethereum, подверглись «Атаке 51%». Ответственность за атаки взяли члены группы хакеров, именующие себя как «Команда 51» («51 Crew»). В результате атак мошенникам удалось совершить двойную трату с криптовалютами сети Krypton на бирже Bittrex и украсть порядка 22,000 монет из обеих сетей.

Атака на Verge

Случай с сетью анонимной криптовалюты Verge стал своего рода прецедентом, поскольку данная атака стала возможной из-за бага в коде, а не из-за захвата вычислительных мощностей злоумышленниками. 4 апреля пользователь форума Bitcointalk ocminer сообщил, что в коде сети присутствует баг, который позволяет хакерам добавлять новые блоки в сеть каждую секунду, вместо положенных 30 секунд.

Это стало возможным, потому что блокчейн Verge поддерживает сразу несколько алгоритмов, которые должны меняться с каждым новым блоком. Злоумышленники отправляли блоки алгоритма Scrypt с ложной временной меткой. Сеть принимала такой блок, думая, что последний раз блок алгоритма Scrypt был добавлен час назад. Атака длилась три часа, в течение которых 99% блоков других майнеров не принималось.

Согласно заявлению команды Verge, в результате атаки мошенникам удалось завладеть 250,000 токенами XVG, однако криптосообщество уверено, что реальное число ближе к 3.9 миллиона. Если эта цифра верна, то, возможно, команде Verge предстоит провести хардфорк сети, чтобы заморозить утерянные монеты.