The current scenario - Critical aspects
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 internet has long been used as a voting medium, in order to implement a process with lower costs and that could be applied to a community of voters who are distributed geographically. The idea is based on the centralisation of the voting process within a single Web Application. This solution entails a number of disadvantages compared to the “physical” counter-scenario:
- It is necessary to trust the entity that organises the vote, in so far as this is the only party able to access the voting data and in a position to carry out the polling;
- The system may fall victim to availability attacks, with the possible loss or corruption of data for votes that have already been cast;
- 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.
These guarantees allow the main problems faced by traditional online voting platforms to be overcome, such as:
- 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?
- Is it possible to access the result of the vote if the Web Application goes offline or is subject to an availability or data attack?/li>
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 use cases developed
In order to demonstrate the effectiveness of the system, a Web Application prototype that supports two use cases was developed:
- 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.
The solution architecture
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 various advantages of using RegNet during the prototyping stage include:
- Increased speed of data set-up for small size scenarios (instant set-up that does not require downloading the previous Blockchain);
- The absence of a monetary value associated with the Bitcoins or fees payable to the data miners, which introduce delays in the validation of the voting
- The same level of security guaranteed by MainNet;
- The same logical and scripting services available as in MainNet;
- The ability to experiment with scenarios in which transactions are pre-mined and whose validation is instantaneous.
In addition to the HTML 5 front-end, the architecture of the application provides a Java technology back-end composed of:
- 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.