[Ethereum] What do the parameters in the Ropsten genesis file mean

genesisgo-ethereumparityropstentestnets

Here's a snippet of Geth's Ropsten genesis:

"config": {
"chainId": 3,
"homesteadBlock":0,
"eip150Block":0,
"eip155Block":10,
"eip158Block":10,
"eip160Block":10 }

It appears that chainId is the same as networkID (3), which is indeed what it's called in Parity's Ropsten genesis. Most other values in Geth's genesis can be explained by this. 3 questions:

  1. What do the other config values mean, and why are they needed (since homestead is quite old)?

  2. Why do specific accounts need to be explicitly allocated a balance of zero?

  3. Who are the key holders to this account?

"874b54a8bd152966d63f706bae1ffeb0411921e5": { "balance":
"1000000000000000000000000000000" }

Additional information about Parity's Ropsten genesis would also be welcome.

Best Answer

What do the other config values mean?

Ethereum has been live for a long time. Over time, patches and improvements are applied to the chain for better stability or more features. This goes for Homestead (which added e.g. the longest-chain rule) and many Ethereum Improvement Proposals (EIP). When the rules change, new transactions and blocks comply to those rules. Old blocks stay the same because they have already been verified

If you are testing software that uses Geth, you want to simulate a realistic blockchain so that you don't run into surprises in production. That's why you need a few of these "old-new" transitions. You don't want to copy the entire live chain, so instead you tell Geth that EIP 160 was introduced at block #10. Blocks #1 through #9 will not have it, and block #10 will.

Why do specific accounts need to be explicitly allocated a balance of zero?

They don't. If the balance is 0, you may as well leave it out and create a new wallet. I don't know why these accounts exist, but judging by the hashes they are bogus accounts. They have no transactions, and since a hash cannot be reversed, you'd have to be very lucky to generate accounts that start with that many zeros.

Edit: it seems like these accounts are precompiled smart contracts. They are built into the blockchain upon initialization, and therefore use a declared address rather than a generated one. See Out of Gas invoking precompiled contracts on private blockchains. I'm not sure why they have a balance of 0 rather than 1 Wei. Maybe something has changed since that question was posed.

Who are the key holders to this account?

It's safe to say the Ropsten devs control that account. It is a huge stash of Ether. After the blockchain is created, the only way to make Ether is mining, which is more expensive than simply having a starting budget.

There is an Ethernet Faucet where you can "tap" Ether for free for your own purposes. Some money on the faucet account can be traced back to the origin:

  1. 1 billion Eth from initial account to intermediate account
  2. 10,000 Eth from intermediate account to faucet

Of course, this is not nearly enough to supply the Faucet, but at least it's evidence that the original account and the Faucet are owned by the same people. If we could find the biggest transaction received by the Faucet, I'd expect to see that it received most of its wealth from the initial supply.

Related Topic