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.