enigma-memory 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +8 -0
  2. package/apps/cli/bin/enigma.mjs +362 -10
  3. package/deploy/SIMULATION.md +152 -0
  4. package/deploy/docker-compose.local-production-simulation.yml +237 -0
  5. package/deploy/docker-compose.production.example.yml +19 -0
  6. package/deploy/kms-mock.mjs +64 -0
  7. package/deploy/nginx.local-production-simulation.conf +33 -0
  8. package/deploy/siem-mock.mjs +50 -0
  9. package/docs/benchmark-attestation-network.md +488 -0
  10. package/docs/benchmark-reproducibility.md +19 -2
  11. package/docs/blockchain-only-mechanisms.md +388 -0
  12. package/docs/client-connectors.md +512 -0
  13. package/docs/demo-proof-network.md +275 -0
  14. package/docs/developer-ecosystem.md +47 -4
  15. package/docs/developer-proof-quickstart.md +325 -0
  16. package/docs/enigma-memory-ready-conformance.md +376 -0
  17. package/docs/enterprise-proof-control-plane.md +365 -0
  18. package/docs/install-anywhere.md +517 -0
  19. package/docs/market-category-narrative.md +398 -0
  20. package/docs/memory-drive-health-model.md +649 -0
  21. package/docs/memory-drive-strategy.md +458 -0
  22. package/docs/memory-passport-standard.md +445 -0
  23. package/docs/novelty-invention-candidates.md +161 -0
  24. package/docs/privacy-ledger-model.md +229 -0
  25. package/docs/proof-network-build-notes.md +240 -0
  26. package/docs/proof-network-claim-boundaries.md +318 -0
  27. package/docs/proof-network-dashboard-spec.md +773 -0
  28. package/docs/proof-network-glossary.md +27 -0
  29. package/docs/proof-network-launch-plan.md +421 -0
  30. package/docs/proof-network-operator-protocol.md +432 -0
  31. package/docs/proof-network-roadmap.md +431 -0
  32. package/docs/proof-network-test-plan.md +216 -0
  33. package/docs/proof-network-threat-model.md +373 -0
  34. package/docs/proof-network.md +257 -0
  35. package/docs/sdk-api.md +132 -10
  36. package/docs/solana-devnet-acceptance.md +226 -0
  37. package/docs/solana-proof-rail.md +453 -0
  38. package/examples/ci/github-actions.yml +6 -3
  39. package/examples/proof-network-anchor.json +37 -0
  40. package/examples/proof-network-attestation.json +35 -0
  41. package/examples/proof-network-grant.json +27 -0
  42. package/examples/proof-network-packet.json +71 -0
  43. package/package.json +42 -3
  44. package/packages/mcp-server/src/index.js +1 -1
  45. package/packages/proof-network/src/index.js +570 -0
  46. package/scripts/build-hosted-api-key-lifecycle.mjs +1 -1
  47. package/scripts/build-hosted-customer-lifecycle.mjs +1 -1
  48. package/scripts/build-installer-assets.mjs +1 -1
  49. package/scripts/build-proof-network-packet.mjs +213 -0
  50. package/scripts/run-standard-memory-benchmarks.mjs +1 -1
  51. package/scripts/simulate-production-env.mjs +210 -0
  52. package/scripts/verify-registry-install.mjs +1 -0
  53. package/scripts/wait-for-backend-ready.mjs +101 -0
  54. package/specs/goal-completion-audit-v1.schema.json +1 -0
  55. package/specs/proof-network-anchor-batch-v1.schema.json +125 -0
  56. package/specs/proof-network-benchmark-attestation-v1.schema.json +103 -0
  57. package/specs/proof-network-capability-grant-v1.schema.json +132 -0
  58. package/specs/proof-network-packet-v1.schema.json +171 -0
@@ -0,0 +1,432 @@
1
+ # Proof Network operator protocol
2
+
3
+ Enigma Proof Network is the operator protocol for a private memory controller for AI. Operators and attesters coordinate proof duties around public-safe hashes, roots, refs, signatures, nullifiers, service receipts, and dispute records. Solana is an optional proof, permission, and settlement rail for compact commitments only; the protocol does not require a token launch and this document makes no claim that a live network, live program, staking system, hosted SaaS, or on-chain deployment exists.
4
+
5
+ The protocol goal is simple: give an AI memory system a reviewable public control plane without publishing the private memory plane.
6
+
7
+ ## Non-negotiable privacy boundary
8
+
9
+ Public operator artifacts may contain:
10
+
11
+ - schema identifiers;
12
+ - opaque operator refs, signer refs, duty refs, and service refs;
13
+ - public keys or public-key fingerprints;
14
+ - hashes, Merkle roots, packet hashes, nullifier hashes, and receipt hashes;
15
+ - timestamps, expiry windows, sequence numbers, and public-safe counts;
16
+ - capability names, scope hashes, and artifact type names;
17
+ - signatures over canonical public-safe envelopes;
18
+ - optional Solana cluster/program/account refs only when separately evidenced and public-safe.
19
+
20
+ Public operator artifacts must not contain raw memory, prompts, transcripts, completions, embeddings, private ACL bodies, tenant names, customer names, employee names, private policies, local filesystem paths, private keys, seed phrases, API keys, bearer tokens, provider responses, invoices with private counterparty data, or chain credentials.
21
+
22
+ A valid operator artifact proves only that the public-safe envelope was created, signed, and validated under the stated rules. It does not prove provider deletion, model forgetting, legal compliance, benchmark superiority, customer ROI, token value, hosted SaaS operation, or live chain finality.
23
+
24
+ ## Roles
25
+
26
+ | Role | Protocol purpose | Public identity material | Must not publish |
27
+ | --- | --- | --- | --- |
28
+ | Memory controller | Owns the private memory system and decides which public-safe roots/refs can be emitted. | Controller ref, root refs, policy ref hash, capability issuer ref. | Raw memory, private policy body, tenant names, ACL body. |
29
+ | Operator | Performs one or more allowed proof duties for a controller or public packet. | Operator ref, duty refs, signing key refs, service refs, optional bond ref. | Operator private keys, customer names, internal runbooks, credentialed RPC URLs. |
30
+ | Attester | Signs an evidence statement over a public-safe artifact or run result. | Attester ref, attestation key ref, evidence refs, signature. | Raw benchmark rows, prompts, answers, completions, provider responses. |
31
+ | Verifier | Checks schemas, signatures, hashes, scopes, freshness, revocations, and dispute status. | Verifier ref, validation profile ref, verification result hash. | Private review notes, local paths, private packet contents. |
32
+ | Dispute reviewer | Reviews dispute packets and signs outcomes within a defined process. | Reviewer ref, dispute duty ref, outcome hash, signature. | Private complainant identity, raw logs, secret evidence. |
33
+ | Optional Solana submitter | Submits compact commitments when a separate operator process exists. | Submitter public key, transaction ref if actually submitted, anchor root. | Memory payloads, private keys, seed phrases, raw tenant/account names. |
34
+
35
+ One entity may hold multiple roles, but each role must use an explicit duty grant. Operators should be least-privilege signers, not implicit administrators.
36
+
37
+ ## Identity references
38
+
39
+ An identity ref is a public-safe pointer to a participant. It can be a DID-style ref, a Solana public key ref, a DNS-bound org key ref, or an Enigma-specific opaque ref. The ref must be stable enough for verification and rotation records, but not so descriptive that it exposes a private tenant or customer.
40
+
41
+ Recommended identity ref shapes:
42
+
43
+ | Ref type | Example shape | Use |
44
+ | --- | --- | --- |
45
+ | Operator ref | `operator:sha256:<digest>` | Default public operator identifier when human-readable names would leak relationships. |
46
+ | Attester ref | `attester:sha256:<digest>` | Signs benchmark, packet, service, or control-plane attestations. |
47
+ | Signer key ref | `key:ed25519:<fingerprint>` or `key:solana:<pubkey>` | Public verification key or key fingerprint. |
48
+ | Duty ref | `duty:anchor.submit:<digest>` | Binds a signer to one allowed operation class. |
49
+ | Service ref | `service:memory-root-attestation:<digest>` | Refers to a service order without naming a customer. |
50
+ | Bond ref | `bond:escrow:<digest>` | Optional future collateral reference; not a token claim. |
51
+ | Dispute ref | `dispute:receipt:<digest>` | Tracks a dispute without publishing private evidence. |
52
+
53
+ Identity refs should be generated from high-entropy public-safe material. Do not hash low-entropy customer names, tenant names, emails, short prompts, or private account labels and publish the result as if it were safe. If a private source must be committed, use a reviewed commitment scheme with a secret salt kept out of public artifacts.
54
+
55
+ ## Signing keys
56
+
57
+ Operators use signing keys to bind duties to public-safe artifacts. The protocol should support Ed25519-compatible signing and Solana public-key verification concepts, but it must not require that every signature be a Solana transaction signature.
58
+
59
+ ### Key classes
60
+
61
+ | Key class | Scope | Rotation expectation | Notes |
62
+ | --- | --- | --- | --- |
63
+ | Root operator key | Signs operator registration, duty delegation, and key rotation envelopes. | Rare, planned, multi-party approval preferred. | Keep offline when practical. Do not use for routine receipts. |
64
+ | Duty key | Signs one allowed duty such as anchor preparation, packet verification, grant issuance, or receipt issuance. | Rotate on schedule, after compromise suspicion, or when duty scope changes. | Preferred key for daily operations. |
65
+ | Attestation key | Signs benchmark, artifact, service, or evidence attestations. | Rotate independently from root and duty keys. | Must bind to an attester ref and evidence profile. |
66
+ | Dispute key | Signs dispute acceptance, interim status, and outcome hashes. | Rotate when reviewer pool or procedure changes. | Should not sign service performance receipts. |
67
+ | Solana submitter key | Optional key for future chain submission. | Rotate under Solana wallet custody practices. | Never publish private key, seed phrase, or credentialed RPC material. |
68
+
69
+ ### Signature envelope requirements
70
+
71
+ Every signed operator envelope should bind at least:
72
+
73
+ | Field | Requirement |
74
+ | --- | --- |
75
+ | `schema` | Exact protocol schema or profile identifier. |
76
+ | `artifact_hash` | Hash of the canonical public-safe artifact body. |
77
+ | `operator_ref` or `attester_ref` | Public-safe signer identity. |
78
+ | `key_ref` | Public verification key or fingerprint. |
79
+ | `duty_ref` | The specific duty authorizing this signature. |
80
+ | `issued_at` | Creation time. |
81
+ | `expires_at` or `valid_for` | Freshness boundary where applicable. |
82
+ | `nonce` or `sequence` | Replay boundary. |
83
+ | `signature_alg` | Signing algorithm identifier. |
84
+ | `signature` | Signature over canonical bytes. |
85
+
86
+ The signature must not cover private data by reference unless the public artifact states exactly which hash/root/ref represents that private data boundary. Verifiers must recompute the canonical artifact hash before accepting the signature.
87
+
88
+ ## Allowed duties
89
+
90
+ Duties are explicit permissions granted to an operator signer. A duty grant is not a business title; it is a narrow action class.
91
+
92
+ | Duty | Allowed action | Required evidence refs | Forbidden action |
93
+ | --- | --- | --- | --- |
94
+ | `anchor.prepare` | Build a local anchor batch from public-safe roots and refs. | Batch root, source root refs, schema refs, boundary flags. | Claim transaction submission or finality. |
95
+ | `anchor.submit.optional` | Submit a compact root/ref to a chain rail when a separate approved process exists. | Anchor batch hash, submitter key ref, transaction ref if actually submitted. | Put raw memory, prompts, private names, keys, or ACL bodies on-chain. |
96
+ | `capability.issue` | Sign a scoped capability grant. | Issuer ref, subject ref, scope hash, purpose ref, expiry, nonce. | Publish private ACL body or unlimited implicit access. |
97
+ | `capability.revoke` | Sign a revocation/nullifier artifact. | Grant hash or scope hash, nullifier hash, issuer ref, effective time. | Claim third-party provider deletion from a revocation alone. |
98
+ | `packet.verify` | Validate a proof packet and sign a verification result hash. | Packet hash, schema set ref, validation profile ref, result hash. | Trust packet-provided `valid` flags without recomputation. |
99
+ | `benchmark.attest` | Sign a benchmark report commitment. | Report hash, dataset ref, runner ref, package ref, metric profile ref. | Publish raw rows, questions, answers, prompts, completions, or provider responses. |
100
+ | `service.receipt.issue` | Sign a receipt for a bounded proof-network service. | Service ref, quote ref, performed duty refs, artifact hashes, unit counts if public-safe. | Claim ROI, cost savings, token yield, or legal certification. |
101
+ | `dispute.open` | Accept a dispute packet for review. | Dispute ref, receipt ref, claimant ref hash, admissible evidence refs. | Publish private complaint narratives or customer identity. |
102
+ | `dispute.resolve` | Sign a dispute outcome hash under the review profile. | Dispute ref, outcome hash, reviewer refs, decision profile ref. | Rewrite history or delete prior artifacts. |
103
+ | `bond.record.optional` | Record a future collateral or bond reference. | Bond ref, operator ref, duty scope, terms hash. | Launch a token, promise yield, or represent an unenforced bond as locked collateral. |
104
+
105
+ Any duty not listed in the operator registration or duty grant is denied by default.
106
+
107
+ ## Attester protocol
108
+
109
+ An attester is an operator-grade signer for evidence statements. Attesters should not be treated as general validators or truth oracles. They attest that a named public-safe artifact, report, service receipt, or verification result was observed under a declared evidence profile.
110
+
111
+ ### Attestable statements
112
+
113
+ | Statement type | Attester may sign | Required refs | Must not imply |
114
+ | --- | --- | --- | --- |
115
+ | Artifact observation | The attester observed an artifact with a matching canonical hash and schema profile. | Artifact hash, schema ref, observation time, attester ref. | That the private contents behind the hash are true or complete. |
116
+ | Memory-root custody | The controller provided or retained a root under a private review process. | Root ref, controller ref hash, retention profile ref, observation time. | That raw memory is public or recoverable from the root. |
117
+ | Benchmark report commitment | A benchmark report hash matches a declared dataset/runner/package boundary. | Report hash, dataset ref, runner ref, package ref, metric profile ref. | Best-in-class performance, answer accuracy beyond the report, or provider comparison. |
118
+ | Service completion | An operator produced the artifacts required by a quote profile. | Quote ref, receipt ref, artifact hash list root, duty refs. | Payment settlement, customer satisfaction, cost savings, or legal certification. |
119
+ | Dispute outcome | A dispute profile reached a signed outcome over public-safe evidence refs. | Dispute ref, outcome hash, reviewer refs, evidence hash list root. | Private fact-finding beyond the disclosed evidence boundary. |
120
+ | Optional rail observation | A compact root/ref was prepared for or, when separately evidenced, observed on a chain rail. | Anchor root, transaction ref only if real, cluster ref, observer key ref. | Finality, uptime, censorship resistance, or memory publication. |
121
+
122
+ ### Attester independence
123
+
124
+ Each evidence profile should state whether self-attestation is allowed. Self-attestation is useful for local development and release packets, but public operator markets should distinguish it from independent attestation. A public attestation should therefore include an `attester_relation_ref` or equivalent relationship hash with values such as `self`, `same-operator`, `contracted-reviewer`, or `independent-reviewer`. The relationship ref is a disclosure boundary, not a claim of certification.
125
+
126
+ ### Attester failure modes
127
+
128
+ Verifiers should downgrade or reject attestations when:
129
+
130
+ 1. the attester key is not registered for the evidence profile;
131
+ 2. the attestation signs a mutable URL or private location instead of a stable hash/ref;
132
+ 3. the report, receipt, or artifact hash cannot be recomputed from the public-safe body;
133
+ 4. the attester signs outside the declared time window;
134
+ 5. the attester relationship ref is missing for a market-facing claim;
135
+ 6. the attestation text claims truth, deletion, model behavior, compliance, savings, finality, or token economics beyond the signed refs.
136
+
137
+ ## Operator registration
138
+
139
+ An operator registration is the public-safe root of trust for an operator identity. It should be signed by the root operator key and contain only enough information for verifiers to evaluate duty signatures.
140
+
141
+ Minimum registration fields:
142
+
143
+ | Field | Purpose |
144
+ | --- | --- |
145
+ | Operator ref | Opaque participant identifier. |
146
+ | Registration hash | Canonical hash of the registration body. |
147
+ | Root key ref | Public verification key or fingerprint. |
148
+ | Duty key refs | Keys delegated to exact duty names. |
149
+ | Verification profile refs | Schema and validation rules the operator commits to using. |
150
+ | Public contact ref | Optional non-private support or governance ref. |
151
+ | Effective time and expiry | Window in which registration is recognized. |
152
+ | Rotation refs | Prior or next key refs where applicable. |
153
+ | Revocation ref | Nullifier or revocation artifact ref if registration is withdrawn. |
154
+
155
+ Operator registration is not a license, certification, compliance approval, or statement that the operator is live in production. It is a verification input.
156
+
157
+ ## Protocol objects
158
+
159
+ The operator protocol is a set of signed public-safe objects. Implementations may encode them as JSON, binary canonical forms, or future on-chain instruction data, but the verifier should see the same fields after canonicalization.
160
+
161
+ | Object | Producer | Consumer | Required public-safe fields | Invalid if |
162
+ | --- | --- | --- | --- | --- |
163
+ | Operator registration | Operator root key | Verifier, controller, dispute reviewer | Object schema, operator ref, root key ref, duty key refs, profile refs, effective window, registration hash, root signature. | It names private customers, lacks a root signature, or delegates wildcard duties. |
164
+ | Duty grant | Operator root key or authorized controller | Duty signer, verifier | Duty ref, duty name, signer key ref, allowed object types, scope hash, expiry, nonce, issuer signature. | The duty name is unknown, scope is unbounded, or expiry is absent for operational duties. |
165
+ | Attestation statement | Attester duty key | Verifier, controller, packet reviewer | Attester ref, evidence profile ref, artifact hash, evidence refs, relation ref, issued-at, expiry, signature. | It attests to private contents rather than hashes/refs or omits the relation ref for public use. |
166
+ | Service quote | Operator or controller | Operator, controller, verifier | Quote ref, requested duty refs, public-safe unit definitions, price/ref boundary if any, expiry, quote hash. | It embeds private workload descriptions, customer names, or token/yield promises. |
167
+ | Service receipt | Operator duty key | Controller, verifier, dispute reviewer | Receipt ref, quote ref, performed duty refs, artifact hash list root, issued-at, dispute-by, receipt signature. | It lacks matching artifacts, exceeds the quote, or claims settlement/payment without separate evidence. |
168
+ | Dispute packet | Controller, verifier, or counter-operator | Dispute reviewer, operator | Dispute ref, challenged refs, reason code, evidence hash list root, requested remedy ref, opened-at. | It contains raw logs, private narratives, or unsupported reason codes. |
169
+ | Dispute outcome | Dispute reviewer duty key | Verifier, controller, operator | Outcome ref, dispute ref, status, remedy refs, reviewer refs, decision profile ref, outcome signature. | It changes underlying artifacts instead of appending status or signs outside the reviewer duty. |
170
+ | Optional bond record | Operator or future collateral manager | Verifier, dispute reviewer | Bond ref, operator ref, duty scope, terms hash, status ref, evidence ref if collateral is real. | It implies a live token, locked collateral, or enforceable slash without actual collateral evidence. |
171
+
172
+ ### Canonical processing order
173
+
174
+ Verifiers should process objects in this order:
175
+
176
+ 1. Parse only the public object body and reject forbidden private keys or values before any business logic.
177
+ 2. Check that the schema/profile ref is supported for the object type.
178
+ 3. Canonicalize the object body and compute the object hash.
179
+ 4. Resolve the operator registration and active duty grant by ref.
180
+ 5. Verify the signature against the key ref and duty scope.
181
+ 6. Check freshness, nonce, sequence, expiry, revocation, and dispute status.
182
+ 7. Recompute referenced artifact hashes when the artifacts are present.
183
+ 8. Return the narrowest status supported by evidence: valid, invalid, expired, disputed, superseded, or requires private review.
184
+
185
+ This order keeps privacy checks ahead of signature and settlement logic. A correctly signed object with private payload material is still invalid for public Proof Network use.
186
+
187
+ ## Evidence references
188
+
189
+ Evidence refs are pointers to public-safe facts. They allow the protocol to be useful without copying sensitive evidence into public artifacts.
190
+
191
+ | Evidence ref | What it binds | Public-safe contents |
192
+ | --- | --- | --- |
193
+ | Memory root ref | A private memory snapshot or context pack boundary. | Merkle root, root hash, item count if safe, schema ref. |
194
+ | Anchor batch ref | A bundle of roots/refs prepared for optional rail submission. | Batch hash, batch root, source refs, boundary flags. |
195
+ | Capability ref | A grant or revocation boundary. | Grant hash, scope hash, issuer/subject refs, expiry, nullifier. |
196
+ | Benchmark report ref | A private or public benchmark report boundary. | Report hash, dataset ref, runner ref, package ref, metric profile ref. |
197
+ | Service quote ref | A quoted proof-network task. | Quote hash, duty names, public-safe units, expiry, price ref if safe. |
198
+ | Service receipt ref | A performed proof-network task. | Receipt hash, quote ref, artifact hashes, operator signature. |
199
+ | Dispute packet ref | A challenge to a receipt or duty result. | Dispute hash, receipt ref, reason code, evidence hash list. |
200
+ | Outcome ref | A dispute result. | Outcome hash, accepted/rejected/adjusted status, remedy refs. |
201
+ | Optional chain ref | A future live rail event. | Transaction signature/ref, cluster, slot/time, anchor root only when actually evidenced. |
202
+
203
+ Evidence refs must be dereferenceable by authorized reviewers in private channels when needed, but public artifacts should remain safe if copied into a repository, release packet, explorer memo, or sales appendix.
204
+
205
+ ## Service receipts
206
+
207
+ A service receipt is an operator-signed statement that a bounded proof-network duty was performed against public-safe inputs. It is the bridge between technical proofs and operator accountability.
208
+
209
+ ### Receipt lifecycle
210
+
211
+ 1. **Quote**: the operator or controller creates a service quote with duty names, public-safe unit definitions, expiry, and a quote hash.
212
+ 2. **Acceptance**: the controller accepts the quote by signing or recording an acceptance ref. Public acceptance should use opaque refs only.
213
+ 3. **Performance**: the operator performs the allowed duties, producing anchor batches, grants, revocations, attestations, verification results, or other public-safe artifacts.
214
+ 4. **Receipt**: the operator signs a receipt binding the quote ref, duty refs, artifact hashes, counts, timestamps, and signer refs.
215
+ 5. **Review**: a verifier checks signatures, scopes, freshness, artifact hashes, revocation status, and private-payload boundaries.
216
+ 6. **Optional anchoring**: a compact receipt root or batch root may be prepared for Solana submission. Until separately submitted and evidenced, it remains a local plan.
217
+ 7. **Dispute window**: the receipt stays challengeable for the period declared by the service profile.
218
+
219
+ ### Receipt field model
220
+
221
+ | Field | Requirement |
222
+ | --- | --- |
223
+ | Receipt ref | Opaque receipt identifier or hash. |
224
+ | Quote ref | Binds to the approved service boundary. |
225
+ | Operator ref | Identifies the receipt signer without exposing private relationships. |
226
+ | Duty refs | Lists exact duties performed. |
227
+ | Artifact hashes | Hashes of produced proof-network artifacts. |
228
+ | Source root refs | Public-safe roots or refs used as inputs. |
229
+ | Unit counts | Optional counts only when they do not leak private workload patterns. |
230
+ | Amount or price ref | Optional external settlement reference; no token launch implied. |
231
+ | Issued-at and dispute-by | Receipt freshness and challenge window. |
232
+ | Boundary flags | Explicit statements such as no raw memory in public artifact and no chain submission unless evidenced. |
233
+ | Signature | Duty-key signature over canonical receipt bytes. |
234
+
235
+ A service receipt is not an invoice unless a separate billing system says so. It is not proof that a customer paid, that an external provider lowered costs, or that a token settlement occurred.
236
+
237
+ ## Disputes
238
+
239
+ Disputes let controllers, reviewers, or counter-operators challenge a receipt, attestation, grant, revocation, or anchor-preparation claim without exposing private payloads.
240
+
241
+ ### Dispute grounds
242
+
243
+ Allowed reason codes should be finite and machine-checkable where possible:
244
+
245
+ | Reason code | Meaning | Public evidence expected |
246
+ | --- | --- | --- |
247
+ | `signature_invalid` | Signature does not verify against the claimed key ref. | Artifact hash, key ref, verification profile ref. |
248
+ | `duty_unauthorized` | Signer lacked the required duty grant. | Duty ref, registration hash, grant/revocation refs. |
249
+ | `artifact_hash_mismatch` | Receipt points to a hash that does not match the artifact. | Receipt ref, expected hash, observed artifact hash. |
250
+ | `scope_mismatch` | Grant, receipt, or attestation exceeded declared scope. | Scope hash, duty ref, packet hash. |
251
+ | `expired_or_replayed` | Artifact expired, nonce repeated, or sequence invalid. | Timestamp, nonce/sequence ref, prior artifact hash. |
252
+ | `private_payload_detected` | Public artifact includes forbidden keys or values. | Redacted finding hash, schema path ref, validation profile ref. |
253
+ | `anchor_status_overclaimed` | A local anchor plan was described as submitted or finalized. | Anchor batch ref, claim text hash, optional chain evidence absence ref. |
254
+ | `receipt_not_performed` | Required artifact for a service receipt is missing or inconsistent. | Quote ref, receipt ref, missing artifact type refs. |
255
+ | `bond_terms_mismatch` | Optional future bond terms were represented incorrectly. | Bond ref, terms hash, duty ref. |
256
+
257
+ ### Dispute process
258
+
259
+ 1. **Open**: a claimant creates a dispute packet containing a dispute ref, challenged artifact refs, reason code, evidence hash list, requested remedy ref, and claimant ref hash.
260
+ 2. **Admissibility check**: a dispute reviewer validates that the packet is public-safe, in-window, and tied to a supported receipt or duty artifact.
261
+ 3. **Response window**: the operator may submit response refs and corrected artifact refs. Private response evidence stays outside public artifacts.
262
+ 4. **Resolution**: reviewers sign an outcome hash under a dispute profile.
263
+ 5. **Remedy**: allowed remedies are narrow: correction ref, receipt withdrawal ref, receipt replacement ref, revocation ref, warning ref, optional bond claim ref, or no-action ref.
264
+ 6. **Publication**: the public outcome publishes only hashes, refs, reason codes, status, and signatures.
265
+
266
+ ### Dispute outcomes
267
+
268
+ | Outcome | Meaning |
269
+ | --- | --- |
270
+ | `accepted` | The dispute reason was validated under the dispute profile. |
271
+ | `rejected` | The dispute reason was not validated under the dispute profile. |
272
+ | `corrected` | Operator supplied a replacement artifact or amended receipt ref. |
273
+ | `withdrawn` | Claimant withdrew the dispute or the challenged receipt was withdrawn. |
274
+ | `expired` | Dispute was opened outside the declared review window. |
275
+ | `escalated` | Requires private review, legal/commercial process, or future governance profile. |
276
+
277
+ Dispute records should not erase prior artifacts. They append corrective state so verifiers can evaluate the current status of a receipt or duty claim.
278
+
279
+ ## Bonds and slashing as future optional design
280
+
281
+ Bonds and slashing are optional future accountability mechanisms. They are not required for the current local proof-network model, they do not imply a token launch, and they must not be described as live collateral unless a separate approved system actually locks and controls the collateral.
282
+
283
+ ### Acceptable bond models without a token launch
284
+
285
+ | Bond model | Description | Public artifact boundary |
286
+ | --- | --- | --- |
287
+ | Off-chain escrow ref | A third-party or contractual escrow holds collateral outside the proof artifact. | Bond ref, terms hash, escrow proof ref if approved. |
288
+ | Service-credit reserve | Operator commits future service credits under contract. | Reserve ref, terms hash, service profile ref. |
289
+ | Security deposit record | A conventional fiat or contractual deposit supports a duty class. | Deposit ref, terms hash, custodian ref if public-safe. |
290
+ | Reputation bond | Operator risks a signed public status downgrade rather than funds. | Reputation ref, status hash, dispute outcome ref. |
291
+ | On-chain collateral future | A future program may lock collateral on a public rail. | Program/account/transaction refs only after actual deployment evidence. |
292
+
293
+ ### Slashable conditions
294
+
295
+ Slashable conditions should be objective and tied to signed duties:
296
+
297
+ - repeated invalid signatures after key registration;
298
+ - signing receipts for artifacts whose hashes do not match;
299
+ - performing duties outside an active duty grant;
300
+ - falsely representing a local anchor plan as submitted or finalized;
301
+ - publishing public artifacts with forbidden private payload fields after validation should have rejected them;
302
+ - replaying expired receipts, nonces, grants, or verification results;
303
+ - refusing a correction path required by an accepted dispute profile.
304
+
305
+ Do not slash for subjective answer quality, market outcomes, token price, provider behavior, benchmark rank, or claims outside the operator's signed duty scope.
306
+
307
+ ### Due-process requirements
308
+
309
+ A future slashing profile should require:
310
+
311
+ 1. a signed duty or receipt tying the operator to the challenged action;
312
+ 2. an admissible dispute packet with public-safe evidence refs;
313
+ 3. a response window;
314
+ 4. independent reviewer signature or deterministic verification rule;
315
+ 5. an outcome ref and remedy ref;
316
+ 6. a bond terms hash that existed before the disputed action;
317
+ 7. a public-safe appeal or correction path where the terms allow it.
318
+
319
+ Until those elements exist as implemented and evidenced infrastructure, docs should say only that slashing and bonds are future optional design patterns.
320
+
321
+ ## Solana rail mapping
322
+
323
+ Solana can be a compact public rail for commitments, permissions, and settlement refs. It should not be the memory database.
324
+
325
+ | Protocol object | Optional Solana representation | Public data only |
326
+ | --- | --- | --- |
327
+ | Operator registration | Registry account or PDA keyed by operator ref/key ref. | Operator ref, key refs, duty hashes, registration hash. |
328
+ | Anchor batch | Account or instruction carrying batch root. | Batch root, schema ref, source count, boundary flags. |
329
+ | Capability grant | Grant account keyed by issuer, subject ref hash, scope hash, expiry. | Grant hash, scope hash, refs, expiry. |
330
+ | Revocation | Nullifier account. | Nullifier hash, issuer ref, effective time. |
331
+ | Service receipt | Receipt root account or memo-like commitment. | Receipt hash, service ref, artifact hash list root. |
332
+ | Dispute outcome | Outcome root account. | Dispute ref, outcome hash, reviewer signature ref. |
333
+ | Bond future | Collateral account or external escrow proof ref. | Bond ref, terms hash, status ref. |
334
+
335
+ Any Solana field in current local artifacts is a planning reference unless accompanied by real transaction evidence. If a transaction is actually submitted in a future process, public copy must cite the transaction signature/ref, cluster, slot or block metadata, timestamp, and the exact root submitted. Memory remains off-chain.
336
+
337
+ ## Verification rules
338
+
339
+ A verifier should reject or mark invalid any operator artifact when:
340
+
341
+ 1. the artifact contains forbidden private keys or private-looking values;
342
+ 2. the schema or profile ref is unsupported;
343
+ 3. the canonical hash does not match the signed hash;
344
+ 4. the signer key does not match the key ref;
345
+ 5. the key ref is not registered or was revoked before the signature time;
346
+ 6. the duty ref does not authorize the action;
347
+ 7. the artifact is expired, replayed, or sequence-invalid;
348
+ 8. a required source root, quote ref, receipt ref, or evidence ref is missing;
349
+ 9. a revocation or dispute outcome supersedes the artifact;
350
+ 10. local-only anchor material is claimed as submitted or finalized without separate chain evidence;
351
+ 11. a receipt claims ROI, compliance certification, provider deletion, model forgetting, token yield, or benchmark superiority;
352
+ 12. optional bond language claims locked collateral without an approved collateral evidence ref.
353
+
354
+ Verification may produce `valid`, `invalid`, `superseded`, `disputed`, `expired`, or `requires_private_review` statuses. `requires_private_review` is not a public approval; it means hashes/refs alone are insufficient for the question asked.
355
+
356
+ ## State machines
357
+
358
+ ### Duty lifecycle
359
+
360
+ `proposed` -> `registered` -> `active` -> `rotating` -> `revoked` -> `expired`
361
+
362
+ - A duty is usable only in `active` state.
363
+ - `rotating` should accept both old and new keys only within an explicit overlap window.
364
+ - `revoked` overrides unexpired grants after the revocation effective time.
365
+
366
+ ### Receipt lifecycle
367
+
368
+ `quoted` -> `accepted` -> `performed` -> `receipted` -> `verified` -> `dispute_window_closed`
369
+
370
+ Alternate branches:
371
+
372
+ - `receipted` -> `disputed` -> `corrected` -> `verified`
373
+ - `receipted` -> `disputed` -> `accepted_dispute` -> `withdrawn_or_remedied`
374
+ - `quoted` -> `expired`
375
+
376
+ ### Dispute lifecycle
377
+
378
+ `opened` -> `admissible` -> `operator_response_due` -> `under_review` -> `resolved` -> `published`
379
+
380
+ Alternate branches:
381
+
382
+ - `opened` -> `rejected_as_unsafe`
383
+ - `opened` -> `expired`
384
+ - `under_review` -> `escalated_private_review`
385
+
386
+ ## Public operator packet profile
387
+
388
+ A complete public operator packet should include these sections by ref, not by private payload:
389
+
390
+ | Section | Required content |
391
+ | --- | --- |
392
+ | Packet header | Packet schema, packet hash, created-at, profile ref. |
393
+ | Operator registration refs | Operator ref, registration hash, key refs, duty refs. |
394
+ | Artifact refs | Anchor, grant, revocation, benchmark, receipt, or dispute refs. |
395
+ | Signature set | Signer refs, key refs, signature algorithms, signatures. |
396
+ | Freshness data | Expiry, nonce, sequence, revocation refs. |
397
+ | Verification summary | Validator profile ref, result hash, status, verifier signature if present. |
398
+ | Boundary assertions | No raw memory in public artifact; no chain submission unless evidenced; no token launch claim. |
399
+ | Optional rail refs | Solana planning refs or actual transaction refs only when separately evidenced. |
400
+
401
+ ## Operator runbook checklist
402
+
403
+ Before signing or publishing an operator artifact:
404
+
405
+ 1. Confirm the duty key is active and scoped to the exact duty.
406
+ 2. Validate the artifact against the supported schema/profile.
407
+ 3. Run the private-payload guard against keys and values.
408
+ 4. Canonicalize the public-safe body and compute the artifact hash.
409
+ 5. Bind the signature to the artifact hash, duty ref, key ref, nonce/sequence, and expiry.
410
+ 6. Check revocation/nullifier state for grants, keys, and prior receipts.
411
+ 7. Check dispute state for challenged receipts or operators.
412
+ 8. Ensure any Solana field is either a local planning ref or backed by real transaction evidence.
413
+ 9. Ensure receipt or bond language makes no token, ROI, compliance, deletion, or model-forgetting claim.
414
+ 10. Store private evidence separately under the controller's private retention policy.
415
+
416
+ ## Product positioning boundaries
417
+
418
+ Allowed positioning:
419
+
420
+ - Enigma defines a private memory controller protocol with operator-signed public-safe receipts.
421
+ - Operators can sign duties over hashes, roots, refs, and scopes without exposing memory.
422
+ - Solana can serve as an optional compact rail for commitments and permission/settlement refs.
423
+ - Service receipts and disputes make proof-network operations reviewable without publishing private workloads.
424
+ - Bonds and slashing are future optional accountability patterns that can be designed without launching a token.
425
+
426
+ Prohibited positioning:
427
+
428
+ - Do not claim that these docs prove Enigma operates a live proof network or live Solana program.
429
+ - Do not claim that Enigma stores memory, prompts, transcripts, embeddings, or tenant data on-chain.
430
+ - Do not claim that Enigma has launched a token, staking system, validator set, or collateral market.
431
+ - Do not claim that a local proof artifact proves provider deletion, model forgetting, legal compliance, customer ROI, or benchmark superiority.
432
+ - Do not claim that an operator receipt is a payment confirmation, invoice, or legal certification unless a separate approved system provides that evidence.