The verification protocol provides mathematical certainty of data authenticity without relying on the integrity of the operational database or the word of system administrators.
[Candidate Verification Request: GET /api/evidence/{id}/verify]
|
v
+-------------------------------------+
| 1. Retrieve Operational State |
| - Fetch Evidence Record from DB |
| - Fetch Media File Hashes from DB|
+------------------+------------------+
|
v
+-------------------------------------+
| 2. Re-execute Canonicalization |
| - RFC-8785 strict key ordering |
| - ISO-8601 UTC timestamp format |
| - 6-decimal coordinate precision |
| - Ordinal media hash sorting |
+------------------+------------------+
|
v
+-------------------------------------+
| 3. Compute Candidate Digest |
| H_candidate = SHA-256(JCS_Data) |
+------------------+------------------+
|
v
+-------------------------------------+
| 4. Fetch Ledger Trust Anchor |
| H_ledger = Ledger.GetEvidence(id)|
+------------------+------------------+
|
v
+-------------------------------------+
| 5. Constant-Time Equality Assertion |
| Compare(H_candidate, H_ledger) |
+------------------+------------------+
/ \
/ \
[Match: TRUE] [Match: FALSE]
v v
+---------------+ +--------------------+
| Status: | | Status: |
| VERIFIED | | INTEGRITY_MISMATCH |
| isTampered: F | | isTampered: TRUE |
| Confidence: 1 | | Confidence: 0.0 |
+---------------+ +--------------------+
Let an evidence record be defined as tuple:
Serialize
Compute candidate hash
Query distributed ledger for immutable anchor state
The verification predicate
Because SHA-256 exhibits the Avalanche Effect, any single-bit mutation anywhere in the operational database results in an average 50% change in the generated hash digest.
- Description:
"Routine turbine vibration analysis and lubrication check." - Candidate Hash:
5285fb70c383f23a9d9e6e8eebf82b8b9310bfbaae9ea2cf4b64f4ecf9ce152c - Blockchain Hash:
5285fb70c383f23a9d9e6e8eebf82b8b9310bfbaae9ea2cf4b64f4ecf9ce152c - Result:
VERIFIED(Confidence: 100%)
- Description:
"Routine turbine vibration analysis and lubrication check" - Candidate Hash:
d748f3992a6c1e13b83b924400a40234e70b53c1537bfa07d4b29352e46b9ec1 - Blockchain Hash:
5285fb70c383f23a9d9e6e8eebf82b8b9310bfbaae9ea2cf4b64f4ecf9ce152c - Result:
INTEGRITY_MISMATCH(Tamper Detected: True)
When an evidence record is verified through the web UI or API, the verification engine produces a verifiable JSON response payload that can be archived or exported as an official compliance certificate:
- Evidence ID and Asset Identifier
- Blockchain Transaction ID and Block Height
- Block Commit Timestamp
- Candidate Hash vs. Blockchain Hash
- Cryptographic Signature of the Verifying Auditor (optional)