Coinbase transaction — первая транзакция блока: откуда берутся новые BTC

Coinbase-транзакция — первая и особая транзакция в блоке сетей на Proof-of-Work, которую формирует майнер/пул. Она создаёт новые монеты (subsidy) и забирает все комиссии из включённых в блок обычных транзакций. У coinbase-транзакции нет стандартных входов: она расходует «виртуальный» вход, а её выходы становятся тратимыми лишь после периода зрелости.

Базовые моменты

  • Нет обычных входов. Coinbase использует специальный «вход» (prevout = нули, индекс = 0xffffffff), поэтому не требует подписи владельца UTXO (см. UTXO).
  • Состав вознаграждения. Сумма выходов ≤ subsidy + комиссии всех транзакций блока (см. комиссии). Превышение делает блок недействительным.
  • Зрелость (maturity). В Bitcoin выходы coinbase можно тратить только спустя 100 подтверждений (100 новых блоков).
  • Данные в coinbase-поле. Майнер может поместить идентификатор пула, сообщения и extraNonce — счётчик, расширяющий пространство поиска при майнинге.
  • Влияние халвинга. Компонент subsidy уменьшается по расписанию (халвинг); доля комиссий в вознаграждении со временем растёт.
  • Термин не про биржу. Coinbase-транзакция не связана с одноимённой биржей; это протокольный термин.

Как это работает (по шагам)

1. Узел-майнер собирает мемпул, оценивает комиссии и формирует список транзакций.

2. Создаёт coinbase-транзакцию: задаёт выходы (обычно на адрес(а) пула/майнера), вписывает данные в coinbase-поле (в т. ч. extraNonce, номер блока и др.).

3. Строит Merkle-дерево всех транзакций (coinbase + обычные) и помещает Merkle root в заголовок блока (см. Merkle tree).

4. В PoW-цикле перебирает nonce/extraNonce и другие поля, пока хеш заголовка не пройдёт порог сложности.

5. Рассылает найденный блок; узлы проверяют корректность, в т. ч. что сумма выходов coinbase ≤ subsidy + fees, и что размер/формат транзакции валиден.

6. После включения блока в цепь выходы coinbase «созревают» через установленный протоколом интервал.

Детали формата и правила

  • Coinbase-поле (scriptSig в Bitcoin). Содержит произвольные байты; с BIP34 в него обязательно включается номер блока («высота»). Пулы используют его для меток/extraNonce.
  • Ограничение по размеру. Поле coinbase имеет верхний предел длины; чрезмерно большие данные недопустимы.
  • Распределение на несколько адресов. Пулы часто делят вознаграждение на множество выходов (выплаты участникам).
  • Недоплата не запрещена. Майнер может «добровольно сжечь» часть вознаграждения (выходы < доступной суммы); переплата запрещена.
  • Реорги и зрелость. До финальности/глубины отката (реорганизации) получатель coinbase-выводов рискует; зрелость в 100 блоков снижает такие риски (см. двойная трата для общего контекста финальности в PoW).

Плюсы и ограничения модели

Аспект Плюсы Ограничения/риски
Эмиссия и стимулы Прозрачное появление новых монет и мотивация майнеров комиссиями. Зависимость дохода от халвинга/рынка комиссий; возможны «пустые» блоки при спорной экономике.
Проверяемость Лёгкая валидация узлами: сумма выходов ≤ subsidy + fees. Ошибка в расчёте вознаграждения делает блок недействительным (риск пулов).
Приватные метки Пулы ставят теги/extraNonce для учёта и диагностики. Метки позволяют отслеживать поведение пулов и паттерны добычи (см. Patoshi pattern).
Зрелость UTXO Период maturity уменьшает риски «мгновенного» отката. Уменьшает ликвидность вознаграждения до истечения N блоков.

Практика / чек-лист

Майнерам/пулам:

  • Корректно считайте комиссии (включая «пыль»/нестандартные tx), чтобы не переплатить из coinbase.
  • Следите за актуальной сложностью и окном пересчёта (см. difficulty adjustment).

Получателям выплат от пулов:

  • Учитывайте зрелость: средства могут отразиться в кошельке, но будут «неспендебл» до N подтверждений.
  • Проверяйте, что выплаты приходят из coinbase-транзакций вашего пула, а не из сторонних адресов.

Аналитикам/сервисам:

  • Отмечайте coinbase-выводы как «immature» до истечения порога.
  • Используйте данные coinbase-поля для атрибуции пулов, но помните о возможной подмене/маскировке.

Частые вопросы (FAQ)

Чем coinbase-транзакция отличается от обычной? У неё нет стандартных входов и подписей; она создаёт новые UTXO в пределах лимита вознаграждения за блок и собирает комиссии.

Почему мои «добытые» монеты нельзя потратить сразу? Из-за maturity: в Bitcoin — 100 блоков. Это снижает риски откатов и согласует экономику сети.

Можно ли поместить произвольное сообщение в coinbase? Да, в разумных пределах размера. Исторически в первый блок было помещено сообщение в coinbase-поле.

Есть ли coinbase-транзакции в Ethereum? Термин используется иначе: в Ethereum (до и после The Merge) существует адрес получателя наград (coinbase/beneficiary) в заголовке блока. Вознаграждения/чаевые начисляются системно, а не отдельной «coinbase-транзакцией».

Что такое extraNonce и зачем он? Это счётчик внутри coinbase-поля, который майнер увеличивает при генерации кандидатов блока, расширяя пространство поиска PoW. Его поведение помогает исследовать паттерны добычи.

См. также

Bitcoin (BTC)

Proof-of-Work

Difficulty adjustment

Nonce

Merkle tree

UTXO

Комиссии

Двойная трата

Холодный кошелёк

Self-custody

Task Runner