Traditional voting systems have been around for a very long time. The idea is simple, you have some people that stay near the urns, people vote and at the end those persons have to count everything and see the turnout of that vote. There’s also mail based voting, which means you receive an envelope, vote and then you send it back. But both systems can be influenced by third parties, and are not reliable. Votes can easily be altered or eliminated behind closed doors. Not only that, also the transport of votes isn’t safe, as someone can get access to them or some of them can be lost. Moreover, people have to travel and waste time just to go and vote. A lot of them don’t do that, which is why the voting percentages are pretty low nowadays, at least when compared to a decade or two ago. And on top of that, the traditional voting system is expensive. It requires a lot of money invested in the infrastructure.

Electronic voting (e-voting) is intended to facilitate the process while ensuring security and privacy. It allows people to vote at any time and from anywhere in the world. This encourages people to state their opinion and thus increases the participation rate. In addition, it eliminates the costs for physical infrastructure.

The development of a secure voting protocol is not trivial. The following work makes use of the immutable and feeless nature of the Tangle. In addition, Masked Authenticated Messaging, one of IOTA’s most powerful modules, provides the foundation for secure data transmission [1].

Requirements

An e-voting protocol is acceptable if following requirements are met [2]:

Confidentiality

The voter’s ballot must be treated confidentially. No one, not even the electoral authorities may link a ballot to the voter who casts it. In addition, a voting system shall be coercion-resistant and not allow anyone to prove that it was voted in a particular manner.

Integrity

To achieve integrity, it must be impossible for a vote to be altered or eliminated. Besides that, it must be ensured that only valid votes are included in the tally.

Authentication

The protocol must provide an authentication mechanism to ensure only eligible voters are allowed to vote. Therefore, a voter must be given some form of legitimacy to authenticate during the vote. In addition, the idea of “one voter, one vote” must be preserved.

Verifiability

There are two categories of verifiability: individual and universal.

Individual verifiability, as the name indicates, allows an individual to verify that the vote has been properly received and is part of the final tally. Universal verifiability means anyone can verify that the election was properly performed and all votes have been counted correctly. To achieve universal verifiability, the results and collected ballots are published for public viewing.

Some requirements seem to contradict others, but it’s possible to create a system that satisfies every aspect. There are different cryptographic techniques to meet the requirements. They can be grouped into three types:

homomorphic encryption

mix-nets

blind signatures

In homomorphic encryption, certain mathematical operations (e.g. addition) can be performed directly on ciphertexts. For security reasons, zero-knowledge proofs are required.

In the mix-net model, votes are shuffled in order to hide the relation between the voter and his vote. Since there are n mixes, it produces much overhead for the system.

This work focuses on blind signatures.

Blind signatures

A digital signature is a cryptographic scheme used to verify the credibility of data. It enables anyone to verify the authorship and integrity of a message using the public verification key. With digital signatures, it should be practically impossible to forge or falsify a signature, or to generate a second message for which this signature is also valid. This presupposes that the private key cannot be calculated from the signature nor the public key. Another important characteristic is the non-repudiation of the signature. If a signature was verified with a public key, this should prove that the signature was generated with the corresponding private key.

A blind signature, first introduced by David Chaum, is a form of digital signature in which the message is blinded before it is signed. Therefore, the signer does not see what he is signing. Blind signatures were and are widely used in the fields of e-cash.

The protocol makes use of RSA. It’s an asymmetric cryptographic algorithm that can be used for both encryption and digital signing. It uses a key pair consisting of a private key used to decrypt or sign data and a public key used to encrypt or verify signatures. The private key is kept secret and cannot be calculated from the public key.

Each participant in the system, owns a key pair and therefore both a private and a public key.

Let’s imagine Alice would like to have a blind signature from Bob.

The procedure would be as follows:

Alice prepares a message m and encodes it using a random

value, the blinding factor r. This leads to an encoded message m′. Bob receives m′. After successful authorization, Bob is willing to sign m′ for Alice. This results in signature s′. Alice receives s′ and removes the random value r. The result is s, a signature for message m, signed by Bob.

The voting procedure

The voting institution has data of all voters. This data contains personal information as well as the public key representing the user. This is for the authentication mechanism to ensure only eligible voters are able to vote. The required registration process should be initiated by the voter with the delivery of legal documents and the appropriate public key.

To prevent fraud within the institution, signed votes are only valid if they were signed by n signers, n > 1. In other words: only one signer of the set has to be honest in order for the fraud to be noticed.

Imagine Alice wants to vote. The procedure would be as follows: