What Are Consensus Nodes and How Do They Work?
Agora is a global community of node operators maintaining a verifiable blockchain network, which ensures a tamper-proof and 100% verifiable election process.
To create the maximum level of security, Agora’s system combines the most advanced level of cryptography with a two-layer participatory consensus infrastructure. This consists of two types of nodes operators: a network of carefully selected nodes providing consensus on Agora’s permission blockchain (Consensus Nodes), and citizen token holders auditing the consensus mechanism (Citizen Auditor Nodes).
What are Consensus Nodes?
On Agora’s system, election data is stored in distributed physical locations and collectively updated and verified by a set of witness servers that independently monitor each other to ensure records remain unaltered. Consensus Nodes are therefore instrumental in guaranteeing secure and transparent elections by actively participating and testifying to the validity of the election process.
The organizations hosting these witness servers are third parties chosen for their independence and dedication to civil rights protection. Our network of Consensus Nodes is invite-only and comprised of NGOs, universities, foundations and other politically-neutral not-for-profits. Together, these Consensus Nodes form the Cothority, which processes transactions and provides consensus for data stored on Agora’s blockchain.
How do Consensus Nodes work?
To better understand how Consensus Nodes work, it helps to first explain Agora’s Bulletin Board. The Bulletin Board is the permissioned blockchain of the Agora network, which consists of permissioned write nodes operated by Agora and recognized third-party witnesses (Consensus Nodes). The Bulletin Board also contains read-only nodes that can be operated by anyone in the world (Citizen Auditor Nodes). This blockchain network provides an immutable record of all data throughout the election process and acts as the central communication channel, memory and permanent data store of our system. The Bulletin Board is a distributed append-only database to which any party — given the right authentication — can post signed messages and statements. This process of sending cryptographically-signed and authenticated data to the blockchain keeps the entire election process on Agora’s platform secure, private and auditable.
The nodes that secure the Bulletin Board consist of a permissioned collective authority (“Cothority”) that confirms transactions. As is standard with other blockchains, each node in the network maintains a copy of all transactions and approves new transactions into blocks as part of the network’s consensus mechanism. Nodes independently monitor each other to ensure that the system’s data record remains unaltered.
As previously mentioned, this Cothority consists of a set of Consensus Nodes that collectively confirm transactions onto the Bulletin Board. Transactions can consist of various data elements used on Agora, including ballots, the configuration file and consensus proof. From this set of Consensus Nodes, one is designated to be an Oracle Node on a rotating basis. The rotating Oracle Node receives ballots and other data from the Consensus Nodes, proposes new blocks to the network and writes confirmed blocks to the Cotena log, which is a tamper-resistant logging mechanism built on top of the Bitcoin blockchain. The Cotena links the Bulletin Board and supporting cryptographic proofs to the Bitcoin blockchain, which provides decentralized immutability to the data provided by the Consensus Nodes.
Consensus Nodes in the Cothority serve the following purposes:
1. Maintain a copy of our blockchain, the Bulletin Board.
2. Receive encrypted ballots from voters and authenticate their data, ensuring that ballots were sent by an authorized voter.
3. Confirm blocks proposed by the oracle server.
4. Decrypt anonymized ballots once the election has ended, creating plaintext ballots that can be tallied.
5. Maintain a copy of the Cotena log and monitor its correctness.
The Oracle Node, which is selected randomly from one of the Consensus Nodes on a rotating basis, serves the following purposes:
1. The oracle adds the configuration file to the Bulletin Board.
2. The oracle creates blocks from authenticated ballots received by Consensus Nodes and proposes them to the network for confirmation.
3. The oracle adds confirmed blocks to the log and pushes them to the Bitcoin blockchain.
As you can see, the Bulletin Board architecture offers a scalable blockchain infrastructure that that can handle the specific data needs of any election administered on Agora. And our global community of Consensus Nodes ensure a cryptographically secure, distributed and decentralized blockchain-based election for voters and decision-makers alike.
Thanks for reading and for being a part of Agora’s community. We like having you onboard!
If you like what you see, give us some claps to let us know! Claps are akin to likes on Facebook or on Twitter: they tell us what’s working well and what isn’t. And your feedback is invaluable, so don’t be shy.
Interested in reading more about us? Check out Agora in the News by visiting https://www.agora.vote/press