Что такое осиротевший блок?
Осиротевший блок — это блок, который не входит в принятую основную историю блокчейна: либо потому, что узлу неизвестен родительский блок, либо потому, что конкурирующий блок раньше вошел в более сильную каноническую цепочку.В повседневной речи о криптовалютах термин «осиротевший блок» часто используют для обозначения корректного блока, который был добыт или создан, но после временного форка остался за пределами основной цепочки.В более точной терминологии Bitcoin второй случай обычно называют устаревшим блоком (stale block), а осиротевшим блоком считается блок, родительский блок которого неизвестен получившему его узлу.В руководстве для разработчиков Bitcoin отмечается, что устаревшие блоки — это корректные блоки, относящиеся к более коротким ветвям форка. Их иногда называют осиротевшими блоками, хотя этим термином также обозначают блоки с неизвестным родительским блоком.Это различие важно, поскольку осиротевшие блоки могут влиять на майнеров, валидаторов, подтверждение транзакций, обозреватели блокчейна и пользователей, ожидающих завершения расчетов.Транзакция из блока, который впоследствии стал осиротевшим или устаревшим, может потерять подтверждение, если ее также не включат в принятую цепочку.Практический вывод для пользователей прост.Не следует считать транзакцию окончательно подтвержденной только потому, что она появилась в одном только что найденном блоке.Дополнительные подтверждения или более высокая степень финальности снижают вероятность того, что временный форк изменит статус транзакции.Главное об осиротевших блоках
- Осиротевший блок — это блок, который не становится частью принятой основной цепочки.
- В строгом техническом смысле осиротевшим может называться блок, родительский блок которого неизвестен узлу.
- В распространенном употреблении под осиротевшим блоком часто понимают устаревший блок, который был корректным, но проиграл конкуренцию между временными ветвями форка.
- Осиротевшие блоки обычно возникают, когда два майнера или производителя блоков почти одновременно находят конкурирующие блоки.
- В итоге сеть выбирает цепочку, соответствующую правилам консенсуса, например наиболее сложную для пересоздания цепочку в Bitcoin.
- Транзакции из осиротевшего или устаревшего блока, возможно, придется подтвердить заново в принятой цепочке.
- В Bitcoin майнеры обычно не получают стандартное вознаграждение за блок, который стал устаревшим.
- Риск осиротевших блоков — одна из причин, по которым пользователи ждут подтверждений, прежде чем считать крупные платежи в криптовалюте завершенными.
Осиротевший блок и устаревший блок
Термины «осиротевший блок» и «устаревший блок» часто используют как синонимы, но в точных материалах о криптовалютах их следует различать.Устаревший блок — это корректный блок, который некоторое время входил во временный форк, но не остался в принятой лучшей цепочке.Осиротевший блок в строгом смысле — это блок, родительский блок которого отсутствует или неизвестен узлу, получившему этот блок.В более ранних обсуждениях многие называли устаревшие блоки осиротевшими, поскольку в обоих случаях блок не входит в итоговую основную цепочку.В руководстве для разработчиков Bitcoin по блокчейну объясняется, что обычные узлы следуют цепочке, которую сложнее всего пересоздать, и отбрасывают устаревшие блоки из более коротких ветвей форка.
В том же руководстве указано, что устаревшие блоки иногда называют осиротевшими, хотя этим выражением могут обозначать и блоки с неизвестным родительским блоком.Для SEO и обучения пользователей безопаснее объяснить, что термин «осиротевший блок» обычно обозначает корректный блок, не вошедший в основную цепочку, тогда как более точное название такого блока — устаревший.Это позволяет избежать путаницы среди разработчиков, майнеров и пользователей технической документации.Как возникает осиротевший блок
Осиротевший блок может возникнуть, если два майнера почти одновременно находят корректные блоки.Один майнер может найти блок и передать его части сети.Другой майнер может найти другой корректный блок на той же высоте и передать его другой части сети.Некоторое время разные узлы могут видеть разные вершины цепочки.Оба конкурирующих блока могут соответствовать правилам консенсуса.После этого майнеры начинают строить цепочку на основе блока, который они увидели первым или который выбрало их программное обеспечение.В конце концов одна из сторон первой получает следующий корректный блок.Согласно правилам консенсуса сети, эта сторона формирует более сильную цепочку.Другой конкурирующий блок остается за пределами принятой основной цепочки.Такой проигравший блок обычно называют осиротевшим, хотя термин «устаревший блок» часто точнее с технической точки зрения.Почему в блокчейн-сетях возникают осиротевшие блоки
Осиротевшие блоки возникают потому, что публичные блокчейны — это распределенные сети, а не единые синхронизированные базы данных.Узлы расположены в разных местах и подключены через разные интернет-маршруты, дата-центры, домашние сети и инфраструктуру майнеров или валидаторов.Для передачи сетевым сообщениям требуется время.Ни один майнер или валидатор не может мгновенно узнать обо всем, что происходит во всей сети.Если почти одновременно обнаруживаются два корректных блока, у сети временно появляется более одного возможного следующего блока.Это обычное следствие децентрализации и задержек сети.Само по себе это не означает, что блокчейн сломан.Это означает, что системе консенсуса нужно правило выбора одной истории.Bitcoin использует Proof of Work и следует корректной цепочке, которую сложнее всего пересоздать.В других сетях могут действовать иные правила выбора ветви и финальности — в зависимости от механизма консенсуса.Осиротевшие блоки в Bitcoin
Чаще всего термин «осиротевший блок» применяют к Bitcoin.Блоки Bitcoin содержат транзакции, заголовок блока, значение Proof of Work и ссылку на предыдущий блок.В глоссарии для разработчиков Bitcoin блок определяется как одна или несколько транзакций с заголовком блока, защищенным с помощью Proof of Work.
Каждый блок Bitcoin ссылается на предыдущий, образуя цепочку блоков.Если два майнера находят блоки на одной высоте, в Bitcoin может временно возникнуть форк.Узлы следуют корректной цепочке, которую сложнее всего пересоздать.После усиления конкурирующей ветви блок на более короткой ветви форка становится устаревшим.Многие пользователи называют такой устаревший блок осиротевшим.Майнер, нашедший устаревший блок, обычно теряет вознаграждение за блок, поскольку блок не входит в принятую цепочку.Поэтому для майнеров Bitcoin важна быстрая передача блоков по сети.Осиротевшие блоки и вознаграждения за блок
Вознаграждения за блок — одна из главных причин, по которым осиротевшие блоки важны для майнеров.В Bitcoin майнер получает вознаграждение за блок, только если его блок становится частью принятой цепочки.Если блок становится устаревшим, его coinbase-транзакция не становится доступной для расходования в основной цепочке.Это означает, что майнер не сохраняет стандартную субсидию за блок или комиссии за транзакции из этого устаревшего блока.С точки зрения дохода осиротевший блок означает напрасно затраченные майнером ресурсы.Майнер потратил электроэнергию, вычислительные мощности оборудования и время на создание корректного блока, но сеть приняла конкурирующий блок.Поэтому майнинговые пулы и крупные майнеры уделяют большое внимание сетевому подключению, скорости ретрансляции и распространению блоков.Майнер, который поздно узнает о новых блоках, с большей вероятностью продолжит майнинг на устаревшей вершине цепочки.Если майнер медленно передает блоки, у конкурентов может появиться время, чтобы сначала начать строить цепочку на другом блоке.Риск осиротевших блоков — часть экономики майнинга на Proof of Work.Осиротевшие блоки и подтверждения транзакций
Осиротевшие блоки важны для обычных пользователей, поскольку влияют на подтверждения транзакций.Транзакция может отображаться как подтвержденная, если ее включили в недавно добытый блок.Если впоследствии этот блок становится устаревшим, транзакция может вернуться в мемпул или снова стать неподтвержденной, если ее также не включили в принятую цепочку.То, что блок устарел, не обязательно означает недействительность транзакции.Просто транзакцию нужно включить в блок, который останется частью принятой цепочки.Поэтому многие пользователи и сервисы ждут нескольких подтверждений, прежде чем считать транзакцию окончательной.В системах Proof of Work с каждым дополнительным блоком поверх транзакции вероятность реорганизации уменьшается.Для платежа на небольшую сумму может требоваться меньше подтверждений, чем для платежа на крупную сумму.При переводе крупной суммы, расчетах с продавцом, перемещении средств казначейства или выводе из кастодиального сервиса может потребоваться более строгая политика подтверждений.Подтверждения — практический способ защиты от риска осиротевших блоков и реорганизации цепочки.Осиротевшие блоки и реорганизация цепочки
Реорганизация цепочки происходит, когда узлы переключаются с одной корректной ветви цепочки на другую.Это может произойти после разрешения временного форка.Проигравшая ветвь удаляется из представления узла о лучшей цепочке.Блоки проигравшей ветви становятся устаревшими.Транзакции из этих блоков могут вернуться в пул неподтвержденных транзакций, если они по-прежнему корректны и еще не включены в другую ветвь.Для пользователей реорганизация может означать, что транзакция сначала отображается как подтвержденная, а затем снова становится неподтвержденной.Для обозревателей блокчейна она может изменить отображаемую принадлежность блока к канонической цепочке.Для майнеров она может лишить ожидаемого вознаграждения в принятой цепочке.Кратковременные реорганизации могут происходить естественным образом из-за задержек сети.Длительные реорганизации серьезнее и могут указывать на атаки, ошибки программного обеспечения или необычные события в сети.Осиротевшие блоки и задержки сети
Задержки сети — одна из главных причин появления осиротевших блоков.Задержка — это время, необходимое для передачи информации между участниками сети.Когда майнер находит блок, он должен передать его другим узлам и майнерам.Пока майнер не получит информацию о новом блоке, он может продолжать работу на прежней вершине цепочки.Если второй майнер находит другой корректный блок до получения первого, может возникнуть временный форк.Улучшенные сети ретрансляции, более быстрое интернет-соединение, эффективная передача блоков и оптимизированное программное обеспечение узлов позволяют снизить этот риск.Полностью устранить его нельзя, поскольку в распределенных сетях для распространения информации все равно требуется время.В системах Proof of Work вероятность появления конкурирующих блоков зависит от времени создания блока, скорости распространения и распределения майнинговых мощностей.Если распространение недостаточно быстрое, сокращение времени между блоками может увеличить вероятность временных форков.Более длительное время между блоками может снизить конкретный риск, но замедлить расчеты.Осиротевшие блоки и распространение блоков
Распространение блока — это процесс передачи нового найденного блока по всей сети.Быстрое распространение помогает майнерам и узлам своевременно согласовать новую вершину цепочки.Медленное распространение дает другим майнерам больше времени, чтобы добыть конкурирующий блок на той же высоте.Скорость распространения блоков зависит от пропускной способности, качества узлов-пиров, архитектуры ретрансляции, размера блока, доступности транзакций и производительности узлов.В Bitcoin майнеры и узлы используют сетевые протоколы для обмена блоками и транзакциями между пирами.Эффективное распространение помогает не только майнерам получать вознаграждения.Оно также уменьшает временные расхождения во всей сети.Чем быстрее сеть распространяет блоки, тем меньше майнеров напрасно работает на устаревших вершинах цепочки.Снижение объема такой бесполезной работы может уменьшить долю устаревших блоков.Меньшее число устаревших блоков повышает эффективность майнинга и снижает краткосрочную неопределенность при подтверждении транзакций.Осиротевшие блоки и обозреватели блокчейна
Обозреватели блокчейна могут отображать осиротевшие или устаревшие блоки, если обнаруживают корректные блоки, не вошедшие в итоговую принятую цепочку.Пользователь может увидеть транзакцию в обозревателе и решить, что она окончательно подтверждена.Это может быть ошибочным выводом, если позднее блок пометят как устаревший или осиротевший.Качественные обозреватели блокчейна обычно обновляют статус транзакций после реорганизации.Транзакция может сменить статус с подтвержденной на неподтвержденную.Позднее она также может отображаться как подтвержденная уже в другом блоке.Пользователям следует проверять и статус транзакции, и статус блока.Также необходимо проверять количество подтверждений.При важных платежах лучше дождаться, пока обозреватель покажет достаточное число подтверждений в принятой цепочке.Хеш транзакции доказывает, что транзакция существует, но не всегда подтверждает окончательное завершение расчетов.Осиротевшие блоки и риск двойного расходования
Осиротевшие блоки могут создавать краткосрочный риск двойного расходования для получателей, которые слишком рано принимают платежи.Двойное расходование происходит, когда одни и те же монеты используются в конфликтующих транзакциях.Если получатель принимает платеж с нулем или одним подтверждением, временный форк все еще может изменить, какая транзакция войдет в итоговую принятую цепочку.В обычных условиях для небольших платежей этот риск часто невелик.Для крупных платежей он важнее.Злоумышленник может попытаться воспользоваться временем передачи данных, распространением блоков или собственными майнинговыми мощностями, чтобы сначала показать одну транзакцию как принятую, а позднее добиться принятия другой.Ожидание подтверждений затрудняет такую атаку.Компании разумно использовать основанные на риске правила расчетов.Для покупки кофе на небольшую сумму и крупного перевода средств казначейства не следует устанавливать одинаковый порог подтверждений.Понимание риска осиротевших блоков помогает пользователям выстраивать более эффективные правила управления платежными рисками.Осиротевшие блоки и безопасность
Появление осиротевших блоков не всегда свидетельствует о сбое безопасности.Большинство кратковременно существующих осиротевших или устаревших блоков — нормальное следствие децентрализованного консенсуса.Однако необычные закономерности появления таких блоков могут сигнализировать о проблемах с безопасностью или состоянием сети.Высокая доля устаревших блоков может указывать на проблемы распространения, перегрузку сети, нарушения подключения майнеров или эгоистичный майнинг.Эгоистичный майнинг — это стратегия, при которой майнер или группа майнеров может скрывать блоки, чтобы получить преимущество перед честными майнерами.Такое поведение может увеличить количество блоков, на которые другие майнеры напрасно тратят ресурсы.Сетевые атаки также могут влиять на то, что видят узлы и когда именно они это видят.Атака типа «затмение» может изолировать узел от честных пиров и исказить его представление о цепочке.Для пользователей главная защита — не принимать решения о крупных расчетах, полагаясь лишь на один свежий блок.Операторам узлов и майнерам следует обеспечивать надежное соединение, обновлять программное обеспечение, использовать разнообразные пиры и вести мониторинг.Осиротевшие блоки в Ethereum
После перехода Ethereum с Proof of Work на Proof of Stake связь сети с понятием осиротевшего блока изменилась.В исторической версии Ethereum на Proof of Work существовали так называемые ommer-блоки, которые также часто называли uncle-блоками.В глоссарии Ethereum объясняется, что ommer-блоком назывался корректный, но устаревший блок Proof of Work, который могли включить последующие блоки и за который полагалось частичное вознаграждение.
В документации Ethereum по Proof of Work объясняется, что причиной появления ommer-блоков обычно были задержки сети.
Теперь, когда Ethereum использует Proof of Stake, старое понятие осиротевшего блока из майнинга Proof of Work работает иначе.В актуальной документации Ethereum о блоках объясняется, что время в Ethereum разделено на слоты, и для предложения блока в каждом слоте выбирается один валидатор.В системах Proof of Stake также могут возникать конкурирующие блоки и применяться выбор ветви, но майнинговая терминология осиротевших блоков здесь подходит не так напрямую.Сегодня применительно к Ethereum пользователи чаще говорят о предложенных блоках, аттестациях, выборе ветви, обоснованных контрольных точках и финальности, а не об осиротевших блоках майнеров.Поэтому значение термина «осиротевший блок» зависит от обсуждаемого блокчейна.Осиротевшие блоки в сетях Proof of Work
Сети Proof of Work — классическая среда для появления осиротевших блоков.Майнеры соревнуются в поиске корректного блока, выполняя вычислительную работу.Поскольку майнинг носит вероятностный характер, два майнера случайно могут найти корректные блоки почти одновременно.После этого сеть должна решить, какой блок войдет в принятую цепочку.Победившая ветвь продолжается за счет последующих блоков.Проигравшая ветвь становится устаревшей.Майнер устаревшего блока обычно теряет ожидаемое вознаграждение, если только в протоколе не предусмотрена специальная система вознаграждения за такие блоки.Риск осиротевших блоков в Proof of Work связан с задержками распространения, централизацией майнинга, временем создания блоков и топологией сети.Быстрая передача блоков и децентрализованная майнинговая инфраструктура помогают снизить количество устаревших блоков, которых можно было избежать.Тем не менее для распределенных систем Proof of Work периодические временные форки — нормальное явление.Осиротевшие блоки в сетях Proof of Stake
В сетях Proof of Stake также могут появляться блоки, не входящие в каноническую цепочку, но механика отличается от Proof of Work.Валидаторов обычно выбирают или назначают для предложения блоков согласно правилам протокола.Другие валидаторы голосуют, проводят аттестации или иным образом участвуют в выборе ветви и достижении финальности.Предложенный блок может не стать каноническим, если механизм выбора ветви предпочтет другой блок или если предложивший блок валидатор опоздал, отключился от сети или работал с представлением о сети, отличным от других участников.Во многих системах Proof of Stake пользователи обычно не называют такие блоки осиротевшими.В зависимости от сети могут использоваться термины «пропущенный блок», «пропущенный слот», «неканонический блок», «конкурирующий блок» или «блок после реорганизации».В одном отношении риск для пользователя остается похожим.Транзакцию не следует считать окончательной, пока правила подтверждения или финальности сети не позволяют сделать такой вывод.Однако в некоторых системах Proof of Stake финальность может определяться более явно, чем вероятностная финальность в Proof of Work.Пользователям следует изучить модель финальности конкретного используемого блокчейна.Осиротевшие блоки и финальность
Финальность означает, что транзакция или блок подтверждены с такой степенью надежности, что в обычных условиях их статус не должен измениться.В системах Proof of Work финальность часто носит вероятностный характер.Каждый блок, добавленный после блока с транзакцией, затрудняет замену этой истории конкурирующей цепочкой.Поэтому пользователи Bitcoin часто говорят о количестве подтверждений.В системах Proof of Stake финальность может определяться голосами валидаторов и контрольными точками.В документации Ethereum о блоках объясняется, что клиенты повторно выполняют транзакции и проверяют изменения состояния, чтобы убедиться в корректности нового блока и возможности безопасно добавить его в блокчейн.Правила финальности помогают определить, насколько низок риск осиротевшего блока или реорганизации для конкретной ситуации.Для небольшой транзакции может быть достаточно меньшей степени уверенности.Для крупной транзакции может потребоваться более высокая степень уверенности.Правила расчетов должны учитывать стоимость, устройство сети, риск контрагента и потребности бизнеса.Осиротевшие блоки и майнеры
Осиротевшие блоки напрямую влияют на майнеров, поскольку устаревшие блоки снижают их доход.Если майнер находит блок, который не остается в принятой цепочке, в системах по типу Bitcoin он обычно не получает полное вознаграждение.Это создает стимул быстро передавать блоки в сеть.Также появляется стимул поддерживать надежное подключение к другим майнерам, узлам и сетям ретрансляции.Крупные майнинговые операции могут инвестировать в сетевую инфраструктуру, чтобы уменьшить риск появления устаревших блоков.Мелкие майнеры и майнинговые пулы также заинтересованы в ретрансляции блоков с низкой задержкой, поскольку каждый устаревший блок означает потерю ожидаемого дохода.Архитектура майнингового пула может влиять на скорость передачи обновлений работы его участникам.Если майнеры продолжают работать с устаревшими шаблонами после обнаружения нового блока, они могут впустую расходовать хешрейт.Майнерам важно, чтобы их блоки как можно быстрее увидели, проверили и использовали для продолжения цепочки.Таким образом, риск осиротевших блоков — одновременно техническая и экономическая проблема.Осиротевшие блоки и валидаторы
Валидаторы в системах Proof of Stake сталкиваются с рисками, отличными от рисков майнеров.В зависимости от протокола валидатор может быть выбран для предложения блока, аттестации блока или участия в консенсусе.Если валидатор отключен от сети, опаздывает, имеет плохое подключение или использует неисправное программное обеспечение, его блок или голос могут не внести эффективный вклад в формирование канонической цепочки.В зависимости от сети это может привести к потере вознаграждений, снижению эффективности или штрафам.Хотя многие сообщества Proof of Stake не называют такие события появлением осиротевших блоков, общая идея связана с этим понятием.Созданный или предложенный блок может не войти в принятую историю.Поэтому валидаторам необходимы надежная инфраструктура, точная синхронизация времени, устойчивые соединения с пирами, обновленные клиенты и мониторинг.Пользователям, которые делегируют активы или участвуют в стейкинге косвенно, следует учитывать эффективность валидатора, риск слешинга и риск недополучения вознаграждений.Детали зависят от сети, поэтому важно изучать документацию конкретного блокчейна.Общий принцип состоит в том, что участие в консенсусе зависит от своевременности, подключения и соблюдения протокола.Осиротевшие блоки и мемпулы
Мемпул — это набор корректных транзакций, которые узел ожидает включить в блок.Когда устаревший блок удаляют из лучшей цепочки, его транзакции могут вернуться в мемпул, если они по-прежнему корректны и еще не подтверждены в другой ветви.Из-за этого транзакция может временно отображаться как подтвержденная, а затем снова стать ожидающей подтверждения.Некоторые транзакции могут быстро попасть в следующий принятый блок.Для других может потребоваться более высокая комиссия, если изменится ситуация на рынке комиссий.Если в принятую цепочку включат конфликтующую транзакцию, исходная может так и не получить подтверждение.Поэтому получателям следует проверять подтверждения, а не только факт отправки транзакции в сеть.Кошельки и обозреватели блокчейна могут по-разному отображать реорганизации.Если статус транзакции неожиданно изменился, пользователям следует проверить, выбраны ли правильная сеть и обозреватель.Понимание работы мемпула помогает объяснить, что происходит после появления осиротевшего блока.Осиротевшие блоки и SPV- или легкие кошельки
Легкие кошельки и кошельки с упрощенной проверкой платежей (SPV) обычно не проверяют весь блокчейн так же, как полноценные узлы.Они могут получать сведения о статусе транзакций от серверов, заголовков блоков или внешней инфраструктуры.Из-за этого пользователь может не сразу заметить обработку осиротевшего блока.Легкий кошелек может показать транзакцию как подтвержденную, а затем обновить ее статус после реорганизации.Полноценный узел самостоятельно проверяет блоки и напрямую следует правилам консенсуса.Для операций на крупные суммы надежная инфраструктура или собственный полноценный узел могут снизить зависимость от сторонних сведений о статусе.Тем не менее даже полноценные узлы могут сталкиваться с обычными временными форками.Разница в том, что полноценный узел сам проверяет соблюдение правил.Пользователям следует понимать, что именно показывает их кошелек.Интерфейс кошелька отображает состояние сети, но не является источником самого консенсуса.Осиротевшие блоки и высота блока
Высота блока — это количество блоков, расположенных перед ним в цепочке.Во время временного форка два конкурирующих блока могут иметь одинаковую высоту.Поэтому высота блока не всегда является уникальным идентификатором для всей сети.В руководстве для разработчиков Bitcoin отмечается, что во время форка блокчейна несколько блоков могут иметь одинаковую высоту; обычно блоки идентифицируют по хешу заголовка.Это важно при отслеживании осиротевших блоков.Обозреватель блокчейна может показать два разных блока на одной высоте, но в принятой цепочке останется только один из них.Хеш блока идентифицирует конкретный блок.Высота указывает положение блока, если он остается в цепочке.При проверке важных подтверждений пользователям следует использовать хеши транзакций и блоков, а не только высоту блока.Это помогает избежать путаницы во время временных форков и реорганизаций.Осиротевшие блоки и правила подтверждения
Правила подтверждения определяют, сколько подтверждений нужно получить, прежде чем платеж можно будет считать завершенным.Пользователи и компании устанавливают разные правила.Платеж на небольшую сумму можно принять после меньшего числа подтверждений, поскольку риск ниже.Для платежа на крупную сумму может требоваться больше подтверждений, поскольку реорганизация или двойное расходование обойдутся дороже.Некоторые компании также корректируют правила с учетом состояния сети.Если сеть нестабильна или риск реорганизации повышен, они могут дольше ждать.Если в активе предусмотрена быстрая и явно определенная финальность, они могут применять другое правило.Надлежащие правила подтверждения должны быть документированы и последовательно применяться.Не следует менять их под давлением отправителя.Риск осиротевших блоков — одна из причин, по которым прием платежей должен регулироваться установленной процедурой.Осиротевшие блоки и депозиты на биржи или в кастодиальные сервисы
Многие кастодиальные сервисы и криптоплатформы ждут нескольких подтверждений, прежде чем зачислить депозит.Они делают это потому, что депозит в свежем блоке может затронуть кратковременная реорганизация.Если бы платформа мгновенно зачисляла депозит, а блок становился устаревшим, платформа могла бы понести убытки или столкнуться с проблемами учета.Тот же принцип действует для продавцов, DAO, казначейств, OTC-десков и платежных провайдеров.Чем больше сумма, тем важнее правила подтверждения.Иногда пользователи недовольны тем, что депозиты зачисляются не сразу.Однако ожидание часто является мерой управления рисками, а не техническим сбоем.Для зачисления ожидающего депозита может просто потребоваться больше подтверждений блока.Пользователям следует проверить хеш транзакции, статус блока и необходимое число подтверждений.Если существует риск осиротевшего блока, ожидание помогает избежать ошибок при расчетах.Осиротевшие блоки и централизация майнинга
Осиротевшие блоки могут влиять на стимулы к централизации майнинга.У майнеров с более качественным подключением и быстрой передачей блоков доля устаревших блоков может быть ниже.Меньшая доля устаревших блоков может повышать ожидаемый доход.Это дает преимущество крупным майнерам и хорошо подключенным майнинговым пулам.Если мелкие майнеры чаще сталкиваются с устаревшими блоками, их доходность может стать менее конкурентоспособной.Со временем это может усиливать централизацию, если этому не противодействуют открытая инфраструктура ретрансляции и эффективное программное обеспечение узлов.Здоровье децентрализованного майнинга зависит не только от распределения хешрейта.Оно также зависит от топологии сети, эффективности ретрансляции, архитектуры пулов и доступности узлов.Поэтому количество осиротевших блоков может служить полезным показателем состояния майнинговой сети.В здоровой сети Proof of Work следует сводить к минимуму преимущества, связанные с устаревшими блоками, которых можно было избежать.Осиротевшие блоки и проектирование блокчейна
Разработчикам блокчейнов важно тщательно учитывать риск осиротевших блоков.Короткие интервалы между блоками могут повысить скорость работы сети, но также увеличить вероятность появления конкурирующих блоков до полной синхронизации сети.Блоки большего размера могут содержать больше транзакций, но их передача и проверка занимают больше времени.Увеличение времени распространения может повысить риск появления устаревших блоков.Правила консенсуса должны уравновешивать скорость, безопасность, децентрализацию и требования к узлам.Архитектура, обеспечивающая очень быстрое создание блоков, но приводящая к частому появлению устаревших блоков, может ослабить практическую безопасность.Архитектура, требующая мощной инфраструктуры, может снизить децентрализацию, поскольку небольшие участники не смогут поддерживать ее работу.Таким образом, появление осиротевших блоков — не просто случайность.Оно связано с интервалом между блоками, размером блоков, схемой распространения, архитектурой ретрансляции и допущениями, заложенными в механизм консенсуса.Грамотное проектирование блокчейна позволяет поддерживать приемлемое количество осиротевших блоков, сохраняя децентрализацию.Зачем понимать, что такое осиротевшие блоки
Понимание этого явления помогает пользователям не переоценивать надежность самых свежих подтверждений.Оно помогает майнерам понять, почему скорость распространения блоков влияет на доход.Оно помогает разработчикам создавать кошельки и обозреватели, которые понятно обрабатывают реорганизации.Оно помогает продавцам выстраивать более безопасные правила приема платежей.Оно помогает кастодиальным командам устанавливать разумные правила подтверждения депозитов.Оно помогает исследователям оценивать состояние сети и поведение майнеров.Оно помогает операторам узлов понять важность подключения к пирам.Оно помогает пользователям понять, почему статус транзакции может ненадолго измениться с подтвержденного на неподтвержденный.Кроме того, оно объясняет, зачем блокчейнам нужны правила консенсуса, а не простое бессрочное принятие каждого корректного блока.Осиротевший блок — небольшое событие, на примере которого видно, как на практике работает децентрализованное согласование.Риски, связанные с осиротевшими блоками
Первый серьезный риск — преждевременное завершение расчетов.Получатель может принять платеж, не дождавшись достаточного числа подтверждений.Второй риск — потеря дохода майнером.Майнер может найти корректный блок, но лишиться вознаграждения, если этот блок станет устаревшим.Третий риск — путаница среди пользователей.Кошелек или обозреватель может ненадолго показать транзакцию как подтвержденную, прежде чем реорганизация изменит ее статус.Четвертый риск — двойное расходование.Недобросовестный отправитель может попытаться воспользоваться недостаточно строгими правилами подтверждения.Пятый риск — сбой рабочих процессов.После реорганизации компаниям может потребоваться сверить депозиты, счета и бухгалтерские записи.Шестой риск — возможные проблемы с состоянием сети.Необычно высокая доля устаревших блоков может указывать на проблемы распространения данных, подключения или атаки.Седьмой риск — неточность терминологии.Смешение понятий осиротевшего и устаревшего блока может привести к недопониманию между пользователями, майнерами и разработчиками.Как проверить, стал ли блок осиротевшим
Сначала проверьте хеш блока в надежном обозревателе блокчейна или полноценном узле.Убедитесь, что блок входит в текущую принятую цепочку.Проверьте, есть ли другой блок на той же высоте.Проверьте, входит ли нужная вам транзакция в принятую цепочку.Узнайте количество подтверждений в принятой цепочке.Если транзакция потеряла статус подтвержденной, проверьте, вернулась ли она в мемпул или была включена в другой блок.Если сумма транзакции велика, дождитесь необходимого числа подтверждений, прежде чем передавать товары, оказывать услуги, переводить средства или зачислять деньги на аккаунт.Если вы управляете узлом и заметили что-то необычное, сравните его данные с другими надежными источниками.Используйте хеши блоков и транзакций, а не только высоту блока.Если событие влияет на учет, хранение активов или поддержку клиентов, зафиксируйте его.Рекомендации для пользователей
Дождитесь достаточного числа подтверждений, прежде чем принимать крупные платежи.Не считайте подтверждение одного блока окончательным для крупных переводов.Проверяйте хеш транзакции в правильной сети.Убедитесь, что транзакция входит в принятую цепочку, а не просто отображается где-либо в обозревателе.Выбирайте число подтверждений с учетом суммы транзакции и рисков сети.Не передавайте дорогие товары и не оказывайте необратимые услуги слишком рано.Сохраняйте хеши транзакций и блоков, временные метки, счета и сведения о статусе платежа.Учитывайте, что после реорганизации кошельки и обозреватели могут обновлять статус транзакций.Для важных транзакций используйте надежные кошельки и инфраструктуру узлов.Уточните, что считается финальностью в используемом блокчейне.Рекомендации для майнеров и операторов узлов
Поддерживайте надежное сетевое подключение.Обновляйте программное обеспечение узлов.Следите за качеством соединения с пирами и задержками распространения блоков.Используйте надежную инфраструктуру, чтобы оперативно получать сведения о новых блоках.Не добывайте блоки на основе устаревших шаблонов.Отслеживайте долю устаревших блоков в динамике.Изучайте причины необычных всплесков числа устаревших блоков или реорганизаций.Используйте разнообразные соединения с пирами, чтобы не зависеть от ограниченного представления о сети.Защищайте узлы от изоляции и атак типа «отказ в обслуживании».Документируйте операционные инциденты, которые могут повлиять на вознаграждения за майнинг или обработку транзакций.Распространенные заблуждения об осиротевших блоках
Одно из распространенных заблуждений состоит в том, что каждый осиротевший блок недействителен.Многие блоки, которые обычно называют осиротевшими, являются корректными, но проигрывают конкуренцию между временными ветвями форка.Другое заблуждение — что транзакция из осиротевшего блока навсегда становится недействительной.Если транзакция остается корректной и ее включают в принятую цепочку, она может получить подтверждение позднее.Третье заблуждение — что осиротевшие блоки появляются только во время атак.Кратковременные устаревшие блоки могут возникать естественным образом из-за задержек сети.Четвертое заблуждение — что высота блока однозначно его идентифицирует.Во время временного форка конкурирующие блоки могут иметь одинаковую высоту.Пятое заблуждение — что в сетях Proof of Stake термин «осиротевший» используется так же, как в майнинге Bitcoin.В разных системах консенсуса для неканонических или пропущенных блоков используют разные термины.Когда осиротевшие блоки особенно важны
Осиротевшие блоки особенно важны при транзакциях на крупные суммы.Они важны, когда продавец передает товары или оказывает услуги после очень небольшого числа подтверждений.Они важны, когда кастодиальный сервис быстро зачисляет депозиты.Они важны при оценке эффективности майнингового дохода.Они важны, когда в сети необычно часто происходят реорганизации.Они важны для разработчиков кошельков, обозревателей блокчейна и платежных систем.Они важны, когда пользователи не понимают, почему статус транзакции изменился с подтвержденного на неподтвержденный.Они важны для исследователей, изучающих задержки распространения, эгоистичный майнинг и безопасность консенсуса.Они важны, когда DAO или компании устанавливают правила расчетов по средствам казначейства.Они важны в любых ситуациях, где имеют значение финальность, подтверждения и история цепочки.Когда осиротевшие блоки менее важны
Осиротевшие блоки менее важны для очень небольших платежей, если получатель принимает риск раннего завершения расчетов.Они менее важны после того, как транзакция получила много подтверждений в надежной цепочке Proof of Work.Они менее важны после наступления явной финальности в системе Proof of Stake, когда соответствующий блок считается финализированным.Они менее важны, если пользователь лишь изучает исторические данные цепочки и не принимает решений о расчетах.Они менее важны, когда блок явно не входит в принятую историю и ни одна активная операция от него не зависит.Однако они по-прежнему важны как понятие, поскольку объясняют, как блокчейны разрешают временные расхождения.Даже если пользователь не занимается майнингом и не запускает валидатор, осиротевшие блоки влияют на понимание криптовалютных расчетов.Понимая это явление, пользователь будет меньше удивляться задержкам подтверждения.Компания, которая понимает этот механизм, сможет сформулировать более эффективные правила приема платежей.Разработчик, который понимает его, сможет создавать более качественные интерфейсы.Осиротевший блок в одном предложении
Осиротевший блок — это блок, который не остается в принятой истории блокчейна, обычно потому, что проиграл конкуренцию между ветвями временного форка; однако в строгом техническом смысле так может называться блок, родительский блок которого неизвестен узлу.FAQ
Что означает термин «осиротевший блок»?
Осиротевший блок — это блок, который не входит в принятую основную историю блокчейна: либо потому, что его родительский блок неизвестен, либо потому, что он проиграл конкурирующей ветви цепочки.Является ли осиротевший блок корректным?
Осиротевший блок может соответствовать правилам консенсуса, но при этом не входить в принятую основную цепочку.В чем разница между осиротевшим и устаревшим блоком?
Устаревший блок — это корректный блок, исключенный из лучшей цепочки после временного форка; осиротевший блок в строгом смысле — это блок, родительский блок которого неизвестен получившему его узлу.Почему появляются осиротевшие блоки?
Обычно они появляются, когда два майнера или производителя блоков создают конкурирующие блоки до того, как вся сеть синхронизируется относительно одной вершины цепочки.Появляются ли осиротевшие блоки в Bitcoin?
Да. В Bitcoin могут возникать устаревшие блоки из-за временных форков; в обиходе их часто называют осиротевшими.Получает ли майнер вознаграждение за осиротевший блок?
В системах майнинга по типу Bitcoin майнер обычно не получает вознаграждение за принятый блок, если его блок стал устаревшим и не вошел в основную цепочку.Что происходит с транзакциями из осиротевшего блока?
Если транзакции остаются корректными, они могут вернуться в мемпул или позднее получить подтверждение в другом принятом блоке.Может ли осиротевший блок отменить транзакцию?
Если транзакция получила подтверждение только в блоке, ставшем устаревшим, она может потерять этот статус.Как пользователям защититься от риска осиротевших блоков?
Прежде чем считать важную транзакцию окончательной, пользователи могут дождаться достаточного числа подтверждений.Одинаковы ли осиротевшие блоки во всех блокчейнах?
Нет. В разных блокчейнах используются разные механизмы консенсуса, правила финальности и термины для неканонических блоков.Появлялись ли осиротевшие блоки в Ethereum?
В исторической версии Ethereum на Proof of Work существовали ommer- или uncle-блоки — корректные устаревшие блоки, за которые могли выплачивать частичное вознаграждение.Используются ли ommer-блоки в Ethereum сегодня?
Сейчас Ethereum использует Proof of Stake, поэтому прежняя система ommer-блоков Proof of Work больше не работает так же, как в майнинговой модели.Заключение
Осиротевший блок — важное понятие в блокчейне, показывающее, как децентрализованные сети разрешают временные расхождения.В распространенной криптовалютной терминологии так часто называют корректный созданный блок, который не остался в принятой основной цепочке.В строгой технической терминологии такой блок обычно называют устаревшим, а осиротевшим считается блок, родительский блок которого неизвестен узлу.Это различие важно: точные термины помогают пользователям, разработчикам, майнерам и компаниям понять, что именно произошло.Осиротевшие блоки обычно появляются потому, что блокчейны — распределенные системы, в которых распространение информации занимает время.Два майнера могут почти одновременно найти корректные блоки, и сети требуется правило консенсуса, чтобы выбрать одну историю.Блок, проигравший эту конкуренцию, становится устаревшим, а его транзакции, если они остаются корректными, должны получить подтверждение в принятой цепочке.Для майнеров осиротевшие блоки могут означать потерю вознаграждений.Для пользователей — временную путаницу со статусом подтверждения.Для компаний они служат причиной дождаться достаточного числа подтверждений, прежде чем передавать средства или иные ценности.Для разработчиков они напоминают о необходимости понятной обработки реорганизаций в кошельках и обозревателях блокчейна.Для разработчиков блокчейнов они показывают, что время между блоками, их размер, распространение и правила консенсуса нужно тщательно сбалансировать.Пользователям безопаснее считать свежие подтверждения полезными, но не всегда окончательными.Важные транзакции следует проверять в правильной сети, отслеживать по хешу транзакции и принимать только после достижения установленного порога подтверждений или финальности.Осиротевшие блоки обычно не приводят к катастрофе.Они являются частью процесса, с помощью которого децентрализованные сети достигают согласия, когда множество участников одновременно выполняют действия.Вам также может быть интересно
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
В тренде
Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка
ТОП по объему
Криптовалюты с наибольшим объемом торгов
Недавно добавленные
Криптовалюты недавно внесенные в листинг и доступные для торговли

