Verify a result
Every delivered result carries a certificate (proof_of_execution). It lets you check two things:
the result has not been changed since it was produced, and it was signed with our key. Your browser does not
check this for you; the steps below do.
Our signing key
Ed25519 public key, raw 32 bytes in hex:
9c59f4d546353aab0a7ab0ce5b9cabfb720f6f9d938e2956d7840d293aaea5a7
A certificate whose notary_public_key is not this value was not signed by our production node.
The key is held in a file on our signing server; it is not a hardware security module.
Check a certificate (Python 3 with the cryptography package)
import hashlib, json
from cryptography.hazmat.primitives.asymmetric import ed25519
cert = json.load(open("result.json"))["proof_of_execution"] # the downloaded result
body = json.dumps(cert["payload"], sort_keys=True, separators=(",", ":")).encode()
digest = hashlib.sha256(body).hexdigest()
assert digest == cert["payload_sha256"], "the certificate payload was changed"
key = ed25519.Ed25519PublicKey.from_public_bytes(bytes.fromhex(cert["notary_public_key"]))
key.verify(bytes.fromhex(cert["signature_ed25519"]), digest.encode()) # raises if the signature is wrong
assert cert["notary_public_key"] == "9c59f4d546353aab0a7ab0ce5b9cabfb720f6f9d938e2956d7840d293aaea5a7"
print("signed by siliconbiology.ai; payload unchanged")
The signed payload names the worker, the run ID and outcome_sha256: the SHA-256 of the full result
as produced, serialised with Python json.dumps(result, sort_keys=True, default=str) before the
certificate was added.
Package integrity reports
Package checks are also signed with ML-DSA-65 (FIPS 204, post-quantum). The report includes both public keys and states the exact bytes that were signed.
Quantum results
Quantum results include the IBM device name and IBM's own run ID, so IBM's records show the run took place on that device.