Зачем майнеры майнят пустые блоки (empty blocks)
Майнинг биткоина – это интересная тема, в которой иногда трудно разобраться без дополнительной информации. Майнинг пустых блоков – довольно важный вопрос, и люди часто интересуются, зачем вообще майнинг-пулы производят их.
Возвращаемся к обсуждения пустых блоков
Майнинг-пулы – это группы биткоин-майнеров, которые работают вместе для поиска и подтверждения блоков примерно каждые 10 минут. Большинство этих блоков заполняются транзакциями, которые ожидают подтверждения, как только майнер находит определённый блок. Майнеры получают награду в 12,5 BTC и все сборы за транзакции, находящиеся в блоке, который они находят. В первое время блоки часто не были заполнены полностью, потому что биткоин не был так популярен. Сейчас блоки заполняются полностью, часто до максимума в 1 МБ.
Но майнеры выпускают не только заполненные блоки; встречаются и пустые. На самом деле пустые блоки содержат одну транзакцию, которая называется coinbase, и именно она включается в блок первой. Главная причина, по которой майнинг-пулы выпускают такие блоки – они работают без остановки. Но тогда возникает вопрос: Почему майнинг-пулы продолжают выпускать блоки, когда в мемпуле находится огромная очередь транзакций?
Безжалостный майнинг
Однако, когда пул решает блок, он должен скачать его и выполнить определённые операции для верификации находящихся в нём транзакций. В то же время, пул получает следующий передаваемый заголовок (80 байт информации, привязанной к блоку) и начинает работать над следующим блоком. Но майнеры не только тратят время на майнинг, они также получают информацию о блоках, которые смайнили их конкуренты. Они не останавливаются и постоянно стремятся смайнить столько блоков, сколько могут. Как гонщик Nascar, который только выиграл Daytona 500, но через пару секунд уже думает о том, как занять поул-позицию на гонке в Талладеге.
Профессор информатики и широко известный биткоин-активист Джордж Столфи простым языком объясняет, зачем майнерам производить пустые блоки:
«Сборы за транзакции стимулируют майнеров включать все транзакции, которые они могут, в потенциально возможные блоки. Однако, майнер часто начинает подготавливать кандидата для блока N+1 ещё до того, как он узнает, что попало в блок N. Это происходит потому, что ему нужен только хеш от блока N, который он может получить очень быстро, используя определённую хитрость. В этом случае майнер должен начинать делать пустой блок N+1, даже если в очереди есть транзакции, потому что, не зная содержимого блока N, он не может проверить, правильные в нём транзакции или нет. Если ему повезёт, он сможет решить пустой блок N+1 ещё до того, как закончит скачивать тело блока N. Вот откуда берутся пустые блоки».
Свыше 87.000 пустых блоков
Пустые блоки появляются с самого начала существования биткоина. Например, с первого по 360189 блоки находится 85.295 пустых блоков. Это значит, что с января 2009 по июнь 2015 около 23,68% блоков были пустыми. Майнинг пустого блока требует столько же работы, сколько и заполненного. С 2015 число пустых блоков уменьшилось, а некоторые пулы говорят, что они воздерживаются от майнинга таких блоков. На сегодняшний день всего было смайнено 87.885 пустых блоков.
Судя по информации Bitfury Analytics Team, майнинг-пул Bitfury предпочитает не майнить пустые блоки
Мысль о том, что майнеры выпускают пустые блоки, является отчасти верной, но тяжело сказать, хорошо это или плохо. Разговоры на эту тему ведутся с самого начала существования биткоина.