Cointime

Download App
iOS & Android

How we achieved anonymity on Web3 token-based elections

From Vocdoni by Vocdoni and Lucas Menendez

At the heart of Vocdoni's mission there is to innovate secure and anonymous voting mechanisms, as we believe it's a primitive for fair and legitimate participation in many scenarios.

Voter's anonymity can be easily preserved in 1Person-1Vote scenarios, as we already offer with our SDK and UIs using zk-Snarks. However, for token-based elections, separating identities from votes is not enough because token holders have a unique balance for a token, making them easy to identify as the weight of a vote can be correlated with an address.

In this article, we'll detail our approach to resolving this issue.

Introduction

A key part of the Vocdoni stack is Census3. Census3 is a service that checks for updates to a list of tokens or other crypto assets, and maintains an updated list of holders for each registered token. This service allows users to create a census based on a token, or combining censuses using strategies, in a way compatible with Vocdoni's blockchain (Vochain).

Census3 allows creating public or anonymous-compatible censuses and publishes them on IPFS, allowing for a transparent use and public auditing. But when the election is configured to be anonymous, we must consider not only the addresses of the holders, but also their balances because depending on the token holder distribution it could be easy to identify voters.

In the context of public blockchain technology where balances are public, preserving voter anonymity on token-based elections is a big challenge. To address this, we have been considered different approaches:

  • Find a way or mechanism to keep the balance secret. ❌ Balances are public, and the Vochain needs to know the weight value to perform some checks and to calculate the results.
  • Find a way to hide the balances. ✅ Modifying the balances as little as possible to make them difficult to correlate with identities and achieving sufficient anonymity.

The Vocdoni protocol is very flexible on how to configure and process elections. That includes weighted voting. In this type of election, not all voters wield the same power; instead, their voting power is determined by their token holdings as defined in the census.

Rounding censuses

To ensure that the balances of token-based censuses remain private, we must alter them in some way. However, any change must meet two requirements:

  1. The resulting balance must be less than or equal to the original one.
  2. The resulting balance should stay as close to the original as possible.

We explored two approaches:

  • Statistical approach: Using a classification algorithm based on k-means but introducing the minimum number of members in a cluster requirement. ❌ Unfortunately, this approach required too many iterations to converge.
  • Logical approach: Sorting participants by their balance and then grouping them, with some data cleaning techniques.✅ This approach proved sufficient to provide a solution.

Logical approach

We have developed an algorithm to meet these requirements, rounding balances to the nearest one, forming groups of at least 3 (privacyThreshold) equal balances. This process obscures individual holder's balances. The algorithm optimizes the number of members in a group, taking in account the difference between balances, to reduce the accuracy loss.

Basic steps

  1. Identify and exclude outliers: Participants balances are analyzed to detect outliers using z-score algorithm.
  2. Forming groups: Participants are initially grouped based on the privacy threshold. A group can extend to include participants with identical balances or with balances differences falling below the groupBalanceDiff criteria.
  3. Balancing groups: For each group, we adjust the balances, rounding them down to the smallest amount within the group to obscure individual values.
  4. Accuracy loop: The algorithm tries to find the highest accuracy possible while maintaining a minimum privacy threshold. It starts with the minimum privacy threshold and increases it by a small amount until the accuracy is maximized.

For example, here is the pseudocode of the core part, grouping participants (2):

Function groupAndRoundCensus Input: participants (array of Participant), privacyThreshold (integer), groupBalanceDiff (pointer to big integer) Output: array of Participant Sort participants by balance Initialize groups as an empty array of array of Participant Initialize currentGroup as an empty array of Participant For each participant in participants If currentGroup is empty Add participant to currentGroup Else Set lastParticipant to the last element in currentGroup Calculate balanceDiff as the absolute difference between participant's balance and lastParticipant's balance If the length of currentGroup is less than privacyThreshold OR balanceDiff is less than or equal to groupBalanceDiff Add participant to currentGroup Else Add currentGroup to groups Set currentGroup to a new array containing only participant If it's the last iteration Add currentGroup to groups Set roundedCensus to the result of flattening and rounding groups to the minimun balance Return roundedCensus End Function

Results accuracy

To measure accuracy, we compare the total of the adjusted balances from the census against the sum of the original balances, incorporating outliers in both calculations for consistency.

Our tests covered censuses involving 21 different tokens, showcasing various holder counts and token formats, including ERC20, ERC721, and POAP. This comprehensive testing ensures our approach is robust across different Web3 assets.

Our test results with different tokens

Initial conclusions

Our algorithm has several advantages, such as simplicity and speed. However, there's room for refinement. For example, tokens characterized by uneven distribution among holders present a challenge, as outliers not fitting into any group maintain their original balances, potentially revealing their identity.

Another problem identified is the loss of accuracy. The algorithm allows for parameter adjustments to enhance precision, and these can certainly be used to improve accuracy, but we didn't find any pattern in our test to do so. We've established parameter settings that generally perform well across various token types and distributions, so we consider this to be sufficient for now.

We've also detected potential vulnerabilities to specific attacks. For example, acquiring a certain amount of a token to manipulate the algorithm into grouping an address with others could theoretically expose that address. However, such strategies are impractical and unlikely to significantly impact election outcomes. This type of attack also requires an analysis of balance distributions, complicating its execution.

Additionally, among other possible enhancements, there is also the possibility of improving the algorithm's performance.

This is our first implementation to token-based anonymous elections. But we'll be pleased to hear about better approaches, or suggestions, to achieve anonymous voting on these and other types of elections. We warmly invite you to share them with us at chat.vocdoni.io or info[at]vocdoni.org

Comments

All Comments

Recommended for you

  • Australian Tax Office to Collect Personal and Transaction Data of 1.2 Million Cryptocurrency Traders

    The Australian Taxation Office (ATO) is set to obtain personal and transaction details of up to 1.2 million cryptocurrency traders from exchanges. The move is part of the ATO's efforts to prevent tax evasion. The data collected will include names, addresses, birthdays and transaction details of traders to help the ATO audit compliance with obligations to pay capital gains tax on sales. The ATO aims to identify traders who have not reported their cryptocurrency-related activities, including the exchange of crypto assets when they sold it for currency or used it to pay for goods and services. The crackdown on the crypto industry in Australia has intensified since the collapse of FTX.

  • Binance Research: Total cryptocurrency market value fell 11.3% in April, and total supply of US dollar stablecoins reached a two-year high

    Binance Research released its April cryptocurrency market report, with the following key points:

  • Vitalik: Plasma can prevent double withdrawal of any asset in a self-consistent way

    Vitalik Buterin, co-founder of Ethereum, stated on X platform that the purpose of Plasma is not to prevent invalid/unavailable state transitions, but rather to allow users with valuable assets to exit using the previous (valid and available) state when such a situation occurs, in a way that prevents double exits of any assets with consistent rules.

  • Hong Kong Bitcoin spot ETF saw its first net redemption, with a net redemption of 75.36 Bitcoins yesterday

    According to SoSo Value data, the Hong Kong Bitcoin spot ETF saw its first net redemption since trading began on April 30th. On May 6th, there was a net redemption of 75.36 Bitcoins, with a total holding of 4150 Bitcoins, a daily turnover of 8.6 million US dollars, and a total net asset value of 266 million US dollars.

  • The total net asset value of the US Bitcoin spot ETF is US$52.234 billion

    According to SoSoValue data, The total net inflow of US Bitcoin spot ETFs was $217 million on May 6 (US Eastern Time) yesterday. The net inflow of Grayscale ETF GBTC was $3.937 million yesterday, and GBTC's historical net outflow is currently $17.458 billion. The Bitcoin spot ETF with the highest net inflow yesterday was Fidelity ETF FBTC, with a net inflow of $99.1936 million in a single day, and FBTC's total historical net inflow has reached $8.13 billion. The second is Ark Invest and 21Shares' ETF ARKB, with a net inflow of $75.6412 million in a single day, and ARKB's total historical net inflow has reached $2.237 billion.

  • Crypto Super PAC Raises Over $100 Million for 2024 US Election

    According to PUBLIC CITIZEN, a cryptocurrency industry-backed super PAC has raised over $102 million, ranking third among all super PACs participating in the 2024 election. More than half of the political funds for the cryptocurrency super PAC (about $54 million) come from direct corporate spending, mainly from Coinbase and Ripple Labs.It is reported that four of the eight corporate cryptocurrency super PAC donors have settled or face charges from the US Securities and Exchange Commission (SEC) for alleged violations of securities laws, with Ripple Labs alone facing a fine of nearly $2 billion.

  • The US government seized 3,940 BTC from drug dealers

    Blockchain data tracking company Arkham has stated that the US government has seized $250 million worth of BTC, currently being held by Arkham. The US government obtained 3,940 BTC from drug dealer Banmeet Singh and seized them during a trial in January 2024. According to court documents, Singh was responsible for selling controlled substances on the dark web market from 2012 to 2017 and distributing them throughout the United States. The statement from the Department of Justice (DOJ) and court documents match the on-chain flow of funds already added to our US government entity.

  • Jack Dorsey's Blockchain plans to raise $1.5 billion through senior notes issuance

    Jack Dorsey's financial technology company, Block (formerly known as Square), announced on May 6th that it plans to issue $1.5 billion in preferred notes to qualified institutional investors through private placement.

  • Barcelona-based Web3 Video Games Startup GFAL Raises $3.2M in Seed Funding to Expand Team and Accelerate Production Plans

    Barcelona-based startup GFAL has secured $3.2 million in seed funding from investors including Supercell Ltd and Mitch Lasky. The company plans to use the funds to expand its team and accelerate its game production plans, which leverage AI and Web3 technology for immersive gameplay. GFAL's Elemental Raiders mobile game soft-launched in March 2023, with plans to build on this for a 2024 launch. CEO Manel Sort expressed gratitude for the investment and excitement to work with former colleagues from Digital Chocolate.

  • Wu Jiezhuang, a member of the National Committee of the Chinese People's Political Consultative Conference, suggested that Hong Kong refer to IPO to provide innovative financing models for Web3

    Wu Jiezhuang, a member of the National Committee of the Chinese People's Political Consultative Conference and a member of the Hong Kong Legislative Council, wrote an article in the Hong Kong Wen Wei Po titled "Leading the Digital Economy by Adapting to the Web3 Trend". The article pointed out that developing Web3+ has both advantages and new challenges. The Hong Kong government has taken an important step in the direction of developing Web3 and the digital economy by formulating a short- to medium-term strategic development blueprint, ensuring that policies and resources are in place, and promoting the construction of Web3+ application scenarios. Focusing on Web3, establishing an international innovation financing platform can not only help Hong Kong leverage its traditional financial advantages, but also help it become a global digital technology center. It is suggested to refer to the mature mode of existing enterprises' IPOs in Hong Kong, provide an innovative financing model for Web3, and create a market trend and service competitive advantage to promote the development of the industry and attract upstream and downstream of the industry chain at home and abroad to gather in Hong Kong.