Вы здесь

Что такое атака 51%, и что еще угрожает криптовалютам

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

Что такое атака 51%, и что еще угрожает криптовалютам

Блокчейн, майнинг и форки цепочки

Для примера рассмотрим Bitcoin, как самую первую и самую простую криптовалюту. Биткоин, по сути, состоит из следующих сущностей:

  1. Биткоин-адреса с приватными ключами.
  2. Транзакции между биткоин-адресами, подписанные приватными ключами отправителя.
  3. Блоки с транзакциями. Каждый блок подписан майнером, решившим сложную математическую задачу.
  4. Ноды (узлы сети), которые обмениваются блоками и ещё не включенными в блок транзакциями.

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

Каждый майнер собирает из неподтвержденных транзакций блок, добавляет в него транзакцию со своей наградой и начинает искать хэш-сумму, удовлетворяющую текущей сложности сети. Если майнер нашёл решение быстрее остальных, то он рассылает «запечатанный» блок нодам сети. Ноды проверяют корректность транзакций и правильность решения задачи и добавляют новый блок в свою копию блокчейна.

Если во время поиска задачи майнеру приходит сообщение от нод, что блок с таким порядковым номером уже найден, то майнер всё бросает, формирует новый блок и начинает работу заново. Сложность подстраивается таким образом, чтобы во всей сети каждые 10 минут кто-нибудь из майнеров находил блок.

Но скорость распространения информации ограничена, и может случиться так, что два майнера найдут решение для своих блоков почти одновременно и разошлют свои блоки в сеть.

То есть, вместо стандартной ситуации, когда цепочка блоков выглядит так:

Блокчейн биткоина при нахождении блока майнерами

Получается нечто такое:

Блокчейн биткоина при одновременном нахождении блока двумя и более майнерами

Причём, оба майнера правильно решили задачу, оба блока верны. Получился форк (вилка/разветвление) цепочки. Что же делать в этой ситуации, ведь цепочка должна быть одна?

Когда нода получает два правильных блока и понимает, что произошёл форк, она сохраняет оба блока и ждёт следующего.

Майнеры для следующего блока должны включить в него хэш-сумму предыдущего, но предыдущих блоков у нас два. Это не проблема, можно за предыдущий принять любой блок.

И вот проходит 10 минут и кто-то из майнеров находит следующий блок, приняв за предыдущий блок B:

Нахождение майнерами следующего блока в блокчейне биткоина

После этого все майнеры и все ноды отбрасывают блок A, перекидывают все транзакции из блока A в «неподтвержденные транзакции» и всячески делают вид, что блока A, вообще, никогда не было. Цепочка снова одна и без разветвлений.

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

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

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

Атака 51 %

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

Эгоистичный майнинг

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

Таким образом, атакующий будет получать всю награду за майнинг, а не пропорционально своим мощностям. То есть если майнер имеет 49% мощности, то майнер получает почти половину от всей эмиссии биткоинов. Но если майнер обладает мощностью, превышающей половину всей мощности сети, он получает всю награду. Разница в мощности между двумя состояниями может быть меньше процента, а разница в награде — в два раза.

Атака 51 на блокчейн биткоина

Но не это является проблемой. Сеть будет штормить, но она будет работать и при наличии эгоистичного майнинга. Проблема вытекает из факта, что наполнением транзакций в блоке занимаются майнеры, и при эгоистичном майнинге пройдет транзакция или нет, зависит от одного человека — атакующего. Этот человек может не подтверждать транзакции от определенного круга лиц, или, вообще, не включать в блоки транзакции. Да, он не сможет украсть деньги с чужих адресов, но он может сделать так, что владельцы не смогут ничего сделать со своими средствами.

Атака двойной траты (расходования)

Имея большую часть вычислительных мощностей, можно потратить деньги дважды, точнее, возвращать потраченные деньги обратно.

Злоумышленник создает транзакцию с переводом на биржу, например, 10 BTC и в тот же момент начинает искать решение блока, где эта транзакция с переводом на биржу отсутствует. Так как у атакующего больше мощности, чем у остальных майнеров, даже если такой блок он найдёт не первым, то рано или поздно его ветка «альтернативной реальности» будет сложнее, чем ветка остальной сети.

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

И вот пока оборудование атакующего майнит ветку «альтернативной реальности» в закрытой сети, в которой он свои 10 BTC никуда не переводил, в «реальном» блокчейне перевод проходит, злоумышленник продаёт свои биткоины, выводит средства с биржи, а после спускается в подвал и подключает свою закрытую сеть к интернету. Для драматизма, можно представить, что делает он это неистово хохоча и дергая большой искрящийся рубильник.

Что происходит в этом случае? Нода злоумышленника сообщает нодам сети, что «всё было не так». Был форк цепочки, и вот она, настоящая ветка, а ту старую выкинь. Ноды сети считают сложность ветки и убеждаются, что да, эта ветка правильная и передают информацию дальше. Таким образом, последние блоки блокчейна заменяются на блоки из «альтернативной реальности», в которой негодяй свои деньги на биржу не переводил.

Получается, и деньги с продажи у атакующего остались, и проданные биткоины в кошелёк вернулись. Деньги из воздуха. Можно еще раз провернуть ту же схему пока не надоест.

Всё не так уж плохо

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

Даже если кому-то удастся собрать такое количество оборудования для атаки 51% (что является нетривиальной задачей), он будет получать около 900 BTC в сутки, если будет играть по правилам. А это около 8,5 миллионов долларов в день. Если он начнёт играть не по правилам, это сразу станет заметно, что приведёт к молниеносному падению курса. И правда, кому нужна платежная система, где есть возможность отменять свои транзакции, а факт проведения платежа зависит от какого-то левого мужика? Слишком похоже на современную банковскую систему.

Поэтому атакующему банально невыгодно совершать атаку. Даже сама вероятность атаки негативно влияет на курс, поэтому, когда в 2014 году пул GHash.io получил больше половины мощностей, владельцы пула принудительно сократили свою долю до 39.99%, чтобы не смущать общественность.

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

Но и не всё так хорошо

Хотя, с точки зрения математики, криптовалюты обречены на успех, беда может прийти и с другой стороны — со стороны государственного регулирования. Если все страны мира решат, что криптовалюты опасны, и объявят охоту на тех, кто ими занимается, крипта быстро зачахнет и уйдёт в подполье. Да, она не умрёт, но технология без массового применения никогда не станет популярной.

К счастью, некоторые страны уже оценили перспективы технологии и, например, Япония легализовала криптовалюты. Там в магазинах можно расплачиваться криптовалютами Bitcoin и Ethereum.

Швейцарский город Цуг получил прозвище «Криптодолина», начав принимать биткоины для оплаты государственных услуг и сосредоточив в себе около 200 компаний, которые занимаются разработками в области блокчейна. Если весь мир последует примеру этих стран, криптовалюты станут полноценной технологией будущего.

Категория: 
Безопасность
Монета: 
4
Ваша оценка: Нет Средняя: 3.5 (2 оценок)
40695 / 1
Аватар пользователя Иван Петров
Публикацию добавил: Иван Петров
Дата публикации: ср, 05/30/2018 - 13:42

Что еще почитать:

Комментарии:

Джером

Атака 51 на криптовалюту впринципе не осуществима. Во-первых это идёт во вред атакующему, а во-вторых это очень дорого.

вт, 11/13/2018 - 13:13

Gurum

Для биткоина атака 51 уже не осуществима, а вот на некоторые другие молодые криптовалюты с алгоритмом подтверждения proof of work вполне реальна. Поэтому я считаю, что для увеличения шансов на невозможность проведения атаки 51 криптовалютам стоит внедрять комбинированные алгоритмы подтверждения: proof of work и proof of stake. Таким образом, атакующему потребуется не только 51% мощности сети, но 51% монет этой же сети. Согласитесь, так провести атаку 51 гораздо сложнее, чем при использовании алгоритма PoW (доказательства работы).

чт, 12/06/2018 - 10:20

Арсений

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

вт, 12/11/2018 - 11:18

Антон

Чтобы сейчас провести атаку 51 на блокчейн биткоина потребуется объединиться двум или трем пулам и тогда она станет реальной. Но, как всегда есть сдерживающий фактор от этого, а именно то, что такая атака не будет экономически выгодной для самих атакующих.

вс, 12/23/2018 - 16:30