Към съдържанието
ДаретеEN

Структура на блока

Версия

Версията на блока в биткойн е 4-байтово поле с version bits. Майнърите ги задават за ъпгрейди по BIP 9. По подразбиране е 0x20000000.

От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.

Полето за версията заема първите четири байта на заглавието на блока. Майнърите го използват, за да покажат, че са готови за предложен софтфорк, тоест промяна, която старите нодове все още приемат. Полето не казва коя версия на софтуера ползва майнърът. Работи като сигнал, с който мрежата се договаря за безопасна дата на промяната.

Защо версията е започнала като обикновено число?

До 2015 г. версията е била брояч. Всеки ъпгрейд я е увеличавал с едно, а новото число е казвало на нодовете по кои правила е построен блокът.

Версия Надстройка Активирана при
1 Първоначалните правила блок 0
2 BIP 34: височината на блока в coinbase блок 227,931
3 BIP 66: строги DER подписи блок 363,725
4 BIP 65: OP_CHECKLOCKTIMEVERIFY, проверка на locktime блок 388,381

Ъпгрейдът е ставал задължителен, щом повечето от последните блокове са носили новото число. За BIP 65 се е искало 950 от последните 1,000 блока да носят версия 4 или по-висока. Системата е работила, но е имала два недостатъка. Само един ъпгрейд е можел да върви наведнъж. А всеки ъпгрейд е затварял завинаги по-старите номера.

Затова най-малката валидна версия вече е 4. Bitcoin Core отхвърля всеки блок с по-ниска версия, откакто BIP 65 е активен. Блоковете с 1, 2 или 3 днес са невалидни.

Какво са version bits?

BIP 9, написан през 2015 г., превърна полето в битово поле. Всеки бит може да носи собствено предложение, така че няколко да вървят едновременно. Първият ъпгрейд с version bits е CSV промяната на бит 0 през 2016 г.

32-те бита на полето версия: горните три са 001, а най-долните три могат да сигнализират ъпгрейди. 32-битовото поле версия 001 означава version bits 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 битове 31 до 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 битове 15 до 0, най-долните три сигнализират бит 0: BIP 112 (CSV), блок 419,328 бит 1: BIP 141 (SegWit), блок 481,824 бит 2: BIP 341 (Taproot), блок 709,632 По подразбиране 0x20000000: version bits, и никой ъпгрейд не се сигнализира.
По подразбиране версията има само един зададен бит, този, който отбелязва, че се ползват version bits.

Ето как работи полето:

  • Блок, който ползва version bits, задава горните три бита на 001. Така полето се отбелязва като version bits и остават 29 бита за сигнали.
  • Всеки от останалите 29 бита, номерирани от 0 до 28 отдясно наляво, отговаря за едно предложение.
  • Майнърът задава бита на дадено предложение, за да покаже, че е готов за него.
  • Всяко предложение има начало, срок и праг. Във всеки период от 2,016 блока, ако достатъчно блокове зададат бита, ъпгрейдът се фиксира (locked in). След още един период тя се активира.

Taproot показва процеса. Той е ползвал бит 2. За да се фиксира, 90% от блоковете в даден период трябваше да зададат бита, което е 1,815 от 2,016. Сигнализирането е вървяло от 24 април 2021 г. до 11 август 2021 г. Надстройката е била активирана при блок 709,632, както е записано в BIP 341.

Трите софтфорка по-долу са използвали първите три бита:

Бит Надстройка Активирана при
0 BIP 112: CHECKSEQUENCEVERIFY, проверка на относителен locktime блок 419,328
1 BIP 141: SegWit блок 481,824
2 BIP 341: Taproot блок 709,632

Блок 703,353 има версия 0x20000004, която задава бит 2, така че е сигнализирал за Taproot. Блок 974,000 има версия 0x2008c000. В тази стойност са зададени битове 14, 15 и 19. За да видите кое предложение отговаря на всеки бит, проверете списъка с BIP 9 назначенията.

Защо най-горният бит трябва да остане 0?

Bitcoin Core чете версията като знаково 32-битово число, както отбелязва BIP 9. Ако най-горният бит е 1, числото е отрицателно. Отрицателната версия не минава правилото за минимална версия, така че блокът е невалиден.

Коя е версията по подразбиране?

Стойността по подразбиране е 0x20000000, която в двоичен вид е 0010, следвано от нули. Тя означава, че блокът ползва version bits и че не се сигнализира никой ъпгрейд.

Защо някои блокове имат странни номера на версии?

Майнърите не използват полето версия само за сигнали. Майнинг хардуерът променя битовете от 13 до 28, за да направи нов хеш на заглавието, без да сглобява наново трансакциите. Така полето работи като втори nonce. Диапазонът идва от BIP 320, чернова, която отделя тези битове за общо ползване. От около блок 550,000 нататък много заглавия носят битове, които не отговарят на никое предложение. След около 650,000 повечето блокове ги носят. Четете тези битове като шум, не като глас.

Битовете се използват повторно през годините. За да разберете какво е означавал даден бит на дадена височина, сверете височината със списъка на BIP 9.

Какво следва?

Следва предишният блок, полето, което свързва всеки блок с предишния.

В този раздел: Структура на блока

Целият курс „Биткойн от нулата“

Нещо не изглежда наред? Кажете ни