Privacy preserving digital voting in Swiss
By: Alexander Kopnin
Tags: Ssi, Digital Identity, Cryptography, Blockchain, Voting

Privacy preserving digital voting

The part I that introduces general privacy preserving techniques to design voting platform can be found here;

The Swiss solution treat model in a similar way to microservices but are cognisant of the design limitations inherent to a decentralized, consensus driven, data replication architecture. The decentralized technology has been identified as efficient tool to construct electronic voting solutions so they imply its distributed data storage is shared across multiple nodes. It increases level of trust to the system in general and provides better auditability, integrity properties against a centralised approach.

There are few important terms to note before proceed with architecture definition:

Digital Identity. The identity instance therefore is a composition of a wallet with cryptography key and identity assertions (credentials) that allow the identity owner to control how the identity is established and proof eligibility to vote.

Distributed Ledger Technology (DLT). A decentralised network of independent computers that are able to agree on an immutable record of the sequence and outcome of transactions.

The model decomposes the ideas of DLT into layers. At the centre of the model is kind of Consensus Computer. The idea is that instead of processing being done in one place (by a single system that everyone trusts), processing is duplicated and done in many places so that trust does not need to be placed in a single system or organisation. The consensus, communications and control layers are non-functional. These layers determine the performance, scalability and underlying security of the platform.

Cryptographic blinding techniques.

Homomorphic Encryption (+) is a crypto-system that may execute simple mathematical operation under encrypted data. For example, in such crypto-system the multiplication of encrypted data is equal to encrypted sum of its pre-images.

plaintext for x is 7, y is 8; multiplication of x*y is equal to sum of 7+8 in encrypted form

Zero-Knowledge Proof is a method where one party can prove to another party that a given statement is true, without conveying any information apart from the fact that the statement is indeed true. ZKP is a sort of function that on some inputs responds with true or false.

Will be encrypted Z equal to 15 if I decrypt it?

A new voting poll

An electronic voting system is a distributed network protocol that includes few sequential steps with strong security requirements for each.

The authority initiates a new round of voting by sending all necessary information about what will be voted on to the appointed registrar. The registrar creates a new poll (with a list of questions and choices, when that vote opens and closes, etc.) on the blockchain and assigns the voting executors, polling stations and committee. The committee generates secret key that obtains Homomorphic properties and publishes its public part.

The platform is based on Paillier crypto-system that is homomorphic by addition (+) operation and has blinding properties, so means that same value will always produce different encryption results.

A voters use dedicated polling stations to pass eligibility check using digital identity and to register intention to vote. The polling station authenticates voter using special credentials that are issued and signed by legal authority beforehand. The every voter also generates personal ESDSA key pair during this phase and registered public part on the ledger via polling station. This key never leaves private wallet and it’s used to prove ballot ownership by signing it with private part.

If user successfully completes this step her/she obtains anonymized personal ballot uploaded on the ledger.