18+
Биткойн-атака «Corebleed» явно указывает на необходимость децентрализации узлов
    Опубликовано:

    Биткойн-атака «Corebleed» явно указывает на необходимость децентрализации узлов

    На прошлой неделе на конференции Breaking Bitcoin в Париже спикеры со всего мира рассказывали о сбоях в работе таких технологий как, например, Segwit2x, Bitcoin Unlimited и IOTA.

    Самое спорное сообщение поступило от разработчика альтернативного протокола использования Биткоина Кристофера Джеффри, который показал аудитории, в которой находилось около 200 разработчиков, ученых и специалистов, как можно разрушить протокол использования Биткоина «bitcoind», также более известный как Bitcoin Core.

    Несмотря на то, что уязвимость была исправлена, Джеффри высказал свое мнение, что экосистема программного обеспечения в протоколе биткойнов имеет ярко выраженную централизацию. Пока Reddit и Twitter сосредоточены на угрозе децентрализации, которую майнеры позируют Биткойну, Джеффри также подчеркнул менее популярную, хотя и столь же мучительную угрозу: централизацию развития.

    Сегодня более 99% сети Bitcoin используют Bitcoin Core. Bitcoin Core является программной реализацией Биткоина по умолчанию, обслуживаемой менеджерами большинства основных операционных систем. 

    Начиная свой доклад «Ловушки реализации консенсуса», Джеффри продемонстрировал атаку «отказ в обслуживании» (DoS), запустив скрипт, из-за которого по узлам сети биткоина распределялось чрезмерное количество памяти, заставляя узлы останавливаться. Это была успешная атака вне памяти (OOM), выполненная в тестовой сети Bitcoin.

    Такая атака OOM на Bitcoin Core, получившая название Corebleed, фокусируется на деталях компьютера, злоупотребляет памятью, процессором и уязвимыми местами ввода-вывода на диске. Все это, в сочетании с таргетингом на уровень консенсуса, «который не может быть проигнорирован узлами», отмечает Джеффри, сломает биткойн, остановив узлы, на которых запущено программное обеспечение.

    Пока такие протоколы реализации как Bitcoin Cash и Zcash, а также другие реализации Bitcoin, которые были созданы независимо, например, BTCD и собственная реализация Джеффри, bcoin, уязвимы к такой атаке. Хотя разработчик Bitcoin Core Питер Уилль уже внес рабочие исправления в свой протокол. Разработчик Bitcoin Core, Грегори Максвелл, описал обновление Bitcoin Core как скрытое исправление, заявив, что причина выпуска обновления — «подготовка к исправлениям».

    Теоретически, если бы атака отказа в обслуживании (DoS) была использована в сети Bitcoin, то она смогла бы отключить значительную часть узлов, работающих с Bitcoin. Только те узлы, которые поддерживаются самыми мощными серверами, смогли бы пережить атаку.

    Существует две версии этой атаки: майнерская версия и немайнерская. Майнерская версия атаки привела бы к считыванию в память 24 гб данных. Джеффри утверждал, что из-за использования C++ «затраты памяти усиливаются 3 или 4 раза, поэтому, вероятно, не 24 гб, а 100 гб».

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

    Не так уж много денег или времени потребуется, особенно для крупных организаций, которые хотят закрыть Биткойн, сказал Джеффри. Уничтожьте Bitcoin Core, и вы уничтожите более 90% всей сети Биткоина.

    Эта атака OOM выполняется путем перехода к «сердцу и душе» биткойнов: «вывод неизрасходованных транзакции» (UTXO). Механически, поясняет Джеффри, индексирование новых UTXO требует, чтобы все выходы сохранялись под одной и той же записью базы данных каждой транзакции.

    Когда через «ввод» происходят затраты, ссылаются на один вывод в индексе UTXO. Тем не менее, затраты «векторного UTXO» требуют, чтобы входной сигнал читал *полностью* всю запись базы данных и сохранялся в памяти до тех пор, пока процесс не будет завершен.

    Джеффри рассказал аудитории про ключевое различие, с которым даже опытные разработчики испытывали трудности: информация о протоколе и реализации, вызывающая сетевые дефекты.

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

    Список альтернативных вариантов реализаций является коротким, но разнообразным. Bcoin.io является альтернативой ссылочному клиенту биткойна, написанным в node.js самим Джеффри. BTCD используется lnd Lightning Network, написанной в Go Дейвом Коллинсом, основным разработчиком Decred. Libbitcoin — еще один протокол, написанный на C++ Амиром Тааки, также присутствовавшим на Breaking Bitcoin.

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

    Наши партнеры
    Наши видео
    X