Skip to main content

Voting System

Technical Inspiration & Decentralized Trust Technologies

Punkpoll's developing 'Decentralized Voting System' is based on advanced technologies that leverage decentralized digital trust, which has made significant progress. This system ensures the complete protection of user privacy and provides exceptional reliability and transparency. It maintains independence from external censorship and coercion, and features an easily accessible user interface. All procedures within the system are designed to be verifiable, allowing participants to be confident in the legitimacy of the results.

Blockchain and decentralized trust-based technologies will become tools enabling direct democracy in the digital age.-Punkpoll

Technical Inspiration

Punkpoll's voting system is inspired by Bitcoin's UTXO model, Ethereum's NFT concept, and Mina's zero-knowledge blockchain technology.

Bitcoin's UTXO (Unspent Transaction Outputs) model effectively tracks state changes in transactions and maintains integrity by using 'unspent outputs' of previous transactions to create new 'outputs.' This model is suitable for recording and processing the transfer of voting rights (from a voter's wallet to a candidate's wallet).

Ethereum's NFT (Non-Fungible Token) concept emphasizes the uniqueness and non-fungibility of each token. In the voting system, this represents 'a unique voting right for a specific vote,' contributing to solving problems like double voting. NFTs ensure that each vote is unique and indivisible, securing the uniqueness and integrity of each vote.

Lastly, Mina Protocol's zero-knowledge blockchain, based on zero-knowledge proof technology, uses zkApps technology for various service implementations. This technology provides resistance to censorship and coercion in the voting system and plays a crucial role in protecting voter privacy. While protecting voter information, the validity and integrity of the vote are verified through zero-knowledge proofs.

This technological integration helps Punkpoll's voting system achieve high security, transparency, and user-friendliness.

Basic Structure of the Voting System

๐Ÿ– The basic structure of the Punkpoll voting system is as simple as sending Bitcoin, mirroring a complete structure.

Alice sends Bitcoin to Bob.

  1. In Alice's Wallet, there is 1 bitcoin. She sends this 1 bitcoin to Bob's Wallet address.
  1. Now, Alice's 1 bitcoin is in Bob's Wallet.

๐Ÿ‘‰ The Punkpoll voting system is similar to Alice (voter) sending Bitcoin to Bob (candidate). However, instead of cryptocurrency, it involves sending a 'zk-A vote-nft' from the voter's wallet to the candidate's wallet within a voting smart contract.

A unique vote (NFT) that can only be exercised in a ZK (Zero-Knowledge Proof) based-A vote.
  1. Inside the 'A-Vote' smart contract, Alice's 'zk-A vote (ballot)-nft' is sent to one of the candidate's Wallets.
  1. Now, Alice's 'zk-A vote (ballot)-nft' is in the Wallet of one of the candidates, Bob. Since the vote is an NFT, it cannot be sent to two people simultaneously or divided. Duplicate voting is inherently not allowed.
  1. The 'A-Vote' smart contract sends a participation receipt (zk-A vote-receipt-nft) and reward PUNK tokens to voter Alice.
  1. The election result is determined by the candidate in the smart contract who has the most 'A vote-nft' tokens in their Wallet.
  1. Voter Alice can always check and verify if her vote is included in the 'A-Vote' results with her 'A-Vote-Receipt-nft'.
Punkpoll's voting system integrates the technical inspirations from Bitcoin's UTXO model, Ethereum's NFT concept, and Mina's zkBlockchain technology to create a unique and secure voting process.

Bitcoin's UTXO Model: This model, known for tracking state changes in transactions, is reflected in Punkpoll's system where the transfer of voting rights is recorded and processed, similar to how Bitcoin tracks and maintains the integrity of transactions. In PunkPoll, a voter's vote (akin to a Bitcoin) is transferred from their wallet to a candidate's wallet, mirroring the UTXO concept of using unspent outputs to create new ones.

Ethereum's NFT Concept: Ethereum's approach to Non-Fungible Tokens (NFTs) is used in Punkpoll to emphasize the uniqueness and non-fungibility of each vote. This directly addresses issues like double voting by ensuring that each vote is unique, indivisible, and securely tied to a specific voter, much like how each NFT on Ethereum represents a unique, indivisible asset.

Mina Protocol's zkBlockchain: The zero-knowledge proof technology of Mina Protocol ensures the privacy of voters in Punkpoll's system. Votes are processed in a way that protects voter information, akin to how zero-knowledge proofs in Mina verify the validity and integrity of transactions without revealing sensitive data. This technology also offers resistance against censorship and coercion, essential in maintaining the fairness and integrity of the voting process.

Decentralized Trust Technologies

The following illustrates how these technologies are employed in the Punkpoll voting system to implement decentralized digital trust: This information will be updated soon May 2024.


The 'zero-knowledge proof based blockchain' (zkBlockchain) utilized by Punkpoll in Mina Protocol possesses features ideal for implementing decentralized voting and opinion polls.

One key characteristic of blockchain is its complete public nature. This ensures the transparency of the blockchain but can simultaneously pose issues for personal information and privacy. To address this, a blockchain based on zero-knowledge proofs has been proposed. Such blockchains use zero-knowledge proof technology that can prove the validity of transactions without disclosing the transaction details. Thus, these blockchains maintain the transparency of transactions while protecting user privacy and voting details.

Punkpoll's 'zk-PUNK (vote)' and 'zk-Voting System, zk-Opinion Poll System' are ideally suited for these features.

  • Security and Privacy Protection: Minaโ€™s blockchain uses zero-knowledge proofs (zk-SNARKs) technology. This technology allows for the validation of a user's information while keeping it secure. These characteristics are crucial for generating zk-PUNK (vote) and using its NFT for voting, as they protect the user's identity while verifying the validity of the vote.
  • Scalability: The blockchain of Mina Protocol maintains the size of all blocks at a constant 22kb. This ensures that the system's processing capacity remains unaffected regardless of the blockchain's size, even in mobile environments. This structure provides PunkPoll with a scalable system capable of managing global-scale voting and opinion polls and generating and sustaining a large volume of zk-PUNK (vote).
  • Transparency: The state of the blockchain is fully public, and anyone can verify the state of the blockchain. This is crucial for ensuring the transparency and trustworthiness of the voting results in the voting system.
  • Decentralization: As a fully decentralized blockchain, it allows all participants to engage equitably in the platform without centralized power. This is key to implementing a global voting system.


Zero-knowledge proof is a cryptographic method that allows the proof of a claim without revealing any specific information about it. zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) are a form of zero-knowledge proof that enables a concise and non-interactive proof process. This method works by providing only the necessary information to verify transactions on the blockchain, while keeping the specific details of that information hidden. Due to these characteristics, zk-SNARKs technology offers significant advantages in maintaining the integrity of data on the blockchain while protecting user privacy.

In voting systems, these features become even more crucial. zk-SNARKs ensure that the contents of a vote are resistant to censorship (censorship resistance) and external coercion (coercion resistance), thereby guaranteeing the integrity of the voting process and the anonymity of the voters.

Censorship resistance refers to the freedom of information transfer and action without control from central authorities or power figures. In a decentralized voting system, this is a key element that prevents manipulation or alteration of the voting process or results by any organization or group.
Coercion resistance means protecting an individual's choices or will from external pressure or coercion. This is especially important in voting systems, as it ensures voters can make their choices without having to disclose them to specific parties and guarantees protection from any negative consequences as a result of their decision.


ZK-Rollups are one of the Layer2 scaling solutions designed to address blockchain scalability issues, complementing the scaling and efficiency of Mina's Layer1. Essentially, this method involves collecting a large volume of voting and opinion poll transactions off-chain, compressing them into a single 'rollup' transaction, and then generating a zero-knowledge proof (zk-SNARKs) for it, which is transmitted to the on-chain (zkBlockchain). This approach increases transaction processing speed and blockchain throughput while verifying the accuracy of transactions without disclosing individual voting information.

Since processing and recording each transaction on Layer1 blockchains consumes significant time and resources, this burden is even more pronounced in voting systems managing numerous participants and transactions. Punkpoll has adopted ZK-Rollups technology to solve these issues.

ZK-Rollups enhance the efficiency and scalability of PunkPoll in the following ways:

  • Aggregation and Processing of Transactions: Voting data is collected off-chain and, after a certain quantity or period, compressed into one rollup transaction by the ZK-Rollups mechanism, with zk-SNARKs generated to prove the accuracy of this transaction.
  • Recording of Rollup Transactions: The compressed rollup transaction and its zk-SNARKs proof are recorded on the Layer1 blockchain, ensuring the validity of the voting data while keeping the details secure and hidden.
  • Verification and Transparency of Votes: Once the rollup transaction is recorded on the blockchain, its immutability is assured. Participants can be confident that the voting process has been conducted correctly, and the accuracy of the voting process is proven without revealing the contents of the transaction.
  • Enhanced Efficiency and Scalability: Transactions processed through ZK-Rollups are efficiently recorded on the mainnet, excluding unnecessary information and significantly increasing blockchain throughput.

Punkpoll aims to utilize the features of ZK-Rollups to operate a decentralized voting system more efficiently and securely, providing users with a fast and safe voting experience. (*Not currently applied in the voting system)


NFTs represent non-fungible tokens, each possessing unique and immutable characteristics. An NFT-based voting or opinion poll system uses blockchain technology to represent individual votes or opinions as unique digital assets. Each NFT is unique and immutable, ensuring the uniqueness and integrity of each vote, preventing double voting, and simultaneously making the voting process transparent. Utilizing these characteristics, Punkpoll issues all user information, voting and opinion poll systems, and receipts as NFTs.

zk-A Election-nft, zk-A Election-Receipt-nft, ..

The tokens representing the votes, as well as those used in the Smart Contracts for voting and opinion polls, follow a proprietary standard protocol. The NFTs issued by the organizers of the vote - upon user authentication - are ERC-1155, while the receipts that prove participation in the voting and opinion polls are issued as ERC-721 NFTs.


zk-NFT is a special zero-knowledge proof based NFT used in blockchain-based voting systems for voter verification, and for ensuring the confidentiality and completeness of votes and opinion polls. The zk-PUNK(nft), representing an individual's 'vote', is linked to a unique ID, which verifies the voter's identity while protecting their personal information. This is made possible by utilizing zk-SNARKs technology, allowing voters to prove their legitimacy without disclosing their information and participate in voting.

Punkpoll's voting system is based on the zk-PUNK(nft). In this system, each voter uses zk-PUNK to vote, ensuring the transparency and validity of the vote. Additionally, the system uses a Merkle tree to securely store and verify voting results.

These technologies combine to ensure that the zk-PUNK(nft) and the Punkpoll voting system solve various problems that can occur in traditional voting systems, while simultaneously achieving transparency, reliability, and privacy protection in the voting process.

Data Availability

Data availability represents the assurance that the data needed to validate a block is actually accessible to all network participants.

In a decentralized voting system, Data Availability (DA) plays an essential role. The reliability of a vote depends on its results being fairly and accurately reflected to all participants. DA ensures this reliability by making data on the blockchain accessible to all participants.

Furthermore, if data availability is not properly ensured, the voting system becomes vulnerable to attacks by malicious participants or groups who may manipulate or hide data. Therefore, DA at L2 protects the decentralized voting system from these potential risks.

One of the core values of voting is the transparency of its process and results. Ensuring data availability allows anyone to verify the process and outcome of the vote. The real-time availability of data provides high trust in the system for users, enabling rapid processing and verification of various transactions, thus enhancing the system's responsiveness and increasing user satisfaction. This results in more users participating in voting.

In particular, DA is emphasized in Mina Protocol, the zkBlockchain used by Punkpoll. MINA Protocol maintains the blockchain size at a fixed 22kb, utilizing its unique zero-knowledge proof (zk-SNARKs) technology, verifying the state with proofs instead of the entire blockchain. This structure emphasizes the importance of the actual presence of data and its proof's consistency, with DA playing a critical role in reliably tracking and verifying all changes and transactions at its core.


IPFS (InterPlanetary File System) is a distributed file system, playing a vital role in the Punkpoll platform by enabling non-expert participants to easily check data stored on the blockchain (anonymized voting content, anonymized participation information, voting results, etc.).

  • Data Storage and Sharing: IPFS allows the Punkpoll platform to store important data in a distributed manner. This method enhances data durability and eliminates a single point of failure. It also enables uploading data to IPFS and accessing or sharing it through its unique hash value.
  • Storing Analyzable User Information and Voting, Opinion Poll Metadata: IPFS stores data that can be analyzed from zk-PUNK (NFT) generated on the Punkpoll platform, as well as the metadata of each vote and opinion poll NFT, making it easily accessible to general users.
  • Voting and Opinion Poll Result Storage: Punkpoll securely stores the results of voting and opinion polls, making them accessible to those in need at any time. This enhances transparency and ensures the immutability of the results.

Merkle Map & Indexer

The Merkle Map and Indexer are utilized in the Punkpoll voting system in the following ways:

  • Data Integrity and Verification: The Merkle Map uses a Merkle tree to secure the integrity of voting data. Each piece of voting or opinion poll data is converted into a hash and stored as a leaf node in the Merkle tree. This tree ultimately summarizes into a single root node, whose hash can be used to verify the integrity of the entire data set.
  • Efficient Data Management and Retrieval: The Indexer efficiently manages and retrieves data stored in the Merkle Map. It uses the structure of the Merkle tree for quick and efficient location of specific data, reducing the time needed for confirming and verifying voting results.
  • Preventing Double Voting and Ensuring Transparency: The Merkle Map ensures that each vote is processed uniquely, preventing double voting. The Indexer maintains the accuracy and transparency of voting results using the information recorded in the Merkle Map.
  • Secure Storage and Verifiability of Voting Results: The combination of the Merkle Map and Indexer creates an environment where voting results are securely stored and can be easily verified when needed. The root node of the Merkle Map provides immutable summary information, and the Indexer allows for quick searching and access to this information.
  • Blockchain Integration: The Merkle Map and Indexer integrate the Punkpoll voting system with blockchain, reflecting the transparency, immutability, and decentralized characteristics of blockchain in the voting system. This plays a crucial role in enhancing the reliability of the voting system.

In these ways, the Merkle Map and Indexer play significant roles in the Punkpoll voting system, providing safety, transparency, and reliability in the voting process while enabling efficient data management.