# Infrastructural Components A list of the main components and the corresponding actions needed to put the voting infrastructure in place: * **Smart contracts** * Deployment of the Master Voting SC * Open source SC * **Public Delay-Relayer** * Set up one or more relayers (e.g. Nouns + Aztec + Aragon) * Open source relayer implementation * **Public Time-Lapse Cryptography Service** * Bootstrap the consortium of trusted parties (e.g. Nouns + Aztec + Aragon + others) * Start publishing keys * Open source TLC service implementation * **Front end** * Deploy on one or more servers * Open source frontend (including the source code of the embedded Noir program) # Technologies Used * For generating ZKPs, we will use Aztec’s Noir language paired with an UltraPlonk-based proving backend. Noir is a domain-specific language for writing zero-knowledge proofs. * The tally prover will be written in Rust and Noir. * The web interfaces will use JavaScript and Wasm. * For the “Time-lapse cryptography service” we will, amomg others, use ideas from [tlock: practical timelock encryption from threshold BLS](https://eprint.iacr.org/2023/189)