Please keep this discussion purely technical. There is no way in hell that ASIC miners will accept such change.
I am always thinking of a mixed proof-of-work alt-coin. It will involve 2 or more hashing algorithms, let's say SHA and Scrypt. A block will be either SHA or Scrypt, indicated by a new field in the header. There will only be one chain, which means SHA and Scrypt blocks will be linked together (it's like PPC). So the blockchain would look like
SHA->Scrypt->SHA->SHA->SHA->Scrypt->SHA->Scrypt->Scrypt->SHA->............
However, to mine consecutive blocks of the same type, the difficulty will be increased by 10%. On the other hand, the difficulty will be decreased by 10% if it is building on consecutive alternative blocks. In the above example, the difficulty will be:
SHA (diff = x)->Scrypt (diff = y)->SHA(x)->SHA (1.1x)->SHA (1.2x)->Scrypt (0.8y)->SHA (x)->Scrypt (y)->Scrypt (1.1y)->SHA (0.9x)->............
The factor will have upper and lower limits of 1.5 and 0.5.
The difficulty change is determined separately for each hashing algorithms. For example, the difficulty for SHA mining is determined by the time span of the last 2016 SHA blocks, regardless of the number of Scrypt blocks in between.
Advantage of this system:
1. It's much more resistant to 51% attack as the attacker needs hashing power in multiple algorithms
2. Mining will be much more decentralised. We may use 3 algorithms: a strong Scrypt dedicated to CPU mining, SHA-3 suitable for GPU and FPGA mining, and SHA256 merged mined with bitcoin.
3. Breaking one of the algorithms won't break the system immediately, buying more time for a fix
4. It will also provide a feedback mechanism in case one of the block type is growing too slow or too fast. Jumping between alt-chains has become a big trouble because the difficulty won't decrease before next difficulty change. In the proposed scheme people will jump back when there is a difficulty discount and keep the chain moving.
-------------
Up to now, it's all about a alt-coin. However, I just realize that this could be done in bitcoin, with a soft-fork.
To make this a soft-fork, the backbone is still SHA256, while making some tricks in difficulty and include some extra data in coinbase.
1. Assume that we start with a traditional SHA256 block, with difficulty of z. We require that the next block will be an SHA256 block with difficulty of 2z. (since a higher difficulty is required, it is backward compatible)
2. Now we have a new SHA256 block of difficulty 2z. It correspond to the first SHA block in the previous example with difficulty x. Here we call it block A.
3. Scrypt miners start to build blocks on block A with difficulty y. The block will only contain a dummy coinbase transaction, specifying some outputs he wants. The sum of the outputs must be equal to or less than 50% of current block reward (i.e. 25/2=12.5 for now). Since this block is invalid for existing clients, no real bitcoin is generated in this process. Here we call this block B.
4. After blocks A and B are generated, there will be no restrictions on the hash type. Miners will build on block B.
4a. Scrypt miners will work on difficulty 1.1y. Again, the block will only contain a dummy coinbase transaction
4b. SHA miners will work on difficulty x. To make it backward compatible, the prevblock in header is pointing to the last SHA block (i.e. block A), while he has to put the hash of block B in coinbase. In the coinbase transaction, he has to distributed 50% of the reward to the earliest unpaid Scrypt block (i.e. block B) based on its dummy coinbase transaction. The SHA miner will also process transactions normally, and will keep the fee (*OOPS....I find a problem when I am typing this: what to do when block reward becomes smaller and smaller?)
5. If there is a long consecutive Scrypt chain, SHA miners will work on difficulty 0.5x = z, still backward compatible
6. Everything looks unchanged in the view of old clients, except that new blocks come 50% slower. However, this will be adjusted in the next difficulty change.
------------------
For obvious reasons ASIC miners will not accept a change like this (We might have a very slim but non-zero chance to do this before ASIC arrived and majority of GPU miners thought it was good). So this is a pure technical discussion. Just want to show how flexible the bitcoin protocol is and hope something really useful could be developed with similar schemes.
For *OOPS, we may distribute the fee the Scrypt miners (but it sounds not very fair). Instead of specifying the exact value in the dummy coinbase tx, Scrypt miners will specify the distribution in percentage.