3 ms·
A blockchain (at least one used like this) is not the right tool here. Really, all you need is some sort of publicly-defined machine-readable representation of
by lukeschlather 7y ago
A blockchain (at least one used like this) is not the right tool here.
Really, all you need is some sort of publicly-defined machine-readable representation of your vote that gets a digital signature locally on your device. You have an open-source app that can sign the vote payload. Then you send the signed payload to the server where it gets added to a plaintext repository.
At this point it would be good to use a signed chain (like git for example) and at this point you "commit" your vote with a timestamp and send the result back to the client. (Commit hash and timestamp.)
Then later, you could just look for the commit sha and timestamp. Of course this means anyone with access to your signature can see who you voted for. Which is a general shortcoming of signature-chain systems.
Another way of doing it might be to have two different blockchains. One has signatures + votes and the other has only the signatures. The one with only the signatures is publicly posted, and the one with signatures + votes is privately audited. The trouble is deciding whether you value anonymity or integrity more.
Of course, in this case it's not clear what the people involved value, since the blockchain is private and just a database that anyone can recreate from scratch at any time.