Security
How we protect your data and votes.
How we protect your data
- HTTPS (TLS) for all connections to VoteChain
- Optional two-factor authentication for your account
- Mobile apps: optional device biometrics (e.g. Face ID, fingerprint) where supported
- We follow POPIA and GDPR for personal data we process
- Tamper-evident vote reports you can verify independently (see below)
- Secure data centers
Report Authenticity & Verification
VoteChain reports are protected by multiple layers of cryptographic security to guarantee authenticity and prevent forgery. Every report can be independently verified by anyone, at any time.
Every report contains a unique verification code (Tc) computed from a SHA-256 hash of all vote data and voting window timestamps. Any modification to the underlying data produces a completely different code, making tampering immediately detectable.
Each report is cryptographically signed using a keyed-hash message authentication code (HMAC-SHA256) with a private signing key held exclusively on VoteChain servers. This signature proves the report was generated by VoteChain and has not been forged or altered.
Reports include a QR code linking to a tamper-proof signed URL. Anyone can scan the code or visit the link to independently verify the report against VoteChain's live records. The verification page confirms both data integrity and document authenticity.
Every page of a VoteChain report carries a visible watermark and a dedicated Document Integrity section containing the topic ID, generation timestamp, verification code, and full document signature for audit purposes.
How to verify a VoteChain report
- Open the report PDF and locate the QR code at the bottom.
- Scan the QR code with your phone or click the verification link.
- The verification page will confirm whether the report data and signature are authentic.
Report a Security Issue
If you discover a security vulnerability, please email us at security@votechain.app . We take all reports seriously and will work with you to investigate and resolve the issue.
