Block Producer
The Voting Server VS gathers votes (and delegations) it receives and puts them into blocks. Unlike cryptocurrency blockchains, the Election Authority are sorely responsible for managing the election and the VS produces the Vote blocks.
The Election Authority signs each block.
It uses the same signature scheme as the vote binding signature.
Clients can download blocks and verify every transaction.
At the end of the Election, the complete blockchain may be offered as a single download to facilitate audits.
Block Structure
- size of block as u32 (including this field)
- CBOR of VoteBlock
- signature
#![allow(unused)] fn main() { struct VoteBlock { prev_hash: Hash, cmx_root: Hash, nf_root: Hash, votes: Vec<BallotEnvelopeBytes>, } }
The signature is placed after the binary serialization of the VoteBlock as CBOR.
The sighash is the Blake2b-256 hash of the CBOR serialization of VoteBlock
with Personalization VoteBlockSigHash
.