Caution to reader: this blog post is 3 months or older. Blog posts older than three months may contain details about the Hack Reactor program that are no longer accurate. Please refer to other pages on our website to confirm current information and email us with questions.
Hack Reactor Students Build an App with Blockchain to Create the Ultimate Democratic Voting System
In the second half of the Hack Reactor curriculum, students form teams and build a fully functional real-world app of their own design. The Student Projects phase sharpens a range of skill sets: project management, scoping, app design, and all the coding skills from the first half of the course. The project phase can change as the curriculum is constantly optimized for educational power and efficiency.
Recently, several Hack Reactor students posed a question: Could Blockchain technology lead to a stronger democracy? During the project phase, they built an app to address that question.
Many of you might be wondering what a Blockchain is. At the fundamental level, a Blockchain is just a linked list with a cryptographic hash of the previous block. Thus, we have what is essentially an unalterable list of blocks and the information to go back to the original block. Of course, it gets much more complicated than this (things such as authentication, consensus, hashing, etc. come up), but the important thing to remember is that a Blockchain is just a new way of storing information.
What makes people care about the Blockchain? Blockchain technology allows the creation of decentralized systems that do not require trust between participants. This does not mean that Blockchain is “trustless”. Much like science requires trust in the Scientific Method and its participants, Blockchain still requires trust; it’s just that the trust is distributed across a larger number of parties. However, as long as incentives work properly and >50% of participants in the Blockchain are not bad actors, there is no requirement for individual parties to need to trust each other. This is what people mean when they say that Bitcoin is trustless.
How could this technology be used in the world of voting? Four Hack Reactor students: Evaline Bai, Norbie Magno, Paula Obler, and Michael Shin, created a secure and decentralized voting platform called BlockBallot to create greater transparency in our democratic processes.
Hack Reactor Grads & Creators of BlockBallot
Evaline, Norbie, Paula, and Michael were all interested in Blockchain. After thinking of use cases, the group of four realized how much of an asset this technology could be to the voting process. Inspired by the 2000 Gore vs. Bush Presidential Election, which required multiple recounts and even Supreme Court arbitration to resolve, and contemporary voter fraud, the four students set to work creating BlockBallot.
BlockBallot uses blockchain technology to enable its secure, online voting system. If you are new to blockchain, the following provides a quick introduction:
In plain terms, think of the blockchain as a complex database that any motivated party can access. Copies are stored around the world in a peer-to-peer network. Each element in this database is called a block, and each block is linked to another using cryptography. Information stored in this manner is highly secure and publicly verifiable.
A smart contract is a digital transaction protocol or a set of rules and instructions that define and govern different kinds of transactions made on a blockchain network. Although not unique to Ethereum, versatile smart contract technology is characteristic of the platform.
Below is a high-level summary of the BlockBallot voting process:
BlockBallot is a voting app built on the Ethereum Testnet (and pending deployment on the Mainnet). Organizations can create a ballot and automatically email each voter a unique link to the ballot. Upon creation, a copy of each ballot was cloned to a SQL database for easier front-end rendering. After a ballot is submitted, it is added to a list of pending transactions that will eventually be mined by the Ethereum Blockchain. The list of voters is stored is contained in an uploaded CSV, and each voter in that list will be emailed a unique code to access a ballot. Voters can then cast their vote, which will be written to the Ethereum blockchain through a Solidity contract and impermeable to data manipulation. After voting, the user receives a hash of the transaction and a record of the vote on Etherscan. No records of voter emails and/or which voters received which codes is maintained, thus maintaining voter anonymity.
Many people focus a lot of mental energy on cryptocurrencies, and rightfully so. These new forms of currency exchange area theoretically stable source of value (of course after the initial speculation is over) and are especially useful for people in countries where governments and other actors are not particularly trustworthy. Bitcoin is often referred to as digital gold. However, we often overlook the other uses of Blockchain. Could Blockchain fundamentally alter our societal structure and lead to a more just civilization, much as the erosion of the Divine Right of Kings did during the Enlightenment? The creators of BlockBallot seem to think so.
Haseeb Qureshi, former software engineer at Airbnb who in his own words left the company to chase the Blockchain, said the following about Blockchain: “Imagine you didn’t need to trust a stranger to make a deal with them. Imagine you didn’t need to trust your bank to deposit your money there. Imagine you didn’t need to trust your government to know it was being just and fair.
What would happen?
It would change the world.” - Haseeb Qureshi
Keep changing the world Evaline, Norbie, Paula, and Michael.