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.