dVote - Decentralized voting application using Ethereum. Also allows you to donate Ether to your favorite candidates and view their total campaign funds, allowing transparency throughout the election.
“Every machine has to be programmed with the ballot design, and that programming is copied in by election officials on a USB stick or memory card. If someone can infect that programming, they can spread an attack to the machines and potentially tamper with a fraction of the votes without anyone detecting it.” By Matin Giles, Your Vote is in Jeopardy, MIT Technology Review.
In addition to the security issues, there are all kinds of problems in vote tallying and reporting, gerrymandering, etc. Blockchain has two special properties that could be used to help improve our current voting situation in the United States. One is immutability, the other, transparency. Every transaction, including votes, would be logged onto the blockchain and available for everyone to view. Meanwhile, vote-recording would become immutable once a block is successfully “mined” and become a permanent part of the election history.
What it does
Provides an easy way to vote for any candidate. Also provides an option to donate for the causes of your favorite candidates, and view their total funds.
How we built it
We employed the Truffle Framework which allows us to build decentralized applications on the Ethereum blockchain. It provides a suite of tools that allow us to write smart contacts with the Solidity programming language. It also enables us to test our smart contracts and deploy them to the blockchain. It also gives us a place to develop our client-side application.
We also use Ganache which is a local in-memory blockchain. It will give us 10 external accounts with addresses on our local Ethereum blockchain. Each account is preloaded with 100 fake ether.
In order to use the blockchain, we must connect to its network. We’ll have to install a special browser extension in order to use the Ethereum block chain. That’s where Metamask comes in. We’ll be able to connect to our local Ethereum blockchain with our personal account, and interact with our smart contract.
Challenges we ran into
Accomplishments that we're proud of
We're proud of the fact that our app can tackle problems in existing voting system by providing mechanisms that make:
- voting immutable and virtually tamper-proof (duress and other forms of crime maybe still be an issue)
- campaign contributions will be secure and transparent using Interledger payments
What we learned
Building a Full Stack Blockchain application by leveraging different technologies like Solidity, Ethereum, Truffle, Ganache, Node.js, Interledger and MetaTask, helped us learn a lot throughout this project.
What's next for dVote
- Adding features like 'current affairs' to help the voters make an informed decision about their votes and donations
- Improved UI/UX