How AI Artifact Verification Works
AI artifact verification uses SHA-256 fingerprinting and Ed25519 signature validation to confirm that a dataset matches its certificate — independently, without contacting CertifiedData.
Verification is a three-step cryptographic procedure: hash the artifact, match the hash against the certificate, and verify the Ed25519 signature against the published public key.
The three verification checks
Hash the artifact
Compute the SHA-256 hash of the dataset file. This produces a 64-character hex string — the dataset's cryptographic fingerprint. Any modification to any byte of the dataset produces a different hash.
Compare hashes
Retrieve the certificate from the CertifiedData registry using the certificate ID. Compare the dataset_hash field in the certificate against the hash you just computed. If they match, the dataset is identical to what was certified.
Verify the signature
Verify the Ed25519 signature in the certificate against the CertifiedData public key. If the signature is valid, the certificate payload has not been tampered with since it was issued by CertifiedData.
Command-line verification
# Step 1: Hash the dataset
sha256sum your-dataset.csv
# Output: a3f9b2e1c4d7... your-dataset.csv
# Step 2: Fetch the certificate
curl https://certifieddata.io/api/certificate/cert_01j9k2m...
# Returns JSON with dataset_hash and signature fields
# Step 3: Verify the signature (Python example)
pip install cryptography
python3 << 'EOF'
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
from cryptography.hazmat.primitives.serialization import load_pem_public_key
import base64, json, urllib.request
cert_id = "cert_01j9k2m..."
cert = json.loads(urllib.request.urlopen(
f"https://certifieddata.io/api/certificate/{cert_id}"
).read())
# Load the published public key
registry = json.loads(urllib.request.urlopen(
"https://certifieddata.io/.well-known/certifieddata-registry.json"
).read())
pub_key_bytes = base64.urlsafe_b64decode(registry["public_key_raw_b64url"] + "==")
public_key = Ed25519PublicKey.from_public_bytes(pub_key_bytes)
# Verify signature against the certificate payload
payload = json.dumps({k: v for k, v in cert.items() if k != "signature"}, sort_keys=True)
signature = base64.urlsafe_b64decode(cert["signature"] + "==")
public_key.verify(signature, payload.encode("utf-8"))
print("✓ Signature valid")
EOFEd25519 — why this algorithm
Ed25519 is an elliptic curve digital signature algorithm using the Edwards-curve Digital Signature Algorithm (EdDSA) over Curve25519. It was chosen for CertifiedData certificates for several reasons: it produces compact signatures (64 bytes), verification is fast, it has no known vulnerabilities to quantum or classical attacks at current key sizes, and it does not require a random nonce per signature (unlike ECDSA), eliminating a class of implementation vulnerabilities.
The choice of Ed25519 aligns CertifiedData's signature infrastructure with modern TLS, SSH, and code signing standards — making verification tooling widely available across programming languages and platforms.
Verification without CertifiedData involvement
Public key publication
CertifiedDataThe Ed25519 public key is published at /.well-known/certifieddata-registry.json. This endpoint is stable and permanently accessible.
No SDK required
Verification uses standard cryptographic primitives available in Python (cryptography), Node.js (node:crypto), Go (crypto/ed25519), Rust (ed25519-dalek), and Java (BouncyCastle).
No account required
Certificate verification does not require a CertifiedData account. Any party with the certificate ID or dataset file can verify provenance.
Offline verification
Once you have the certificate JSON and the public key, verification can be performed offline — no network access required.
Language-agnostic
The verification protocol is defined at the algorithm level, not the SDK level. Any language with Ed25519 support can implement a verifier.
Auditor-friendly
The three-step verification procedure can be documented in audit reports and reproduced by any technically qualified auditor.
Verification outcomes
| Check | Passes | Fails |
|---|---|---|
| Hash match | Dataset matches certificate — not tampered | Dataset modified after certification |
| Signature valid | Certificate issued by Certified Data LLC | Certificate was forged or altered |
| Status: active | Certificate is valid and current | Certificate has been revoked |
| All three pass | Full provenance verified | One or more integrity violations |
Related
Verify a Certificate
Use the verification tool to check any CertifiedData certificate.
Dataset Fingerprinting
SHA-256 cryptographic identity for AI datasets — the first step in certificate verification.
SHA-256 Dataset Fingerprinting
Technical guide to SHA-256 hashing in AI certification and tamper detection.
Ed25519 AI Certificates
How Ed25519 digital signatures make AI certification artifacts tamper-evident.
Certificate Validation
Checking whether an AI certification artifact is authentic and consistent.
Synthetic Data Certification
Cryptographic proof that a dataset was synthetically generated — not collected from real individuals.
AI Trust Infrastructure
The full cryptographic architecture underlying CertifiedData certificates.
AI Artifact Registry
The public registry where certificate IDs and hashes are queryable.
AIBOM
AI Bills of Materials — where certificate references serve as verifiable AIBOM components.
AIBOM and Model Evaluation
Using certified evaluation datasets in AI Bill of Materials documentation.
Explore the CertifiedData trust infrastructure
CertifiedData organizes AI trust infrastructure around certification, verification, governance, and artifact transparency. Explore the related authority pages below.