Follow Us

Header Ad

Latest Posts

Categories

bitcoin core – how does GHOST protocol really work?

I think the main thing you’ve missed is the problem GHOST set out to solve.

It’s first and foremost intended as a scalability/speed upgrade. We want to increase the size of each block and/or decrease the interval between blocks. Either of these would increase the ratio between propagation time and block interval.

The higher the ratio is, the more we get that blocks are mined at the same time. And then lots of honest hashrate is wasted on blocks that get orphaned.

This makes it easier for an attacker to attack, because he doesn’t need to have more hashrate than the honest network – he only needs to have more hashrate than the unwasted hashrate of the honest network.

This isn’t much of a problem now, when blocks are 10 minutes apart and are about 3MB. But if we were to try to, say, reduce the interval between blocks to 1 second, the time to propagate blocks will be a multiple of the average time to find a block, leading to huge waste and an easy attack.

GHOST (and the more recent SPECTRE) is designed to allow us to increase block size or speed without this waste.

Contrary to what you said, simply adopting GHOST will not cause less branching in the block tree. It will just mean that we won’t waste hashrate due to this branching.

Re question 3 – I think you’ve got things backwards. The way a double-spending attack works is:

  1. Attacker pays merchant, tx is included in the honest chain.
  2. Merchant gives product.
  3. Attacker releases secret chain, where the tx is replaced by one that credits the attacker.
  4. Attacker has both the product and his money.

If you are not up-to-date on the network state, and think the attacker’s chain is winning even if it’s not, you’re actually better off – you will see that the attacker intends to not pay, and you will know not to send the product.

After I send the product, I want the whole chain to recognize the tx that pays me. Even if there are nodes which are not up to date, and briefly believe the attacker’s chain is valid – that will resolve quickly after they receive the blocks they’ve been missing (and see that the honest chain has more weight).

    Leave Your Comment

    Your email address will not be published.*

    Forgot Password