User Voting Protocol

I don’t know what the core team has going on behind closed doors, but I’ve been trying to invent a solution to the problem of voting. I think everyone is aware of the (awesome!) Zen stones logo that made it to the final round of logo voting. One user cast 20 votes, putting it in the top 7 contenders. I believe it clearly shows that the system implemented for that particular vote is seriously flawed. There needs to be a way for each user to cast just one vote for little or no fee. I’m not a developer, so I would have no way of putting this together as it involves making changes to the Zen code base, but here is my idea:

-Matters subject to voting should take place on dedicated sidechains.
-A new software wallet (set of commands) needs created that can accomplish voting.
-A new type of V-Address needs created for sending/receiving votes.
-For each user, hash top 100 T-Addresses in wallet.dat for unique voting fingerprint. This fingerprint is known only to the user.
-Unique voting fingerprint is submitted to voting issue sidechain in exchange for 1 voting token.
-Fingerprint is recorded on voting issue sidechain and blocked from further token creation.
-Token is deposited to user’s one-time-use V-Address.
-V-Address is public like T-Address.
-To vote, the token is sent to the sidechain vote address and is therefore registered as having voted. No additional uses of that V-Address is permitted.
-A new V-Address is created for each new voting issue.

Hopefully this would at least limit one vote to each wallet.dat. Each vote is public and countable, but not traceable back to any specific individual or known address. Users could always create new wallet.dat files to gain additional votes, but that process is at least slightly cumbersome. Perhaps a nominal “stake” balance needs maintained in the wallet for the process to work?
Any thoughts?

Here Rob speaks about what we want to do