Report Integrity Verification
Every report published on Bull Rider is cryptographically signed. This means you can independently verify that a report has not been modified since publication.
Content Hashing
When a report is published, its entire JSON content is canonicalized (sorted keys, no whitespace) and hashed with SHA-256. This produces a unique fingerprint of the report content.
Ed25519 Signing
The SHA-256 hash is signed with our Ed25519 private key. Ed25519 produces compact 64-byte signatures with 128-bit security level — equivalent to RSA-3072 but orders of magnitude smaller.
Embedded Integrity Block
Each report includes an integrity block with the content hash, Ed25519 signature, signing timestamp, and our public key. This block is verifiable by anyone without contacting our servers.
Client-Side Verification
Your browser can verify the signature using our public key (embedded in this website). The @noble/ed25519 library runs entirely in your browser — no server calls needed.
What This Guarantees
- Tamper-proof: Any modification to the report content would invalidate the SHA-256 hash, breaking the signature.
- Authorship: Only the holder of Bull Rider's private key can produce valid signatures.
- Timestamp: The signing timestamp proves when the report was published.
- No server trust needed: Verification runs entirely in your browser using standard cryptographic primitives.
Technical Details
Algorithm: Ed25519 (RFC 8032)
Hash: SHA-256
Canonicalization: JSON with sorted keys, no whitespace
Client library: @noble/ed25519 (5KB, zero dependencies)
Signature size: 64 bytes
Public key size: 32 bytes