Vocdoni is a universally verifiable voting system. In fact, it is the first platform in history which brings both anonymity and E2E verifiability to governance. If this sounds new, or interesting, or even dubious to you, check out our technical overview.
The main piece of technical design you should know when reading this article is that Vocdoni publishes all content related to voting processes on the blockchain, except personal data of census members, ensuring that data is
- widely available to anyone with an internet connection
- guaranteed not to be tampered with
Evidently a Blockchain is a good way to ensure that third-parties can verify the operation of, and data associated with, an election process. Popular blockchains can be really expensive to use, though. That's why, in addition to using an Ethereum-adjacent Blockchain to permanently store election metadata, we've also created Vochain, our own custom Blockchain for vote counting. Our protocols ensure that all information associated with an election, including the votes which are cast, gets uploaded to the Vochain for all to see. Voters may remain anonymous, and their votes may remain encrypted until an election process ends, but the results of the process invariably can be inspected.
The Blockchain guarantees universal access to an election's ledger, but what about actually verifying the results? The most secure method, which places no trust in any party, is to run your own gateway node and manually inspect the contents of each vote transaction. In high-stakes elections, some third-parties will likely do this. But if only blockchain experts can verify an election, it's not really universally verifiable. Universal implies widely accessible.
To solve this problem, we developed the Vochain Explorer. A simple, easy-to-use web application which empowers voters and third-parties to interface with the Vochain at a higher-level. It enables anyone to view & verify the contents of Blockchain data (
transactions) as well as human-meaningful records such as
The basic component of any block explorer is the ability to inspect individual blocks.
Blocks are the basic chunks of data which make up the blockchain. Once a block has been added to the Blockchain, it and the data it contains remain there indefinitely.
From the blocks tab you can page through the list of blocks, viewing basic info like the height, hash, timestamp, and the address of the node which proposed the block.
Clicking on the block itself brings you to a more detailed view, including a list of transactions (pieces of data to be stored) as well as block-specific metadata which can be used to prove the block's validity.
Say you click on the first transaction listed under the block details above; you'll be brought to that transaction's details page (you can also view a complete list & search for transactions, as is the case for all items listed by the explorer).
Transactions are atomic pieces of data which govern elections. All changes to election data, such as starting a new process, declaring a new organization (entity), or even casting a vote, will each be packaged into a single unique transaction.
In this case, you can see that our transaction is a
vote. In addition to metadata & a proof, you can see the process this vote transaction belongs to, as well as the actual contents of the vote itself. More on that later.
Validator on a Blockchain is simply a node whose role is to validate transactions. Each transaction which gets proposed to the Blockchain is inspected and verified, at which point the validator packages it (possibly with many other transactions) into a block and 'proposes' this block to the Blockchain. At this point, the other validators can check the block for integrity before allowing it to be posted.
Each validator has a public key with which it signs its proposed blocks. It also has a priority and a voting power, dynamic values which are used to distribute blocks and assign relative voting power amongst the validators. On the Vochain explorer you can also page through a list of blocks proposed by a single validator.
The Vochain explorer includes human-meaningful data alongside raw blocks and transactions.
Entity is simply the data-representation of an organization which is registered with Vocdoni. On the Vocdoni platform, an entity might have a name, a mission statement, a news feed, and even a census of members who use Vocdoni to govern themselves. As far as the Vochain is concerned, however, an entity contains only an address and a set of processes associated with it.
After selecting a specific entity from the list of all entities, you'll be able to navigate to the external Vocdoni profile associated with this organization- here you can find the real-world details I mentioned above.
You'll also see a list of processes, past and present, hosted by that entity.
Process is a single election, poll, or otherwise participatory decision. Each process is declared by a single transaction which describes the process' type and declares an end-block when the process will complete.
If a process is encrypted, you cannot view the results until this end-block has been written to the Blockchain. This sample process is an unencrypted
poll-vote, which means that even though it's still active you can view the results which have been recorded so far.
If you don't trust the raw results displayed here, you can also view a list of vote envelopes which are registered to this process.
Envelope is the most crucial type of human-meaningful data stored on the Vochain. Each envelope is a single vote which has been cast by a voter registered to an entity's census.
In addition to viewing the actual vote itself, you can navigate from a vote envelope to the raw transaction which contains that envelope. This means you can trace a single vote back to the block which contained it, see the validator who proposed that block, and verify that the vote was indeed cast to the Vochain.
Finally, statistics page is a general view of info about the Blockchain. It enables us to see the load on the blockchain, such as the number of votes cast in all voting processes and the average number of transactions per minute.
Vocdoni hosts a publicly-available Vochain explorer so that only a browser is needed. If you're using this site, however, you have to trust that Vocdoni's running a valid gateway node, and we haven't nefariously tampered with anything. Luckily, it's also easy to boot up your own gateway node, connect it to the Vochain you want to inspect, and then host the explorer locally. This way you can be completely sure that no party has been able to tamper with the data before it reaches your browser. Instructions for running your own Vochain explorer application can be found here. And as mentioned before, if even that's too trusting in our open-source code, you can interface directly with the blockchain.
The entirety of the Vochain explorer code is open-source and licensed under GNU AGPLv3. The application was built using Vecty, a framework which compiles golang code into Web-Assembly which can then be run directly in the browser. The explorer includes a small backend database which it populates with (optionally-encrypted) Gateway API and Tendermint RPC calls directly to a Vochain gateway node. Some API calls are also made from the browser itself.
The Vochain Explorer is a nifty tool, but it represents something much larger. This technology brings us a step closer to a new paradigm for voting & community governance. Imagine a world in which every voter can simply go to their browser and verify the results of an election without having to place trust in any central authority. This is a world where civic participation itself will fundamentally shift as trust in collective decision-making grows and the barriers to direct participation shrink.
In a time when only 44% of people globally are satisfied with the way democracy functions in their country, a shift like this is desperately needed. And it certainly won't happen without larger social & political changes. But we're proving that, at least on the technological side of things, this world is not far from our reach.
Vocdoni is not just a project building digital voting infrastructure and a governance platform. We're also a community of people interested in building the governance tools of tomorrow to enable digital democracies and ensure the exercise of citizen's rights everywhere. Join us!
🦊 Gitlab repos
📑 Open Stack docs
💼 Open positions
💸 Donate to Vocdoni
Much ❤️ from Nathaniel Williams @ Vocdoni Team.
Share this article: