Objective
Provide Anonymous Voting System on top of Incognito Chain
Length
- Last week of June 2020: Incognito Builder Reward Voting.
- Mid July 2020: public authorized voting schema
- End July 2020: public unauthorized voting schema
Key Results
- Anonymous Voting system for Incognito Builder Rewards
- Anonymous Voting system with public unauthorized schema
- Anonymous Voting system with public authorized schema
- Anonymous Voting system with private schema
- Anonymous Survey
Solution Description
-
Why
Voting is a popular activity in our world today. From the beginning of human kinds, whenever a group of people needs to reach an agreement, we as social animals usually choose to collect the choice of all the people in that group. A fair, uncheated result is undoubtedly everyone’s desire. However, if we rely on a voting counting agency, a manipulated result is unavoidable. This is not a perfect world, sometimes people will behave badly for any kind of reason. Our modern world allows us to digitize voting activity, a voting system, which if works correctly, is much more trustworthy. Still, these voting systems are controlled by men or some organizations, to which they have full access. Therefore, the result could be twisted. Voter, a person who voted, sometimes can’t realize this situation or fail to prove.
Blockchain provides us a platform to build a transparent, immutable application. Ethereum successfully proves how the digital voting system can fit perfectly into Blockchain technology. A lot of voting applications have been built since then. All votes would be recorded publicly in Blockchain and counted by an algorithm, which everyone has the right to access. Blockchain with its immutable ledger gives us confidence in the final result. However, transparency also means publicity. Your choice can be exposed if there is a link between your address and real-world identity.
What if voters want to hide their identity, but still get an accurate final result? Ethereum and many other Blockchain will only reveal your virtual identity (address), not your real-world identity. This relationship can be linked easily via some kind of attack or in an authorized voting pool, in which voters must bind the address with a real-world identity. Despite Ethereum’s wonderful properties, the voting application needs Blockchain with privacy mode. This is where Incognito Chain comes into handy. Incognito Chain could provide a transparent, trustworthy, and private voting application.
-
Anonymous Voting with Incognito Chain for Incognito Builder Rewards
Incognito chain allows us to create new privacy tokens and these tokens can be transacted privately. Leveraged by these features, the voting system will possess a transparent voting mechanism, while hiding the voter’s choice.
Brief introduction to Anonymous Voting Application:
-
A simple voting poll will have a question, short description and many choices (options).
-
Each voting poll will be represented by only one token, vice versa.
-
Each choice (option) in a poll has one associated Incognito Payment Account, consisting of Payment Address, Read-only Key, Private Key.
-
One vote in a poll is equal to one unit of privacy token, which means one token is equivalent to one vote. In other words, owning an amount of token from an associated poll is equivalent to having the right to vote. This is the essential part of Anonymous Voting Application.
-
A person votes for a choice by sending some amount of token unit to the choice’s Payment Address. Notice, one unit of token equal to one vote, which means 10 units of token equal to 10 votes.
-
The number of votes for one choice is the number of poll’s token that its address has received until the poll is closed.
-
The system counts one choice vote by inspecting its received transactions, which can be decrypted using Read-only Key and Payment Address. After a transaction is decrypted, it only reveals the amount of token (votes) not the sender. This method allows the number of votes to be transparent while maintaining the identity of the sender hidden.
-
Read-only Key and Payment Address will be public, users are able to verify voting results easily through many approaches (Incognito Chain RPC, Anonymous Voting System,…).
Our core business logic and data will be on Incognito Chain. Voting application only holds data for quick access and provides a better UX.
-
Key Points:
- Ultimately privacy for senders. Bring the sender the courage to speak up the truth.
- Transparency vote data in Incognito Chain with verifiable methods.
- Voting, core business logic, will be runned on top of Incognito Chain.
-
Demo
A. Show anonymous voting polls
Two voting poll at current time, one is still opened other is closed
B. Create new anonymous voting poll
C. Show anonymous voting poll
Title: What color is better?
Content (Description): This question is about your favorite color
TokenID: 05caec3527699ea8d1bc37befd8f737f4432454c6584dd58f8ea2e36b10f8e7d
Option:
- Red (Payment Address: 12Ru9wbUSt3o5rmGnkk51vZPEUpUD3rjgbu89pSDZtuJ7kWcFajC8HLsroqZWdYuSjpQiqpV8XFAANbpY8yoeEaFZKvNnHtaL3RmByP)
- Blue (Payment Address: 12RxN67rj841ghW8V38RCL2w3Tx5HbX1gak1An3aeD2a3Rv33zoQczb428vCWihQ7nR4DdAgmD2oh46eKHArGh4TG6Gux3HYKe8UBgK)
Vote for Red address equals to send an amount of token (ID: 05caec3527699ea8d1bc37befd8f737f4432454c6584dd58f8ea2e36b10f8e7d) to its Payment Address.
D. Scan QR code to vote for a option
This is the Payment Address and its QR code from the “red” option. Scan and send a token to it.
The first version is expected to be release next week, 24 Jun 2020 for Builder Reward Program. We will send out a detailed tutorial about using Anonymous Voting System when it is released.
I am Hung Ngo from Incognito Core Team, but i joined this project as a Community Member. I really love Anonymous Voting and Incognito Chain have a wonderful platform.
Thanks @ning @annie for your great support also other member of the team. Also many thanks to @altair (the great eagle) for your faucet app, without your application things would be much harder for me.
Hey guys, I am desperate for your feedback about everything, ideas, working flow, UI/UX. Please give me a hand