TLDR: There are too many POW vs. POS threads, so let's fork bitcoin to annoy both sides of the debate.
There have been a lot of POW vs. POS threads. Here is a recent one:
https://bitcointalk.org/index.php?topic=905385.0I suggested there that someone should just choose a block time in the near future and modify the current bitcoin code to start using POS at that point. The effect would be to (purposefully) fork the bitcoin block chain into a POW chain and a POS chain. Everyone who has bitcoins at that block will have bitcoins in both chains. (Hopefully everyone reading this knows that if they "have" bitcoins on an exchange they don't "have" those bitcoins at all.)
To be honest, I want this to be done because I'm annoyed. I'd like for every repetitive POW vs. POS thread in the future to have someone come in and say: "There's already a version of bitcoin that is POS, go use it."
I'm POW vs. POS agnostic so I'd like this little project to be equally annoying to both sides. I suspect most people on both sides have chosen their side because that's where there investment lies (bitcoin for POW, some existing altcoin for POS). Neither of these people will be happy about a bitcoin-POS fork. I expect it to be ignored by almost everyone.
Or we can pitch it positively and say it's an experiment. But I'm not going to hide that my main motivation is annoyance.
I think this should be easy to pull off. Here's what I think would need to be done. If I've forgotten something or someone knows details, please let me know. This annoying project is also a good way to learn about the bitcoin source code.
Step 1: Take a copy of the current bitcoin code, presumably the new v0.10.0rc1.
Step 2: Decide on a block time for the fork. I'll suggest a block time that would cause the fork on January 3, 2015. That's a week from today and the 6th anniversary of the genesis block. Block 337200 should occur on that day.
Step 3: Get rid of any hard coded peers in the code and replace them with peers we set up.
Step 4: I suppose we should change the default port number and introductory handshake with peers so that we connect with each other instead of the current bitcoin-POW peers. If we don't do this, bitcoin-POW will still end up disconnecting from us (presumably) because we'll be delivering bad blocks after block 337200.
Step 5: Change the block version number from 2 to 3 and only accept blocks with version number 3 after block 337200.
Step 6: Find where blocks are checked for POW and, if the block is version number 3, check for POS instead. I've looked at some POS altcoins and it seems they have a fake coinbase tx first in the block and the second tx is the coinstake. The coinstake tx is the one that would get the reward and fees. The reward schedule would remain the same: currently 25 bitcoins and halving at the same blocks as bitcoinPOW. Oh, obviously the staking difficulty would need to be reset to someone reasonable for POS starting at block 337200. The code for checking POS could be copied from an existing C++ POS altcoin.
We could run our current bitcoin clients up to 337200. Then copy or move the .bitcoin directory to .bitcoinpos or something. Then start up the modified client. Then we have bitcoins on two block chains (one POW and one POS) and we can respond to annoying repetitive threads with information about an annoying fork that both sides would rather ignore.