

Осиротевший блок — это блок, чей родительский блок неизвестен или отсутствует в блокчейне. В первые годы развития блокчейн-технологий, особенно в сети Bitcoin, такие блоки представляли собой техническую проблему для узлов сети. При использовании ранних версий Bitcoin Core узлы могли принимать и обрабатывать блоки даже при отсутствии важных данных об их происхождении или родительских блоках.
С выпуском Bitcoin Core версии 0.10 в начале 2015 года ситуация существенно изменилась. Это обновление внедрило усовершенствованные механизмы проверки блоков и сетевые протоколы, фактически устранившие появление настоящих осиротевших блоков. Благодаря улучшенным процессам валидации блоки без подтверждённых родительских блоков больше не принимались и не распространялись по сети. Несмотря на это, термин «осиротевший блок» сохранился в сообществе криптовалют, хотя его значение со временем изменилось.
В современных дискуссиях о блокчейне часто путают термины «осиротевший блок» и «устаревший блок», хотя это разные понятия. Термин «осиротевший блок» до сих пор широко применяется в криптовалютной среде, однако его часто используют неверно, когда речь идёт о валидных добытых блоках, исключённых из основной цепи. С технической точки зрения такие блоки правильнее называть «устаревшими» или «погашенными» блоками.
Термин «осиротевший блок» закрепился в современной терминологии во многом из-за того, как клиентские программы отображают награды за блоки. Когда добытый блок не включается в основную цепь, клиент помечает связанные вознаграждения как «осиротевшие», поэтому большинство участников криптосообщества придерживается именно этого обозначения. В результате, даже если у таких блоков есть известные и подтверждённые родительские блоки, их называют осиротевшими, а не более точным термином «устаревшие блоки». Эта языковая норма прочно укоренилась в культуре криптовалют, несмотря на техническую некорректность.
Устаревшие блоки формируются как естественный результат распределённой и децентрализованной структуры блокчейн-сетей. Они появляются, когда два или более майнера одновременно находят решение криптографической задачи и почти в одно время транслируют свои валидные блоки в сеть. Такое одновременное распространение приводит к временной развилке блокчейна, разделяя сеть на две или более конкурирующих версии реестра транзакций.
При таких разделениях разные узлы могут первыми получить разные блоки — в зависимости от географии и сетевой связности. Это приводит к тому, что одни узлы подтверждают и строят новые блоки на одном варианте, а другие — на другом. При этом оба блока валидны и соответствуют всем условиям консенсуса. Тем не менее, в протоколе блокчейна закреплено, что только одна цепь может считаться основной.
Разрешение такой временной развилки происходит по правилу самой длинной цепи — базовому принципу консенсусных механизмов блокчейна. По мере добавления новых блоков одна из цепей становится длиннее. Сеть достигает консенсуса, принимая более длинную цепь, а более короткая и её блоки отклоняются. Блоки из отклонённой цепи становятся устаревшими, а вычисления, затраченные на их добычу, теряются.
Поскольку блокчейн-сети распределённые, передача информации между узлами занимает время — от миллисекунд до нескольких секунд, в зависимости от условий сети и расстояния между узлами. Такая задержка создаёт возможность, когда несколько валидных блоков могут быть добыты и отправлены до достижения консенсуса. Поэтому появление устаревших блоков — неотъемлемая черта блокчейнов на proof-of-work.
Появление устаревших блоков — полностью естественный процесс в блокчейне и в подавляющем большинстве случаев происходит случайно, а не преднамеренно. Вероятностный характер майнинга, сетевые задержки и глобальное распределение майнеров делают случайные одновременные находки блоков неизбежными. Это явление безвредно и лишь немного снижает эффективность системы, не представляя угрозы безопасности.
Однако устаревшие блоки могут возникать и намеренно, если злоумышленники пытаются манипулировать блокчейном через различные атаки. Опытные атакующие могут создавать альтернативные валидные цепи для реализации атак двойного расходования или реорганизации недавней истории блокчейна. Эти попытки требуют значительных ресурсов и чаще успешны на блокчейнах с низким хешрейтом или при сетевой нестабильности.
На практике защитные механизмы крупных блокчейн-сетей и экономические стимулы, ориентированные на безопасность сети, делают успешную злонамеренную реорганизацию цепи крайне сложной и затратной. Чем дольше блок находится в основной цепи, тем дороже становится создание альтернативной цепи для его замены. Эта особенность обеспечивает с течением времени всё большую гарантию того, что транзакции в блоках останутся постоянными и необратимыми.
Осиротевший блок — это блок без родительского блока в блокчейне. Он появляется из-за сетевых задержек или несогласованности данных на узлах. Такие блоки не включаются в основную цепь и становятся недействительными после достижения консенсуса.
Осиротевшие блоки появляются, когда несколько майнеров одновременно находят решения из-за сетевых задержек и задержек в блокчейне. Это происходит при создании конкурирующих блоков почти одновременно, и только один из них подтверждается в основной цепи, а остальные становятся осиротевшими.
Осиротевшие блоки вызывают временные развилки сети и уменьшают вознаграждение майнеров, поскольку только одна цепь становится основной. Майнеры теряют награды за осиротевшие блоки, но сетевой консенсус затем стабилизируется без долговременных последствий.
Осиротевшие блоки не попадают в основную цепь, тогда как uncle-блоки — это валидные блоки, созданные при майнинге, но не ставшие прямыми потомками, и за них майнеры получают частичное вознаграждение в зависимости от их удалённости от основной цепи.
Майнеры обычно не получают награды за осиротевшие блоки. Однако отдельные блокчейны предусматривают специальную компенсацию. Ранее Ethereum выплачивал уменьшенное вознаграждение за такие блоки, но прекратил практику после перехода на proof-of-stake.
Следует обновлять механизмы консенсуса и внедрять шардинг для повышения эффективности синхронизации узлов, что снижает вероятность осиротевших блоков. Также важно оптимизировать сетевые задержки и ускорять распространение блоков в инфраструктуре сети.
И в Bitcoin, и в Ethereum осиротевшие блоки игнорируются и не включаются в основную цепь. В Ethereum применяется протокол Gossipsub для повышения эффективности распространения блоков. Осиротевшие блоки не влияют на основную цепь ни в одной из этих сетей.











