Hungngo - Anonymous Voting System for Builder Reward Program

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

  1. 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.

  1. 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.

  1. 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.
  1. 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

26 Likes

@hungngo :wave:t6:
Great idea!
My favorite colors are Red, blue, and black. All these colors of our project!
We will change this world for the better together! We will build a new world!

7 Likes

It would be awesome if the app allowed you to click on one of the choices and it gave more information, not just the QR code… For instance with the Builder Awards, I am not sure the difference between Ecosystem Tools and Network Explorer… If when the QR code was shown, there was a url to the product post on forum, that would be helpful to know which each specific project are (as we may not use all of them and may not be familiar with each of them).

2 Likes

Would be also cool to see how many % of people voted already.

% of voted wallets & % of voted tokens

6 Likes

Is the times shown in the app local time? System time?

I like the idea. However even if we could get the total issued vote, it doesn’t reflect the number of distributed vote. It’s based on the issuer. They could just issue 10,000 votes and only distribute 1,000 votes.

1 Like

I believe it’s local time

Could there be a countdown timer?