Organising a vote requires a substantial organisational effort in order to fully ensure the correct performance and outcome of the process. These stringent security requirements often make it impractical to carry out voting initiatives on social media platforms.
Ballotchain allows for an online process with the same guarantees of a public election.
Who controls the online platform?
How can I be certain that the votes are counted correctly?
Who ensures the system availability for the duration of the election?
How can votes be verified, even after the voting is finished?
In the context of public elections, these critical aspects are managed at a significant cost: just consider the various figures involved in the control and in the calculation of votes (counting managers, polling station managers, law enforcement personnel) and the characteristics of the equipment used (voting cards, stamps, special pencils).
Ballotchain is a solution dedicated to making every online voting initiative as secure and verifiable as a public election.
All guaranteed even in case of availability attacks, thanks to the specific characteristics of the Blockchain Technology.
The fundamental idea of the Ballotchain solution is to match a Bitcoin transaction to a vote cast by an elector in support of the candidate selected by the voter.
Every vote therefore benefits from the characteristics of a Blockchain transaction, namely: It is non-modifiable; It is non-repudiable; It cannot be registered in multiple ways; All nodes possess a valid copy.
In practice, a voter casts their vote by giving a Ballotcoin (a small amount of cryptocurrency as desired) to the wallet of their candidate.
Currently, the organisation of a vote whose results are officially accepted requires the simultaneous presence of all participants for the vote and for the polling (e.g. voting by show of hands) or calls for the planning and execution of an ad hoc process in cases in which the vote is carried out at more than one location, which happens for example during public elections The latter situation requires the involvement of a large number of players who can guarantee the correctness of the outcome and ensure the voting process is carried out correctly. In addition, this scenario also requires a secure channel that cannot be interfered with for sending the results of each polling station to the central agency that will aggregate the various results.
The vote counting system can be characterised by anomalies that distort the result, but since there is no alternative verification mechanism, this factor may not be apparent.
Leveraging the expertise in the Blockchain field, Ballotchain has been specifically designed to overcome the limitations of online voting and to equal, if not to exceed, the guarantees provided for by a public election.
Can the central body be trusted to store and count votes?
Is it possible to stem the phenomenon by which the same voter casts multiple votes using different IP addresses or accounts?
The final count of votes will be carried out by counting the number of transactions on the Blockchain addressed to the wallet of the individual candidates. The winner of the vote will be determined by identifying the individual who has received the largest number of transactions.
The Ballotchain solution is supplied in the form of an HTML 5 Web Application, featuring a responsive design supported on PCs, smartphones and tablets.
The voting use case: the voter logs into the system, specifies their preference and casts their vote. The application performs the operations in the Blockchain on behalf of the specific user, without any corresponding impact on the User Experience and ease of use of the application.
The polling use case: the voter wishes to view the result of the vote, therefore accessing the results page that will display the total number of votes received by each candidate. In this case, the application will provide a graphical representation of the result of the Blockchain exploration.
Currently, the Ballotchain solution relies on the RegNet Bitcoin Blockchain services in order to allow for experimenting in a controlled environment, ensuring that the purchase of real Bitcoins is not required while offering a solution offering speed and versatility for resetting the network and carrying out security testing. The application is also designed to run on the TestNet and MainNet networks, for beta testing and operational scenarios.
The ability to experiment with scenarios in which transactions are pre-mined and whose validation is instantaneous.
A Business Logic layer developed on the Apache Tomcat platform that interacts with a Database of candidates in order to present the user with the list of candidates. It is also responsible for interacting with the Blockchain using services made available by the Open Source BitcoinJ library for two types of activities (Forwarding of transactions according to the selections made by the voter; Identification and counting of transactions that represent a valid vote).
The information that maps the candidates and the respective addresses of their wallet is stored in a MySQL database.