Структура на блока
Структура на блок биткойн: заглавието е 80 байта (версия, хеш на предишния блок, Merkle root, време, bits, nonce). Вижте всяко поле.
От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.
Блок в биткойн (bitcoin) е контейнер за трансакции. В най-горната му част стои заглавието на блока (block header), фиксирано обобщение от 80 байта. Майнърите хешират заглавието отново и отново, а блокът е валиден само ако хешът му е под целта. Тази страница разглежда заглавието поле по поле, а после и трансакциите след него.
За кратката дефиниция първо прочетете страницата какво е блок. Тук ще видите какво съдържа блокът, байт по байт.
Какво има в блока?
Всеки блок има три части, в този ред:
- Заглавието на блока (block header), винаги 80 байта.
- Броят на трансакциите, число, което казва колко трансакции следват.
- Трансакциите, една след друга, като първата е coinbase трансакцията.
Фиксиран размер има само заглавието. Частта с трансакциите расте и се свива при всеки блок.
Кои са шестте полета на заглавието?
Заглавието има шест полета, подредени едно след друго без празнини. Всяко поле има своя страница в този раздел.
| Поле | Размер | Ред на байтовете | Какво съдържа |
|---|---|---|---|
| Версия | 4 байта | little-endian | Битове, които сигнализират за поддръжка на ъпгрейди |
| Хеш на предишния блок | 32 байта | естествен | Хешът на блока, върху който този блок се строи |
| Merkle root | 32 байта | естествен | Отпечатък на всички трансакции в блока |
| Време | 4 байта | little-endian | Unix времева марка, зададена от майнъра |
| Bits | 4 байта | little-endian | Целта в компактна форма |
| Nonce | 4 байта | little-endian | Резервно число, което майнърите сменят, за да пробват нови хешове |
Съберете размерите и получавате 4 + 32 + 32 + 4 + 4 + 4 = 80 байта.
Два термина се срещат често в този раздел. Little-endian означава, че най-малкият по значимост байт се записва първи, така че числото 1 в четири байта е 01000000. Естественият ред на байтовете е редът, в който хеш функцията извежда байтовете си. Explorer-ите обикновено показват хешовете в обратен ред. Редът на байтовете и little-endian обясняват и двата.
Как изглежда реалното заглавие на блок?
Блок 974,000 е намерен на 31 октомври 2026 г. Заглавието му е 160 шестнадесетични цифри, което прави 80 байта. Отворете /block/974000, за да видите същите полета в нашия explorer.
Ето суровите байтове, точно както стоят в заглавието:
version 00c00820
previous 8042e76820f82d605498e609240e207b0d1559982ce800000000000000000000
merkle root c1541910c988f1a6421f0a04ae5a053ac3e1f126f0f4c6738ff7c98a96513e0a
time 8721e66a
bits ace50117
nonce 6f002e09
Разкодирани, шестте полета означават следното:
- Версия:
00c00820в little-endian е0x2008c000. Числото е битово поле, затова го четете бит по бит (вижте версията). - Хеш на предишния блок:
00000000000000000000e82c9859150d7b200e2409e69854602df82068e74280, хешът на блок 973,999. - Merkle root:
0a3e51968ac9f78f73c6f4f026f1e1c33a055aae040a1f42a6f188c9101954c1, в реда на explorer. - Време:
8721e66aе 1,793,466,759, което е 31 октомври 2026 г., 17:12:39 UTC. - Bits:
ace50117е0x1701e5ac, целта в компактна форма. - Nonce:
6f002e09е 154,009,711.
Хешът на тези 80 байта е хешът на блока, 00000000000000000000d7d13f5ac024052cad9613d9a6608f76df081d74e865. Той започва с 20 нулеви шестнадесетични цифри, така че е под целта. Хешът на блока показва как се смята.
Как се записва броят на трансакциите?
Броят се записва във формата compact size. Малките числа заемат един байт, а по-големите започват с маркер, след който идват още байтове:
| Първи байт | Следващи байтове | Числата, които покрива |
|---|---|---|
от 00 до fc |
няма, байтът е самото число | от 0 до 252 |
fd |
два байта, little-endian | от 253 до 65,535 |
fe |
четири байта, little-endian | от 65,536 до 4,294,967,295 |
ff |
осем байта, little-endian | по-голямо от това |
Блок 974,000 има 3,468 трансакции, затова броят му е fd8c0d. fd казва, че следват два байта, а 8c0d е 3,468 в little-endian. Генезис блокът има една трансакция, така че броят му е просто 01.
Какво следва след броя на трансакциите?
Трансакциите идват една след друга, без разделители. Редът им има значение:
- Coinbase трансакцията е първа. Входът ѝ не сочи към никой по-ранен изход, а изходите ѝ изплащат на майнъра наградата за блока, тоест новите монети плюс таксите. Наградата е 3.125 BTC на блок от блок 840,000 насам, вижте халвинга.
- Трансакция, която харчи изход, трябва да е след трансакцията, която го е създала. Тази по-ранна трансакция е в по-ранен блок или по-рано в същия блок.
- От блок 227,931 нататък coinbase трансакцията трябва да започва с височината на блока (BIP 34).
- Coinbase изходите не могат да се харчат, докато не минат 100 блока. Bitcoin Core налага това с константата
COINBASE_MATURITYв кода за консенсус.
Майнърът избира останалите трансакции от мемпула, чакалнята на трансакциите в нода.
Размерът на блока се брои в тегловни единици (weight units, WU). Блокът може да има до 4,000,000 WU, както задава BIP 141. Заглавието заема 320 WU, защото 80-те му байта се броят четири пъти. Блок 974,000 тежи 3,994,804 WU, близо до лимита.
Къде се пазят суровите блокове?
Нодът пази всеки блок като суров байтов запис във файловете blk*.dat в папката blocks в директорията с данни на нода. Страницата за файловете blk.dat показва как е подреден записът и как се намира.
В какъв ред да прочетете този раздел?
Прочетете страниците в реда, в който заглавието изброява полетата. Всяка стъпка се опира на предишната.
- Версия: битовото поле, което сигнализира за ъпгрейди.
- Предишен блок: хешът, който свързва един блок със следващия.
- Merkle root: отпечатъкът на трансакциите.
- Време: времевата марка и правилата, които я държат честна.
- Bits: целта в компактна форма.
- Nonce: полето, което майнърите сменят, за да търсят валиден хеш.
- Хеш на блока: 80-те байта, хеширани два пъти.
- Файлове blk.dat: суровите блокове на диска ви.
Когато заглавието ви стане ясно, пробвайте с най-първия блок. Блок 0, генезис блокът, показва същите шест полета с най-простите стойности, които ще намерите.
В този раздел
- 1ВерсияВерсията на блока в биткойн е 4-байтово поле с version bits. Майнърите ги задават за ъпгрейди по BIP 9. По подразбиране е 0x20000000.
- 2Предишен блокХешът на предишния блок е 32-байтовото поле, с което всеки блок в биткойн се свързва с блока преди него. Вижте как се чете и защо е важен.
- 3Merkle rootMerkle root в биткойн е 32-байтов хеш на всички трансакции в блока. Вижте как се строи по двойки, с пример от блок 100,000.
- 4ВремеВремето на блока в биткойн е Unix времева марка от майнъра. Нодовете я приемат, ако е след медианата на предишните 11 блока и не повече от два часа напред.
- 5BitsПолето bits в блока на биткойн е 4-байтовата компактна форма на целта, под която трябва да падне хешът. Вижте експонентата и коефициента.
- 6NonceNonce биткойн е 4-байтово поле, което майнърите сменят, за да получат нов хеш на блока. Вижте защо има 4,294,967,295 опита на заглавие.
- 7Хеш на блокаХешът на блок в биткойн е двойният SHA-256 на 80-байтовото заглавие. Той назовава блока и трябва да е под целта. Вижте как се смята.
- 8Файлове blk.datblk.dat в биткойн: файловете пазят суровите блокове на диска. Вижте къде са, как е подреден записът и защо от версия 28.0 данните са разбъркани.
Нещо не изглежда наред? Кажете ни