Post
Topic
Board Bitcoin Technical Support
Re: BITCOIN GENESIS PUBLIC KEY REVEAL
by
ABCbits
on 28/11/2024, 09:06:20 UTC
FWIW, on genesis block, the 50 BTC mining was sent to P2PK (pay to public key) "address" rather than P2PKH (pay to public key hash) address.

This is my public key: 
`4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f`

Do you imply that you're Satoshi Nakamoto ?

It demonstrates the principle of transparency and trust in Bitcoin. From this public key, one can derive the Bitcoin address as follows, ensuring anyone may verify its ownership and history.

If you want to verify someone actually have access to certain Bitcoin address, you generally ask them to sign message which contain non-generic message.

Derivation Steps:

1. Compress the Public Key: 
   Since this is an uncompressed public key (hex starts with `04`), we compress it by taking the x-coordinate: 
   `04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61` 
   Determine the prefix (`02` if the last byte of the y-coordinate is even, `03` if odd). Here, it's `03` because the y-coordinate is odd. 
   Compressed public key: `034678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61`

2. SHA-256 Hash of the Compressed Key: 
   `SHA256(034678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61)`

3. RIPEMD-160 Hash of the SHA-256 Hash: 
   Result: `00` (prefix for mainnet Bitcoin address) + RIPEMD-160 output.

4. Base58Check Encoding: 
   Apply Base58Check encoding to the result to produce the wallet address.

Using this derivation method, the Bitcoin wallet address generated from the public key is: 
`1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa`

This address, derived from my public key, is the genesis address of Bitcoin—a symbol of the trustless and decentralized system we have built together. 

Looking at https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses, you skipped some steps to create P2PKH address.