Виталик Бутерин нашёл теоретический способ избежать атаки 51%. Создатель криптовалюты Ethereum предложил добавить в систему независимые узлы для отслеживания консенсуса, повысив таким образом устойчивость сети почти до 100%. То есть, для успешного нападения на сеть злоумышленнику вместо 51% потребуется контролировать 99% узлов блокчейна. Однако, метод еще не применен на практике.
Тем временем команда криптовалюты Zencash продолжает ликвидировать последствия атаки 51%, которой подверглась этим летом. В чем суть нападения на сеть, как разработчикам обезопасить себя от злоумышленников, и что нужно делать, если атака всё-таки случилась, корреспонденту Bits.media рассказал представитель Zencash в России Александр Забуга.
Александр, расскажите, что собой представляет атака 51%?
К сожалению, многие люди неправильно понимают суть атаки 51%. Во-первых, они полагают, что злоумышленники крадут деньги из кошельков конкретных людей. На самом деле, атака 51% не дает возможности взломать кошельки пользователей, и мошенники воруют средства у криптовалютных бирж. Во-вторых, некоторые считают, что хакеры взламывают блокчейн, создавая деньги из ниоткуда. Это тоже не так.
Чтобы понять суть атаки, необходимо разобраться в алгоритме действий атакующего. Сначала он собирает монеты: майнит, покупает или крадет их. Собрав необходимое количество монет, злоумышленник завладевает большей частью мощностей хэширования сети. После этого хакер приступает к атаке. Сначала он начинает майнить скрыто, на своём узле. Когда мошенник находит верный хэш, он его пакует также на своём узле, после чего выпускает в сеть. Все другие узлы признают хэш верным и записывают его к себе в блокчейн. На этом этапе атакующий работает как обычный майнер.
Далее, атакующий продолжает майнить локально на своём узле, однако уже не отправляет найденные блоки в сеть. Таким образом одна версия блокчейна существует приватно у мошенника, другая находится на всех остальных узлах сети. В конце концов злоумышленник создает транзакцию, в которой отправляет все свои монеты на какую-то биржу. Эта транзакция попадает в общую сеть, все узлы думают, что система работает согласно консенсусу, и транзакция успешно проходит. Биржа видит, что к ней пришёл депозит и зачисляет средства атакующему. Этот баланс на бирже мошенник может обменять на другие криптовалюты, вывести или что-то ещё - единственое, что это надо сделать быстро. После того, как средства выведены с биржи, мошенник публикует свою скрытую версию блокчейна без отправленной на биржу транзакции, и из-за его превосходства в мощности хэширования она получается длиннее, а следовательно принимается сетью как правильная. Теперь зачисления монет на биржу как будто бы не было, и мошенник теперь обладает двойным эквивалентом своих монет. Так происходит атака 51%, и она произошла с нами.
Почему такая атака случилась именно с платформой ZenCash?
Она может произойти в отношении любой монеты и в любое время. Однако подобные атаки - редкость, потому что они в большинстве случаев экономически невыгодны. Злоумышленник потратит на операцию больше денег, чем заработает на ней, если ему не поможет удачное стечение обстоятельств. Например, в сети Bitcoin проведение атаки 51% на практике можно считать невозможным. Чтобы провести атаку на биткоин, хакеру придётся потратить несколько миллиардов долларов. Это огромные деньги, а прибыль будет не такой уж и большой, если она вообще будет.
Что касается ZenCash, у нас наряду с низким хэшрейтом сети был очень высокий курс монеты. Эти два фактора сделали атаку экономически выгодной. В результате неё атакующий заработал намного больше денег, чем потратил. Поэтому злоумышленник и атаковал нашу сеть.
Как это произошло?
События развивались быстро. Наша команда подтвердила факт атаки в течение 20 минут, и мы сразу сообщили об этом биржам и своим партнёрам. После того, как наша команда оповестила всех о произошедшем, мы нашли адреса, с которых происходила атака, даже нашли узлы, откуда исходили блоки. В результате атаки на ZenCash одна биржа потеряла около $500 000, а именно 13 234 ZEN.
Как вы оцениваете поведение криптобирж в этой ситуации?
Мы работаем с разными биржами. Все они очень быстро, буквально в течение получаса, повысили количество подтверждений, требуемых для зачисления зенов. Это предотвратило дальнейшие атаки. Некоторые биржи поставили кошельки на обновление, другие - закрыли торги на пару часов, пока уточнялись подробности атаки. В целом я доволен поведением бирж, последствия атаки могли быть намного хуже.
Однако если бы у меня была биржа криптовалют, я бы уделял больше внимания вопросам безопасности в целом и защите от атак 51% в частности. Ещё раз напомню, что мошенники воруют деньги у биржи, поэтому именно она в первую очередь должна быть заинтересована в защите от таких атак. У меня вызывает удивление то, некоторые простые идеи безопасности на биржах не реализованы. Например, большие депозиты следует проверять в ручном режиме или дольше их зачислять. Мне кажется странным, что требования бирж к депозитам в $10 и $500 000 одинаковы. В то же время, эти деньги являются копейками для крупной биржи. Поэтому нет ничего удивительного в том, что они не озаботились этим вопросом раньше.
Обращались ли вы в правоохранительные органы, и если да, то как оцениваете их работу?
Я считаю, что проведение атаки 51% - это воровство. Поэтому злоумышленники должны быть наказаны. Если правоохранительные органы проявят интерес к раскрытию нашего дела, мы готовы предоставить им информацию. Атакующий проходил регистрацию, верификацию, у биржи есть IP-адреса его входов.
Мы обратились в полицию, но они не захотели взять это дело. К сожалению, вероятность его раскрытия очень низкая, потому что в блокчейне очень легко запутать следы. Если атакующий сильно не ошибся, то вероятность найти его очень мала.
Тем не менее, проведение атаки 51% является преступлением и должно быть расследовано. У нас появляются новые технологии, новые инструменты - криптовалюты. Я не вижу ничего странного в том, чтобы найти этого гада и посадить. Очень странно находиться в мире, где любой человек может украсть $500 000 и спокойно жить дальше.
Какие действия вы предприняли, чтобы такая атака с вами больше не случилась?
Во-первых, наша команда попросила всех наших партнёров поднять количество подтверждений до абсурдного числа. Это позволит нам предотвратить атаку 51% в будущем. К сожалению, нам очень трудно найти баланс между безопасностью и комфортностью. На многих биржах у нас сейчас стоит сумасшедшее количество подтверждений, то есть наши клиенты должны ждать по 4-6 часов для зачисления денег. Мы понимаем, что это не совсем здоровая ситуация. Однако этого требует безопасность.
Во-вторых, мы немного изменим консенсус сети. Это сделает атаку экономически невыгодной. Чтобы злоумышленнику заработать $500 000 в пересчете на Zen, ему придётся со своей стороны потратить не меньше $1 500 000. В новой версии консенсуса приватный майнинг станет невозможным. Если майнер играет по правилам, то он заинтересован в распространении своего блока по сети. То есть у него нет причины держать блок у себя, если он не совершает атаку 51%.
Наконец, мы используем сеть из защищенных и суперузлов в качестве нотариального слоя, который будет участвовать в консенсусе и заверять блоки - какие из них являются верными, а какие - нет. В этом случае атакующему, кроме того, чтобы завладеть большим количеством хэшрейта, потребуется контролировать большее количеством наших узлов. Это будет невозможно сделать. Это очень сложное решение с технической точки зрения, поэтому мы реализуем его позднее.
Может ли ваш алгоритм действий быть полезен другим криптовалютам?
Наше решение по изменению консенсуса может взять себе любая другая команда. Поэтому я бы порекомендовал людям следить за нашими обновлениями. Что касается нотариального слоя из доверенных узлов, то здесь немного сложнее. Это решение будет работать в сети, похожей на нашу. Такая сеть есть не у многих.
Вообще я советую создателям проектов посчитать, сколько будет стоить возможная атака 51% на их сети, и только после этого делать выводы, нужны ли им какие-то новые решения или нет.
Как вы оцениваете предложение Виталика Бутерина повысить устойчивость сети к атаке 51%?
Конкретно для ZenCash это предложение имеет большой смысл, потому что у нас есть сеть проверенных узлов. Поэтому я считаю, что это хорошее предложение, которое нужно обдумать.
Однако это решение не является панацеей. Для его реализации нам нужно предположить, что эти узлы - честные, то есть опять надо соблюдать какие-то условия.
Александр, и напоследок дайте совет. Что следует делать, когда произошла атака 51%?
Во-первых, я советую людям следить за Zen. Мы хотим навсегда исключить такие атаки, поэтому наша команда изменит консенсус. Многие могут последовать нашему примеру.
Во-вторых, когда случилась атака, людям нужно пытаться как можно скорее минимизировать ее последствия. Для этого им следует сообщить о произошедшем биржам и своим партнерам. В период кризиса им необходимо давать пользователям информацию о ситуации не реже одного раза в четыре часа.