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. Его поведение помогает исследовать паттерны добычи.