Ring Signatures based anonymous voting
(Barreto-Naehrig 256 bit Elliplic Curve)
The goal
Create a cryptographically proofed anonymous method of decision making, especially relevant in sensitive spheres like life support, executions, mercy-killing etc.
Solution
On-chain anonymous voting based on Ring Signatures
How it works?
Overview
1. Creation of voting
Judge:�— Creates a voting on some topic, f.e. "Death sentence hearing on case #01232".
— Publishes N public keys of juries and sets quorum number M: M <= N — amount of needed votes "for".
— Sets voting deadline.
2. Voting process
Each jury:�— Generates message, voting "for" judge's decision. Voting "against" is passive (just do nothing).
— Generates ring-signature for this message, using public keys of other juries (under the hood).
— Sends transaction with ring-signature to contract.
3. Decision
If M of N votes "for"�is reached,�action is performed.
The Library
We’ve implemented the library for protecting any function of any contract with anonymous ring multisignature.