Хотелось бы рассказать о
двойной трате, она же
атака 51% и
double spend.
Monacoin, bitcoin gold, zencash, verge и litecoin cash.
В последнее время, по крайней мере пять криптовалют были подвержены атаке, которая считалась более теоретической, чем практической и это произошло только за последние месяцы. В каждом из случаев злоумышленники смогли накопить достаточную вычислительную мощность, чтобы скомпрометировать более мелкие сети, перегруппировать свои транзакции и скрыться с миллионами долларов, что, возможно, сопоставимо с капиталом банка в криптовалюте.
Однако, очень удивительным может быть то, что так называемые атаки 51% хорошо известны как опасное направление атак на криптовалюты.
Как работает двойная трата (атака 51%)?
Когда один человек контролирует более 51% пула майнеров монеты – он может контролировать консенсусАтакующий арендует (Miningrigrentals.com or Hashnest.com) или использует ботнет чтобы получить много хэш-мощности.
Например, если в основной сети (mainnet) есть 25 Gh хэщ-мощности, то атака 51% может быть выполнена с 25,5 Gh арендованной мощности.
Это достаточно легко и не очень дорого.
Как работает атака:Используя секретный пул, атакующие создают приватную цепочку, которая длиннее, чем публичная.
Например:
Допустим они начинают на блоке 100 000
Они строят приватную цепочку длиннее чем публичная.
В этой приватной цепочке больше хэш-мощности, поэтому она быстрее найдет блоки.
Приватная цепочка может найти 10 блоков, за это время публичная смогла найти только 9.
Двойная тратаКак только они начинают свою приватную цепочку – они идут на биржу или к торговцу и делают большой депозит.
Используем 10,000 GLD как пример.
Это передается публичному блокчейну в блоке 100 001. Но они не передают эту транзакцию в своей частной сети, размещая ее только в общественной сети. В своей частной цепочке блоков они совершают транзакцию, отправляющую те же самые 10 000 GLD на другой адрес кошелька в блоке 100 001.
Это «двойная трата» - они дважды тратят одни и те же монеты GLD.
Как злоумышленники получают прибыльБиржа рассматривает депозит в 10 000 GLD в публичной цепочке и после того, как получено 6 блоков подтверждений - этот депозит переносится на биржевой счет, и он становится доступным для торговли. Средства теперь находятся в кошельке биржи - правильно? Потому что сеть монет подтвердила, что они там. Перевод отображается в блок-эксплорере - как правильная транзакция.
Затем злоумышленник продает 10 000 GLD за биткоины по рыночной цене и моментально выводит биткоины с биржи.
Биржа одобряет вывод биткоинов и злоумышленник получает средства в ВТС.
В этот момент времени мы находимся в блоке 100 008 или 100 009.Как только BTC выводятся с биржи - злоумышленник выпускает свою длинную приватную цепочку из 10 блоков, передавая ее в публичную сеть. Эта длинная приватная цепочка теперь стала публичной. Поскольку приватная цепочка имеет более высокую хэш-мощность (более 51%) и длиннее, чем предыдущая публичная цепочка - теперь она принимается публичной как настоящая запись.
Это называется «Реорганизация цепи». 9 блоков, ранее находившихся в главной сети (mainnet), теперь игнорируются, а 10 новых блоков приняты, как часть новой сети. Подобным образом происходит «реорганизация цепи» в протоколе сети монеты GLD.
Монеты, которые были первоначально приняты сетью в биржевом кошельке, в данный момент отклоняются сетью монеты, как недействительные. Но биржа, поменяв монеты на биткоин, уже отдала злоумышленнику биткоины, полученные от продажи монеты.
В то время как у их кошелька первоначально было 10 000 GLD, сеть аннулировала эту транзакцию и одобрила частную цепочку как «истинную цепочку».
Внезапно, основная сеть (mainnet) не включает первоначальный депозит в размере 10 000 GLD на биржу в оригинальном блоке 100001, но она включает передачу этих 10 000 GLD в личный кошелек злоумышленника из закрытого блока 100001. В новой версии цепочки злоумышленник никогда не отправлял монеты на биржу, вместо этого он отправил их себе.
Таким образом атакующий получил 10 000 GLD в биткоине от биржи, не делая первоначальный ввод 10 000 GLD на биржу.Они могли заплатить много денег за всю хэш-мощность, но те монеты GLD, которые они украли – стоят гораздо больше.
Так это - взлом?Блокчейн не был взломан. Но децентрализованная сеть узлов монеты, которая управляет блокчейном, была
использована злоумышленниками, так как сети не хватило хэшрейта для защиты.
В мае Bittrex стал жертвой атаки 51% (двойной траты) на сеть Bitcoin Gold. Разработчики Bitcoin Gold предложили частично компенсировать убытки бирже Bittrex, но Bittrex решил сделать делистинг Bitcoin Gold вместо этого.
Другие монеты, на которые были направлены атаки 51% обычно компенсировали биржам их потери.
Если у монеты достаточно хэшрейта для защиты своей сети, на эту монету практически невозможно провести атаку 51%.
Некоторые сети монет прибегают к объединенному майнингу или представляют из себя гибрид POW и POS.
BTCurious блестяще объяснил это, в нескольких предложениях:
Если бы у меня была возможность получить 51% , я бы смог бы добыть цепочку блоков, в которой я перевожу все свои монеты в свой личный кошелек. Я бы использовал эту цепочку длинной около 10, но не показывал бы ее остальной части сети. В это же время я поменял бы все свои монеты в доллары на бирже и снял их. Как это происходит в обычном блокчейне.
После того, как я вывел средства нормальная блок-цепочка составляет около 9, а моя цепочка блоков - 10. Я показываю все свои блоки сети, и сеть подтверждает, что я прав.
Но доллары не могут быть возвращены! Таким образом, биржа получает убытки.
Спасибо за помощь: xtraelv, taikuri13, BTCurious!