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.
- package/README.md +8 -0
- package/apps/cli/bin/enigma.mjs +362 -10
- package/deploy/SIMULATION.md +152 -0
- package/deploy/docker-compose.local-production-simulation.yml +237 -0
- package/deploy/docker-compose.production.example.yml +19 -0
- package/deploy/kms-mock.mjs +64 -0
- package/deploy/nginx.local-production-simulation.conf +33 -0
- package/deploy/siem-mock.mjs +50 -0
- package/docs/benchmark-attestation-network.md +488 -0
- package/docs/benchmark-reproducibility.md +19 -2
- package/docs/blockchain-only-mechanisms.md +388 -0
- package/docs/client-connectors.md +512 -0
- package/docs/demo-proof-network.md +275 -0
- package/docs/developer-ecosystem.md +47 -4
- package/docs/developer-proof-quickstart.md +325 -0
- package/docs/enigma-memory-ready-conformance.md +376 -0
- package/docs/enterprise-proof-control-plane.md +365 -0
- package/docs/install-anywhere.md +517 -0
- package/docs/market-category-narrative.md +398 -0
- package/docs/memory-drive-health-model.md +649 -0
- package/docs/memory-drive-strategy.md +458 -0
- package/docs/memory-passport-standard.md +445 -0
- package/docs/novelty-invention-candidates.md +161 -0
- package/docs/privacy-ledger-model.md +229 -0
- package/docs/proof-network-build-notes.md +240 -0
- package/docs/proof-network-claim-boundaries.md +318 -0
- package/docs/proof-network-dashboard-spec.md +773 -0
- package/docs/proof-network-glossary.md +27 -0
- package/docs/proof-network-launch-plan.md +421 -0
- package/docs/proof-network-operator-protocol.md +432 -0
- package/docs/proof-network-roadmap.md +431 -0
- package/docs/proof-network-test-plan.md +216 -0
- package/docs/proof-network-threat-model.md +373 -0
- package/docs/proof-network.md +257 -0
- package/docs/sdk-api.md +132 -10
- package/docs/solana-devnet-acceptance.md +226 -0
- package/docs/solana-proof-rail.md +453 -0
- package/examples/ci/github-actions.yml +6 -3
- package/examples/proof-network-anchor.json +37 -0
- package/examples/proof-network-attestation.json +35 -0
- package/examples/proof-network-grant.json +27 -0
- package/examples/proof-network-packet.json +71 -0
- package/package.json +42 -3
- package/packages/mcp-server/src/index.js +1 -1
- package/packages/proof-network/src/index.js +570 -0
- package/scripts/build-hosted-api-key-lifecycle.mjs +1 -1
- package/scripts/build-hosted-customer-lifecycle.mjs +1 -1
- package/scripts/build-installer-assets.mjs +1 -1
- package/scripts/build-proof-network-packet.mjs +213 -0
- package/scripts/run-standard-memory-benchmarks.mjs +1 -1
- package/scripts/simulate-production-env.mjs +210 -0
- package/scripts/verify-registry-install.mjs +1 -0
- package/scripts/wait-for-backend-ready.mjs +101 -0
- package/specs/goal-completion-audit-v1.schema.json +1 -0
- package/specs/proof-network-anchor-batch-v1.schema.json +125 -0
- package/specs/proof-network-benchmark-attestation-v1.schema.json +103 -0
- package/specs/proof-network-capability-grant-v1.schema.json +132 -0
- package/specs/proof-network-packet-v1.schema.json +171 -0
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
# Benchmark Attestation Network
|
|
2
|
+
|
|
3
|
+
The Benchmark Attestation Network is the program layer for turning AI-memory benchmark runs into public-safe proof artifacts. It is designed for Enigma's Proof Network: benchmark reports become attestations, attestations become proof packets, and packets can be summarized by Solana-ready opaque roots without putting raw memory or benchmark content on chain.
|
|
4
|
+
|
|
5
|
+
The program has three tracks:
|
|
6
|
+
|
|
7
|
+
1. **Public practice track** — reproducible local and public-dataset runs for developers and reviewers.
|
|
8
|
+
2. **Hidden rotating challenge track** — private challenge windows that reduce overfitting and leaderboard gaming.
|
|
9
|
+
3. **Enterprise private attestation track** — customer or auditor runs over private data where only hashes, refs, counts, signatures, and approved aggregates leave the private environment.
|
|
10
|
+
|
|
11
|
+
The central rule is **no score without a run**. A row may describe requirements for LoCoMo, LongMemEval, Mem0, or any other comparison target, but it cannot contain scores unless that exact runner or adapter executed against the stated dataset manifest with the stated scorer and validation passed.
|
|
12
|
+
|
|
13
|
+
## Public-safe boundary
|
|
14
|
+
|
|
15
|
+
Public benchmark artifacts may contain:
|
|
16
|
+
|
|
17
|
+
- schema ids;
|
|
18
|
+
- report hashes and dataset roots;
|
|
19
|
+
- source refs, license refs, split refs, package refs, runner refs, adapter refs, and scorer refs;
|
|
20
|
+
- aggregate metric names and aggregate metric values;
|
|
21
|
+
- item counts, sampled counts, top-k values, timestamps, nonces, signatures, nullifiers, and anchor roots;
|
|
22
|
+
- leakage-scan counts and status;
|
|
23
|
+
- claim boundaries.
|
|
24
|
+
|
|
25
|
+
Public benchmark artifacts must not contain:
|
|
26
|
+
|
|
27
|
+
- raw memory, raw dataset rows, raw benchmark questions, raw answers, prompts, system prompts, tool traces, transcripts, completions, embeddings, provider responses, private ACL bodies, tenant names, private customer names, API keys, private keys, seed phrases, bearer tokens, passwords, local absolute paths, provider account ids, or hidden challenge examples.
|
|
28
|
+
|
|
29
|
+
Every chain-facing or publication-facing artifact must make these facts explicit or implied by schema validation:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"transaction_submitted": false,
|
|
34
|
+
"raw_memory_on_chain": false
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Local CLI commands can create Solana-ready anchor batches, but they do not submit transactions or create accounts.
|
|
39
|
+
|
|
40
|
+
## Program roles and lifecycle
|
|
41
|
+
|
|
42
|
+
The network has four roles. One organization may hold more than one role, but public artifacts should keep the roles distinct:
|
|
43
|
+
|
|
44
|
+
| Role | Responsibility | Public-safe proof |
|
|
45
|
+
| --- | --- | --- |
|
|
46
|
+
| Runner | Executes the benchmark harness or adapter. | Run id, nonce, runner ref, package ref, environment ref, report hash. |
|
|
47
|
+
| Scorer | Computes retrieval proxy or answer-accuracy metrics. | Scorer ref, scorer version/hash, metric-family names, aggregate outputs. |
|
|
48
|
+
| Reviewer or challenge authority | Checks policy, leakage, challenge eligibility, and no-score-without-run rules. | Signature ref, policy ref, leakage summary, acceptance/rejection status. |
|
|
49
|
+
| Anchor operator | Batches public-safe roots for later settlement. | Anchor batch id, roots, refs, counts, signer refs, `transaction_submitted:false`. |
|
|
50
|
+
|
|
51
|
+
Lifecycle states:
|
|
52
|
+
|
|
53
|
+
1. `planned` — refs and capability grants are prepared; no score exists.
|
|
54
|
+
2. `ran` — the runner produced a report hash for a specific dataset manifest and nonce.
|
|
55
|
+
3. `scored` — the scorer produced metrics under a named metric family.
|
|
56
|
+
4. `reviewed` — leakage scans and no-score-without-run checks passed or failed.
|
|
57
|
+
5. `attested` — signatures bind the reviewed public-safe fields.
|
|
58
|
+
6. `packetized` — one or more attestations are wrapped into a proof packet.
|
|
59
|
+
7. `anchor_planned` — an anchor batch root is created locally without transaction submission.
|
|
60
|
+
|
|
61
|
+
A public benchmark claim starts no earlier than `attested`. A root-only anchor proves inclusion of a packet hash, not the truth of raw benchmark content or any private dataset claim outside the signed attestation.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## Track 1: public practice
|
|
65
|
+
|
|
66
|
+
The public practice track is the reproducible learning and review lane. It can use public-safe fixtures and reviewed public datasets when the raw files are kept local and reports expose only safe summaries.
|
|
67
|
+
|
|
68
|
+
Typical inputs:
|
|
69
|
+
|
|
70
|
+
- `enigma.memory_benchmark_suite.v1` deterministic local fixture reports;
|
|
71
|
+
- `enigma.standard_memory_benchmark_suite.v1` retrieval/evidence proxy reports over operator-supplied LoCoMo or LongMemEval files;
|
|
72
|
+
- public adapter dry runs that do not require provider secrets or provider transcripts.
|
|
73
|
+
|
|
74
|
+
Practice-track claims may say:
|
|
75
|
+
|
|
76
|
+
- the run happened for the stated package, runner, dataset hash, scorer, sample bounds, and top-k;
|
|
77
|
+
- the reported retrieval/evidence proxy metrics were observed in that run;
|
|
78
|
+
- the public artifact excludes raw memory, questions, answers, prompts, provider outputs, credentials, and local paths.
|
|
79
|
+
|
|
80
|
+
Practice-track claims must not say:
|
|
81
|
+
|
|
82
|
+
- the system achieved hidden challenge performance;
|
|
83
|
+
- a provider or competitor was beaten when that provider or competitor did not run;
|
|
84
|
+
- retrieval/evidence proxy metrics are natural-language answer accuracy;
|
|
85
|
+
- benchmark evidence proves provider deletion, model forgetting, compliance, ROI, or invoice savings.
|
|
86
|
+
|
|
87
|
+
## Track 2: hidden rotating challenge
|
|
88
|
+
|
|
89
|
+
The hidden rotating challenge track provides stronger anti-overfitting evidence. The challenge authority keeps raw challenge items private during the run window and publishes commitments before accepting submissions.
|
|
90
|
+
|
|
91
|
+
Minimum flow:
|
|
92
|
+
|
|
93
|
+
1. Create a hidden challenge set and compute `dataset_commitment` and `seed_commitment`.
|
|
94
|
+
2. Publish the challenge id, window, task-family summary, item count, and commitments.
|
|
95
|
+
3. Grant approved runners a scoped capability for the challenge window.
|
|
96
|
+
4. Run adapters through the approved interface with a per-run nonce.
|
|
97
|
+
5. Validate reports, leakage scans, scorer refs, item counts, reset policies, and signatures.
|
|
98
|
+
6. Publish public-safe benchmark attestations or rejection/nullifier artifacts.
|
|
99
|
+
7. Rotate or retire the hidden set after the window, after any reveal, or after suspected leakage.
|
|
100
|
+
|
|
101
|
+
Hidden-track public artifacts may disclose aggregate distribution metadata such as task families, item counts, language bands, or difficulty bands only when those fields cannot reconstruct hidden examples.
|
|
102
|
+
|
|
103
|
+
Hidden-track artifacts must not disclose hidden questions, answers, conversations, expected evidence strings, prompt templates that reveal examples, or near-paraphrases of challenge records.
|
|
104
|
+
|
|
105
|
+
## Track 3: enterprise private attestation
|
|
106
|
+
|
|
107
|
+
The enterprise private attestation track covers customer data, internal workloads, regulated corpora, support logs, and private agent histories. The customer or auditor keeps raw records private and publishes only approved commitments and aggregates.
|
|
108
|
+
|
|
109
|
+
Allowed public evidence:
|
|
110
|
+
|
|
111
|
+
- dataset commitment, split/ref, item count, and policy class;
|
|
112
|
+
- package, runner, adapter, scorer, and environment refs;
|
|
113
|
+
- report hash and proof packet hash;
|
|
114
|
+
- capability grant/revocation refs for the evaluator;
|
|
115
|
+
- aggregate metrics approved for publication;
|
|
116
|
+
- private evidence refs as hashes or encrypted-auditor refs, never raw payloads;
|
|
117
|
+
- signatures from the runner, reviewer, customer, or auditor.
|
|
118
|
+
|
|
119
|
+
If aggregate metrics are sensitive, the public artifact can state only that a private run was completed, validated, and retained under a private evidence ref. Do not force enterprise customers to publish scores when proof of completion and private auditability is the approved boundary.
|
|
120
|
+
|
|
121
|
+
## Benchmark attestation schema
|
|
122
|
+
|
|
123
|
+
`enigma.proof_network.benchmark_attestation.v1` should be the public-safe evidence envelope for benchmark runs.
|
|
124
|
+
|
|
125
|
+
| Field | Required content |
|
|
126
|
+
| --- | --- |
|
|
127
|
+
| `schema` | `enigma.proof_network.benchmark_attestation.v1`. |
|
|
128
|
+
| `attestation_id` | Stable id derived from public-safe fields or a random public id plus hash. |
|
|
129
|
+
| `created_at` | UTC timestamp. |
|
|
130
|
+
| `track` | `public_practice`, `hidden_challenge`, or `enterprise_private`. |
|
|
131
|
+
| `program` | Program name, program version, policy version, and claim boundary ref. |
|
|
132
|
+
| `run` | Run id, nonce, status, start/end timestamps, command ref, runner ref, package ref, adapter ref, environment ref. |
|
|
133
|
+
| `dataset` | Dataset name/ref, source ref, license ref, split ref, item count, sample count, dataset root/hash, disclosure policy. |
|
|
134
|
+
| `challenge` | Null outside hidden track; otherwise challenge id, window, dataset commitment, seed commitment, rotation id, authority ref, reveal policy. |
|
|
135
|
+
| `enterprise` | Null outside enterprise track; otherwise customer-safe auditor ref, private evidence hash/ref, policy class, publication approval ref. |
|
|
136
|
+
| `inputs` | Report hash, manifest hash, scorer hash, config hash, prompt-bundle hash when answer generation is performed. |
|
|
137
|
+
| `metrics` | Metric families with retrieval proxy and answer accuracy separated. |
|
|
138
|
+
| `comparisons` | Baseline, Enigma, provider, or competitor rows using the no-score-without-run envelope. |
|
|
139
|
+
| `privacy` | Public-safety booleans and leakage-scan summary. |
|
|
140
|
+
| `signatures` | Runner, reviewer, authority, customer, or auditor signatures over the public-safe attestation hash. |
|
|
141
|
+
| `anchor` | Opaque root/ref fields with `transaction_submitted:false` and `raw_memory_on_chain:false`. |
|
|
142
|
+
| `claim_boundaries` | Human-readable limits that travel with the artifact. |
|
|
143
|
+
|
|
144
|
+
Required privacy booleans:
|
|
145
|
+
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"raw_memory_included": false,
|
|
149
|
+
"raw_prompts_included": false,
|
|
150
|
+
"raw_transcripts_included": false,
|
|
151
|
+
"raw_completions_included": false,
|
|
152
|
+
"raw_embeddings_included": false,
|
|
153
|
+
"raw_acl_bodies_included": false,
|
|
154
|
+
"tenant_names_included": false,
|
|
155
|
+
"credentials_included": false,
|
|
156
|
+
"provider_responses_included": false,
|
|
157
|
+
"raw_memory_on_chain": false,
|
|
158
|
+
"transaction_submitted": false
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Minimum public-safe attestation skeleton:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"schema": "enigma.proof_network.benchmark_attestation.v1",
|
|
167
|
+
"attestation_id": "attest_public_ref_01",
|
|
168
|
+
"created_at": "2026-06-25T00:00:00.000Z",
|
|
169
|
+
"track": "public_practice",
|
|
170
|
+
"program": {
|
|
171
|
+
"name": "enigma_benchmark_attestation_network",
|
|
172
|
+
"version": "0.1.13",
|
|
173
|
+
"policy_ref": "sha256:policy-root"
|
|
174
|
+
},
|
|
175
|
+
"run": {
|
|
176
|
+
"run_id": "run_public_ref_01",
|
|
177
|
+
"nonce": "sha256:run-nonce-commitment",
|
|
178
|
+
"status": "completed",
|
|
179
|
+
"runner_ref": "sha256:runner-root",
|
|
180
|
+
"package_ref": "npm:enigma-memory@0.1.13",
|
|
181
|
+
"adapter_ref": "local:enigma-relevance",
|
|
182
|
+
"environment_ref": "sha256:environment-summary-root"
|
|
183
|
+
},
|
|
184
|
+
"dataset": {
|
|
185
|
+
"dataset_ref": "locomo:locomo10",
|
|
186
|
+
"source_ref": "https://snap-research.github.io/locomo/",
|
|
187
|
+
"license_ref": "CC-BY-NC-4.0",
|
|
188
|
+
"split_ref": "public-file",
|
|
189
|
+
"record_count": 0,
|
|
190
|
+
"sample_count": 0,
|
|
191
|
+
"dataset_root": "sha256:dataset-root",
|
|
192
|
+
"raw_records_included": false
|
|
193
|
+
},
|
|
194
|
+
"inputs": {
|
|
195
|
+
"report_hash": "sha256:report-root",
|
|
196
|
+
"manifest_hash": "sha256:manifest-root",
|
|
197
|
+
"scorer_hash": "sha256:scorer-root",
|
|
198
|
+
"config_hash": "sha256:config-root"
|
|
199
|
+
},
|
|
200
|
+
"metrics": {
|
|
201
|
+
"retrieval_proxy": {
|
|
202
|
+
"reported": true,
|
|
203
|
+
"top_k": 5
|
|
204
|
+
},
|
|
205
|
+
"answer_accuracy": {
|
|
206
|
+
"reported": false,
|
|
207
|
+
"reason_not_reported": "No fixed answer-generation and grading run was executed."
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
"privacy": {
|
|
211
|
+
"raw_memory_included": false,
|
|
212
|
+
"raw_prompts_included": false,
|
|
213
|
+
"raw_transcripts_included": false,
|
|
214
|
+
"raw_completions_included": false,
|
|
215
|
+
"raw_embeddings_included": false,
|
|
216
|
+
"raw_acl_bodies_included": false,
|
|
217
|
+
"tenant_names_included": false,
|
|
218
|
+
"credentials_included": false,
|
|
219
|
+
"provider_responses_included": false,
|
|
220
|
+
"raw_memory_on_chain": false,
|
|
221
|
+
"transaction_submitted": false
|
|
222
|
+
},
|
|
223
|
+
"signatures": [],
|
|
224
|
+
"claim_boundaries": [
|
|
225
|
+
"Retrieval proxy metrics are not answer accuracy.",
|
|
226
|
+
"No raw memory or raw dataset records are included."
|
|
227
|
+
]
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
## Metric families
|
|
233
|
+
|
|
234
|
+
The schema must separate retrieval/evidence proxy metrics from answer-accuracy metrics.
|
|
235
|
+
|
|
236
|
+
Retrieval/evidence proxy asks whether the memory system surfaced records that contain expected support. It can be measured without generating final answers.
|
|
237
|
+
|
|
238
|
+
Common retrieval proxy fields:
|
|
239
|
+
|
|
240
|
+
- evidence hit@k;
|
|
241
|
+
- exact evidence coverage;
|
|
242
|
+
- turn evidence hit@k;
|
|
243
|
+
- session evidence hit@k;
|
|
244
|
+
- abstention correctness where no-answer labels exist;
|
|
245
|
+
- selected memory count;
|
|
246
|
+
- estimated prompt tokens;
|
|
247
|
+
- local retrieval/packing latency.
|
|
248
|
+
|
|
249
|
+
Answer accuracy asks whether a fixed model or agent produced the correct final answer under a fixed prompt, tool loop, evaluator, and budget. It requires separate evidence:
|
|
250
|
+
|
|
251
|
+
- frozen generator model id, not a floating alias;
|
|
252
|
+
- frozen answer prompt and memory-injection policy;
|
|
253
|
+
- fixed evaluator method and scorer ref;
|
|
254
|
+
- retry, timeout, refusal, and abstention policy;
|
|
255
|
+
- prompt bundle hash and evaluator bundle hash;
|
|
256
|
+
- private retention policy for provider inputs/outputs where license permits;
|
|
257
|
+
- public aggregates and hashes only.
|
|
258
|
+
|
|
259
|
+
Example metric envelope:
|
|
260
|
+
|
|
261
|
+
```json
|
|
262
|
+
{
|
|
263
|
+
"retrieval_proxy": {
|
|
264
|
+
"reported": true,
|
|
265
|
+
"evidence_hit_at_k": 0.82,
|
|
266
|
+
"exact_evidence_coverage": 0.64,
|
|
267
|
+
"abstention_correctness": 0.91,
|
|
268
|
+
"top_k": 5
|
|
269
|
+
},
|
|
270
|
+
"answer_accuracy": {
|
|
271
|
+
"reported": false,
|
|
272
|
+
"reason_not_reported": "No fixed answer-generation and grading run was executed."
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
If `reported:false`, the metric family must not contain a score.
|
|
278
|
+
|
|
279
|
+
## Comparison row schema
|
|
280
|
+
|
|
281
|
+
Each baseline or competitor row must be explicit about whether it actually ran.
|
|
282
|
+
|
|
283
|
+
| Field | Requirement |
|
|
284
|
+
| --- | --- |
|
|
285
|
+
| `target` | Public label such as `full_context`, `keyword_filter`, `enigma_relevance`, `mem0`, or `letta`. |
|
|
286
|
+
| `target_type` | `local_baseline`, `enigma_method`, `external_adapter`, or `provider_native`. |
|
|
287
|
+
| `ran` | Boolean. Metrics require `true`. |
|
|
288
|
+
| `scores_included` | Boolean. Must be false unless the run executed and validation passed. |
|
|
289
|
+
| `run_id` | Required when `ran:true`; null otherwise. |
|
|
290
|
+
| `adapter_ref` | Adapter package/config/code hash, or requirements-only ref when not run. |
|
|
291
|
+
| `dataset_ref` | Dataset manifest hash/root. |
|
|
292
|
+
| `reset_policy_ref` | Required for stateful memory systems. |
|
|
293
|
+
| `prompt_policy_ref` | Required for answer-accuracy runs. |
|
|
294
|
+
| `scorer_ref` | Required for any score. |
|
|
295
|
+
| `boundary_reason` | Required when `ran:false` or scores are withheld. |
|
|
296
|
+
| `metrics` | Present only when `scores_included:true`. |
|
|
297
|
+
|
|
298
|
+
Requirements-only example:
|
|
299
|
+
|
|
300
|
+
```json
|
|
301
|
+
{
|
|
302
|
+
"target": "mem0",
|
|
303
|
+
"target_type": "external_adapter",
|
|
304
|
+
"ran": false,
|
|
305
|
+
"scores_included": false,
|
|
306
|
+
"run_id": null,
|
|
307
|
+
"adapter_ref": "requirements-only:mem0-adapter-v1",
|
|
308
|
+
"dataset_ref": "sha256:public-dataset-manifest-root",
|
|
309
|
+
"reset_policy_ref": null,
|
|
310
|
+
"prompt_policy_ref": null,
|
|
311
|
+
"scorer_ref": null,
|
|
312
|
+
"boundary_reason": "Mem0 runtime, credentials, fixed extraction/update/retrieval policy, reset policy, and scorer were not executed in this harness."
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
That row is valid because it reports no score. It becomes a score row only after the exact Mem0 adapter executes against the same dataset manifest under the same scorer.
|
|
317
|
+
|
|
318
|
+
## Anti-cheat controls
|
|
319
|
+
|
|
320
|
+
The program should assume attempts to overfit public data, infer hidden examples, replay old reports, manipulate reset state, tune against evaluator behavior, or submit incomplete runs.
|
|
321
|
+
|
|
322
|
+
Required controls:
|
|
323
|
+
|
|
324
|
+
1. **Pre-run commitments** — hidden challenges publish dataset and seed commitments before the run window.
|
|
325
|
+
2. **Per-run nonces** — every report hash binds to a unique nonce.
|
|
326
|
+
3. **Runner binding** — package ref, runner ref, adapter ref, scorer ref, and environment ref are part of the signature payload.
|
|
327
|
+
4. **Dataset binding** — every score binds to source ref, license ref, split ref, item count, sample count, top-k, and dataset root.
|
|
328
|
+
5. **State reset policy** — stateful memory systems declare reset/import/export semantics before scoring.
|
|
329
|
+
6. **No-score-without-run validation** — rows with `ran:false` cannot carry metrics; rows with metrics require run ids and scorer refs.
|
|
330
|
+
7. **Replay prevention** — attestation ids include nonce, challenge id where present, dataset commitment, report hash, and created timestamp.
|
|
331
|
+
8. **Hidden-set rotation** — challenge sets rotate after each window, reveal, suspected leak, or policy change.
|
|
332
|
+
9. **Practice/challenge separation** — public practice artifacts cannot be submitted as hidden challenge evidence unless policy explicitly allows the dataset.
|
|
333
|
+
10. **Budget parity** — live provider or external runtime comparisons use fixed retry, timeout, context, and spend caps.
|
|
334
|
+
11. **Outlier review** — perfect scores, impossible latencies, duplicate report hashes, inconsistent item counts, or suspicious failure patterns trigger review before signing.
|
|
335
|
+
12. **Revocation path** — leakage or policy breach produces a revocation/nullifier artifact rather than a public score.
|
|
336
|
+
|
|
337
|
+
## Leakage scans
|
|
338
|
+
|
|
339
|
+
Leakage scans are mandatory before publication. They should inspect benchmark attestations, packets, anchor batches, grants, revocations, examples, docs snippets, and marketing claims.
|
|
340
|
+
|
|
341
|
+
Scan for:
|
|
342
|
+
|
|
343
|
+
- raw memory and private fixture text;
|
|
344
|
+
- raw LoCoMo/LongMemEval records when not explicitly approved for publication;
|
|
345
|
+
- hidden challenge questions, answers, evidence strings, and paraphrases;
|
|
346
|
+
- enterprise customer data or customer names;
|
|
347
|
+
- prompts, system prompts, tool traces, transcripts, completions, provider responses, and embeddings;
|
|
348
|
+
- ACL bodies, tenant names, local usernames, home-directory paths, and private workspace paths;
|
|
349
|
+
- API keys, private keys, seed phrases, bearer tokens, passwords, cloud credentials, and high-entropy strings outside allowed hash/signature fields.
|
|
350
|
+
|
|
351
|
+
Recommended scan layers:
|
|
352
|
+
|
|
353
|
+
1. Schema allowlist for permitted public fields.
|
|
354
|
+
2. Key-name denylist for private payload names unless the field is explicitly a hash/ref.
|
|
355
|
+
3. Secret-pattern scan for token and credential shapes.
|
|
356
|
+
4. Entropy scan with allowlisted hash/signature fields.
|
|
357
|
+
5. Absolute-path scan.
|
|
358
|
+
6. Private corpus similarity scan for hidden challenge and enterprise tracks.
|
|
359
|
+
7. Human review for aggregate fields that could reconstruct private records.
|
|
360
|
+
|
|
361
|
+
Public leakage summaries should expose counts, scanner refs, and pass/fail status only:
|
|
362
|
+
|
|
363
|
+
```json
|
|
364
|
+
{
|
|
365
|
+
"leakage_scan": {
|
|
366
|
+
"status": "passed",
|
|
367
|
+
"scanner_ref": "enigma-proof-leakage-scan:v1",
|
|
368
|
+
"scanned_fields": 184,
|
|
369
|
+
"raw_match_count": 0,
|
|
370
|
+
"secret_match_count": 0,
|
|
371
|
+
"high_entropy_non_allowlisted_count": 0
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
## Proof packet and anchor flow
|
|
377
|
+
|
|
378
|
+
A benchmark run should flow through the Proof Network like this:
|
|
379
|
+
|
|
380
|
+
1. Runner creates a benchmark report.
|
|
381
|
+
2. Attestation builder hashes the report, dataset manifest, scorer, config, and prompt bundle where applicable.
|
|
382
|
+
3. Attestation builder emits `enigma.proof_network.benchmark_attestation.v1`.
|
|
383
|
+
4. Packet builder wraps one or more attestations in `enigma.proof_network.packet.v1`.
|
|
384
|
+
5. Anchor builder emits `enigma.proof_network.anchor_batch.v1` with opaque roots, refs, counts, signer refs, `transaction_submitted:false`, and `raw_memory_on_chain:false`.
|
|
385
|
+
6. A future external anchoring process may submit a root, but the local CLI planning commands do not.
|
|
386
|
+
|
|
387
|
+
Capability grants and revocations should protect hidden and enterprise runs:
|
|
388
|
+
|
|
389
|
+
- grants expose subject refs, scope refs, capability names, validity windows, constraint hashes, issuer refs, and signatures;
|
|
390
|
+
- grants do not expose private ACL bodies, tenant names, or private identities;
|
|
391
|
+
- revocations expose grant refs, nullifiers, reason codes, effective timestamps, issuer refs, and signatures;
|
|
392
|
+
- revoked grants cannot authorize future challenge or enterprise attestations.
|
|
393
|
+
|
|
394
|
+
## LoCoMo in the network
|
|
395
|
+
|
|
396
|
+
LoCoMo fits the public practice track as a public long-term conversational-memory source. It is useful for multi-session QA and long-context memory retrieval experiments, but public LoCoMo runs must be described precisely.
|
|
397
|
+
|
|
398
|
+
Allowed from a retrieval/proxy run:
|
|
399
|
+
|
|
400
|
+
- dataset source/ref, license boundary, local file hash, split or file name, item count, sample bounds, top-k;
|
|
401
|
+
- evidence-hit or evidence-coverage style metrics produced by the standard runner;
|
|
402
|
+
- claim that the run surfaced expected evidence under the stated parser/scorer.
|
|
403
|
+
|
|
404
|
+
Not allowed from a retrieval/proxy run:
|
|
405
|
+
|
|
406
|
+
- answer accuracy;
|
|
407
|
+
- provider quality;
|
|
408
|
+
- competitor ranking;
|
|
409
|
+
- hidden challenge generalization;
|
|
410
|
+
- model forgetting, deletion proof, compliance, or ROI claims.
|
|
411
|
+
|
|
412
|
+
A future LoCoMo answer-accuracy attestation must add the fixed answer-generation and grading evidence described above.
|
|
413
|
+
|
|
414
|
+
## LongMemEval in the network
|
|
415
|
+
|
|
416
|
+
LongMemEval fits the public practice track for information extraction, multi-session reasoning, temporal reasoning, knowledge updates, and abstention-oriented memory evaluation.
|
|
417
|
+
|
|
418
|
+
Allowed from a retrieval/proxy run:
|
|
419
|
+
|
|
420
|
+
- turn evidence-hit@k;
|
|
421
|
+
- session evidence-hit@k;
|
|
422
|
+
- exact evidence coverage;
|
|
423
|
+
- abstention correctness where supported;
|
|
424
|
+
- selected-memory counts, estimated prompt tokens, and local latency;
|
|
425
|
+
- source/ref, cleaned file hash, split, item count, sample bounds, and top-k.
|
|
426
|
+
|
|
427
|
+
Not allowed from a retrieval/proxy run:
|
|
428
|
+
|
|
429
|
+
- natural-language answer accuracy;
|
|
430
|
+
- claims that Enigma won LongMemEval;
|
|
431
|
+
- provider/model/competitor superiority;
|
|
432
|
+
- deletion, forgetting, compliance, or savings claims.
|
|
433
|
+
|
|
434
|
+
Hidden challenges may use LongMemEval-like task families, but public LongMemEval records should not be treated as hidden challenge records.
|
|
435
|
+
|
|
436
|
+
## Mem0 comparisons in the network
|
|
437
|
+
|
|
438
|
+
Mem0 belongs in the external adapter lane. A Mem0 row is credible only after a configured Mem0 runtime actually runs under the same program rules.
|
|
439
|
+
|
|
440
|
+
Before publishing a Mem0 score, the attestation must include:
|
|
441
|
+
|
|
442
|
+
- Mem0 deployment flavor and version, such as hosted platform or open-source runtime;
|
|
443
|
+
- SDK/package version and adapter code hash;
|
|
444
|
+
- placeholder environment names for credentials, never secret values;
|
|
445
|
+
- extraction, update, retrieval, namespace, and reset policy refs;
|
|
446
|
+
- model/tool loop refs when answer generation is included;
|
|
447
|
+
- dataset manifest hash shared with the Enigma run;
|
|
448
|
+
- scorer ref shared with the Enigma run;
|
|
449
|
+
- retry, timeout, budget, and context caps;
|
|
450
|
+
- leakage-scan summary;
|
|
451
|
+
- run id and signatures.
|
|
452
|
+
|
|
453
|
+
Until those exist, Mem0 can appear only as a requirements-only row with `ran:false`, `scores_included:false`, and no metrics. Vendor positioning may be cited as source context, not as an Enigma-measured result.
|
|
454
|
+
|
|
455
|
+
## Publication checklist
|
|
456
|
+
|
|
457
|
+
Publish a benchmark attestation only when:
|
|
458
|
+
|
|
459
|
+
1. The schema is recognized and validation passes.
|
|
460
|
+
2. The artifact contains no raw memory, prompts, transcripts, completions, embeddings, ACL bodies, tenant names, credentials, provider responses, hidden records, or private customer data.
|
|
461
|
+
3. Chain-facing artifacts state `transaction_submitted:false` and `raw_memory_on_chain:false`.
|
|
462
|
+
4. Every score row has `ran:true`, `scores_included:true`, run id, dataset ref, scorer ref, and adapter/runner ref.
|
|
463
|
+
5. Every non-run row has `ran:false`, `scores_included:false`, no metrics, and a clear `boundary_reason`.
|
|
464
|
+
6. Retrieval/evidence proxy metrics and answer-accuracy metrics are separate.
|
|
465
|
+
7. Answer-accuracy scores are absent unless a fixed answer-generation and grading run occurred.
|
|
466
|
+
8. Hidden challenge artifacts expose commitments and aggregates only.
|
|
467
|
+
9. Enterprise artifacts expose only customer-approved public fields.
|
|
468
|
+
10. Leakage scans passed and expose only safe counts.
|
|
469
|
+
11. Claim boundaries are embedded in the attestation and copied into public copy.
|
|
470
|
+
|
|
471
|
+
## Safe claim language
|
|
472
|
+
|
|
473
|
+
Safe:
|
|
474
|
+
|
|
475
|
+
- "This attestation proves that a public-safe benchmark report with the stated hash was produced by the stated runner over the stated dataset commitment."
|
|
476
|
+
- "The LoCoMo/LongMemEval values are retrieval/evidence proxy metrics for this dataset hash, parser, scorer, top-k, and sample boundary."
|
|
477
|
+
- "This Mem0 row is requirements-only because the Mem0 adapter was not run."
|
|
478
|
+
- "The anchor batch is Solana-ready local planning output; no transaction was submitted."
|
|
479
|
+
|
|
480
|
+
Unsafe:
|
|
481
|
+
|
|
482
|
+
- "This proves Enigma answers LoCoMo questions better than every memory system" when only retrieval proxy ran.
|
|
483
|
+
- "This proves Enigma won LongMemEval" when no official answer-accuracy run occurred.
|
|
484
|
+
- "This proves Mem0 lost" when the Mem0 adapter was requirements-only.
|
|
485
|
+
- "This proves provider deletion, model forgetting, compliance certification, token ROI, or invoice savings."
|
|
486
|
+
- "This enterprise result is public" when only a private attestation was approved.
|
|
487
|
+
|
|
488
|
+
The Benchmark Attestation Network should make strong benchmark claims possible by making unsupported benchmark claims impossible to publish accidentally.
|
|
@@ -4,7 +4,7 @@ This guide explains how to reproduce the current local Enigma memory benchmark,
|
|
|
4
4
|
|
|
5
5
|
## What is reproducible today
|
|
6
6
|
|
|
7
|
-
The current package is `enigma-memory@0.1.
|
|
7
|
+
The current planned package is `enigma-memory@0.1.13`. Two benchmark paths are reproducible without provider credentials:
|
|
8
8
|
|
|
9
9
|
1. The local deterministic memory suite, available through the package script and the script file it wraps:
|
|
10
10
|
|
|
@@ -64,7 +64,7 @@ Do not commit downloaded files or raw benchmark conversations. The package `.git
|
|
|
64
64
|
|
|
65
65
|
## Reproduce and save local fixture JSON
|
|
66
66
|
|
|
67
|
-
1. Use a clean checkout containing `enigma-memory@0.1.
|
|
67
|
+
1. Use a clean checkout containing `enigma-memory@0.1.13`.
|
|
68
68
|
2. From a repository root that contains `enigma/package.json`, enter the package directory:
|
|
69
69
|
|
|
70
70
|
```sh
|
|
@@ -128,6 +128,23 @@ Public sharing should include the generated benchmark report JSON and generated
|
|
|
128
128
|
4. The manifest includes source URLs, byte sizes, SHA-256 hashes, license/usage boundaries, and local file names for the exact dataset files used.
|
|
129
129
|
5. Any public claim says "retrieval/evidence coverage proxy", quotes scores only from the generated report for the exact dataset hash/top-k/sample bounds, and avoids provider/model/competitor implications unless a separate reviewed provider answer-accuracy run exists.
|
|
130
130
|
|
|
131
|
+
## Proof-network benchmark attestations
|
|
132
|
+
|
|
133
|
+
For the planned 0.1.13 proof-network layer, benchmark results should be represented as a public-safe local attestation rather than by publishing raw benchmark inputs. The attestation JSON uses `schema: "enigma.proof_network.benchmark_attestation.v1"` and may be bundled in `enigma.proof_network.packet.v1` for review. The benchmark attestation flow is local planning only: it does not submit transactions, and generated artifacts must keep `transaction_submitted: false` and `raw_memory_on_chain: false`.
|
|
134
|
+
|
|
135
|
+
Hash the generated benchmark report and companion dataset manifest, then attest only the hashes, schema names, dataset refs, runner refs, package refs, aggregate metric names/values copied from the report, record counts, top-k/sample bounds, timestamps, and signatures or signer refs needed for review. The public artifact must not contain raw dataset rows, raw conversations, prompts, private questions, private answers, provider responses, embeddings, credentials, tenant names, account ids, local absolute paths, or unpublished benchmark scores.
|
|
136
|
+
|
|
137
|
+
Use a `sha256:<hex>` commitment for the report and manifest. If the CLI derives the report commitment from `--report-file`, publish the resulting hash field only; if a reviewer precomputes a hash, hash the final public-safe JSON artifact that will be shared, not any raw source dataset or private run directory.
|
|
138
|
+
|
|
139
|
+
After running one of the benchmark commands above and confirming the report is public-safe, create a local planning attestation with placeholder hashes and metric values replaced from the generated report and manifest:
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
enigma chain attest --report-file .enigma/standard-memory-benchmark-sample.json --dataset-ref "sha256:<public-dataset-or-manifest-hash>" --runner-ref "run-standard-memory-benchmarks.mjs@<reviewed-revision>" --package-ref "enigma-memory@0.1.13" --score "retrieval_evidence_proxy=<value-copied-from-report>" --out .enigma/standard-memory-benchmark-attestation.json
|
|
143
|
+
enigma chain verify --file .enigma/standard-memory-benchmark-attestation.json
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
When a report file is supplied, the attestation command should derive a SHA-256 report commitment from the JSON report and store that commitment rather than copying the report body into the proof artifact. If a precomputed report hash is used instead, record the hash algorithm, report schema, dataset manifest hash, and the exact runner/package refs that produced it. Treat the proof-network attestation as a reproducibility receipt for a specific local report hash and explicitly recorded aggregate metrics, not as evidence of provider answer accuracy, competitor performance, Solana settlement, or live model behavior.
|
|
147
|
+
|
|
131
148
|
## Local baseline rows in the report
|
|
132
149
|
|
|
133
150
|
The report now includes `metrics.local_baseline_comparisons`, which compares deterministic local baselines over the same private fixture questions. These rows are local package evidence only: they do not call hosted providers, use provider APIs, or support invoice savings, ROI, compliance, model-forgetting, or benchmark-leadership claims.
|