Bitcoin Forum
July 22, 2018, 09:33:53 AM *
News: Latest stable version of Bitcoin Core: 0.16.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1] 2 »  All
  Print  
Author Topic: A mistery hidden in the Genesis Block  (Read 21841 times)
Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 540
Merit: 510


View Profile WWW
April 10, 2013, 03:41:55 AM
Merited by digit (1)
 #1

Who created the Genesis Block?

Where in the world was the computer that mined it running ?

How many computers did Satoshi used to mine the genesis block?

Why did it take 6 days to be created? Did Satoshi rested for one day afterwards?

If you keep reading, I will lead you to a quest to find the answers to these questions using software archeology.

The Genesis Block

Genesis block header hash is this (hex):
 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
 
Note that it starts with 43 zero bits. Why? The block target difficulty was much lower (around 32 bits), so we can assume Satoshi did this on purpose.

At that time (2009) GPU mining was probably not already implemented (although maybe Satoshi did think about it). GPU mining began to be used around 2011. The first Google trends reference is on April 2011 (http://www.google.com/trends/explore?hl=en#q=GPU%20mine%20Bitcoin)
 
So Satoshi was doing mining on a CPU.
How many CPUs did Satoshi used to mine the first block?

The Genesis Miner

The Satoshi client source code version 0.1 does not have a special routine nor a command line switch to mine a Genesis block. In fact, the Genesis block was hard-coded, which probably means it was generated by another application whose source code is unknown. Nevertheless, since BTCs were essentially worthless at that time, and there was no competition between miners, we can assume he was mining with his own (and just one) personal computer.

The Satoshi PC

A good PC CPU in 2009 could do approximately 2^22 double-hashes/second.
(Taking into account NUMBER_OF_PROCESSORS=2, so two threads mine together). Satoshi client 0.1 did not have an optimization of these double-hashes, by backing up and restoring the intermediate state of the second hash application, so we can assume that the routine that created the genesis block did not had such optimization.

Lets estimate how much time it takes for Satoshi PC to solve the genesis block with 43 zeros:
Initial 22 bits (nonce test/second)
Add approximately 16 bits for a whole day  (86400 ~= 2^16)
Add approximately 2.5 bits to make it 6 days
Total bits: 41.5

So after 6 days there is approximately 17% change he may have found the genesis block. Was he lucky?

So did he let the miner working for 6 days on purpose?

The day Satoshi rested

Let's check the genesis block date/time and block 1 date/time

Block 0:    2009-01-03 18:15:05
Block 1:     2009-01-09 02:54:25 (6 days later!)

Did Satoshi intent was to relate the six days the miner "worked" to create the genesis block to the time God took to create the world in the Genesis book of the old testament? I don't think so, but the relation is interesting!

One thing that we must note is that the block time seems to have been fixed, instead of being continuously updated, as the Satoshi client does. Since the coinbase transaction in the genesis block relates to this date
(by the embedded message: The Times 03/Jan/2009 Chancellor on brink of second bailout for banks), I assume that Satoshi wanted the block date to be identical than the news on The Times.

The nonce mismatch

Now we'll try to check all these conjectures by analyzing the nonce size.
The nonce size in the block header is only 32 bits. Too short to try 2^43  possibilities. Then to achieve 43 bits zero bits in the block header hash, the miner app must have overflowed the nonce approximately 2^11 times, incrementing the bnExtraNonce each time the 32 bit nonce overflowed.

Now let's look at the scriptsig in the coinbase:

04 ff ff 00 1d  (1d00ffff, the Compact representation of Difficulty or nBits)
01 04  (Extra nonce)
45 5468652054696d6573203....

So the extra nonce is only 4, which means that the block was found only after 4 overflows, which means the genesis miner worked for only 4.2 minutes (estimated mean time).

I haven't the slightest idea why these two values (2^11 and 4) differ by 500x.

The explanation that Satoshi did have 500 computers while mining the genesis block is unsatisfactory, since the the number of initial zero bits in block 1 is only 32. Why acquire such computing power to and then never use it again?

One of the possible explanations is that the Genesis Miner did not increment the extra nonce when the nonce overflowed, but changed the destination address of the coinbase transaction. This in turn could mean that the destination  address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa is not a valid address, but a nonce.

Can you solve the mystery?

Best regards,
 Sergio.


1532252033
Hero Member
*
Offline Offline

Posts: 1532252033

View Profile Personal Message (Offline)

Ignore
1532252033
Reply with quote  #2

1532252033
Report to moderator
1532252033
Hero Member
*
Offline Offline

Posts: 1532252033

View Profile Personal Message (Offline)

Ignore
1532252033
Reply with quote  #2

1532252033
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1532252033
Hero Member
*
Offline Offline

Posts: 1532252033

View Profile Personal Message (Offline)

Ignore
1532252033
Reply with quote  #2

1532252033
Report to moderator
1532252033
Hero Member
*
Offline Offline

Posts: 1532252033

View Profile Personal Message (Offline)

Ignore
1532252033
Reply with quote  #2

1532252033
Report to moderator
1532252033
Hero Member
*
Offline Offline

Posts: 1532252033

View Profile Personal Message (Offline)

Ignore
1532252033
Reply with quote  #2

1532252033
Report to moderator
kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1001



View Profile
April 10, 2013, 03:58:01 AM
 #2

Or maybe he just got lucky.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
Sergio_Demian_Lerner
Hero Member
*****
expert
Offline Offline

Activity: 540
Merit: 510


View Profile WWW
April 10, 2013, 04:03:08 AM
 #3

Or he stopped and restarted mining just 5 minutes before he found the genesis block, so the extra nonce was reset...
bb113
Hero Member
*****
Offline Offline

Activity: 728
Merit: 500


View Profile
April 10, 2013, 05:15:55 AM
 #4

Sounds interesting. Can you explain for non-techies? For example, perhaps he performed this procedure multiple times.
jimbobway
Legendary
*
Offline Offline

Activity: 1405
Merit: 1007



View Profile
April 10, 2013, 05:33:29 AM
 #5

Here is info on that address.  Looks like Satoshi was sending satoshis.

https://blockchain.info/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa


Wow, people are paying homage to Satoshi by sending him bitcoins.  Bitcoin is now a religion.
wumpus
Hero Member
*****
qt
Offline Offline

Activity: 812
Merit: 1000

No Maps for These Territories


View Profile
April 10, 2013, 05:43:01 AM
 #6

Amusing write-up! maybe you should write a mystery novel a la Dan Brown Smiley

Bitcoin Core developer [PGP] Warning: For most, coin loss is a larger risk than coin theft. A disk can die any time. Regularly back up your wallet through FileBackup Wallet to an external storage or the (encrypted!) cloud. Use a separate offline wallet for storing larger amounts.
jaime
Sr. Member
****
Offline Offline

Activity: 339
Merit: 250


División de Poderes s.XXI es Descentralización


View Profile WWW
April 10, 2013, 06:44:53 AM
 #7

"Genesis Block" makes a great title for such a novel.

Could have computed that hash on a powerful computer, maybe in his University Campus, or rented computers in Amazon EC2. But why such a difficulty?

zeroday
Donator
Hero Member
*
Offline Offline

Activity: 784
Merit: 1000


EU: Welcome to the world of financial slavery


View Profile
April 10, 2013, 06:57:28 AM
 #8

"Let there be Bitcoin!
....
By the seventh day Satoshi had finished the work He had been doing; so on the seventh day He rested from all His work."

gmaxwell
Moderator
Legendary
*
qt
Offline Offline

Activity: 2464
Merit: 1285



View Profile
April 10, 2013, 07:06:42 AM
 #9

Since the genesis block was generated with some external code it may well have been rolling the public key... Even with valid ones— though the output of block 0 is not spendable in any case.

I was aware of the suspiciously high difficulty... and when Bluematt last brought it up in #bitcoin-dev I suggested that perhaps he just left it running, saving the best result, while he did the final preparation for the release.

Bitcoin will not be compromised
Shevek
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
April 10, 2013, 11:19:45 AM
 #10

Isn't time a variable of the block header to be hashed? If yes, after 2^32 calculation the header changes, and a new round of nonces makes sense.

Other option: after an unsuccess round, he could try a transaction to a different address, so the header also changed.

Proposals for improving bitcoin are like asses: everybody has one
1SheveKuPHpzpLqSvPSavik9wnC51voBa
apetersson
Hero Member
*****
Offline Offline

Activity: 666
Merit: 500



View Profile
April 10, 2013, 12:19:57 PM
 #11

wow, this makes an interesting story. SDL always comes up with all kinds of in-depth bitcoin knowledge.

that makes me think -> SDL==SN
Remember remember the 5th of November
Legendary
*
Offline Offline

Activity: 1722
Merit: 1001

Reverse engineer from time to time


View Profile
April 10, 2013, 12:36:25 PM
 #12

I would really appreciate if my question on the genesis block is also answered https://bitcointalk.org/index.php?topic=171355.msg1782000#msg1782000

I basically ask in the thread how it's made, and how one could also create a genesis block from scratch.

BTC:1AiCRMxgf1ptVQwx6hDuKMu4f7F27QmJC2
pc
Sr. Member
****
Offline Offline

Activity: 253
Merit: 250


View Profile
April 10, 2013, 02:53:55 PM
 #13

I suggested that perhaps he just left it running, saving the best result, while he did the final preparation for the release.

Didn't he need to mine both block 0 and block 1? And unless he knew the Times headline before it was printed, that means he mined 2 blocks within 6 days, right? Isn't that the point of the headline, to prove that he hadn't premined more than that?
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1005


View Profile
April 10, 2013, 03:41:49 PM
 #14

Interesting, thanks Sergio.

Knowing how Satoshi operated it was unlikely to be a genuinely separate application. More likely it was just a hacked up version of the app. He wasn't big into modularity or internal APIs.
deepceleron
Legendary
*
Offline Offline

Activity: 1512
Merit: 1000



View Profile WWW
April 12, 2013, 03:35:44 AM
 #15



>>> d=int("00000000FFFF0000000000000000000000000000000000000000000000000000",16)
>>> g=int("000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",16)
>>> print (float(d)/float(g))
2536.42629845

The difficulty equivalent of the genesis hash is 2536.42629845

Looking up old hashing results:
AMD Phenom II X4 3GHz
Bitcoin Version 0.3 (Win 32-bit)
4 cores - 2300 khash/s

Difficulty: 2536.4263
Hash Rate: 2.30
Time to generate one block ~54.8 days

The genesis hasher could have been looking for just > difficulty 1, and it spit this lucky hash out, so Satoshi used it to show his awesomeness. He could have been changing the headline every day looking for a big small hash - being able to replace the genesis block would be the ultimate fork.
CasinoBit
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250



View Profile
April 12, 2013, 06:47:57 AM
 #16

..."By the seventh day Satoshi had finished the work He had been doing; so on the seventh day he rested his miner from all his work. And Satoshi blessed the seventh day and made it holy, because on it his miner rested [or ceased] from all the work of creating that he had done." (Bitcoin 2:2-3)
opticbit
Hero Member
*****
Offline Offline

Activity: 697
Merit: 502


PGP: 6EBEBCE1E0507C38


View Profile WWW
April 12, 2013, 07:04:06 AM
 #17

Here is info on that address.  Looks like Satoshi was sending satoshis.

https://blockchain.info/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa


Wow, people are paying homage to Satoshi by sending him bitcoins.  Bitcoin is now a religion.

sent my sacrificial Satoshi

good luck and or something.

fba606d3b48b66c52bb7e6597fe65c976d2da300ff57865c56c60b8840e9fa0b

Bitrated user: opticbit.
https://www.bitrated.com/opticbit
Bitobsessed
Sr. Member
****
Offline Offline

Activity: 291
Merit: 250



View Profile
April 12, 2013, 07:41:02 AM
 #18

Here is info on that address.  Looks like Satoshi was sending satoshis.

https://blockchain.info/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa


Wow, people are paying homage to Satoshi by sending him bitcoins.  Bitcoin is now a religion.

sent my sacrificial Satoshi

good luck and or something.

fba606d3b48b66c52bb7e6597fe65c976d2da300ff57865c56c60b8840e9fa0b

fef5386ffa462507127b3e315d46567d84858827cee2f8e102788e4064d255c1
apetersson
Hero Member
*****
Offline Offline

Activity: 666
Merit: 500



View Profile
April 12, 2013, 09:34:02 AM
 #19

fef5386ffa462507127b3e315d46567d84858827cee2f8e102788e4064d255c1

RAmen!
grau
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1000


bits of proof


View Profile WWW
April 13, 2013, 01:08:35 AM
 #20

I suggested that perhaps he just left it running, saving the best result, while he did the final preparation for the release.

Didn't he need to mine both block 0 and block 1? And unless he knew the Times headline before it was printed, that means he mined 2 blocks within 6 days, right? Isn't that the point of the headline, to prove that he hadn't premined more than that?
This is an appealing explanation.

He wanted the headline in the genesis. He needed a few days to patch and run the client for a strong POW on it, then deleted the superfluous
 code and started over with block 1,2...
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!