Although I don't like the loan-based idea of Ripple, I think its consensus model is useful in protecting bitcoin against 51% attack.
Read more here:
https://ripple.com/wiki/ConsensusWe can apply consensus on top of the current PoW model. When a block has got 6-confirmations, nodes (both miners and non-miners; "validators" in Ripple jargon) will sign the block with their private keys, as a vote of its validity and uniqueness. In a normal situation, all honest nodes should come to consensus, and honest miners will never accept any conflicting blocks. Therefore, any secret 51% attack (secretly mining and suddenly releasing a longer chain) will never succeed for more than 6 blocks. Even a 1-million USD worth transaction is perfectly safe with 6 confirmations, which is not really safe with pure PoW.
There will be 3 classes of validators:
Elites: Same as Ripple, these validators should be non-anonymous to avoid Sybil Attack. Elites could be bitcoin merchants, devs, trusted OTC traders, and active forum participants. Elites will publish their GPG/bitcoin public key hash on their websites or on the forum.
Miners: Miners will include GPG public key hash (or public key hash of an empty bitcoin account) in their coinbase transactions, so they don't need to maintain a hot wallet for this purpose. Miners could be anonymous or non-anonymous.
Riches: Riches are holders of big account (aka. proof of stakes). For the same safety reasons, riches will publish an alternative GPG/bicoin public key hash with a specially crafted transaction. Riches could be anonymous or non-anonymous.
There will be overlapping between 3 classes of validators, especially if some were anonymous. Therefore, anonymous Miners and Riches will have lower voting power.
As long as the validators are highly diversified, the risk of these people colluding to defraud is extremely minimal. If they do so, that will destroy their real-world reputations.
In case of network-split, for over 6 blocks, we may need some human interventions. AFAIK, a split in this scale has never happened; and if it did, it would be a disaster on its own and the consensus model would not make it worse. Actually, the consensus model will make the system more robust against a network split, as people will find a large proportion of validators missing, and they will reject any new transaction until the network is re-merged. The current bitcoin client does not give any warning in case of suspected network split.
As we have checkpoints in Satoshi client, the system is technically not pure PoW. However, checkpoints are usually thousands of blocks behind and that's not enough to protect us against 51% attack. Philosophically, checkpoints are hard-coding the community consensus to the code. Why don't we make this process more decentralised and automatic?
I know this proposal is not new, but I think Ripple is the first one trying to implement this. Let's see how it works then we can implement it to bitcoin. As the bitcoin economy keeps growing, I believe this will give more confidence to all users and investors.
EDIT: I don't think Consensus nor PoW is safe enough on their own for millions USD transactions. However they are much stronger when combined and the whole thing is still P2P decentralised.