Genesis Block — фіксований початковий блок основної мережі Bitcoin. Його заголовок датований 3 січня 2009 року. Він містить одну транзакцію, що створює вихід 50 BTC з особливою обробкою: витратити його неможливо.
У суботу 3 січня 2009 року лондонська газета The Times писала про британського міністра фінансів Алістера Дарлінга та можливе друге рятування банків. За часовою міткою в заголовку перший блок Bitcoin датований тим самим днем. Satoshi Nakamoto вписав газетний заголовок у його єдину транзакцію. Так речення залишилося частиною даних, які може прочитати кожен. Ринку, біржі чи натовпу майнерів ще не було. Була передусім точка відліку ланцюга, до якої могли приєднуватися наступні блоки. Заголовок пов’язав її з конкретним днем і помістив новий грошовий експеримент у контекст фінансової кризи. [1] [6]
Genesis не має попереднього блоку, тому відповідне поле заголовка нульове. Bitcoin Core формує його дані з фіксованих параметрів і перевіряє очікуваний хеш, цифровий відбиток даних блоку. Вузол не починає з довільного блоку, отриманого від іншого учасника. Блок на висоті 1 уже посилається на хеш Genesis Block; інший початок означав би іншу історію. Whitepaper описував ланцюг, захищений Proof of Work. Створення конкретного блоку з дійсним доказом роботи перетворило задум на запис, на який могла спиратися запущена програма. [1] [8]
Заголовок блоку містить час 1231006505 — 3 січня 2009 року, 18:15:05 UTC. Це значення, внесене творцем блоку, а не незалежне вимірювання моменту його створення. Інша підказка є у вході coinbase-транзакції: «The Times 03/Jan/2009 Chancellor on brink of second bailout for banks». Coinbase не витрачає попередній вихід: вона створює винагороду за блок, а її особливий вхід може містити додаткові дані. Саме туди Satoshi вписав заголовок. Він підтверджує висновок, що блок не виник раніше за публікацію новини, але не встановлює точної секунди майнінгу чи справжньої особи автора. [1] [5] [6]
Новина стосувалася подальшої допомоги британським банкам після фінансового потрясіння 2008 року. Читати її як критику рятувальних пакетів цілком обґрунтовано, особливо поруч із whitepaper про платежі без фінансового посередника. Проте Satoshi не залишив однозначного публічного пояснення вибору саме цього речення. Записаний текст — факт; політичне послання залишається тлумаченням. Заголовок також прив’язує блок до конкретного випуску газети, тобто події поза комп’ютером автора. Обидва смисли можуть поєднуватися. Протокол не виводить із них політичних правил; історичний запис слід відрізняти від пізніших інтерпретацій. [1] [8]
Кожен наступний блок містить хеш попереднього. Genesis Block такого зв’язку не має, тому його початок явно закріплений у програмі. Bitcoin Core формує його, зокрема, з газетного заголовка, відкритого ключа, часу 1231006505, nonce 2083236893, складності 1 і винагороди 50 BTC. Отриманий хеш має збігатися з відомим значенням. Спочатку Satoshi контролював єдину відому реалізацію і, ймовірно, єдиний активний вузол. Утім, правила дозволяли кожному наступному Full Node перевіряти їх самостійно. Це була технічна відправна точка, а не вже сформована децентралізована економіка. Nonce — число в заголовку, яке майнер може змінювати під час пошуку коректного блоку; складність визначає обсяг потрібних зусиль. [1] [6]
Набір UTXO містить невитрачені виходи транзакцій: суми разом з умовами їх витрачання. Під час підключення genesis Bitcoin Core пропускає підключення його транзакцій, тому початковий вихід не потрапляє до набору UTXO. Це не звичайне очікування дозрівання винагороди майнера, і нові підтвердження його не розблокують. Навіть знання відповідного приватного ключа не створить відсутнього виходу, доступного для витрачання. [2]
Оглядач може показувати пізніші надходження на адресу, пов’язану з genesis. Вони не є початковим виходом блоку 0: мають власні ідентифікатори транзакцій та умови витрачання. Особливе пропускання genesis не поширюється на них автоматично. Баланс адреси не слід плутати з можливістю витратити початкові 50 BTC. [2] [5]
Наступний блок на висоті 1 має часову мітку 9 січня 2009 року, 02:54:25 UTC. Отже, між першими двома блоками минуло кілька днів — значно більше за звичний десятихвилинний орієнтир. Самі часові мітки не пояснюють цієї паузи; приписувати Satoshi певний намір було б припущенням. Публічне оголошення версії 0.1 у поштовій розсилці Cryptography Mailing List датоване ще 8 січня 2009 року, 19:27:40 UTC. Описав систему peer-to-peer, додав посилання для завантаження та інструкції. Bitcoin отримав і початковий запис, і програму, яку інші люди могли запустити, щоб самостійно перевіряти правила. [7] [1] [9]
На власному вузлі основної мережі getblockhash 0 повертає ідентифікатор, що починається з 000000000019d668. getblock із цим хешем і рівнем деталізації 2 показує блок та декодовану транзакцію. Дані можна порівняти з параметрами Bitcoin Core; сам знімок екрана оглядача не замінює перевірки даних. [3] [4]
Тестові мережі й regtest мають власні параметри та інші хеші genesis. Перед порівнянням перевірте мережу, а не лише висоту 0. Однаковий перший блок підтверджує спільний початок, а не коректність усіх наступних блоків, безпеку гаманця чи контроль над ключами. Genesis Block задає вихідну точку. Наступні блоки мають відповідати правилам програми, яку обрав оператор вузла. Satoshi міг створити перший блок, але не міг цим змусити інших запускати його програму чи автоматично приймати все, що з’явиться після нього. [1] [8]
Для повної картини прочитайте також Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Block Subsidy, Timechain / Blockchain. На цю статтю також посилаються Bitcoin, Satoshi Nakamoto, Timechain / Blockchain, Block Subsidy.