Игры со временем и «лишние» алгоритмы: Как взломали криптовалюту Verge

12 Время чтения: 10 мин. Саша Косован

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

В прошлом месяце неизвестный хакер серьёзно подорвал репутацию криптовалюты Verge. Ему удалось захватить сеть три раза с интервалами в несколько часов с 4 по 6 апреля (а потом ещё раз), не позволяя любому другому пользователю совершать какие-либо платежи. Хуже того, в этот промежуток времени он мог майнить 1560 монет Verge (примерно на $80) в секунду. Конечно, это была катастрофа.

И что в итоге? Криптовалютный энтузиаст Дэниел Голдман попытался разобраться в своей статье для The Abacus Crypto Journal. Предлагаем вашему вниманию сокращённый перевод.

Спуфинг временной метки, или Честные ошибки против опасной лжи

Корень эксплойта — в особенности Verge, которая состоит в возможности создавать «неточные» временные метки. В протоколе блокчейна отдельные транзакции группируются вместе в один блок, который затем подтверждается целиком. Создание каждого блока имеет свою временную метку. Даже когда протокол блокчейна работает правильно, эти временные метки иногда могут идти не в хронологическом порядке; то есть блок 100 может иметь временную метку после блока 101.

Это происходит потому, что в децентрализованных сетях, которые не предоставляют какие-либо особые полномочия третьим лицам, точное соблюдение синхронизации времени не столь важно. Учитывая непредсказуемое расхождение во времени, которое требуется для распространения данных через  p2p-сеть, вполне возможно, что время в блоках будет указано «не по порядку», даже когда все стороны честны. Другими словами, справедливо допускать некоторую гибкость; в случае с Verge (до взлома) протокол разрешал узлам «не соглашаться» относительно текущего времени с интервалом не больше двух часов.

Точкой входа для хакера был спуфинг временных меток, в котором добывались блоки из прошлого, но в пределах двухчасового окна, поэтому их могли принимать другие узлы.

Сложность майнинга, или Окружающие сеть стены

Для децентрализации Verge необходимо обеспечить участие мелких устройств (например, ноутбуков) в запуске программного обеспечения сети. Это в свою очередь означает ограничение объёма платёжной активности в сети, то есть установку точного времени блока (и, как следствие, ограничение на транзакции сети в секунду). Сеть Verge ограничивалась одним блоком в 30 секунд. Теперь можно спросить (учитывая, что сеть децентрализована), как это организовано. Что мешает участникам находить блоки с гораздо большей скоростью, тем более, что за принятый блок майнер получает вознаграждение?

Ответ — доказательство выполнения работы (Proof-of-Work). Для того чтобы блок считался действительным в сети, он должен содержать решение криптографически сложной вычислительной задачи. Характер этой задачи такой, что её сложность может быть скорректирована. Сложность нахождения блоков Verge постоянно корректируется на основе скорости подтверждения блока; если больше людей решат потратить больше вычислительной мощности на майнинг Verge, что позволит быстрее находить блоки, протокол повысит сложность майнинга, и наоборот. Таким образом, сеть Verge постоянно реагирует на изменение обстоятельств в реальном мире (стоимости майнинга, цены криптовалюты на рынке), чтобы сохранить баланс в системе.

Алгоритм, который Verge использует для вычисления текущей сложности, известен как Dark Gravity Wave; он рассчитывает среднюю скорость подтверждения блока в рамках двухчасового окна. Тут важно то, что сложность майнинга — это функция частоты последних блоков, а нахождение нового блока связано с их временными метками.

Следовательно, возникает проблема: если создаётся достаточно много ошибочных временных меток, то все они становятся недействительными. И именно это сделал хакер. После изучения данных блокчейна выяснилось, что на протяжении всего времени взлома (или взломов) каждый последующий блок был отправлен с временной отметкой примерно за час до настоящего времени, запутывая алгоритм майнинга. Если бы протокол владел человеческим языком, он говорил бы что-то вроде «О нет! Что-то не очень много блоков было принято! Майнинг стал слишком сложным — давайте сделаем его проще!» Поскольку временные метки постоянно подделывались, протокол постоянно уменьшал сложность, пока добыча не стала весьма лёгкой. Чтобы дать общее представление: средняя сложность за часы до первоначальной атаки была 1393093,39131, а во время атаки она достигла 0,00024414, то есть сложность уменьшилась на 99,999999%. Такое резкое уменьшение сложности означает большую вероятность подтверждения блоков — в нашем случае стал подтверждаться примерно один блок в секунду.

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

Однако снижение сложности — это только половина истории. Сложность майнинга сама по себе не дала бы злоумышленнику особого преимущества. С резко сниженной сложностью нахождение блоков становится легче для хакера, но также и для всех остальных; майнеры всё ещё конкурируют друг с другом, как и раньше. Другими словами, независимо от сложности одному злоумышленнику всё равно понадобится 51% хешрейта сети, чтобы её захватить, что представляет собой непростую задачу.

Однако наш хакер действительно захватил сеть и смог сделать это с гораздо меньшим процентом хешрейта. Ему позволил это сделать второй компонент эксплойта, связанный с использованием Verge нескольких алгоритмов хеширования.

Майнинг Verge, или Когда пять алгоритмов ничем не лучше одного

Как правило, криптовалюты на основе Proof-of-Work используют один алгоритм хеширования, из которых наиболее распространён SHA-256. Тем не менее Verge позволяет майнерам использовать любой из пяти различных алгоритмов (Scrypt, X17, Lyra2rev2, myr-groestl и blake2s). Аргумент в пользу использования нескольких алгоритмов состоит в том, что, по мнению критиков битокина, со временем майнинговая индустрия главной криптовалюты стала слишком специализированной и централизованной, поскольку большую часть биткоинов добывают на ASIC-майнерах в нескольких крупных пулах. Эта тенденция к централизации противоречит фундаментальной идее биткоина, поэтому криптовалюта, использующая несколько алгоритмов хеширования, могла бы стать альтернативой «централизованным» монетам. Управление пятью различными алгоритмами с точки зрения аппаратного обеспечения сложнее, чем контроль только одного, поэтому монета будет более децентрализованной.

Итак, что мы имеем: правильное функционирование системы криптовалюты включает в себя сохранение 30-секундного интервала нахождения блоков, сохранение всех пяти алгоритмов экономически выгодными и предотвращение доминирования одного из них. Для этого каждый алгоритм имеет собственный параметр сложности, который настраивается независимо от остальных четырёх. Иными словами, сложность майнинга на Scrypt изменяется так, чтобы достигать 30-секундного интервала, то же самое происходит с X17 и остальными.

Это значит, что поддельная временная метка фактически не уменьшила сложность майнинга всей сети, а только опустила её для тех, кто майнил на одном из пяти алгоритмов; в нашем случае это был Scrypt. Таким образом, майнеры на Scrypt легко могли зарабатывать новые монеты, в то время как майнеры на других алгоритмах были вынуждены работать так же, как и раньше. Злоумышленнику нужно было конкурировать с майнерами только на этом алгоритме. Требуемый для захвата сети хешрейт опустился с 51% (захват всей сети) до 10% (преимущество над другими майнерами на Scrypt).

10% следуют из предположения, что на каждый из алгоритмов приходится равная доля мощности — 20%. Но в реальности всё оказалось иначе. Приводимые сообществом аргументы (наличие асиков на Scrypt, которые ещё не были развёрнуты, резервные ресурсы, доступные для аренды через Nicehash) показывают, что Scrypt в момент атаки был самым доступным из пяти алгоритмов для захвата сети. Можно с уверенностью предположить, что требуемый для захвата сети хешрейт был меньше 10%; по некоторым очень условным оценкам на Reddit, он составлял всего 0,4%.

Подведём итоги

Спуфинг временной метки позволил резко снизить сложность майнинга; использование Verge пяти алгоритмов означало, что достаточно свести к минимуму сложность только одного из них, что значительно упростило захват сети; экономический статус этого алгоритма ещё больше упростил захват; и, наконец, резкое сокращение времени добычи блоков сделало атаку в 30 раз более прибыльной.

Что можно почерпнуть из всего этого? Во-первых, эксплойт с использования временных меток для понижения сложности на самом деле известен достаточно давно и даже получил название — time-warp. Этот вектор атаки обсуждался на биткоин-форумах много лет назад. В сети Verge эта атака сработала во многом из-за использования более нового алгоритма регулирования сложности Dark Gravity Well, где сложность меняется на каждом новом блоке, в отличие от, скажем, биткоина, где она корректируется только на каждом 2016-м блоке. Это позволяет утверждать, что сеть биткоина может быть атакована таким способом только один раз в две недели против каждых 30 секунд у Verge.

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

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

Комментарии (12)
  • http://btcmoney777.ru/market/igry-so-vremenem-i-lishnie-algoritmy-kak-vzlomali-kriptovaluty-verge.html Игры со временем и «лишние» алгоритмы: Как взломали криптовалюту Verge | Крипто

    […] Источник: coinspot.io […]

  • https://ok.ru/profile/121223569915 Пётр Варганов

    Главная крипта эфир и биток все остальное не достойно инвестиций, будьте осмотрительны — в сфере криптовалют очень много «пустых» монет целью которых является отъем «лишних» денег!

  • http://facebook.com/profile.php?id=100006988296233 Anna Borisova

    Вчера так же взломали Bitcoin Gold. И есть все основания думать что в течении года мы увидим множество таких случаев с мелкими и средними монетами. Это несколько очистит рынок. Совершить подобную атаку «51%» на Биткоин или Эфир не получится.
    А самое смешное что люди на столько не образованы, что взломанные монеты торгуются так как будто ничего не произошло.

  • http://cryptdaily.com/news/igry-so-vremenem-i-lishnie-algoritmy-kak-vzlomali-kriptovaluty-verge.html Игры со временем и «лишние» алгоритмы: Как взломали криптовалюту Verge | CryptDaily

    […] Источник: coinspot.io […]

  • Saso

    Остерегайтесь мошенников 99% ICO это скам-обман и мошенничество которых никто не ловит. Отправив свои эфиры и биткоины вы их уже никогда не увидите.

  • Saso

    Даже выходя на биржи токены это пустые. Не меняйте деньги на пустоту.

  • Saso

    Из за уязвимости всех криптовалют , всей крипте грозит коллапсовый крах.

  • Михаил

    Долой море непонятной и никому ненужной крипты! Хотели анонимность и децентрализацию, хотели защиту от бесконтрольной эмиссии и инфляции а получили на выхоже как говаривал тов. Черномырдин…)))
    Короче получили цифро-акции. Не деньги! Что печально, но даёт наживаться барыгам и спекулянтам.
    Цифро-денег так и нет. Мир ждёт и уже начал отворачиваться. Такими темпами крипта умрёт быстро. Быстрее даже чем Маккафи, поедающий свой половой орган.

  • Артур

    Вот в результате такого перевода :
    Точкой входа для хакера был спуфинг временных меток, в котором добывались блоки из прошлого, но в пределах двухчасового окна
    был утерян смысл.
    при котором добывались (в смысле рассылались для подтверждения) блоки ЯКОБЫ из прошлого. В оригинале that appear to be from the past

  • Артур

    Следовательно, возникает проблема: если создаётся достаточно много ошибочных временных меток, то все они становятся недействительными.
    Опять смысл искажен нереводом. Поддельные временные метки как раз остаются действительными. В оригинале: если …, то all bets are off. В прямом смысле это выражение кричит крупье в казино, а в переносном оно означает, что ситуация кардинально меняется. «Все летит кувырком», вот и весь перевод.

  • https://cryptoe.ru/v-shage-ot-katastrofy-anatomija-poslednego-baga-bitkoina/ В шаге от катастрофы: Анатомия последнего бага биткоина — Cryptoe.ru

    […] несовершенство алгоритмов хеширования криптовалюты Verge и одного из форков биткоина привело к реализации атак […]

  • https://bestblockchain.by/2018/10/09/haker-obeshhaet-translirovat-ataku-51-v-prjamom-jefire/ Хакер обещает транслировать атаку 51% на криптовалюту Einsteinium в прямом эфире — https://bestblockchain.by

    […] атакам 51% подвергся ряд альткоинов, включая Bitcoin Gold и Verge, причём последний не устоял дважды. Теперь в поле […]

Новости о цифровых валютах, финтех-трендах и финансовых инновациях

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

Полное или частичное использование материалов сайта разрешается только с письменного разрешения редакции, при этом ссылка на источник обязательна!

Подпишитесь на Email рассылку о новые статьях и важных новостях от Coinspot.io
Подпишись и будь в курсе самого главного.

Советы экспертов, актуальные комбо, постоянные розыгрыши.

Новостная выжимка в понятном формате. Мы бережем ваше время.