I think the idea of proof-of-stake is quite interesting...
I've read the paper on the website, but didn't have time to check the source code, yet. I do have some questions about thing the paper doesn't explain:
- Exactly what is used as input in a coinstake transaction? My best interpretation would be that all outputs in your wallet are included, such that the correct coin-age can be computed. Wouldn't this effectively kill privacy as it links all your outputs together?
- Will proof-of-stake result in the richest people having to say the most? Exactly what decision could they force by using their PPC-wealth?
- Is it possible to keep PPCoins laying around for a long time, just to build up coin-age and use this to force some decision onto the network at a later time?
- What outputs can be used in the coinstake? Must those output be consumed already or must they still be available?
As I said, I didn't have time to check the source code, so some questions may be answered that way. However, I'd like to hear your view on the questions I posed.
In any way, I think you're doing some good work in creating an implementation to start trying new ideas!
- coinstake does not put all your coins inside, as you observe correctly that would compromise privacy. the built-in minter only sometimes try to combine small coins from the same address/key
- yes and that's intended, just like in proof-of-work case those who own the highest hashrate having the most say. they could affect the decision in deciding main chain.
- to a very limited extent yes. this question has to be considered with our v0.2 main chain protocol, which will use proof-of-stake difficulty to score competing chains. you'd need to accumulate a *lot* of coin age to force large reorgs, my estimate is you need a large portion of all coin age currently participating in the protection of the network. So I classify this sort of double-spending attack on the same level of 51% attack on proof-of-work.
- output is no different from user transaction, only difference is it includes a reward (proof-of-stake mint) and is held for maturity (520 blocks same as coinbase)