Votes need to be "encrypted" in your implementation to stop voters from colluding, I know.
It is necessary that voters have an incentive to lie to each other about how they voted.
Usually for situations like this, encryption is not used. Instead of sharing the encrypted tx, you would share the hash of the tx.https://github.com/zack-bitcoin/Truthcoin-POW/blob/master/txs_truthcoin.py
lines 258-270 explain how the 2 types of txs change the database.
lines 52-101 explain the conditions for those 2 types of tx to be valid.
SHA256 is very collision resistant, so it is virtually impossible to find 2 different tx which have the same hash.
Using the hash this way gives the desired behaviour, without exposing us to the risk of long-range attack.
I was first taught the limitation of long-range attacks by gmaxwell. He is a really smart guy. He was helping work out the details for the proof-of-stake system that I was designing with Vitalik Buterin. That is the same POS system that I want to rebuild truthcoin on top of.
I think that my skillset is more suited to the truthcoin project than gmaxwell's would be. Is there some particular ability of gmaxwell's that you desire?
zack, on this forum, you have proposed perhaps a dozen changes to Truthcoin which you feel are improvements. So far, they have all been largely nonsensical, or outright open the project up to attack. When you take up my "truthcoin time" (about one hour a day) with these questions I cannot use that time to work on other Truthcoin things.
Feel free to delete any distracting things I say on the forum.
Could you point out the nonsense that I have mentioned? Things I talk about are all inside of the code I wrote.
I am trusting you to correct me on the forum, so that I don't put nonsense into the codebase. Please give me specific examples of my bad ideas so that I may fix my code.
My feelings toward you are very reverential. I would have never found this project if it were not for the great explanations you gave.
These concepts are really complex, and you were first to figure them all out at once. I cannot thank you enough for this.