Comments (7)
from anonymousvoting.
Hi @yrdeboer
All votes sent to the smart contract are encrypted (ElGamal) with a ZKP that the vote is well-formed.
So an observer will just seen encrypted blobs hit the blockchain.
The magic trick in the protocol is that, by aggregating all the encrytped votes, it will cancel out all random factors and leave us with g^votes. We just brute force it from that point.
from anonymousvoting.
Hi, thanks for answering, how are you doing?
Yes, I think I understand that.
You are saying that all votes are encrypted so they cannot be read.
But I also understood that one can do the tally at any point in time.
Also after the first vote was cast.
So one could look up the historic block in the chain in which that first vote was cast then do the tally.
That would reveal the first voter's vote.
And then one would look up the second voter's vote and do the tally again.
Together with the result of the previous (first) tally, one could figure out this vote as well, etc. etc. ...
from anonymousvoting.
Ah, but wait, you need all votes you say before the tally becomes possible.
Is that because the contract will only start the tally once all votes are in or is that because it is cryptographically impossible?
from anonymousvoting.
from anonymousvoting.
That's pretty great actually 👍
Too bad there is no proof-generator that can run in the browser client-side yet!
from anonymousvoting.
from anonymousvoting.
Related Issues (20)
- how to run the code? HOT 2
- Browser-solidity : callback contain no result Gas required exceeds block gas limit: 4294967295 HOT 11
- Question: Does this require any trusted computing? HOT 1
- JS conversion of the Java file HOT 5
- Question: Is there something special about voters[1]? HOT 3
- Is it possible to avoid to restart the protocol if someone doesn't vote in round 2 ? HOT 2
- Chrome : MLHttpRequest cannot load http://XX.XX.XX.XX:8545/. Response to preflight request doesn't pass access control check HOT 3
- Loss of password of the private key after registration. HOT 3
- callback contain no result Gas required exceeds limit: 3000000 HOT 5
- ZKP for the multi candidate elections HOT 13
- WaveVote project HOT 1
- Polys
- anonymousvotingAddr.owner() always "0x" HOT 4
- Problems following the video tutorial HOT 2
- Gas consumption is too high to create AnonymousVoting contract! HOT 2
- encrypt on chain
- voting project using cosmos-sdk based on this project
- Strategies for alternative behavioural paths? HOT 1
- Question: can the user be guessed after submit the vote?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from anonymousvoting.