Bitcoin Forum
June 22, 2024, 08:40:54 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: "Лeнивыe мaйнeры" стaли причинoй фoркa сeти  (Read 656 times)
nor9845 (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004



View Profile
July 05, 2015, 09:19:54 AM
Last edit: July 05, 2015, 09:39:35 AM by nor9845
 #1

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://bitnovosti.com/2015/07/05/fork-seti/
A-Bolt
Legendary
*
Offline Offline

Activity: 2318
Merit: 2333


View Profile
July 05, 2015, 10:11:43 AM
 #2

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

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

Но если владельцы пулов после возникшей ситуации осознают, что SPV-майнинг может привести к гораздо большим финансовым потерям, чем затраты времени на валидацию блока, то они с радостью будут проверять и 100-мегабайтные блоки. Лишь бы не было сплита.
GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
July 05, 2015, 10:21:59 AM
 #3

Мне кажется, все идет от лени. Вернее, не было экономической выгоды.
Вероятность появления плохого блока близка к 0. Поэтому зачем тратить ресурсы на проверку. Будут появляться плохие блоки, будут проверять. Потому как, майнинг от плохого блока приводит к недополучению прибыли.

Ведь вполне можно распараллелить.
После появления блока майнишь от заголовка. Параллельно другим процессом продолжаешь проверять блок. Если блок плохой, возвращаешься к старому блоку. И секунд особо не теряешь. И не майнишь от плохого блока.

А максимальный размер блока в данном вопросе не играет существенной роли. Увеличивай, не увеличивай этот размер, то если это явление (непроверка блоков) уже есть, то оно и дальше может быть. Тут я согласен с предыдущим постом.

А наиболее выгодная экономическая стратегия может быть посередине.
Нет смысла 100% майнеров проверять блоки. Но и 100% не проверять тоже плохо. То есть всегда будут "паразиты" и "добросовестные". В какой-то пропорции. Smiley

p/s/
Пришла идея. Какой-то недобросовестный майнер может кидать время от времени плохой блок, чтобы сбить всех майнеров на ложный след. А сам в одиночку майнит. Smiley
icreator
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
July 05, 2015, 05:11:42 PM
 #4

круто - спасибо за инфо

я с http://eligius.st/ работаю по транзакция

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
icreator
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
July 10, 2015, 08:09:53 AM
 #5

вот похоже ленивый майнер - с 0 транзакций в блоке - это КнСминер!
https://blockchain.info/block/000000000000000005a7cf61619ffdccc4f4166ed7718eca74f9d339a3db8ca4

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!