Перейти к содержимому
buybitcoinsmart

Глоссарий / Майнинг и консенсус

Устаревший блок

Что такое устаревший блок?
Устаревший блок представляет собой полностью действительный блок, проигравший гонку: победил другой блок той же высоты, поэтому сеть построила цепочку на нем, а этот блок остался в стороне.

Ситуация, когда два майнера находят решение с разницей в секунду, обычна, и на мгновение в сети существуют две конкурирующие верхушки цепи. Побеждает та ветвь, которую продлят первой, и исследователи, измерявшие биткоин в 2013 году, обнаружили, что примерно 1,7 % блоков оказываются на проигравшей стороне. Для вас это незаметно: платежи внутри устаревшего блока возвращаются в пул памяти и снова добываются.

Как это работает

Устаревший блок возникает из-за задержки, а не из-за какого-либо дефекта самого блока.

Майнинг представляет собой лотерею без координации. Когда машина находит решение, ее пул объявляет блок, и это объявление распространяется по планете не мгновенно. Пока оно не дошло, все остальные майнеры продолжают работать над прежней верхушкой, и любой из них может найти второе действительное решение на той же высоте. Теперь существуют две версии истины, обе правильные, и ничья разрешается тем, кто опубликует следующий блок поверх одной из них. Другая становится устаревшей.

Размер этого окна измерим. Christian Decker и Roger Wattenhofer провели измерения в сети в 2013 году и обнаружили, что медианное время достижения блоком большинства узлов составляет 6,5 секунды, а около 1,7 % блоков в результате остаются брошенными. С тех пор передача блоков значительно улучшилась. Компактная передача блоков, описанная в BIP152 и появившаяся в Bitcoin Core 0.13.0 в августе 2016 года, позволяет узлу-партнеру восстановить блок из транзакций, которые уже есть в его пуле памяти, передавая несколько килобайт вместо одного-двух мегабайт, а специализированные сети передачи доводят типичное распространение до менее чем секунды.

Проигрыш стоит пулу целого блока. Выход coinbase устаревшего блока никогда не входит в принятую историю, поэтому его субсидия и комиссии не стоят ничего. Протокол также исходит из того, что это может произойти: монеты, созданные в блоке, блокируются на 100 последующих блоков, примерно на шестнадцать часов, именно для того, чтобы никто не мог потратить вознаграждение, которое позже окажется на неверной ветви.

Где это видно

Устаревший блок становится видимым в обозревателях блоков и на панелях пулов, обычно под другим названием.

Несколько обозревателей публикуют список отброшенных блоков и относят их к осиротевшим блокам, и отсюда происходит большая часть терминологической путаницы в этой области биткоина. Панели пулов сообщают долю устаревших или отклоненных шар, которые присылают их майнеры. При схеме оплаты за каждую шару отдельным майнерам все равно засчитывается эта работа, а убыток несет пул, и это одна из вещей, которые оплачивает комиссия пула.

Bitcoin Core показывает это наглядно. Запросите у узла известные ему верхушки цепи, и недавний устаревший блок появится как отдельная верхушка с пометкой valid fork (действительное ответвление): полностью проверенный, во всех отношениях правильный и просто не являющийся цепью с наибольшим объемом работы.

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

Устаревший блок vs реорганизация цепи

Устаревший блок является объектом; реорганизация цепи является действием. Оба описывают одно и то же событие с разных позиций. Если ваш узел получил победивший блок первым, проигравший просто никогда не становится частью вашей цепи и реорганизация не происходит. Если вы получили проигравшего первым, вашему узлу приходится отключить его и переключиться, и это реорганизация на один блок. Такие события с одним блоком случаются несколько раз в год и не означают, что что-то не так. Реорганизации на глубину нескольких блоков представляют собой другую историю, и в основной цепи биткоина они были крайне редки.

Не путать с

Часто задаваемые вопросы

Означает ли устаревший блок, что моя транзакция потеряна?

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

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

Нет, цепь за него не платит. Выход coinbase устаревшего блока никогда не становится частью принятой истории, поэтому его субсидия и комиссии ничего не стоят. Пулы, платящие за каждую шару, все равно засчитывают работу отдельным майнерам и сами несут убыток.

Читайте далее

Связанные термины

Еще в разделе «Майнинг и консенсус»

Читать эту страницу на английском