Блок — это две вещи: небольшой заголовок размером 80 байт и список транзакций, которые он подтверждает, обычно несколько тысяч.
Заголовок, шесть полей
- Версия: какие правила и сигналы использует майнер.
- Хеш предыдущего блока: ссылка на предыдущий блок.
- Меркл-корень: один хеш, обобщающий каждую транзакцию в блоке.
- Временная метка: время, когда майнер записал, в пределах лимитов, которые проверяют узлы.
- Биты: текущая целевая сложность в компактной форме.
- Nonce: число, которое майнер меняет в процессе поиска действительного хеша.
Меркл-корень строится путем хеширования транзакций парами, затем пары парами, пока не останется один хеш. Изменение одной транзакции меняет корень, а с ним и хеш блока.
Коинбейс-транзакция
Первая транзакция каждого блока особенная. У нее нет реального входа: она создает блочную субсидию из ничего и собирает все комиссии блока, оплаченные на адрес, выбранный майнером. Ее монеты могут быть потрачены только после 100 следующих блоков.
▶ ПОСМОТРЕТЬ В МАШИНЕУ ХЕША БЛОКА пресс бьет по блоку, как только его заголовок имеет действительный хеш, а циферблат временной метки записывает его.