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 capacity to listen, and to be heard.
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.
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.
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.
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.
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 are going to be computed. With this approach, we want to enable new forms of collective expression and organization that we haven't imagine yet.
"Forms" live in the application layer. So any project can innovate or adapt the system to the requirements and constraints of specific contexts.
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.
If you would like to be part of it, we are now starting a closed beta and would love to have you on board.
We love ideas, we love code, but that's not enough to give voice to the unheard. So much more work is required and in multiple domains. If you share these ideals, if you can help, we want to hear from you!