How could a blockchain-based voting system work?
First, let’s start by listing the benefits of a voting system that uses blockchain technology.
Surely the system would be more transparent.
To date, it is virtually impossible to verify the correctness of the votes with the current systems, if not by redoing the calculations. Instead, by recording the data on the blockchain it would be possible, for anyone, to verify and perform a recount.
Better yet, it would even be possible for those who cast the vote to verify that this has been counted correctly while maintaining the anonymity of the vote.
This could reduce fraud and attempts to cheat the system, as it could verify who voted and when, while not being able to know publicly for whom.
The counting of votes would also be done in real time, i.e. by the time the ballot boxes close, the results could already be known and public.
This could make it possible to carry out many more votes and could also significantly reduce the cost.
Such a system, once developed, could also be used by other institutions, and not only by states: not only public institutions, but also private, or even companies.
Finally, by making it possible to vote from a smartphone or computer, voting would become easy and accessible to almost everyone, perhaps increasing voter turnout.
With current technologies, it should not be difficult to hide the vote within a public blockchain, making public the anonymized voting data. But there are some problems that might arise.
First, citizens would have to register and demonstrate their citizenship and identity.
For identity verification, one of the solutions already adopted, for example in Switzerland, is to physically give the citizen a secret code to be used to vote: this procedure would also serve to prove citizenship.
In this case, therefore, the problem would be not so much the verification of identity or nationality itself, but the secrecy of the code assigned.
How can we be sure that the citizen will not reveal it to anyone, or even sell it in exchange for money or favours? This problem does not seem to have a good solution at the moment.
In order to be able to vote, citizens should then also receive a token on their device that enables them to vote, valid for a single use, with a time limit within which it can be used to vote.
In this case, the problem would not be the token or its reception, but the availability of the device: what if the citizen no longer has the opportunity to use the device on which they stored their secret code? What if this device was stolen, or sold?
In such cases, the solution would be there, but it would require some further steps, such as validation of the device at each vote, or a procedure for retrieving the secret code to use it on other devices.
The vote would consist in sending this token to the candidate’s address, and it would be sufficient if the application used allowed to choose it easily from a list. In this case, the only real problem could be the experience of using the application, which should be very simple.
So, from a strictly technical point of view, there are not really big problems to overcome. Moreover, once the token is sent, this transaction would be recorded anonymously on the blockchain, making it immutable, verifiable and transparent.
In reality, it is much more complicated.
The system should be set up in such a way as to prevent people from voting using the secret codes of others. In addition, a central authority would be needed to verify identity and citizenship.
For example, biometric data could be used to validate the vote, such as fingerprints or retinal scans, but in this case, very secure devices, or even ad hoc devices, would be needed.
In addition, it should be ensured that none of the public information stored on the blockchain allows the identity of the person who voted to be traced and deducted. Information about the sender of the token must be completely hidden and anonymized.
There are different ways to do this, and each has its own advantages and disadvantages: the real challenge would be to achieve absolute anonymity, but at the same time maintaining the perfect verification of identity.
For these reasons, the blockchain voting system is not yet ready to be actually used, so much so that for now only tests have been carried out, or mere archiving of the results on the blockchain. We don’t know when the above problems will be solved, but we know that there are several ongoing much projects trying to solve these issues.