Today’s elections are present in the lives of most of the world’s population. In a context or another, there is the need to make a decision in groups. Bitcoin Cash was born in 2009 as a way of making peer-to-peer electronic cash available to everyone. However, due to its properties, and the concurrent technologies developed and being implemented on it, it allows for something considered up to recent as impossible: a digital voting system completely verifiable and auditable.
During years it was reasoned that a digital voting system was impossible to secure, due to the inherent risks of centralized computing. Paraphrasing the chief ideologue of the Free Software movement, Richard Stallman, the one controlling the computers, controls the results. For this reason, in various countries where electronic voting was implemented, it has been again replaced by paper ballots or at least its results severely questioned. But, who is in control of the big computer that is the Bitcoin Cash network? Each miner and nobody at the time. For that, we propose to show a simple model of how this can be effectively achieved.
Digital Voting Protocol in Bitcoin Cash
The election begins with the minting of an SLP token in the Bitcoin Cash blockchain. It is required that the minter of the tokens distribute one of them to every participant (or more than one, if the voting weight of each voter is variable.) Distribution of the tokens can also be achieved by an airdrop to holders of a previously existing token.
The second step is the one guaranteeing the anonymity of the participants. Several fusion rounds (using the CashFusion protocol) must be organized with a big number of participants (being this an optional step for the voter, those who wish to remain transparent can do so.) This avoids an external agent from learning the behavior of the voters while maintaining transparency in the election. The destination of the funds are unknown, but we can assure, being each participant responsible for his vote, than only the original receptors of the voting token can have a say in the election.
In the third step, which constitutes the election process itself, the voting token must be sent to one of various designated address, one for each option (these could be previously publicly announced in the blockchain). Once a determined block height is achieved, the tokens in each direction are counted and the result of the election can be easily and instantly computed.
Conclusions and Possible Applications
If the initial distribution was fair, then we have a voting system which is impossible to modify, completely anonymous and amazingly transparent, in which fraud is severely limited and in most circumstances could be easily detected.
It is interesting to think about possible use cases. Companies and other organizations with various stakeholders could make joint decisions without publicly revealing their postures and allowing a bigger participation, allowing smaller stakeholders to also partake. Also, villages and small cities could use this system to have fairer and safer elections, without an external agent being able to intervene in the final counting. There is also no need to go to a physical place to participate in the election, while maintaining integrity of the results.