Quote from: zack on September 02, 2014, 05:53:41 PM
With your method, if there was a fork in the blockchain, the miner who made the longer branch would be able to control all the votecoins from everyone who voted on the shorter branch. That single miner would likely have over 51% of votecoins, and he would cheat.
No - all he could do is to change the votes for a single ballot. And he even can not do this because it could be separated by time. Lets say hashed votes could be submitted until 01.01.2015. Then the revealing phase starts at 03.01.2015. If the miner not gets the "vn" values / revealed votes all he could do is change votes in a blockchain older than 24h and try to overtake a blockchain that is more then 24h ahead - he could only do it if he head way more then 51% hashrate and even then he did not control any votecoins for the next ballot (because he can not sign new votes). Thus this blockchain would only have votes from the votecoins the attacker controlls.
Quote from: zack on September 02, 2014, 05:53:41 PM
With your method, if there was a fork in the blockchain, the miner who made the longer branch would be able to control all the votecoins from everyone who voted on the shorter branch. That single miner would likely have over 51% of votecoins, and he would cheat.
There should be a punishment for revealing your hash ahead of time.
Revealing you hash ahead of time makes it easy to collude. So we need a punishment for people who do it.
That is why I remove all the votecoins from people who reveal their hash ahead of time.
Losing control over this vote on this specific ballot is enough punishment to avoid collusion.