This sounds interesting, a method to vote by account, but removes the incentive to make a ton of new accounts? I'm not sure if I grasp the bottomline of this implementation, can you state in words how this will prevent someone from making a ton of accounts? Lastly, how can you calculate similarity? Can't someone can just put their coins through a mixer/exchange?
It won't prevent anyone from making a ton of new accounts, however when they use those accounts to vote for one option the accounts that appear to be participating in a organized manner will have their similarity increased,decreasing voting weight.
similarity starts as one for all accounts
Vote issue 1 is split by a 60% 40% vote
statistically a voter chosen at random will have a 60% chance of choosing the winning outcome, a person with multiple accounts has a higher probability initially.
Vote issue 2 is split by a 60% 40% vote
Vote issue 3 is split by a 60% 40% vote
BankA
x represents accounts that voted and won.
If BankA
1 contains [accounts a, b, c, d, x, y and z]
and BankA
2 contains [accounts b, c, y and z]
and BankA
3 contains [accounts a, b, y and z] and
b, y and z's similarity will be increased by .1/ (.216), .216 being the probability of that occurring naturally (.6^3). As the probability goes to zero the similarity is increased exponentially.
The mixer/exchange problem is circumvented by adding the timesVoted variable, the more times an account has cast a vote for an issue the more weight his vote will have exponentially.
So if you don't vote and try to game the system by varying votes between accounts you will be left in the dust by people consistently voting.
An account recently made will have 25% the voting power of a account that has voted once already.