This is an old post, and it may contain information that is outdated or no longer accurate. The insights, opinions, and recommendations expressed in this article were accurate and relevant at the time of its original publication. However, given the ever-evolving nature of our project, the content herein may not reflect the most current developments or information.
Humans are better together than alone, but as our social groups grow, it becomes harder to sustain trusted relationships.
Culture and ideas allow us to extend the limits of our trusted circles. Companies, institutions, states, associations of any kind allow us to coordinate and achieve more with minimal trust assumptions.
As an organization gets bigger information and decision-making become predominantly unidirectional, and the asymmetry between the volume of information flows, top-down and bottom-up, increases.
Hierarchical organizations have succeeded in becoming the predominant organizational structure, as it's efficient to execute when information flows in one single direction. But with it, we lose the capacity to listen, and to be heard.
With growth, we become disconnected from the organizations that are meant to serve and care for us. Sometimes to the point that we no longer bother to express ourselves.
Tools to give voice
We started trying to answer a question that we believe encapsulates these frustrations.
How can millions of people vote from a smartphone?
Today it's not possible.
Voĉdoni in Esperanto translates to "to give voice"
At Vocdoni we aim for an effective change by empowering civil society from the bottom up.
We want to build the necessary primitives that enable and protect systems that allow any collective, from few to millions, to be heard, regardless of how extreme the circumstances are or how much support they have.
We want to achieve that by building and maintaining libraries, networks, and any other tool. And while our means are mostly technological we also want to re-enforce this endeavor with strategic partnerships and collaborations with organizations that protect the same ideals.
Voting as primitive
It's important to notice that when we talk about voting we are not referring to a digital version of nation-state like elections. This is only a potential instance, and it implies a wide range of connotations that we not necessarily share.
We refer to voting as a much more generic and low-level system. As a collective signaling mechanism that gives cryptographic guarantees about its integrity and its outcome.
For the last two years, our team has been working exclusively on solving this specific problem. We spent one year researching and prototyping, and we got to the conclusion that none of the existing solutions satisfied what we believe are fundamental requirements. After another year we now have a design and an early implementation of a system that can fulfill these needs.
Universally verifiable
Trust is scarce. Even more when we need to have trust in a system, not as an individual but as a collective, and with opposed interest... It gets worse when something is as complex as a voting scheme, where there are a lot of steps and multiple parties involved.
Eleven years ago today, Bitcoin was born, and for the first time in history, a set on entities without any previous trust or understanding about each other were able to agree about the state of something.
Blockchain technology allows us to remove any central authority as a unique source of truth. Wherever is to publish the results of a voting process or to validate the integrity of the process itself, these can now be done by any observer of the network.
We use Ethereum as a root chain, IPFS for storing data, and we have developed a new blockchain, the Vochain (on top of the Tendermint framework). It's in the Vochain where the vote transactions are sent and verified.
For the same purpose, all the code is free and open-source, allowing anyone to review, edit and find any bug. Likewise, multiple clients can coexist allowing the participants to choose the one they trust the most or compile and run their version if they wish to (no need to trust the binary on the app-stores).
Similarly, every user is the full owner of the keys used to sign/encrypt/proof the vote, these being generated in her device, and not relying on a third party or system to obtain them (no given tokens, smart-cards or sim-cards). Also, each voter can validate that her vote has been counted correctly.
Anonymous
We change our behavior when we think we are observed, preventing to speak freely.
By using Zero-knowledge proofs we can check that a vote is from someone in the census, without revealing who she is, and ensuring that a vote has not been counted twice (unless it's wanted).
Another important aspect of anonymity is IP obfuscation. A direct correlation with the voter can't be established, but plausible deniability is far from enough in most cases. We are agnostic to the channels where the vote is propagated. This means that the votes can be transmitted through P2P messaging, Tor or I2P networks, VPN, or any other mechanism.
Resilient to attacks and censorship
Some of the most powerful actors on this planet (nation-states and big corps) have plenty of incentives to prevent, disrupt, and change the outcome of a voting process.
The decentralized nature of the blockchain makes the system very resilient, and a trustless design of the gateways (the components that allow low-end devices to connect to the blockchains and peer to peer networks), allows anyone to spin up the complimentary services that will ensure the network can keep up in case of attack
Can run on a smartphone
This is our way to say that it needs an incredible and accessible UX. Unless it's easy, the least privileged part of the population will not use it. It is not ok to have to use a desktop computer or install awkward plugins to read smart-cards.
With this, we also imply that there should be no constraints on how often or where is voted. Expressing yourself every fourth year is unlikely to make you feel part of the conversation. Why not every day? If we want to dream about it, the experience must be engaging and frictionless. And for all that the best tool we have is the smartphone.
Sovereign identity
It's not only about privacy or control of your data. It's about defining who you are without permission, it's about making statements verifiable, it's about enabling reputation systems and new organizational structures that are not constrained by the rigidity of their centralized counterparts.
A decentralized identity scheme is critical for the advance as a society but is not an easy problem. We are watching very closely how the different alternatives for an SSI develop. The current design is a simplified version of it, but we can't wait to fully embrace it.
Form agnostic
Video calls, emojis or Instagram stories are forms of expression inconceivable a few decades ago.
If we understand voting as an anonymous signaling mechanism, the technical architecture should not make assumptions about the payload of the vote itself or how the outcomes of a voting process will be computed. With this approach, we want to enable new forms of collective expression and organization that we haven't imagined yet.
"Forms" live in the application layer. So any project can innovate or adapt the system to the requirements and constraints of specific contexts.
Quadratic voting, Liquid democracy, Axiarquies, Futarchies, distributed census… bring it on!
Onward
It has been a long and tough ride. We wanted to prevent being another crypto project with a whitepaper, a pile of money and no results. This approach made finding financial support harder, but it also made us grounded.
We want to buidl something that people use. We are developing a governance platform as well. With it, we can test the infrastructure, iterate on usability and new forms of governance while having a clear roadmap for development that allows us to focus and execute.