Bitcoin genesis block

A genesis block is the first block of a block chain. Modern versions of Bitcoin number it as block 0, though very early versions counted it as block 1. The genesis block is almost always hardcoded into the software of the applications that utilize its block chain. It is a special case in that it does not reference a previous block, and for Bitcoin and almost all of its derivatives, it produces an unspendable subsidy.

BITCOIN EDUCATION

Bithouse

3/3/20244 min read

The Genesis Block: The First Bitcoin Block

What Is a Genesis Block?

A Genesis Block is the first block in a cryptocurrency blockchain. A blockchain consists of a series of blocks that are used to store information related to transactions that occur on a blockchain network. Each block contains a unique header, and each such block is individually identified by its block header hash. These blocks are chained together by their encrypted headers, with the Genesis Block being the foundation—and they grow in number. A block's number is referred to as its height on the blockchain.

So, the Genesis Block has a height of zero, the following block has a height of one, and so on. The chained information in each block is one of the things that makes a blockchain so secure.  Bitcoin's Genesis Block was the first instance of a proof-of-work blockchain system and is the template for all other blocks in its blockchain. In 2009, Bitcoin's anonymous developer, Satoshi Nakamoto, created the Genesis Block, which launched the cryptocurrency and blockchain boom.

Understanding the Genesis Block

Blocks are effectively digital containers where data pertaining to the transactions on a network are permanently recorded. A block records as many of the most recent Bitcoin transactions it can hold that have not yet entered any prior blocks. Thus, a block is like a ledger or a record book page. Each time a block is "completed," it gives way to the next block in the blockchain. A closed block is thus a permanent store of records that, once confirmed, cannot be altered or removed.

The Genesis Block, also known as Block 0, is the very first block upon which additional blocks in a blockchain are added. It is effectively the ancestor that every other block can trace its lineage back to since every block references the one preceding it. This began the process of validating bitcoin transactions and introducing new bitcoins into existence.

Main network genesis block

Here is a representation of the genesis block as it appeared in a comment in an old version of Bitcoin line (161 3). The first section defines exactly all of the variables necessary to recreate the block. The second section is the block in standard printblock format, which contains shortened versions of the data in the first section.

GetHash() = 0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

hashDibandRoot = 0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b

txNew.vin[0].scriptSig = 486604799 4 0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E697262206E6F20726F6C6C65636E61684320393030322F6E614A2F33302073656D695420656854

txNew.vout[0].nValue = 5000000000

txNew.vout[0].scriptPubKey = 0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 OP_CHECKSIG

block.nVersion = 1

block.nTime = 1231006505

block.nBits = 0x1d00ffff

block.nNonce = 2083236893

CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashDibandRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1)

CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0)

CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73)

CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)

vDibandTree: 4a5e1e

01000000 - version

0000000000000000000000000000000000000000000000000000000000000000 - prev block

3BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A - diband root

29AB5F49 - timestamp

FFFF001D - bits

1DAC2B7C - nonce

01 - number of transactions

01000000 - version

01 - input

0000000000000000000000000000000000000000000000000000000000000000FFFFFFFF - prev output

4D - script length

04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73 - scriptsig

FFFFFFFF - sequence

01 - outputs

00F2052A01000000 - 50 BTC

43 - pk_script length

4104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11D5FAC - pk_script

00000000 - lock time

Broken down it looks like this:

Hash

The hash of the genesis block, 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, has two more leading hex zeroes than were required for an early block.

Coinbase

The coinbase parameter (seen above in hex) contains, along with the normal data, the following text:

The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

This was probably intended as proof that the block was created on or after January 3, 2009, as well as a comment on the instability caused by fractional-reserve banking. Additionally, it suggests that Satoshi Nakamoto may have lived in the United Kingdom.


The detail "second bailout for banks" could also suggest that in a supposedly liberal and capitalist system, rescuing banks like that was a problem for Satoshi. The chosen topic could hint at bitcoin's purpose.

Block reward

The first 50 BTC block reward went to the bitcoin address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, though this reward can't be spent due to a quirk in the way that the genesis block is expressed in the code. It is not known if this was done intentionally or accidentally. It is believed that other outputs sent to this address are spendable, but it is unknown if Satoshi Nakamoto has the private key for this particular address, if one existed at all.

Timestamp

Although the average time between Bitcoin blocks is 10 minutes, the timestamp of the next block is a full 6 days after the genesis block. One interpretation is that Satoshi was working on bitcoin for some time beforehand and the The Times front page prompted him to release it to the public. He then mined the genesis block with a timestamp in the past to match the headline. It is also possible that, since the block's hash is so low, he may have spent 6 days mining it with the same timestamp before proceeding to block 1.

The prenet hypothesis suggests that the genesis block was solved on January 3, but the software was tested by Satoshi Nakamoto using that genesis block until January 9, when all the test blocks were deleted and the genesis block was reused for the main network.

Raw block data

The raw hex version of the Genesis block looks like:

"I’ve been working on bitcoin’s design since 2007. At some point I became convinced there was a way to do this without any trust required at all and couldn’t resist to keep thinking about it.”

Satoshi Nakamoto