A Proposal for Citizen Inclusiveness in Referendums: Leveraging Blockchain for Transparent Governance

Uday Singh
15 min readMay 1, 2024

--

Purpose and Scope of the Whitepaper

This whitepaper presents a proposal to governments on leveraging blockchain technology for transparent public opinion collection. It covers the advantages, hurdles, and factors to consider when implementing blockchain-based systems for gathering public sentiment. The document will detail how public opinion queries can operate on the blockchain, guaranteeing anonymity, privacy, and data integrity. Furthermore, it will underscore the potential benefits of such systems, such as heightened transparency, trust, and inclusivity in government decision-making. The aim is to prompt governments to explore adopting blockchain technology as a means of enhancing democratic governance.

Introduction — Background on the Importance of Public Opinion in Governance

Public opinion serves as a cornerstone of democratic governance, reflecting the collective voice of the populace. In democratic societies, government decisions ideally align with the will and interests of the people. Public opinion acts as a gauge of citizen sentiment, preferences, and priorities across various realms, including policy formulation, legislation, public projects, and social issues.

Traditionally, governments have employed methods such as surveys, polls, town hall meetings, letters, and consultations to solicit public opinion. However, these approaches often encounter challenges such as low participation rates, susceptibility to biases, lack of transparency, and potential manipulation or tampering of data.

In representative democracies, decision-making typically rests with elected representatives, who are entrusted to act in the best interests of their constituents. Some representatives prioritize aligning their actions with public opinion to garner support, while others may adhere more closely to personal convictions, irrespective of public sentiment.

Nevertheless, democracy is not without its shortcomings, particularly in societies marked by significant wealth inequality or deeply rooted societal issues related to race or religion. In such contexts, there is a risk of political manipulation, where certain elected officials exploit religious, racial, or patriotic sentiments to influence public opinion, often in underdeveloped or developing countries where critical thinking may be lacking.

To foster social and economic progress, it is imperative to ensure that the voices of the people are heard, particularly when contemplating significant social or economic reforms. Mechanisms such as referendums and other forms of empowerment play a vital role in solidifying popular will.

Civil society also plays a crucial role in enhancing public-private collaboration to achieve sustainable, inclusive outcomes. In 2023, the World Economic Forum’s civil society community proposed initiatives aimed at accelerating meaningful impact through open dialogue, collaborative learning, and alternative models of engagement, such as co-designing projects or policies. These efforts aim to foster constructive relationships and empower local communities to participate actively in decision-making processes.

As per the ‘Trust in government’ data from OECD, only 31% of the US citizens have trust in the government and only 39.5% of UK citizens have trust in their government. Most of the countries in the figure below have parliamentary democracy where a group of selected representatives make decisions on behalf of the citizens.

Source: OECD (2024), Trust in government (indicator). doi: 10.1787/1de9675e-en (Accessed on 29 April 2024)

Citizens have various avenues to communicate their desires to government officials. They can express their views through letters, contribute to local newspapers, engage in discussions with friends, or voice their concerns on social media platforms. Additionally, some representatives organize town hall meetings in their constituencies to provide constituents with an opportunity to address pressing issues directly. Politicians who disregard public sentiment for an extended period face the risk of losing re-election.

The Need for Transparent Public Opinion Collection

Challenges with Traditional Methods of Collecting Public Opinion: Traditional methods of collecting public opinion, such as surveys, polls, and town hall meetings, often suffer from various limitations. These include:

  1. Bias and Manipulation: Surveys and polls can be susceptible to bias and manipulation, whether intentional or unintentional, due to factors such as sample selection, question wording, and survey administration.
  2. Lack of Transparency: The process of collecting and aggregating public opinion data is often opaque, making it difficult for citizens to trust of the data collected was fair and not manipulated.
  3. Privacy Concerns: Citizens may be reluctant to participate in traditional public opinion surveys due to concerns about their privacy and the security of their personal information. In some countries, this may be a very strong factor even leading to physical injuries and/or death of a participant if you say anything against the government.
  4. Limited Accessibility: Traditional methods of public opinion collection may not reach all segments of the population equally, leading to underrepresentation of certain demographics or viewpoints.

Establishing transparent and inclusive decision-making processes is vital for cultivating trust between governments and citizens. When citizens view decision-making as equitable, transparent, and receptive to their feedback, they are inclined to trust and endorse government initiatives. Conversely, opacity and perceived partiality can undermine public trust and credibility, triggering skepticism and disillusionment with the political establishment.

When citizens lose trust in the government, it leads to outward migration where educated people start moving to other countries for safer and better life.

Overview of Blockchain Technology and Its Potential Applications in Governance

Blockchain technology, initially introduced as the underlying technology behind digital peer to peer payment system like Bitcoin, and later platform like ethereum has emerged as a powerful tool for enabling transparency, security, and decentralization in various sectors beyond finance.

Fundamentally, blockchain represents a distributed ledger technology facilitating secure transaction recording and validation across a network of computers. Every block within the blockchain incorporates a cryptographic hash of the preceding block, forming an immutable chain resistant to tampering. This inherent characteristic guarantees the integrity and transparency of data stored on the blockchain.

In the realm of governance, blockchain holds promise in transforming the process of collecting, documenting, and leveraging public opinion by governmental bodies. Through the utilization of blockchain technology, governments can institute a transparent and tamper-resistant system for soliciting, recording, and analyzing public sentiment on various public issues.

In the realm of governance, blockchain holds promise in transforming the process of collecting, documenting, and leveraging public opinion by governmental bodies. Through the utilization of blockchain technology, governments can institute a transparent and tamper-resistant system for soliciting, recording, and analyzing public sentiment on various public issues.

Benefits of Blockchain Technology in Addressing These Challenges

Blockchain technology offers a promising solution to many of the challenges associated with traditional methods of public opinion collection. By leveraging blockchain, governments can:

  1. Ensure Transparency: Blockchain’s decentralized and immutable ledger ensures that all transactions, including public opinion data, are transparent and verifiable by all parties. Citizens can track how their input is recorded and utilized, enhancing trust in the process.
  2. Enhance Security and Integrity: Blockchain’s cryptographic techniques and consensus mechanisms make it highly resistant to tampering and fraud. Public opinion data stored on the blockchain is immutable, reducing the risk of data manipulation or unauthorized access.
  3. Protect Privacy: Blockchain can enable anonymous participation in public opinion collection while still ensuring the integrity of the data. By using pseudonymous identifiers or zero-knowledge proofs, individuals can contribute their opinions without revealing their identities, addressing privacy concerns.
  4. Increase Accessibility: Blockchain-based public opinion collection platforms can be designed to be inclusive and accessible to all citizens, regardless of their location or technical expertise. Mobile-friendly interfaces, multilingual support, and offline participation options can help reach a diverse range of participants.

Proposed System

An introduction of a decentralized platform built on blockchain technology for conducting public opinion surveys and collecting feedback from citizens that will be designed to be accessible to all citizens, ensuring inclusivity and broad participation. The government agencies will oversee the operation of the platform to ensure compliance with regulatory standards and data privacy laws.

The solution can be built on either permissioned or permissionless blockchains. In this paper, we will propose solutions on Ethereum, a permissionless blockchain, GoQuorum, a permissioned ethereum based blockchain and Hyperledger, a permissioned blockchain.

Let us first define the goal for the system. The system should serve the following goals —

  1. Elected representative should be able to define referendums, publish them online for the vote casting and manage the referendum campaigns.
  2. Electorates should be allowed to propose questions for mass opinion. Electorates should be allowed to vote if the question makes sense before it is sent for representative review. If the question gets enough votes, an elected representative should be able to publish the question for voting.
  3. Both the electorates and the elected representatives should be able to cast their votes.
  4. The opinion question shall be open for a defined time limit.
  5. The results will be published online once the defined time ends.
  6. A citizen will be allowed to vote only once per opinion question.
  7. Any citizen who meets the eligibility criteria would be allowed to vote. Some questions may require only passport holders to vote, some may require only citizens above 18 years to vote, some may require a possession of government’s digital identity number(SSN for US, Aadhar for India, etc).
  8. Citizens will be allowed to publish responses in subjective form, if the question allows.
  9. The questions will be multiple choice selection with an option to type in the responses, if allowed.

Next, let us define the characteristics of the system -

  1. The responses will be immutable. Once recorded, no one will be able to alter the response; not even the voter.
  2. The responses will be fully anonymous. Government will never be able to identify the citizens with their votes.
  3. The system will offer privacy protecting data rights of its citizens and ensuring there is zero threat to its citizens.
  4. The system will offer full transparency. The technical code will be open sourced and the system will run on permissioned or permissionless blockchain platforms.
  5. Each response will be stored as a transaction on the blockchain, ensuring transparency and immutability of the data.
  6. Each response will be recorded on the blockchain in a secure and tamper-proof manner, preserving the integrity of the data.

Next, Define the actors involved in the system -

  • Electorates / Citizens
  • Elected Representatives — Members elected by people via general elections
  • Invited node runners (Optional)— Applicable only for permissioned blockchain solutions to enable wider transparency

Mechanics of how public opinion questions will be run on the blockchain:

  • Citizens will access the platform through a user-friendly interface(mobile, laptop, tablets), where they can view and respond to public opinion questions posed by government authorities/elected representatives.
  • Elected representatives will have an Admin access to approve a question, and publish them online to collect votes.

Solution Design

In this paper, we will consider 3 possible solutions — one on Ethereum, one on GoQuorum and another on hyperledger.

A. Ethereum based permissionless solution

The solution will have the following components -

  1. Front End — User facing
  2. Front End — Admin (Accessible only to elected representatives)
  3. Smart Contracts
  4. Front End — User facing

Citizens will have access to a public portal where they can view all the questions open for referenfum and cast their vote.

A citizen would be required to identify themselves first with existing identity mechanisms that prevail in the country. These may include digital identity systems (like SSN in USA, Aadhar in India, etc), passport, driving license, Tax card, National ID card, etc.

In the countries where digital identity sytems do not exist, the system will have a challenge of inclusiveness as only citizens who possess one of the accepted identity documents would be eligible to vote.

The fig.1 below depicts the end-to-end flow on how system will function.

Step 1: Citizens will be required to identify themselves with the supported mechanisms.

Step 2: Citizens will be presented with questions they can vote for.

Step 3: Once the questions close, the results will be published online immediately and automatically.

Step 4: Elected representatives will debate in parliament house and regard or disregard the citizens votes depending on how the decision making protocols are defined in the country.

Fig.1 Userflow
Fig. 2 A mockup of a citizens portal where they will cast their vote
Fig. 3 A mockup of a question on citizens portal

Front end can be built on any popular front-end technologies — HTML, CSS, JavaScript, React, etc.

2. Front End — Admin (Accessible only to elected representatives)

This would be the user interface which will be accesible to only the elected representatives where they will have the rights to enable questions for voting, and define the timeline.

3. Smart Contracts

This will be written in solidity. The Smart contract will define the business logic which will be available for the public to view. The citizen responses will be hashed with the following hash function enabling full confidentiality.

Hash (User’s wallet address , User’s response) → Hashed String

Here is a basic construct of a Smart Contract written in Solidity:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/access/Ownable.sol";

contract ReferendumPlatform is Ownable(msg.sender){
struct Question {
string questionText;
string[] choices;
mapping(uint => uint) votes; // choice index => vote count
mapping(address => bool) hasVoted; // track if address has voted
}

mapping(uint => Question) public questions;
mapping(address => bool) public isCitizen;
address public governmentWallet;

event Voted(uint indexed questionId, address indexed user, uint[] choices);
event WalletCreated(address indexed citizen, uint amount);
event FundsTransferred(address indexed from, address indexed to, uint amount);

constructor(address _governmentWallet) {
governmentWallet = _governmentWallet;
}

function createQuestion(uint _questionId, string memory _questionText, string[] memory _choices) external {
require(questions[_questionId].choices.length == 0, "Question already exists");
questions[_questionId].questionText = _questionText;
questions[_questionId].choices = _choices;
}

function createCitizenWallet(address _citizen) external payable onlyOwner {
require(!isCitizen[_citizen], "Citizen wallet already exists");
isCitizen[_citizen] = true;
emit WalletCreated(_citizen, msg.value);
}

function fundCitizenWallet(address _citizen, uint _amount) external onlyOwner {
require(isCitizen[_citizen], "Citizen wallet does not exist");
payable(_citizen).transfer(_amount);
emit FundsTransferred(address(this), _citizen, _amount);
}

function vote(uint _questionId, uint[] memory _choices) external {
require(_choices.length > 0, "At least one choice must be selected");
require(!questions[_questionId].hasVoted[msg.sender], "You have already voted for this question");

for (uint i = 0; i < _choices.length; i++) {
require(_choices[i] < questions[_questionId].choices.length, "Invalid choice index");
questions[_questionId].votes[_choices[i]]++;
}

questions[_questionId].hasVoted[msg.sender] = true;
uint remainingBalance = address(this).balance;
payable(governmentWallet).transfer(remainingBalance);
emit Voted(_questionId, msg.sender, _choices);
emit FundsTransferred(address(this), governmentWallet, remainingBalance);
}

function getVotes(uint _questionId) external view returns (uint[] memory) {
uint[] memory votes = new uint[](questions[_questionId].choices.length);
for (uint i = 0; i < questions[_questionId].choices.length; i++) {
votes[i] = questions[_questionId].votes[i];
}
return votes;
}
}
// deploy.js using Hardhat

const { ethers } = require("hardhat");

async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying contracts with the account:", deployer.address);

const VotingPlatform = await ethers.getContractFactory("VotingPlatform");
const governmentWallet = "0xYourGovernmentWalletAddress"; // Replace with your government wallet address
const votingPlatform = await VotingPlatform.deploy(governmentWallet);

console.log("VotingPlatform address:", votingPlatform.address);
}

main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});

The core ethereum based solution has significant costs associated with it in the form of gas fees as all the write transactions incur fee. Every casted vote needs to be stored in the system. Further, every user would be required to have sufficient ethers available in their account. Asking citizens to create an account on web 3 and buying ethers is a major friction point and a challenge for many. This challenge can be circumvented with the government running referendums to create wallets on behalf of every citizen whenever they vote and each wallet be funded with sufficient ethers required to process the user vote. This can happen in the background with users having no visibility on this.

Here is a technical design —

Fig.4 Technical design — Ethereum based solution

Here are the advantages and disadvantages of this solution —

Advantages

  1. Decentralization and Trust — Ethereum operates on a decentralized network of nodes, making it resistant to censorship and single points of failure. This decentralization ensures that no single entity has control over the network, promoting transparency and trustlessness.
  2. Security — Ethereum employs robust cryptographic techniques and consensus mechanism; proof of stake (PoS), to secure its network against various attacks, including double voting and fraud.

Disadvantages

  1. Energy Consumption — Ethereum currently relies on proof of stake (PoS) consensus, which consumes a significant amount of gas. This has raised concerns about the sustainability of its operations. Due to the popularity of Ethereum and the increasing number of transactions and smart contracts deployed on the network, congestion can occur, leading to delays in transaction confirmations and higher gas fees.

As per Etherscan, the current gas price as of this writing(01 May, 2024 )was 10 GWEI per transaction aka 0.49USD per transaction which is highly expensive. An alternate solution to get rid of the gas fees is to switch to GoQuorum, an ethereum based permissioned blockchain.

Fig.5 Gas fees as seen on Etherscan on 01 May,2024

B. GoQuorum based permissioned solution

This solution will work with zero gas fees however, it comes at the cost of reduced decentralisation as the nodes will be private. To overcome this challenge, the government can appoint 16 node users from the public. The number 16 is arbitrary and can be decided based on how willing the citizens are to run the nodes. This would ensure that the system is not compromised. In order for the

GoQuorum implements Proof of Authority consensus protocols. To be Byzantine fault tolerant, QBFT and IBFT require a minimum of four validators. Byzantine fault tolerance is the ability to function correctly and reach consensus despite nodes failing or propagating incorrect information to peers.

Fig.6 Gas fees as seen on Etherscan on 01 May,2024

C. Hyperledger Fabric based permissioned solution

The referendum solution can also be built on Hyperledger Fabric. Hyperledger Fabric offers a robust and secure platform for building referendum form systems that prioritize privacy, scalability, security, and compliance with regulatory standards.

Hyperledger Fabric allows you to create permissioned networks where participants are known and authorized thus eliminating expensive gas fees associated with mainnet ethereum based solution.

Hyperledger Fabric provides privacy features that allow sensitive data, such as voting choices, to be shared only with authorized parties. This ensures voter privacy and confidentiality, which are essential for maintaining the integrity of the voting process.

Hyperledger Fabric allows one to define endorsement policies to control which parties must approve transactions before they are committed to the blockchain.

Hyperledger Fabric supports smart contracts (chaincode), which enable us to automate and enforce the rules of the voting system. Smart contracts can handle complex voting logic, such as verifying voter eligibility, preventing double voting, and tallying votes.

Here is a basic version of a chaincode for our use-case -

package main

import (
"encoding/json"
"fmt"

"github.com/hyperledger/fabric-contract-api-go/contractapi"
)

type VotingPlatformContract struct {
contractapi.Contract
}

type Question struct {
QuestionText string `json:"questionText"`
Choices []string `json:"choices"`
Votes []uint `json:"votes"`
}

func (v *ReferendumPlatformContract) CreateQuestion(ctx contractapi.TransactionContextInterface, questionId string, questionText string, choices []string) error {
questionBytes, err := ctx.GetStub().GetState(questionId)
if err != nil {
return fmt.Errorf("failed to read from world state: %v", err)
}
if questionBytes != nil {
return fmt.Errorf("question with ID %s already exists", questionId)
}

question := Question{
QuestionText: questionText,
Choices: choices,
Votes: make([]uint, len(choices)),
}

questionJSON, err := json.Marshal(question)
if err != nil {
return err
}

return ctx.GetStub().PutState(questionId, questionJSON)
}

func (v *ReferendumPlatformContract) Vote(ctx contractapi.TransactionContextInterface, questionId string, choices []uint) error {
questionBytes, err := ctx.GetStub().GetState(questionId)
if err != nil {
return fmt.Errorf("failed to read from world state: %v", err)
}
if questionBytes == nil {
return fmt.Errorf("question with ID %s does not exist", questionId)
}

var question Question
err = json.Unmarshal(questionBytes, &question)
if err != nil {
return err
}

for _, choice := range choices {
if int(choice) >= len(question.Choices) {
return fmt.Errorf("invalid choice index")
}
question.Votes[choice]++
}

updatedQuestionJSON, err := json.Marshal(question)
if err != nil {
return err
}

return ctx.GetStub().PutState(questionId, updatedQuestionJSON)
}

func main() {
referendumPlatformContract := new(ReferendumPlatformContract)

cc, err := contractapi.NewChaincode(referendumPlatformContract)
if err != nil {
fmt.Printf("Error creating referendum platform chaincode: %s", err.Error())
return
}

if err := cc.Start(); err != nil {
fmt.Printf("Error starting referendum platform chaincode: %s", err.Error())
}
}

Conclusion

All the 3 proposed solutions will allow us to

  1. Define governance models and compliance frameworks to ensure that the referendum system operates according to regulatory requirements and industry standards. This helps to build trust and confidence in the integrity of the referendum process.
  2. Deploy privacy-preserving techniques, such as cryptographic hashing and zero-knowledge proofs, to protect the anonymity of participants.
  3. Publish the smart contract / Chain code as open-source and auditable, ensuring transparency and accountability in the operation of the platform.
  4. Automatically record the results upon completion of a survey on the blockchain, eliminating the risk of data manipulation or tampering.
  5. Ensure the security and immutability of data by cryptographically linking each block to the previous one, making it virtually impossible to alter or delete past records.
  6. Leverage blockchain for public opinion collection, thus governments can reach a wider audience, including marginalized or underrepresented communities who may face barriers to participation in traditional methods.
  7. Cut down costs for governments by eliminating the need for intermediaries, such as polling agencies or survey firms.
  8. Improve efficiency and resource optimization by automating data collection, validation, and analysis through smart contracts.

References

  1. World Economic Forum(2023): “Strengthening Public-Private Cooperation with Civil Society”
  2. OECD(data as of 2022): “Trust in Government”
  3. Ethereum Org : ethereum.org
  4. Hyperledger Foundation: “Hyperledger fabric” — hyperledger.org
  5. GoQuorum- Consenys — docs.goquorum.consensys.io
  6. Etherscan — etherscan.io
  7. Istanbul BFT Consensus Algorithm — arxiv.org/abs/2002.03613

The whitepaper can also be access in the PDF Form here.

--

--

Uday Singh

Uday is a Product manager with 10+ years of overall experience. He has been involved in building several world class products with teams globally.