I am an undergraduate student studying Ethereum in South Korea.

Currently, I am developing an online election system that can be applied.

At first, I came up with this idea:

  1. The system has an ETC that matches the number of voters.
  2. Verify that the voter has the right to vote.
  3. If a voter can vote, open a personal account; the system deposits 1ETC into the account.
  4. After the election, count the results.
  5. Voters can check where they deposited their money through their personal accounts (only themselves can check the address of the account).

And after studying the ZKP(Zero-Knowledge Proof), I found that voters could prove they voted for someone without opening their personal accounts to the system.

We also found that the system only needed to have encrypted remittance records, not personal account information.

This can help secure voter information(The system does not own personal information).

But if I develop an online election system using Zero-Knowledge Proof, I wonder why need to use Ethereum?

Without using Ethereum, I think the hash function allows us to implement the ZK-proof and create functions such as remittance and voting.

So I ask this question.

1. What is a rational reason why we must use Ethereum?

2. Without using Ethereum, can I create a safe election system? How can I prove that stability?

Even if you think I have a low understanding of Ethereum, please provide me with a chance to learn and grow.

Thank you.

  • You do not have to use Ethereum mainnet, you can deploy your own Ethereum network. Construction of a safe electronic election system is research subject that is out of scope for this QA site.
    – Ismael
    Aug 23, 2019 at 20:52

2 Answers 2


I think the first question should be 'Why we must use blockchain?', you will understand why.

If you use normal database center like what we mostly use on the internet everyday for electric voting, then a center server can control your vote so in theory, they can modify it, delete it, ... And in defcon25 they show that it is VERY EASY to hack into a voting machine.

So what make a blockchain system better. A thing about blockchain that it is public and immutable. For example, if you want to store a number to a blockchain, you broadcast to everyone who participate in that blockchain that you want to store a value 2 and everybody know about that. So if somebody try to change that value from 2 to 3, they must do the same, broadcast to everybody that they want to change that value from 2 to 3. But if you only want you to be the one who can change that value so nobody else can change that value and if anybody does try to broadcast that to the blockchain, everybody will reject it because it is invalid.

Ethereum is just a system build upon that blockchain idea. So you can use any system you like that use blockchain, you can even create your own blockchain just for voting.


You are on the right track. The problem zkp solves in online voting is distinct from the vulnerabilities that blockchain protects. Blockchain essentially guarantee censorship resistance even more than the immutability aspect (which it solves for as well). The immutability of the record could be simply solved by allowing voters to download the records and keep them. What centralized solutions don't account for that blockchain solves would be scenarios where someone would pull the power cable of the server where the election is running effectively preventing it to solve the referendum/election/petition, wtv. If it is run on top of a distributed ledger no system admin can tamper with it because that would require a coordinated attack on multiple computers spread accross the world.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.