aere-docs/AERE-VSM-SUMMARY.md
Aere Network e4cead319d Initial public release
Aere Network public source. Everything here can be checked against the live
chain (chain id 2800, https://rpc.aere.network).

Scope note, stated up front rather than buried: consensus on chain 2800 is
classical secp256k1 ECDSA QBFT. The post-quantum work in this repository is at
the signature, precompile, account and transport layers. Nothing here makes the
consensus post-quantum, and no document in it should be read as claiming so.
2026-07-20 01:01:36 +03:00

62 lines
3.9 KiB
Markdown

# Spec 12: Aere VSM (Verifiable Semantic Memory) — DONE
On-chain attestation for an AI agent's vector-store memory: clear owner, verifiable
append-only history, PQC-authenticated commits, and paid attested retrieval on the AERE402 rail.
## Deliverables (all real, tested)
1. Contract: `aerenew/contracts/contracts/agentic/AereVectorStore.sol` (solc 0.8.23, new file, no deployed contract modified)
2. Test: `aerenew/contracts/test/aere-vector-store.test.js` — 8 passing
3. Doc: `aerenew/docs/AERE-VSM.md`
## Contract surface
- `createStore(storeId, falconPubKey?, settlementToken?, queryPrice?, paymentRecipient?)`
Config FIXED at creation (no setters). Classical store (empty key, owner-signed) or
post-quantum store (897-byte Falcon-512 key, header 0x09). Fail-closed on malformed key /
inconsistent price config.
- `commit(storeId, vectorRoot, vectorCount, uri, falconSig)` -> version
Append-only versioned root. PQC store: falconSig verified in full via 0x0AE1 over a
per-version challenge (COMMIT_DOMAIN|chainid|this|storeId|version|root|count|keccak(uri));
invalid sig reverts PQCVerificationFailed (fail-closed). Classical store: msg.sender==owner.
Empty/zero precompile return (pre-fork) treated as INVALID. Reuses the exact Falcon-512 input
construction from AerePQCAttestation.sol.
- `attestRetrieval(storeId, version, queryHash, resultRoot, receiptId)` -> retrievalId
Version must exist (1..current) or revert UnknownVersion (fail-closed). Priced store: must
cite a matching unconsumed AERE402 receipt (PaymentRequired / ReceiptConsumed / ReceiptMismatch).
- `paidQuery(storeId, queryHash, agentId, amount, nonce, deadline, authSig)` -> receiptId
References existing AERE402Facilitator (NOT redeployed). Vector store is the payee, calls
facilitator.settle, forwards received tokens (balance delta) to paymentRecipient in-tx; no
cross-call custody. Mints a receipt bound to (store, query, agent, nonce).
- Inclusion views: `verifyVectorInclusion(storeId, version, leaf, proof)` (membership in the
committed vectorRoot) and `verifyResultInclusion(retrievalId, leaf, proof)` (membership in the
attested resultRoot). OpenZeppelin MerkleProof (sorted-pair keccak256).
- No admin, no owner override, no upgrade hook, no path rewrites a committed version.
## Real test result
`npx hardhat test test/aere-vector-store.test.js` from aerenew/contracts: 8 passing.
1. PQC commit v1 then v2, append-only history preserved
2. tampered Falcon sig rejected fail-closed (also wrong-version + wrong-key rejected)
3. empty precompile return (pre-fork) treated as invalid
4. retrieval attestation records vs valid version; missing/zero version reverts
5. inclusion proof: member verifies, non-member fails (vectorRoot + resultRoot)
6. AERE402 paid-query: real facilitator settle, fee to sink, remainder to recipient, receipt
gates attestRetrieval; unpaid reverts PaymentRequired, reuse ReceiptConsumed, wrong-query
ReceiptMismatch; store holds 0 across the call
7. classical store: only owner may commit (non-owner NotOwner)
8. createStore fail-closed on bad key / inconsistent config / duplicate storeId
Falcon MOCKED in test (MockPQCPrecompile at 0x0AE1 via hardhat_setCode); real encoding proven
separately vs LIVE mainnet precompile by AerePQCAttestation path.
## Honesty flags
- [VERIFY]: on-chain commit registry, PQC-authenticated commits (0x0AE1), retrieval attestation,
inclusion proofs, AERE402 paid-query gate — built + tested.
- [MEASURE]: embedding model, vector similarity search / index, raw vector data, and semantic
quality/relevance — all OFF-CHAIN. On-chain attestation proves PROVENANCE + OWNERSHIP + that a
retrieval named a committed version, NOT semantic quality/relevance.
- Scope boundary preserved: PQC-authenticated memory commits do NOT make consensus post-quantum
(blocks still Besu QBFT + classical ECDSA). No new token (AERE402 uses existing rails).
- No em-dashes / "--" in prose. Brand "Aere Network"/"Aere", ticker AERE uppercase.