The LTB Network Forum


“Ленивые майнеры” стали причиной форка сети

Back to LTB in Russian

Jump to bottom
Pages: 123

Comments

kenobius

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

Недавно добавленное в Bitcoin Core oбновление BIP66 призвано окончательно решить проблему “пластичности транзакций” (transaction malleability), через более строгие требования к проверке криптографических подписей транзакций. В рамках правил BIP, когда 950 последних 1000 блоков заявляют о поддержке этого обновления, блоки старой версии становятся устаревшими. Однако вчера вечером, уже после того как изменение вступило в силу, один из майнеров произвел старую версию блока. Вместо того, чтобы отвергнуть этот блок, примерно половина сети приняла его и блокчейн Биткойна разделился на 9 блоков в глубину.

Только скоординированная работа разработчиков Core, которые были на связи с крупнейшими пулами и быстро указали на ошибку, позволила быстро разрешить неожиданный форк цепи. В результате полученной информации от разработчиков, пулы быстро перешли на “правильную” цепочку и заорфанили “неправильную по новой версии”.

Хроника инцидента

Разделение цепи началось, когда пул BTCNuggets добыл устаревшую блока. Несмотря на то, что большинство майнеров (95%) ранее сигнализировало о готовности отвергать устаревшие блоки, они в реальности этого не сделали, и примерно половина майнеров продолжали добавлять свои блоки поверх устаревшей версии цепи. Вот как описывает происшедшее Bitcoin.org:

“Утром UTC 4 июля 2015 года, 950/1000 (95%) порог для перехода на новую версию был достигнут. Вскоре после этого, небольшой пул (из числа тех 5%, кто не проапгрейдил свое ПО) добыл неверный блок “старой” версии. Это было ожидаемое явление, но ожидалось что этот блок будет отвергнут другими майнерами. К сожалению, выяснилось, что примерно половина хэш-мощности сети НЕ ПРОВЕРЯЕТ валидность блоков (так называемый SPV майнинг) и они начали добавлять новые блоки поверх этого недействительного блока. Обратите внимание, что ранее, эти SPV майнеры явно заявляли, что они будут следить за соблюдением правил BIP66. Не сделав этого, несколько крупных майнеров в итоге потеряли более $50 000 долларов майнингового дохода на данный момент.”

Кто оказался на “неверной стороне форка”? К сожалению, в их числе оказались крупнейшие пулы: Antpool, F2Pool а также серис Blockchain.info. Соответственно, на Blockchain.info долгое время демонстрировалась неправильная версия цепочки, и многие зависящие от него сервисы не могли заметить потенциальный дабл-спендинг.

Из “неправильных” пулов, один только Antpool контролирует почти 36% хэш-мощности сети. Все эти пулы и сервисы пользовались “упрощенным майнингом” с использованием ПО основанного на bitcoinj разработки Maйка Хирна (Привет, сторонники Bitcoin-XT! Дело рук Майка Хирна уже во второй раз оказывается причиной форка сети.)

По состоянию на момент написания этой статьи, большинство пулов перешло на полноценный майнинг и теперь добывают только действительные блоки. Питер Тодд сообщает на Reddit, что только 4% сети по-прежнему ведет майнинг инвалидной цепочки.

Пользователям надо обновиться, или быть осторожными

Те, кто пользуются клиентами с упрощенными подтверждениями (SPV – такие как Android Wallet и т.п.) остаются уязвимыми для подобных форков, поскольку их клиенты не делают никакой проверки получаемых транзакций. Вы можете видеть, что биткойны пришли на ваш адрес, в то время как ваш кошелек на самом деле получает данные с инвалидной цепи.

Следует обновить клиент Bitcoin Core до версии ядра 0.9.5 или более поздней. Ваши транзакции в любом случае являются безопасными, если вы получили их до 4 июля 2015 15:00 UTC. Для пользователей, работающих с веб и SPV кошельками (для действительно важных транзакций) стоит подождать 30 блоков, прежде чем окончательно принять транзакцию. (UPDATE: разработчики Core coобщили, что проблема в основном снята, SPV юзерам достаточно получить 2-3 подтверждения)

Майнеры должны проверить, что их пул уже обновил свою версию ПО и не пользуется уловками типа “майнинга по заголовкам” или переключиться на пул, который гарантирует, что он производит полную проверку блоков. Если они пользуются пулом, который занимается “SPV майнингом”, они могут потерять намайненные деньги.

Почему это вообще произошло?

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

Почему майнеры пользуются подобными уловками?

Потому, что блоки сейчас приближаются по размеру к 1 MB, и дожидаясь, пока скачается полный блок, прежде чем начать работу, майнеры теряют несколько десятков секунд, чего они не могут себе позволить – это чистые потери майнинговой мощности. Поэтому, они занимаются “читингом” – начинают майнить сразу же, как получили заголовок, и просто забивают на все проверки.

И раньше, были подозрения, что некоторые майнеры пользуются подобными уловками, ни никто не подозревал, что дело приобрело подобный масштаб. По результатам данного инцидента, оказалось, что почти 50% сети уже НЕ ПРОВЕРЯЕТ БЛОКИ И ТРАНЗАКЦИИ.

В этом свете, дебаты по поводу “скорейшего увеличения лимита блоков” приобретают новый оборот. Если бы блоки были размером не 1MB, а 20MB, то их скачивание у большинства майнеров заняло бы не десятки секунд, а уже минуты. Соответственно, не 50% майнеров, а все 100% начнут “майнить по заголовкам”, не добавляя сети ВООБЩЕ никакой безопасности, а просто собирая награду за блок и комиссию. Это фактически означает, что злоумышленник может объявить абсолютно “левый” блок, допустим с дабл-спендингом всех своих транзакций, и “ленивые майнеры” радостно подхватят его заголовок, ничего не проверяя, и будут добавлять поверх него блоки.

Тому, кто сейчас с пеной у рта кричит “Чем больше блоки, тем лучше!” и “Переходим на форк Bitcon-XT“, стоит задуматься о реальных проблемах с безопасностью сети, к которым приведет такое увеличение.

http://bitnovosti.com/2015/07/05/fork-seti/

4 likes
  • david1980

    Хочется выругатся после прочтения))) Это ж практически приговор системе

    Permalink
    2 likes
  • cefp

    А курс тем не менее растет.

    Permalink
    2 likes
  • chewi

    @david1980 Хочется выругатся после прочтения))) Это ж практически приговор системе

    Проблема есть, известна. Будет решаться, очевидно. Насчёт "приговора системе" – не надо делать скоропалительных выводов.

    Permalink
    3 likes
  • andref

    Мда... Огорчили. Что-то многие процессы не заладились в последнее время. То идет ругань между основателями то вот такие "интересные" подробности всплывают. Радует что хоть курс немного растет. Пампят на теме Греции?

    Permalink
    2 likes
  • puzoo

    неприятные подробности

    Permalink
    1 like
  • MartaZ

    Сколько же еще вылезет всяких багов?

    Permalink
    0 likes
  • kenobius

    @martaz Сколько же еще вылезет всяких багов?

    Все больше убеждаюсь что PoW-система, по-крайней мере в том виде, в каком она присутствует в биткоин не состоятельна в больших масштабах.

    Permalink
    1 like
  • Petrik

    Обновления для кошелька должны быть регулярны.

    Permalink
    1 like
  • Grav

    херня какая-то с блокчейна деньги не уходят вот тебе и децентрализация

    Permalink
    1 like
  • kenobius

    @grav херня какая-то с блокчейна деньги не уходят вот тебе и децентрализация

    Если вы про кошелек Blockchain, так это централизованный сервис.

    Permalink
    1 like
Jump to top
Pages: 123

Post Reply

Please Login to post a reply to this thread.

© Copyright 2013–2016 The LTB Network. All rights reserved .