Block Template — набор данных для сборки блока, для заголовка которого ищут proof of work. Он связывает предыдущий блок, транзакции, coinbase и ограничения майнинга, но не доказывает нахождение или принятие блока.
Поля previousblockhash и height определяют положение кандидата в цепи. Также включены version, bits и временные данные. Шаблон служит основой для сборки блока, а не просто готовым заголовком для слепого повторения одного вычисления. [BIP 22 — Block template structure]
В BIP 22 depends ссылается индексами от единицы на предыдущие элементы transactions; coinbase в этот список не входит. Если дочерняя транзакция тратит выход родительской в том же блоке, родительская должна стоять раньше. Отсутствие depends означает неизвестные зависимости, а не их отсутствие. [BIP 22 — Block template structure]
Bitcoin Core v29.0 формирует coinbase из субсидии на данной высоте и фактических комиссий включённых транзакций. После их удаления нельзя автоматически оставлять прежнее coinbasevalue как допустимую награду. Изменение отбора требует пересчёта доступных комиссий. [Bitcoin Core v29.0 — Block assembler]
По BIP 141 witness commitment фиксирует witness-данные через wtxid. Bitcoin Core 29 предоставляет default_witness_commitment для неизменённого шаблона. После изменения соответствующих транзакций или их порядка нужно проверить либо пересчитать обязательство и учесть итоговые TXID в Merkle root заголовка. [BIP 141 — Witness commitment] [Bitcoin Core 29 — getblocktemplate RPC]
Bitcoin Core v29.0 выбирает пакеты с зависимостями и соблюдает ограничения веса и sigops. blockmaxweight и blockmintxfee влияют на сборку. Исключение транзакции этой политикой само по себе не доказывает нарушения консенсуса; настройки майнера не повышают сетевые лимиты. [Bitcoin Core v29.0 — Block assembler]
BIP 23 описывает через mutable допустимые изменения, например времени или транзакций. Разрешение сервера не отменяет консенсус: предшественник, время, сложность и транзакции должны оставаться корректными. Доступ к шаблону также не гарантирует конечному устройству неограниченного выбора содержимого. [BIP 23 — Mutations and proposals]
BIP 23 может ограничить работу через expires и задать право менять prevblock. При смене вершины цепи простая замена хеша предшественника не гарантирует действительность остальных данных. Высоту, транзакции, награду и другие контекстные условия следует оценить заново. [BIP 23 — Mutations and proposals]
Режим proposal в BIP 23 проверяет кандидата без требования действительного proof of work. Положительный результат не означает нахождения, публикации или постоянного места блока в цепи. Готовый блок должен пройти соответствующую проверку при отправке. [BIP 23 — Mutations and proposals]
Для полной картины прочитайте эту статью вместе с Mining Pool, Заголовок блока, Extranonce, Дерево Merkle. На эту статью также ссылаются Coinbase-транзакция, ASIC Miner, Mining Pool, Nonce.