Как работает атака 51%
Криптовалюты, в основе которых лежит блокчейн, подвержены так называемой угрозе атаки 51%: когда более половины вычислительной мощности криптовалютной сети контролирует некая организация или группа лиц, становится возможным проведение конфликтующих транзакций или злонамеренное нанесение вреда. Рассказываем, как это работает.
Когда владелец биткоинов подписывает транзакцию, та поступает в местный пул неподтвержденных транзакций. Майнеры выбирают транзакции из этого пула и формируют из них блоки. Чтобы добавить блок в блокчейн, им нужно решить очень сложную математическую задачу.
Каждый майнер пытается первым угадать 64-значное шестнадцатеричное число (хэш), которое окажется меньше или равно целевому хэшу. Хэш подбирается случайным перебором, и тому, кто хочет стать первым, нужна огромная вычислительная мощность.
Чем большей вычислительной мощностью обладает майнер, тем выше его шансы найти решение раньше других. После того как майнер находит это решение, он ретранслирует его (вместе с блоком) остальным майнерам, и им остается только подтвердить его.
Стоит заметить, что злоумышленник никогда не сможет создать транзакцию за кого-то другого, потому что ему для этого понадобится цифровая подпись этого человека (его приватный ключ). Поэтому без доступа к соответствующему приватному ключу пересылать биткоины с чужого счета просто невозможно.
Скрытый майнинг: Создание параллельного блокчейна
А теперь следите за руками. Вредоносный майнер может все же попытаться изменить существующие транзакции. Как вы помните, когда майнер находит решение, он должен ретранслировать его всем остальным майнерам, чтобы те могли подтвердить его, после чего этот блок добавляется в блокчейн (майнеры достигают консенсуса).
Однако вредоносный майнер может создать параллельную ветвь блокчейна, не ретранслируя решения своих блоков остальным участникам сети. Таким образом появляются две версии блокчейна.
Честные участники сети работают с одной версией блокчейна, а злоумышленник создает другую и не сообщает о ней остальным майнерам. Честные майнеры не участвуют в работе с этой цепочкой блоков, поскольку им о ней ничего не известно — она изолирована от остальной сети.
Теперь злоумышленник может потратить все свои биткоины в истинной версии блокчейна, с которой работают другие майнеры. Представим, что он купил на них Lamborghini. В истинном блокчейне все его биткоины потрачены. Однако он не включает эти транзакции в свою изолированную ветвь блокчейна. В этой параллельной версии у него все еще есть эти биткоины.
Все это время он продолжает создавать блоки и подтверждать их в своей ветви блокчейна.
Блокчейн запрограммирован так, что все решения принимаются в нем демократическим путем, то есть большинством голосов. Это выражается в том, что истинной всегда признается самая длинная цепочка блоков, поскольку большинство майнеров добавляют блоки в свою версию блокчейна быстрее, чем это делают остальные участники сети (таким образом, самая длинная цепочка — это и есть большинство).
Именно так блокчейн определяет, какая цепочка является истинной, и на этом, в свою очередь, основаны все балансы кошельков. И здесь начинается гонка. У кого больше вычислительной мощностью и кто сможет добавлять блоки в свою цепочку быстрее конкурентов?
Гонка: Пересмотр существующих транзакций за счет обнародования новой ветви блокчейна
Теперь вредоносный майнер будет стараться добавлять блоки в свой изолированный блокчейн быстрее, чем все остальные майнеры будут добавлять блоки в свой (истинный) блокчейн. Как только злоумышленнику удастся создать более длинную цепочку, он может внезапно обнародовать свою версию блокчейна. Остальные участники сети обнаружат, что эта (параллельная) ветвь действительно длиннее, чем та, над которой они работали, и протокол заставит их переключиться на этот блокчейн.
Теперь блокчейн, созданный вредоносным майнером, будет считаться истинным, и все транзакции, которые не были включены в него, будут немедленно пересмотрены. Хакер уже потратил свои биткоины на Lamborghini ранее, но эта транзакция не была включена в его скрытую цепочку блоков — ту, что сейчас признана истинной, — и поэтому эти биткоины снова принадлежат ему. Он может потратить их еще раз.
Это и есть атака 51%. Она так называется, потому что для того, чтобы строить свою цепочку блоков быстрее остальных участников сети, вредоносный майнер должен иметь в своем распоряжении больше вычислительной мощности (те самые 51%), чем все честные майнеры вместе взятые.
Как биткоин защищен от атаки 51%?
В реальности осуществить такую атаку невероятно сложно. Как уже говорилось выше, хакеру понадобится для этого больше вычислительных ресурсов, чем у всех остальных участников сети вместе взятых.
С учетом того, что сейчас в блокчейне биткоина трудятся сотни тысяч майнеров, злоумышленнику придется потратить огромные деньги на оборудование, чтобы соревноваться с ними. Даже самые мощные компьютеры в мире не могут бросить вызов совокупной вычислительной мощности такой сети.
И есть еще много причин, почему атака 51% лишена смысла. Это и риск быть пойманным, и расходы на электроэнергию и эксплуатацию оборудования для майнинга, и сложности с заметанием следов и отмыванием денег.
Такая операция просто-напросто обойдется хакеру намного дороже того, что он сможет получить в случае успеха — по крайней мере, в случае с блокчейном биткоина.
Кто становился жертвой атаки 51%?
Хотя биткоин продолжает оставаться защищенным от атаки 51%, другие криптовалюты уже сталкивались с этой угрозой.
Так, в апреле злоумышленники атаковали сеть Verge, всего за несколько часов получив криптовалюту на более чем 1 млн долларов. Впрочем, надо отметить, что это произошло не из-за захвата вычислительных мощностей, а из-за бага в коде Verge, который позволил хакерам выпускать блок в секунду вместо блока раз в 30 секунд.
В мае атаке 51% подверглась криптовалюта Bitcoin Gold, форк биткоина. Атака длилась три дня, в результате злоумышленник получил 18 млн долларов в BTG. После этого разработчики решили произвести хардфорк, чтобы предотвратить дальнейшие атаки.
Еще одной жертвой той же весной стала монета Monacoin. Атака длилась два, и в результате хакер получил 90 тыс. долларов.
Недавно анонимный хакер пообещал совершить атаку на криптовалюту Einsteinium и даже сообщил, что произойдет это 13 октября. По его словам, цель атаки не в том, чтобы украсть де��ьги, а в том, чтобы показать уязвимость альткоинов. Впрочем, учитывая, что в этом году Einsteinium подешевел на 97%, экономическая выгода от атаки на монету совершенно отсутствует.