{ "v": 1, "kind": "aere-conformance-rules", "levels": [ "integrity", "authenticity", "anchoring", "finality" ], "verifiers": { "aip23-envelope": { "artifacts": [ "envelope" ], "rules": [ { "id": "envelope.form", "source": "form", "level": "integrity", "sites": 1, "says": "the envelope has a statement (object) and a statementHash (0x + 64 hex)" }, { "id": "envelope.integrity", "source": "integrity", "level": "integrity", "sites": 1, "says": "sha256 of the canonical statement text is the statementHash" }, { "id": "envelope.signature", "source": "signature", "level": "authenticity", "sites": 5, "says": "the ML-DSA signature the envelope carries verifies over the canonical statement text" }, { "id": "envelope.finality", "source": "finality", "level": "anchoring", "sites": 6, "says": "the statementHash is recorded in the notary under a state root that a verified post-quantum anchor certificate covers (level by site: see finalitySites)" } ], "finalitySites": [ { "site": "most recent anchor did not verify", "level": "finality", "reachableWithAnHonestEndpoint": false }, { "site": "the header the endpoint served for block", "level": "anchoring", "reachableWithAnHonestEndpoint": false }, { "site": "has no account at", "level": "anchoring", "reachableWithAnHonestEndpoint": false }, { "site": "is not the AereNotary contract", "level": "anchoring", "reachableWithAnHonestEndpoint": false }, { "site": "the Merkle proof for block", "level": "anchoring", "reachableWithAnHonestEndpoint": false }, { "site": "not notarized:", "level": "anchoring", "reachableWithAnHonestEndpoint": true } ] }, "payment-risk": { "artifacts": [ "payment-risk" ], "rules": [ { "id": "risk.form", "source": "forma", "level": "integrity", "sites": 4, "says": "payer and payee are addresses; chain, asset, a positive integer amount and the time are given" }, { "id": "risk.asset", "source": "activ", "level": "integrity", "sites": 1, "says": "the asset on that chain is allowed by the declared policy" }, { "id": "risk.counterparty", "source": "contrapartida", "level": "integrity", "sites": 1, "says": "the payee is not the payer and is not a refused counterparty of the policy" }, { "id": "risk.rate", "source": "curs", "level": "integrity", "sites": 1, "says": "the USD rate is declared (value, source, time) when the policy requires it" }, { "id": "risk.limit", "source": "limita", "level": "integrity", "sites": 1, "says": "the amount in USD is within the per-payment limit of the policy" }, { "id": "risk.window", "source": "fereastra", "level": "integrity", "sites": 1, "says": "the amount and the count stay within the sliding window of the policy" } ], "marked": "by a marker on every check" }, "payment-receipt": { "artifacts": [ "payment-receipt" ], "rules": [ { "id": "receipt.binding", "source": "legatura", "level": "integrity", "sites": 2, "says": "the settlement envelope commits to this instruction and says the same thing" }, { "id": "receipt.amount", "source": "suma", "level": "integrity", "sites": 1, "says": "the USD amount is the amount at the declared rate, exactly" }, { "id": "receipt.policy", "source": "politica", "level": "integrity", "sites": 1, "says": "the policy shown hashes to the policy the risk verdict names" }, { "id": "receipt.risk", "source": "risc", "level": "integrity", "sites": 3, "says": "the risk verdict reproduces from the inputs and the policy, and it allowed this payment" }, { "id": "receipt.chain", "source": "lant", "level": "integrity", "sites": 1, "says": "the transaction supplied is this payment: payer, payee, value, block, mined" } ], "marked": "by a marker on every check" }, "market-timeline": { "artifacts": [ "market-timeline" ], "rules": [ { "id": "market.form", "source": "forma", "level": "integrity", "sites": 1, "says": "the timeline is well formed: events with name, arguments, sender, integer time and block; the job and the constants with their integer fields" }, { "id": "market.complete", "source": "intreg", "level": "integrity", "sites": 1, "says": "the timeline carries every event the job state implies: posted; claimed when a provider is set; submitted and disputed when their times are set" }, { "id": "market.posting", "source": "postare", "level": "integrity", "sites": 1, "says": "the JobPosted event matches the job (requester, spec, deadline, reward)" }, { "id": "market.deadline", "source": "termen", "level": "integrity", "sites": 3, "says": "claim and submission are within the deadline; an expiry refund only after it" }, { "id": "market.window", "source": "fereastra", "level": "integrity", "sites": 2, "says": "a dispute is raised inside the challenge window; a third party finalizes only after it" }, { "id": "market.arbiter", "source": "arbitru", "level": "integrity", "sites": 3, "says": "a dispute is resolved by the arbiter, or timed out only after the arbitration timeout" }, { "id": "market.payout", "source": "plata", "level": "integrity", "sites": 4, "says": "the terminal payout matches the final state (who, how much, which bond)" }, { "id": "market.result", "source": "rezultat", "level": "integrity", "sites": 1, "says": "the result bytes hash to the commitment on chain" }, { "id": "market.replay", "source": "replay", "level": "integrity", "sites": 3, "says": "the public task recomputed agrees with who was paid or slashed" }, { "id": "market.proof", "source": "dovada", "level": "integrity", "sites": 5, "says": "the execution envelope names this job and existed before the window closed" } ], "marked": "by a marker on every check" }, "dataset": { "artifacts": [ "dataset-record", "dataset-answer", "dataset-consistency", "dataset-sample" ], "rules": [ { "id": "dataset.form", "source": "forma", "level": "integrity", "sites": 1, "says": "a row carries its field commitments and its disclosed fields" }, { "id": "dataset.commitment", "source": "angajament", "level": "integrity", "sites": 4, "says": "the record, answer or proof names the commitment it is checked against" }, { "id": "dataset.field", "source": "camp", "level": "integrity", "sites": 2, "says": "a disclosed value opens its salted field commitment" }, { "id": "dataset.inclusion", "source": "includere", "level": "integrity", "sites": 1, "says": "the record is in the log of that version (RFC 9162 inclusion)" }, { "id": "dataset.index", "source": "index", "level": "integrity", "sites": 2, "says": "the row is at its stated position of the sorted index" }, { "id": "dataset.range", "source": "interval", "level": "integrity", "sites": 2, "says": "every row returned is inside the queried range" }, { "id": "dataset.order", "source": "ordine", "level": "integrity", "sites": 1, "says": "consecutive rows are in index order" }, { "id": "dataset.completeness", "source": "completitudine", "level": "integrity", "sites": 5, "says": "the rows are the whole contiguous run; the neighbours on both sides are outside the range" }, { "id": "dataset.consistency", "source": "consistenta", "level": "integrity", "sites": 3, "says": "the older log is a prefix of the newer (RFC 9162 consistency) and the versions are linked" }, { "id": "dataset.sample", "source": "esantion", "level": "integrity", "sites": 1, "says": "every sampled position is served and verifies" } ], "marked": "by a marker on every check" }, "ai-trust": { "artifacts": [ "ai-trust-bundle" ], "rules": [ { "id": "aitrust.form", "source": "form", "level": "integrity", "sites": 1, "says": "the bundle has the format, an identity, a ledger with its policy, and a Proof of AI envelope" }, { "id": "aitrust.identity-mismatch", "source": "identity-mismatch", "level": "authenticity", "sites": 1, "says": "the id derived from the key is the one the bundle, the ledger and the output name" }, { "id": "aitrust.identity-key", "source": "identity-key", "level": "authenticity", "sites": 1, "says": "the public key of the identity can be read" }, { "id": "aitrust.version-attestation", "source": "version-attestation", "level": "integrity", "sites": 1, "says": "the Proof of Software attestation of the model artifact verifies as an envelope" }, { "id": "aitrust.version-artifact-mismatch", "source": "version-artifact-mismatch", "level": "integrity", "sites": 1, "says": "the output names model weights that the attestation covers" }, { "id": "aitrust.version-label-mismatch", "source": "version-label-mismatch", "level": "integrity", "sites": 1, "says": "the output and the attestation name the same model version" }, { "id": "aitrust.runtime-record", "source": "runtime-record", "level": "integrity", "sites": 1, "says": "the runtime record is a verified runtime attestation" }, { "id": "aitrust.runtime-artifact-mismatch", "source": "runtime-artifact-mismatch", "level": "integrity", "sites": 1, "says": "the host ran the artifact the output names" }, { "id": "aitrust.runtime-after-output", "source": "runtime-after-output", "level": "integrity", "sites": 1, "says": "the runtime record is not dated after the output" }, { "id": "aitrust.audit-log-broken", "source": "audit-log-broken", "level": "integrity", "sites": 1, "says": "the hash chain of the audit log given is intact" }, { "id": "aitrust.runtime-not-in-audit-log", "source": "runtime-not-in-audit-log", "level": "integrity", "sites": 1, "says": "the runtime record is an entry of the audit log given" }, { "id": "aitrust.audit-head", "source": "audit-head", "level": "integrity", "sites": 1, "says": "the audit log continues the attested head given" }, { "id": "aitrust.witness-head", "source": "witness-head", "level": "anchoring", "sites": 1, "says": "every notarized head given is a head of this ledger, recorded on the chain" }, { "id": "aitrust.policy-hash", "source": "policy-hash", "level": "integrity", "sites": 1, "says": "the policy given hashes to the policy hash the bundle pins" }, { "id": "aitrust.ledger-invalid", "source": "ledger-invalid", "level": "integrity", "sites": 1, "says": "the ledger verifies under its policy (signatures, chain, every decision re-derived)" }, { "id": "aitrust.output-not-in-ledger", "source": "output-not-in-ledger", "level": "integrity", "sites": 1, "says": "a ledger entry links this Proof of AI envelope" }, { "id": "aitrust.action-refused", "source": "action-refused", "level": "integrity", "sites": 1, "says": "the ledger entry of the output was allowed by the policy" }, { "id": "aitrust.ledger-time-mismatch", "source": "ledger-time-mismatch", "level": "integrity", "sites": 1, "says": "the ledger entry and the output are dated within the tolerance" }, { "id": "aitrust.policy", "source": "policy", "level": "integrity", "sites": 1, "says": "the policy given is a policy" }, { "id": "aitrust.provenance-envelope", "source": "provenance-envelope", "level": "integrity", "sites": 1, "says": "the Proof of AI envelope verifies as an envelope of its kind" }, { "id": "aitrust.provenance-finality", "source": "provenance-finality", "level": "anchoring", "sites": 1, "says": "a notarization the Proof of AI envelope claims is on the chain" } ], "marked": "at the refusal helper" }, "audit-log": { "artifacts": [ "audit-log" ], "rules": [ { "id": "auditlog.entry", "source": "intrare", "level": "integrity", "sites": 2, "says": "the log is a list, and each entry is a log entry" }, { "id": "auditlog.seq", "source": "seq", "level": "integrity", "sites": 1, "says": "the entries are numbered from zero, without a gap" }, { "id": "auditlog.chain", "source": "lant", "level": "integrity", "sites": 1, "says": "each entry links the hash of the one before it" }, { "id": "auditlog.hash", "source": "hash", "level": "integrity", "sites": 1, "says": "the hash of each entry is the hash of its content" }, { "id": "auditlog.head-form", "source": "cap-forma", "level": "integrity", "sites": 2, "says": "the attested head is an audit head attestation with a count and a head hash" }, { "id": "auditlog.head-hash", "source": "cap-hash", "level": "integrity", "sites": 1, "says": "the statementHash of the attested head is the hash of its statement" }, { "id": "auditlog.head-unsigned", "source": "cap-nesemnat", "level": "authenticity", "sites": 1, "says": "the head is signed when a signer is required" }, { "id": "auditlog.head-scheme", "source": "cap-schema", "level": "authenticity", "sites": 2, "says": "the head signature is an ml-dsa-65 signature, made with an ML-DSA-65 key" }, { "id": "auditlog.head-key", "source": "cap-cheie", "level": "authenticity", "sites": 1, "says": "the public key of the head signature can be read" }, { "id": "auditlog.head-signature", "source": "cap-semnatura", "level": "authenticity", "sites": 1, "says": "the head signature verifies over the statement" }, { "id": "auditlog.head-signer", "source": "cap-semnatar", "level": "authenticity", "sites": 1, "says": "the head is signed by the expected signer" }, { "id": "auditlog.head-short", "source": "cap-scurt", "level": "integrity", "sites": 1, "says": "the log has at least as many entries as the attested head covers" }, { "id": "auditlog.head-rewritten", "source": "cap-rescris", "level": "integrity", "sites": 1, "says": "the entry at the attested point is the attested head (the history before it was not rewritten)" } ], "marked": "by a marker on every check" }, "audit-tree": { "artifacts": [ "audit-inclusion", "audit-consistency" ], "rules": [ { "id": "audittree.proof-form", "source": "dovada-forma", "level": "integrity", "sites": 2, "says": "the proof is an inclusion or a consistency proof that can be read" }, { "id": "audittree.head-form", "source": "arbore-forma", "level": "integrity", "sites": 2, "says": "the tree head is a tree head attestation with a size and a root" }, { "id": "audittree.head-hash", "source": "arbore-hash", "level": "integrity", "sites": 1, "says": "the statementHash of the tree head is the hash of its statement" }, { "id": "audittree.inclusion-index", "source": "includere-index", "level": "integrity", "sites": 1, "says": "the entry shown is the entry of the index proven" }, { "id": "audittree.inclusion-entry", "source": "includere-intrare", "level": "integrity", "sites": 1, "says": "the hash of the entry shown is the hash of its content" }, { "id": "audittree.inclusion-envelope", "source": "includere-plic", "level": "integrity", "sites": 1, "says": "the envelope inside the entry hashes to its statementHash" }, { "id": "audittree.inclusion-leaf", "source": "includere-frunza", "level": "integrity", "sites": 1, "says": "the leaf is the leaf of this entry" }, { "id": "audittree.inclusion-path", "source": "includere-drum", "level": "integrity", "sites": 1, "says": "the path leads from the leaf to the root (RFC 9162 inclusion)" }, { "id": "audittree.inclusion-head", "source": "includere-cap", "level": "integrity", "sites": 1, "says": "the proof is for the tree of the head given (size and root)" }, { "id": "audittree.consistency-start", "source": "consistenta-inceput", "level": "integrity", "sites": 1, "says": "the consistency proof starts at the old head" }, { "id": "audittree.consistency-end", "source": "consistenta-sfarsit", "level": "integrity", "sites": 1, "says": "the consistency proof ends at the new head" }, { "id": "audittree.consistency", "source": "consistenta", "level": "integrity", "sites": 1, "says": "the new tree extends the old one (RFC 9162 consistency)" } ], "marked": "by a marker on every check" }, "agent-ledger": { "artifacts": [ "agent-ledger" ], "rules": [ { "id": "agents.ledger-form", "source": "registru", "level": "integrity", "sites": 1, "says": "a ledger with a list of entries is given" }, { "id": "agents.policy", "source": "politica", "level": "integrity", "sites": 2, "says": "the policy given is a policy, and hashes to the hash the verifier pins" }, { "id": "agents.other-policy", "source": "alta-politica", "level": "integrity", "sites": 3, "says": "the ledger and every entry name the policy given, and the policy is this agent's" }, { "id": "agents.session", "source": "sesiune", "level": "integrity", "sites": 1, "says": "the session is the one derived from the agent and the policy" }, { "id": "agents.key", "source": "cheie", "level": "authenticity", "sites": 2, "says": "the agent key can be read and is an ML-DSA-65 key" }, { "id": "agents.identity", "source": "identitate", "level": "authenticity", "sites": 1, "says": "the agent id is derived from the key" }, { "id": "agents.anchor", "source": "ancora", "level": "integrity", "sites": 3, "says": "every anchor given names an entry of this ledger, with a time" }, { "id": "agents.seq", "source": "seq", "level": "integrity", "sites": 1, "says": "the entries are numbered from zero, without a gap" }, { "id": "agents.chain", "source": "lant", "level": "integrity", "sites": 1, "says": "each entry links the hash of the one before it" }, { "id": "agents.body", "source": "corp", "level": "integrity", "sites": 1, "says": "the body of an entry names the agent, the session and the sequence number of its header" }, { "id": "agents.signature", "source": "semnatura", "level": "authenticity", "sites": 1, "says": "every entry is signed by the agent key" }, { "id": "agents.hash", "source": "hash", "level": "integrity", "sites": 1, "says": "the hash of each entry reproduces" }, { "id": "agents.time", "source": "timp", "level": "integrity", "sites": 6, "says": "entry times do not go backwards and stay within the bounds the verifier has (its clock, a witnessed start, the anchors)" }, { "id": "agents.revocation", "source": "revocare", "level": "integrity", "sites": 3, "says": "a revocation entry carries a revocation that verifies, and says what it carries" }, { "id": "agents.approvals", "source": "aprobari", "level": "integrity", "sites": 1, "says": "an approvals field, when present, is a list that is not empty" }, { "id": "agents.decision", "source": "decizie", "level": "integrity", "sites": 1, "says": "every decision written is the decision the policy gives when replayed" } ], "marked": "by a marker on every check" } }, "notEnrolled": [ { "verifier": "identity", "refusalSites": 41, "why": "its checks are labelled rows, not rule ids (counted: the check rows of its presentation verifier; its SD-JWT, Travel Rule and compliance verifiers are not counted)" } ] }