Почему атака 51% не так страшна как кажется

Почему атака 51% не так страшна как кажется

Переведено с английского

Эта неделя в сети Monero прошла в условиях атаки 51%. Компания Qubic заявила, что получила контроль над большей частью майнинговой мощности Monero, и доказала это, переписав несколько блоков в блокчейне. Это звучит пугающе, ведь многие считают, что атака 51% означает конец для криптовалюты. Однако реальность не так ужасна, как кажется на первый взгляд. И ситуация с Monero это подтверждает: даже захватив более 50% хешрейта, злоумышленники не уничтожили сеть, курс Monero просел совсем незначительно, и жизнь продолжилась. Давайте разберёмся, что такое атака 51%, почему она не столь страшна, и какие уроки дают нам предыдущие случаи.

Что такое атака 51% (и что она не может сделать)

Простыми словами, атака 51% – это ситуация, когда скоординированная группа майнеров контролирует более половины вычислительной мощности блокчейна. В таком случае они могут майнить больше блоков, чем все остальные майнеры, вместе взятые.

В обычной ситуации (когда мощности распределены между разными майнерами), каждый майнер, добывший блок, заинтересован в том, чтобы как можно скорее сообщить об этом всей сети. Если он не успеет это сделать, другой майнер присвоит новому блоку тот же номер (выражаясь правильно - ту же высоту). И ещё неизвестно, какой из двух блоков с одним и тем же номером закрепится в блокчейне, а какой будет отвергнут.

Two blocks of the same height do not fit

Но майнер, который добывает больше блоков, чем все остальные, может скрывать свою цепочку блоков, а потом распространить по сети её всю сразу. И эта цепочка по правилам PoW будет принята сетью, потому что такая цепочка подтверждена более крупным объёмом работы, чем тот вариант, которого сеть придерживалась ранее.

A longer chain replaces a shorter one

А это означает, что атакующий может отменять ранее подтверждённые блоки. Представьте себе: вы получили от кого-то криптовалюту, а потом выяснилось, что этот блок отменён, и криптовалюта больше не ваша; она опять принадлежит тому, кто её вам должен был отправить.

Таким образом, у атаки 51% могут быть два основных последствия:

  • откат уже подтверждённых транзакций (в том числе с целью повторной альтернативной траты, если атакующий отменяет собственные расходные транзакции);
  • цензура транзакций (недопущение закрепления в блокчейне транзакций, которые неугодны атакующему).

Важно подчеркнуть, чего не может сделать атака 51%.

  • Она не позволяет подделать транзакции и увести ваши монеты в произвольном направлении: для этого нужны ваши приватные ключи, а их у атакующих нет.
  • Атакующие не могут вернуть себе те средства, которые они отправили вам до начала атаки. Отменить получится только те блоки, которые попали в блокчейн после того, как атакующий начал майнить свою секретную цепочку.
  • Атакующие не могут “сломать протокол” или изменить его правила. Хотя, если атакующий будет майнить пустые блоки (блоки без транзакций), протокол фактически будет остановлен на время атаки.

Но всё же “большинство хешрейта” – это не всемогущее оружие: оно годится лишь для переписывания последних страниц блокчейна и ни для чего больше.

История с Monero и Qubic: паника отменяется

Теперь вернёмся к драме с Monero. Проект Qubic сумел захватить более 51% хешрейта сети Monero благодаря необычной схеме: Qubic привлёк массу CPU-майнеров, поощряя их майнить Monero через свой пул в обмен на токены QUBIC. Доля Qubic в майнинге Monero резко выросла: с 1,5% в мае до более 25% к концу июля. А 12 августа они объявили о достижении контроля над большинством мощностей. За 4 часа Qubic добыл 63 из 122 блоков Monero – чуть больше половины блоков за тот период.

Что сделали атакующие? Они провели реорганизацию цепочки на глубину 6 блоков. Двойных трат или попыток цензуры обнаружено не было, Qubic просто продемонстрировал уязвимость сети, не пытаясь нажиться на ней.

Сообщество Monero не сидело сложа руки. В ответ была организована DDoS-атака на инфраструктуру Qubic. Мощность ресурсов майнинг-пула Qubic, имеющих доступ к сети, рухнула более чем в три раза, что на несколько часов отбросило Qubic с первого места среди пулов на седьмое. Qubic позже восстановился и вновь заявил о контроле над хешрейтом, но страх уже прошёл: комьюнити увидело, что ничего страшного за время атаки не случилось.

А что же курс Monero? Многие ожидали обвала, ведь атака на сеть подрывает доверие к ней. Но курс XMR почти не пострадал. В разгар событий Monero просел примерно на 7–8% – не больше обычной дневной волатильности альткоинов. А уже через день курс восстановился, подскочив на 11% от локального дна. Получается, держатели монеты не в панике: они понимали, что атака носит локальный характер и ничего не “сломала” в Monero.

XMR price during the attack

График курса XMR во время атаки. Источник - Coingecko

Мы в Rabbit Swap тоже не наблюдали ничего особенного: не было ни ажиотажа по обмену Monero, ни массового отказа от таких обменов. Monero как была одной из самых популярных криптовалют для обмена на сайте rabbit.io, так и осталась ею. Реорганизации блоков даже не оказали заметного влияния на время проведения обменов: как правило, обмен проводится после получения 12-15 подтверждений транзакции, а такое количество блоков Qubic ни разу не отменил.

Комьюнити получило прививку: теперь ясно, что даже “успешная” атака не так страшна, а на будущее можно усилить децентрализацию майнинга (например, отказываться от участия в пулах, набирающих слишком большую долю мощности).

Известные примеры атак 51% и их последствия

Атаки на блокчейн большинством хешрейта случались и раньше: как правило, с небольшими сетями, где собрать 51% мощности проще. Можно вспомнить атаки на Verge, MonaCoin, Vertcoin, Litecoin Cash в 2018-2019 годах. Или атаки на Bitcoin Gold в 2018 и 2020 годах, ущерб от которых превысил $18 млн. А более подробно я хочу остановиться на двух случаях.

Ethereum Classic (ETC), 2020. Эта сеть пережила несколько масштабных атак 51%. Например, в августе 2020 года злоумышленники смогли перестроить более 7000 блоков – это примерно два дня транзакций. Атакующие действительно провели двойные траты, нанеся своим получателям ущерб в 807 тыс. ETC (эквивалент $5 млн на тот момент). Казалось бы, такой удар должен уничтожить доверие к сети. Однако ETC выжил и даже почти не потерял в цене. После самой крупной атаки монета торговалась около $6,86, что было лишь на 4% ниже, чем до неё. То есть участники рынка игнорировали шумиху. Реакция была больше со стороны инфраструктуры: биржа OKEx пригрозила делистингом ETC из-за повторяющихся атак, Coinbase увеличил время депозитов ETC до 2 недель, чтобы предотвратить возможные повторные траты. Разработчики Ethereum Classic внедрили некоторые обновления и позвали на помощь сети дружественных майнеров. В итоге Ethereum Classic продолжил работу. Да, его считают уязвимым, но он по сей день функционирует и входит в топ-50 криптовалют.

ETC price during the attack

График курса ETC во время атаки. Источник - Coingecko

Bitcoin SV (BSV), 2021. Форк биткоина Bitcoin SV в 2021 году пережил несколько параллельных атак 51%. Сразу хочется спросить: как такое возможно? Ведь не может же у каждого из атакующих быть более 51% хешрейта! А суть была в том, что в начале августа 2021 года неизвестный майнер начал одновременно добывать несколько альтернативных цепочек, публикуя то одну из них, то другую. Фактически сеть BSV была в хаосе: разные узлы видели разные “правильные” цепочки. Ассоциация Bitcoin SV даже рекомендовала вручную установить на всех узлах правило отказа от приёма блоков злоумышленника. Таким образом, с атакой получилось справиться только путём включения цензуры блоков. Для этого потребовалось игнорировать установленный в коде узлов консенсус. Не все пошли на это: такие действия временно раздвоили сеть, часть узлов следовала одному варианту цепочки, а часть - другому. Но когда атака прекратилась, вновь было включено правило длиннейшей цепи (истинной считается та версия блокчейна, на производство которой потрачено больше работы, - то есть наиболее длинная). Узлы синхронизировались на одной ветке, и BSV продолжил работу. BSV оказался уязвим из-за использования общего с биткоином алгоритма майнинга. Bitcoin SV использует SHA-256 как и BTC, но его мощность ничтожна по сравнению с сетью биткоина. Злоумышленнику было относительно дешево перенаправить часть SHA-256 майнеров (или арендовать их) на BSV. Однако, даже несмотря на такую издевательскую атаку, BSV тоже не умер. Да, его репутация пострадала, но в целом монета продолжает существовать, и её до сих пор можно обменять на сайте rabbit.io. Во время атаки курс BSV падал, но без краха: держатели проявили стойкость, ожидая решения проблем.

BSV price during the attack

График курса BSV во время атаки. Источник - Coingecko

С одной стороны, трудно понять, почему кто-то продолжает пользоваться криптовалютами, которые уже доказали свою уязвимость. Как можно соглашаться получать транзакцию в сети, где она может быть неожиданно отменена?

Но с другой стороны, чаще всего мишенью атак 51% становились небольшие сети, где суммарный хешрейт невысок. Никто всерьёз не рассматривал их как место безопасного хранения своих средств. Поэтому к таким атакам рынок относился безразлично. Другое дело - если бы кто-то захватил 51% мощности Биткоина. Но это практически невозможно: слишком дорого и неокупаемо. А для атаки на сети поменьше - вполне реально арендовать мощности на биржах майнинга и с их помощью провести атаку.

События этой недели в Monero - уникальный пример успешной атаки на достаточно популярную сеть, которую многие используют для анонимного хранения и приватных транзакций. И сам механизм проведённой атаки показывает, что арендовать или покупать огромные вычислительные мощности необязательно: можно привлечь их, предлагая взамен в общем-то бесполезные токены. А если так, то от атак не застрахована ни одна сеть: даже Биткоин.

Успешный пример атаки 51% на Биткоин

Строго говоря, в Биткоине атака 51% тоже имела место. Только она исходила от самих разработчиков, стремившихся спасти сеть.

В августе 2010 в биткоине обнаружилась критическая уязвимость, позволившая создать в одной транзакции два выхода по 92 миллиарда BTC каждый. Да-да, один из блоков (№74638) содержал транзакцию, которая из-за бага суммарно отправила 184 467 440 737 BTC на три адреса. Это нарушало все возможные правила (лимит в 21 млн и т.д.) и грозило смертью биткоина в зародыше, если бы эта запись сохранилась в блокчейне.

Но Сатоши Накамото и соразработчики молниеносно отреагировали. Уже через 5 часов вышел патч, который исправил ошибку, позволившую создать некорректную транзакцию. После этого разработчики призвали всех майнеров вести добычу блоков начиная с высоты 74637, чтобы перезаписать блок 74638, исключив из него транзакцию на миллиарды BTC.

Выше я писал о том, что атака 51% не позволяет отменить блоки, вписанные до её начала. Но в данном случае удалось это сделать благодаря тому, что у майнеров, начавших “атаку”, в совокупности было гораздо больше, чем 50% мощности сети. Они смогли догнать цепочку, которая изначально опережала их на 5 часов, то есть добыть больше блоков, чем в этой некорректной цепи было добыто за время подготовки патча и за время, прошедшее после него. Затем более длинная цепь была предъявлена остальной сети, и все ноды приняли её как основную. Лишние монеты были аннулированы, Биткоин спасён.

Тогда общая вычислительная мощность сети Биткоина была очень маленькой, да и сообщество было тесным и сплочённым. Поэтому уговорить большинство майнеров на участие в “атаке” было легко. К тому же сам Сатоши майнил и контролировал многое. Но прецедент важен: никто сейчас не вспоминает эту “атаку” с ужасом. Биткоин выжил и успешно работает

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

Почему атаки 51% не приводят к катастрофе

В “Белой книге” Биткоина атака 51% была обозначена как проблема, о наличии которой автору известно, но решение он предложить не может. С тех пор принято относиться к такой атаке как к чему-то непреодолимому и оттого страшному.

Да и прочитав мою статью, можно задуматься: а что если спецслужбы давным-давно создают секретные параллельные цепи всех криптовалют, а потом когда-нибудь предъявят их миру, и это отменит все транзакции за много лет на радость государствам и финансовым регуляторам?

Но это практически невозможно. Провести длительную атаку 51% очень дорого. Требуется либо колоссальная вычислительная мощность, либо огромная сумма (в случае PoS-сетей – скупить более 2/3 всех монет стейкинга). Например, чтобы удерживать 51% биткоина, нужны десятки миллиардов долларов на оборудование и электричество. Но это оборудование и это потребление электричества спецслужбы хотя бы могут скрыть. А в случае с сетями наподобие Эфириума - скрыть владение 2/3 монет стейкинга не сможет никакая спецслужба: в блокчейне всё на виду.

Атака на Monero оценивалась в $75 млн за день работы. Это не значит, что Qubic каждый день терял такую сумму. На самом деле, в аспекте суммы доходов и расходов нет никакой разницы: опубликуешь ты каждый блок сразу же или придержишь их все на день. Разница лишь в том, что за этот день сообщество может принять контрмеры (подключить дополнительных майнеров или перекрыть тебе доступ к сети), и в таком случае ты рискуешь вообще не собрать цепочку длиннее конкурентов, не отправить её в сеть и провести всю работу зря. То есть $75 млн - это не прямые убытки, а, скорее, предел риска. Тем не менее, далеко не каждый может себе его позволить. Особенно если удерживать секретную цепочку месяцами и годами.

Именно поэтому даже успешные атаки 51%, вроде той, которую мы наблюдали на этой неделе, как правило, оказываются краткосрочными и по большому счёту ни на что не влияют.