How would one inject a blockchain fork to the Bitcoin network?

2

For theoretical purposes, how would one inject a blockchain fork in to the Bitcoin network? For example, lets say we have a small chain of blocks prepared in a program that is not a standard client / standard client with modified code. Can one force a client to accept those blocks through getmemorypool RPC command, or will the client not accept any block that would not go at the tip of the current blockchain?

What are the ways of getting a blockchain fork into the Bitcoin network?

EDIT: I'm not talking about alternative blockchain forks, like SolidCoin, etc., but rather about a fork in the standard Bitcoin chain/testnet chain that would cause some blocks to be orphaned.

ThePiachu

Posted 2012-02-27T13:20:17.040

Reputation: 41 594

1I'm not sure what is the problem? Clients will reorg to the longest chain they are aware of, as long as it is consistent with the hardcoded checkpoint, which are pretty far in the past.Meni Rosenfeld 2012-02-28T05:35:56.873

1@MeniRosenfeld I'm not sure if the standard client would accept such a chain one by one through GetMemoryPool JSON command (in which case it would be easier to program for), or only through a getblocks or other message from a peer.ThePiachu 2012-02-28T07:49:07.510

Answers

6

Just pass the blocks one at a time to your official bitcoind program, and it will broadcast them to the network. You don't need to do anything tricky, except for somehow manage to hash faster than everyone else combined.

Chris Moore

Posted 2012-02-27T13:20:17.040

Reputation: 13 952

-2

If you modify your client in such a way that it is not compatible with other clients, you will split the block chain for you and anyone else that uses your version of the client. If you can get more than 50% of the Bitcoin Network to adapt to your client, then it will become the official fork. There probably will be a hard fork made to the official core someday if consensus is reached on desired Bitcoin attributes.

cbeast

Posted 2012-02-27T13:20:17.040

Reputation: 83

There are several alternate block chains. They each have different schemes for block rewards, fee structures, scripting, etc.cbeast 2012-02-27T16:03:20.810

1Just as a side note, I'm not really talking about changing the protocol and causing a fork like this, but rather making blocks that are valid in the standard client, but would replace some of the already existing blocks.ThePiachu 2012-02-27T19:55:04.863

@ThePiachu - Thank you for clearing that up. This is hypothetically possible, but due to variance it is mathematically pointless conjecture. If attempted in reality, it would most likely be recognized as an attack.cbeast 2012-02-29T13:27:44.457