Почему в сети Bitcoin появляются брошенные блоки и что с ними происходит

Почему в сети Bitcoin появляются брошенные блоки и что с ними происходит

Согласно официальной терминологии Bitcoin Core, «брошенные» («отцепленные» или «залежавшиеся») блоки (stale blocks) — это те блоки, которые не являются частью основной цепи. Они могут создаваться естественным путем, когда два майнера производят два блока практически одновременно или же они могут быть сгенерированы злоумышленником с целью атаки на блокчейн. А «блоками-сиротами» (orphan blocks) Bitcoin Core именует те блоки, «родительский блок» которых пока неизвестен, то есть нода его еще не обработала. Однако сообщество часто смешивает эти понятия, подразумевая под «orphan» именно тот блок, который не вошел в основную цепь, поскольку его опередил другой. В частности, таким обозначением пользуется Blockchain.info.

Возвращаясь к традиционной терминологии: «родительские» связи блока-сироты чаще всего позднее устанавливаются, блок подтверждается и занимает свое место в основной сети, однако брошенные, «задвоенные» блоки остаются ненужными и никогда не попадают в основную цепь Bitcoin.

Это образует ряд проблем, и одна из них касается майнеров: если майнер случайно произвел свой блок примерно в одно время с другим и сеть предпочла не его блок, то он не получит награды. Кроме того, слишком большое количество таких блоков может сделать сеть более уязвимой для атак, а именно для атаки 51% и, как следствие, двойного расходования.

«Если майнер-злоумышленник контролирует большую долю мощности хэширования, у него всегда будет преимущество в добыче следующего блока и он может выбрать не передавать блок сразу же [в основную цепь], а сделать это примерно в одно время с добычей [другого] нового блока», — пишет ведущий разработчик Blockbid Бернард Пех, отмечая, что при этом необходимо быть крайне точным с внедрением своего блока, всегда на шаг опережая конкурирующего майнера. Таким образом злоумышленник создает параллельную, подконтрольную себе сеть, и когда она становится достаточно длинной, протокол Bitcoin начинает считать ее приоритетной. Получив такую власть, злоумышленник может «откатывать» транзакции, то есть в рамках «собственной» цепи признавать уже подтвержденные транзакции недействительными и повторно расходовать средства.

Подобная централизация майнинга может использоваться не только хакерами, но и любыми участниками сети, которые хотят получить наибльшую награду. Концепция «эгоистичного майнинга» была впервые описана в 2013 году исследователями Корнелльского университета Эмином Гюн Сирером и Иттаем Эялем. Они показали, что майнеры могут получать больше, объединяясь в группы и скрывая новейшие из сгенерированных блоков, таким образом в тайне создавая собственную ветвь (которая первое время будет технически представлять собой цепь «брошенных блоков»).

Первоначально она будет короче, чем основная сеть. Однако «эгоистичные майнеры» могут рассчитывать время для «показа» новых блоков, делая их публичными только тогда, когда размер их сети становится соизмерим с размером основной. Таким образом, они знают, что их сеть (с большой долей вероятности) станет основной, а честные майнеры, не зная этого, трудятся впустую. Когда «приватная сеть» достигнет конкурентоспособных размеров и будет представлена открыто, к ней также могут присоединиться и простые майнеры в поисках большего вознаграждения. И такое развитие событий также может привести к сценарию атаки 51% — в зависимости от желаний контролирующего сеть пула.

В 2015 году проблема брошенных блоков обсуждалась в контексте размера блока и масштабируемости (в том же году разработчик Bitcoin Core Питер Вуйль выдвинул предложение SegWit). Расти Рассел, член команды Blockstream, в настоящий момент занимающийся разработкой ПО на базе Lightning Network, в разгар дебатов 2015 года отмечал, что увеличение размера блока Bitcoin увеличит долю брошенных блоков, поскольку «крупным блокам нужно больше времени на обработку»: «Блоки, в которых нет транзакций, — самые маленькие, и потому они обрабатываются быстрее. Они все равно обеспечивают вознаграждение в 25 биткоинов [после очередного халвинга вознаграждение в сети Bitcoin составляет 12.5 биткоина. — DeCenter.], хотя и не сильно помогают пользователям биткоина», — писал Рассел. Уже тогда он отмечал, что растущий уровень брошенных блоков делает несостоятельной гипотезу о том, что майнеры сознательно откажутся от централизации, чтобы не уронить репутацию биткоина, а за ней и его цену. «Майнеры ведут себя очень плохо. Пулы организовывают атаки друг на друга с удивительной регулярностью… Крупные майнинговые пулы используют свои мощности для двойных трат и крадут тысячи биткоинов у игрового сервиса [Рассел ссылается на атаку, осуществленную GHash.IO на BetCoin Dice. — DeCenter.]... Если крупные майнеры смогут использовать большие блоки как оружие против мелких [майнеров], скорее всего, они будут это делать», — предупреждал Рассел.

По статистике Blockchain.info, наибольшее количество брошенных блоков наблюдалось в период с марта 2014 по июнь 2017 — тогда за неделю производилось по несколько таких блоков. Однако, по данным чарта, до этого периода и после количество брошенных блоков равнялось нулю, что выглядит неправдоподобно. Члены сообщества уже отмечали, что чарт стал работать некорректно: «Их [брошенных блоков. — DeCenter.] стало существенно меньше, но все равно сколько-то должно быть», — пишет один из пользователей Reddit. «Этот чарт сломан, мои ноды получали брошенные блоки каждые 500−1000 блоков за последние 6 месяцев», — написал пользователь под ником statoshi в январе, также упоминая, что общался на эту тему с разработчиком Blockchain.info и «они осведомлены о том, что он сломан». На другой странице Blockchain.info говорится о двух случаях брошенных блоков за этот год: 12 января и 4 июня. Участники отмечают, что есть «несколько брошенных блоков», которые не отражены в первом чарте (и, может быть, во втором тоже), но одновременно в сообществе признают «резкое сокращение» в их количестве. Многие предполагают, что это связано с ускоренным распределением блоков благодаря релейной сети FIBRE, созданной Мэттом Коралло. Протокол не был внедрен в клиент Bitcoin Core, но может применяться пользователями, имеющими полную ноду Bitcoin на своих устройствах. FIBRE «передает блоки по сети нод практически без задержек на сверхсветовой скорости через волокно». «Для всех, кто хочет действительно понимать, почему (многие) технические специалисты так резко выступают против большого размера блоков и биткоин кэша, хорошим стартом будет понимание сети FIBRE — почему она существует и как она работает», — написал пользователь Reddit. Он же предположил, что взлет брошенных блоков был спровоцирован растущей популярностью биткоина, тогда как до 2013 года было недостаточно майнеров, чтобы создавать спорные ситуации с одновременно сгенерированными блоками.

9 июня к дискуссиям о брошенных блоках присоединился главный адепт биткоин кэша Крейг Райт, опубликовав в своем блоге пост под названием «Железо и сталь». Он утверждает, что такие блоки (в терминологии Райта это «orphan blocks» — блоки-сироты) не являются недостатком, который требуется устранить. Проводя аналогию между ковкой стали и обработкой биткоин-транзакций, Райт сравнил брошенные блоки с железом, которое необходимо для производства стали. «Многие разработчики думают, что блоки-сироты представляют собой основную проблему, которая нуждается во внимании и более того — в устранении. Сироты — это не недостаток, это углерод, который вводится в железо и делает биткоин стальным», — пишет Райт. Он утверждает, что такие блоки являются необходимой частью системы, тогда как майнеры хотят избавиться от них по понятным причинам — ведь они не приносят вознаграждение. Но это лишь индивидуальная выгода, тогда как более глобально эти блоки не несут вреда или ущерба системе. «Количество производимых блоков-сирот никак не влияет на структуру вознаграждений или на систему в целом», — говорит Райт, отмечая, что при теоретическом снижении количества таких блоков или их полном истреблении наград не станет больше. «Майнеры... не понимают, что это [возможность появления брошенных блоков. — DeCenter.] и есть желаемое состояние, а они были приучены к тому, что оно нежелательно, и к тому, что если их убрать, тогда они каким-то образом заработают больше. Это ложь, с которой мы должны бороться», — считает Райт.

Он также отмечает, что если «чинить» такие блоки, то это может разрушить всю систему: «Простая правда в том, что блоки-сироты и то, что понимается как связанные с ними недостатки, являются ключевым элементом, который обеспечивает работу Bitcoin. Это не то, что нуждается в устранении с целью сделать Bitcoin более эффективным, это критически важный аспект, который в случае его устранения приведет к коллапсу системы». Райт считает, что «Bitcoin требует определенной доли неэффективности» и «сироты объединяют майнеров», поскольку они обязывают их постоянно инвестировать в ресурсы, которые помогут им оставаться в игре. «Блоки-сироты способствуют конкуренции внутри Bitcoin как системы. Bitcoin не предназначен для равного распределения, его цель — в создании конкурентной среды, в которой майнеры и бизнесы борются за любое преимущество, конкуренция находится в самом центре этой системы и она не может работать никаким другим образом…  Это помогает всем майнерам. Однако, как и всегда в бизнесе, большинство думает о краткосрочной перспективе и видит то, что они теряют, а не всю систему в целом», — пишет Райт.

Он отмечает, что в теории игр взаимоотношениям майнеров соответствует модель «охоты на оленей», описывающая конфликт между личными и общественными интересами. Этот вид взаимодействия описал Жан-Жак Руссо в 1755 году в трактате «Рассуждение о происхождении и основаниях неравенства между людьми»: «Если охотились на оленя, то каждый понимал, что для этого он обязан оставаться на своем посту; но если вблизи кого-либо из охотников пробегал заяц, то не приходилось сомневаться, что этот охотник без зазрения совести пустится за ним вдогонку и, настигнув добычу, весьма мало будет сокрушаться о том, что таким образом лишил добычи своих товарищей». То есть то, что предполагает наибольшую прибыль, одновременно требует большей кооперации между участниками. Однако человек — и охотник, и майнер — с легкостью поддается идее пусть небольшой, но личной наживы в виде зайца. При этом, как отмечает Райт, если охотник решает пойти на оленя в одиночку, «шанс на успех незначительный и субоптимальный», а более глобальная проблема заключается в необходимости «слишком большого доверия между игроками».

Эту проблему Bitcoin решает с помощью асимметрий: как отмечает Райт, система стимулов Bitcoin делает более выгодной «охоту на оленей», а не погоню за мелкой добычей. Майнинговая стратегия предполагает выбор между увеличением хэшрейта (вычислительных мощностей) и увеличением «подключаемости» (то есть легкости вхождения новых игроков в систему, что повышает децентрализацию). В данном случае первый вариант — более эгоистичный и материально выгодный — является «погоней за зайцем», тогда как образование децентрализованной сети (пусть и с меньшей индивидуальной доходностью) — коллективной «охотой на оленя». В погоне за зайцем ключевым орудием являются ASIC-майнеры, которым уже объявляли войну Monero и Ethereum. Однако, по мнению Райта, желаемой перспективой является комбинация повышения хэшрейта и максимизации «подключаемости» к сети. Он считает, что одним из ключевых аспектов для успеха майнинговой системы является «плотная связь» между майнерами и «система сигналов»: «Сигнал будет позволять игрокам объединяться для создания более оптимальной стратегии. Более безопасная система (более плотно связанная) в интересах как пользователя, так и майнера. Сироты означают значительные материальные потери для отдельного майнера… и майнер, имеющий более прочную связь с остальными участниками, может ожидать более низкой доли сирот и более высокой доли успешно добытых блоков».

Райт подчеркивает, что «майнинг — это не про добычу блоков, а про то, чтобы передавать добытый блок другим майнерам», ведь блок входит в основную цепь, только когда другой майнер «подсоединяет» к нему следующий блок, и так далее.

Кроме того, Райт, утверждающий, что Bitcoin Cash — единственный «настоящий биткоин», отражающий первоначальные идеи Сатоши, вновь обращается к white paper Bitcoin, говоря, что брошенные блоки являются органической частью системы, обеспечивая «единственный способ, которым майнеры могут честно голосовать»: майнеры «голосуют при помощи мощности центрального процессора и выражают принятие  действительных блоков тем, что продолжают их цепь и отвергают недействительные блоки, отказываясь строить поверх них новые блоки. Любые необходимые правила и стимулы могут внедряться с помощью этого механизма консенсуса», — процитировал Райт white paper Bitcoin.

Подписаться
на DeCenter в Telegram