Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Frozenlock on May 23, 2011, 06:50:30 PM



Title: The longest blockchain is the truth?
Post by: Frozenlock on May 23, 2011, 06:50:30 PM
If I understand correctly, when the client is faced with two different blockchain, the longest will prevail.

If it's the case, wouldn't be possible to generate a longer blockchain (starting from scratch, or almost) by simply using an easier difficulty than the network?

The new blockchain would then be seen as the truth and the real one simply discarded.

I must be missing something. Could someone please enlighten me?


Title: Re: The longest blockchain is the truth?
Post by: jimbo77 on May 23, 2011, 06:52:01 PM
If I understand correctly, when the client is faced with two different blockchain, the longest will prevail.

If it's the case, wouldn't be possible to generate a longer blockchain (starting from scratch, or almost) by simply using an easier difficulty than the network?

The new blockchain would then be seen as the truth and the real one simply discarded.

I must be missing something. Could someone please enlighten me?
It picks the most difficult chain.


Title: Re: The longest blockchain is the truth?
Post by: xlcus on May 23, 2011, 07:11:14 PM
If it's the case, wouldn't be possible to generate a longer blockchain (starting from scratch, or almost) by simply using an easier difficulty than the network?
That's freaky.  I was thinking the exact same thing earlier today.

It picks the most difficult chain.
And that makes sense :-)


Title: Re: The longest blockchain is the truth?
Post by: BitterTea on May 23, 2011, 07:22:48 PM
The difficulty for which the block was generated is encoded into the block header. The "length" of a chain is actually the sum of all of its constituent block's difficulties.


Title: Re: The longest blockchain is the truth?
Post by: Dobrodav on May 24, 2011, 05:39:14 AM
Header you say ? Om-nom-nom. I should think about it.


Title: Re: The longest blockchain is the truth?
Post by: knightmb on May 25, 2011, 03:16:08 PM
If I understand correctly, when the client is faced with two different blockchain, the longest will prevail.

If it's the case, wouldn't be possible to generate a longer blockchain (starting from scratch, or almost) by simply using an easier difficulty than the network?

The new blockchain would then be seen as the truth and the real one simply discarded.

I must be missing something. Could someone please enlighten me?
I brought this up a long time ago, basically I called it a reverse-time attack. You generated a block chain with 2 PCs at the lowest difficult and wait until it over-takes the real block chain and then bring that block chain into the network. To get around the issue, the clients since had a hard-coded block lock put into place with every release. That way if someone did try this, the clients would see that the block chain history didn't match the new "fake" generated chain and refuse using it.

The only reason that attack would work is, 1) you get a perfect 1 block / 10 minute generation cycle. This would eventually catch up with the real block generation because it can vary from 10 minutes to an hour sometimes 2) There was nothing in the software to say otherwise until the block chain locks were added

The effect would be, you would wipe out all transactions and end up owning all the bitcoins generated with that fake block chain. But like I said, something to counter that was put into place long, long ago.  ;D