1
I'm just starting to write a bitcoin script parser and I am wondering how to get the address from the genesis block? blockexplorer.com shows the coinbase value to be
04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73
in the raw block data. But it also shows the receiving address for this transaction to be
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
How can I derive the address from the raw transaction? I found a page in the wiki that talks about creating an address, but this seems like it is going about the process in a back-to-front order. Surely the address must exist first before the raw block can allocate the mined coins to it? Otherwise, the blockchain would simply have to allocate mined funds into the ether. The receiving address must have been known to the mining algorithm before it generated the very first mining transaction.
Please could someone walk me through the steps of deriving the address from the raw transaction script.
Small nit: signatures are encoded using DER, but public keys aren't. The standard for encoding public keys is described by SEC1 (http://www.secg.org/index.php?action=secg,docs_secg).
– Pieter Wuille – 2013-10-30T00:43:11.997Another nit: from the point of view of the network rules, the output of the genesis block is actually unspendable (intentionally or due to a bug), so its address is really irrelevant. – Pieter Wuille – 2013-10-30T00:44:34.770
@PieterWuille I fixed the DER bit, thanks. Even though the genesis transaction is unspendable, I think that its address is not totally irrelevant. For example, you can use it to easily see that people have sent BTC to the public key listed by Satoshi in the genesis transaction. This is interesting info. – theymos – 2013-10-30T01:00:45.543
i don't think my question "Surely the address must exist first before the raw block can allocate the mined coins to it?" was clearly phrased, so i have updated it to explain better what i mean. – mulllhausen – 2013-10-30T11:12:02.923
The payout address is indeed known before block mining begins, by the way. – Pieter Wuille – 2013-10-30T11:21:19.653
yeah, that's what i meant. – mulllhausen – 2013-10-30T13:27:38.527