@mikeargento/bitgraph-audit 0.8.0 → 0.10.0
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 -2
- package/dist/audit.d.ts +9 -6
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +34 -8
- package/dist/audit.js.map +1 -1
- package/dist/ceilings.d.ts.map +1 -1
- package/dist/ceilings.js +1 -0
- package/dist/ceilings.js.map +1 -1
- package/dist/cli.js +109 -21
- package/dist/cli.js.map +1 -1
- package/dist/exports.d.ts +39 -0
- package/dist/exports.d.ts.map +1 -0
- package/dist/exports.js +374 -0
- package/dist/exports.js.map +1 -0
- package/dist/floors.d.ts +23 -0
- package/dist/floors.d.ts.map +1 -0
- package/dist/floors.js +203 -0
- package/dist/floors.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/ingest.d.ts +2 -0
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +193 -19
- package/dist/ingest.js.map +1 -1
- package/dist/report-json.d.ts.map +1 -1
- package/dist/report-json.js +30 -0
- package/dist/report-json.js.map +1 -1
- package/dist/report-md.d.ts.map +1 -1
- package/dist/report-md.js +315 -25
- package/dist/report-md.js.map +1 -1
- package/dist/temporal.d.ts +12 -0
- package/dist/temporal.d.ts.map +1 -1
- package/dist/temporal.js +245 -41
- package/dist/temporal.js.map +1 -1
- package/dist/types.d.ts +348 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/__tests__/base-floor.test.ts +405 -0
- package/src/audit.ts +36 -8
- package/src/ceilings.ts +1 -0
- package/src/cli.ts +117 -22
- package/src/exports.ts +482 -0
- package/src/floors.ts +242 -0
- package/src/index.ts +20 -0
- package/src/ingest.ts +207 -18
- package/src/report-json.ts +30 -0
- package/src/report-md.ts +353 -29
- package/src/temporal.ts +279 -48
- package/src/types.ts +341 -6
package/dist/temporal.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright (c) 2024-2026 Argento Computing Inc. Licensed under the MIT License. See LICENSE.
|
|
2
2
|
import { byCounterThenHash, parseCounter, pushMap } from "./validity.js";
|
|
3
|
+
import { baseFloorTimeSentence, readSignedFloors } from "./floors.js";
|
|
3
4
|
// ---------------------------------------------------------------------------
|
|
4
5
|
// Public API
|
|
5
6
|
// ---------------------------------------------------------------------------
|
|
@@ -26,27 +27,68 @@ export function deriveTemporalBounds(ingest, reconstruction, identification, wit
|
|
|
26
27
|
.map((a) => a.proofHash)
|
|
27
28
|
.filter((h) => !evidence.has(h))
|
|
28
29
|
.sort();
|
|
30
|
+
// Base floors the proofs sign (enclave v10). Empty for older bundles.
|
|
31
|
+
const floors = readSignedFloors(ingest);
|
|
29
32
|
// Per-partition segments.
|
|
30
33
|
const segments = [];
|
|
34
|
+
const anchorLower = new Map();
|
|
31
35
|
for (const partition of reconstruction.partitions) {
|
|
32
|
-
|
|
36
|
+
const built = buildPartitionSegments(partition, byHash, evidence, floors.bounds);
|
|
37
|
+
segments.push(...built.segments);
|
|
38
|
+
for (const [h, b] of built.anchorLower)
|
|
39
|
+
anchorLower.set(h, b);
|
|
33
40
|
}
|
|
34
41
|
// Epoch-level aggregation and cross-epoch ordering.
|
|
35
|
-
const anchorOrderedPairs = aggregateEpochs(reconstruction, segments);
|
|
42
|
+
const anchorOrderedPairs = aggregateEpochs(reconstruction, segments, anchorLower);
|
|
36
43
|
return {
|
|
37
44
|
segments,
|
|
38
45
|
anchorOrderedPairs,
|
|
39
46
|
verifiedAnchorProofHashes,
|
|
40
47
|
unverifiedAnchorProofHashes,
|
|
48
|
+
...(floors.records.length > 0 ? { signedFloors: floors.records } : {}),
|
|
49
|
+
...(floors.problems.length > 0 ? { floorProblems: floors.problems } : {}),
|
|
41
50
|
};
|
|
42
51
|
}
|
|
43
|
-
|
|
52
|
+
/** Tie-break strength of bound evidence at an equal block time. */
|
|
53
|
+
const EVIDENCE_RANK = { "signed-floor": 2, "chain-link": 1, "counter-order": 0 };
|
|
54
|
+
/** Candidate key of a Base floor: kept apart from anchor keys (a proof hash). */
|
|
55
|
+
const FLOOR_KEY = "floor:";
|
|
56
|
+
function floorSource(f) {
|
|
57
|
+
return {
|
|
58
|
+
anchorProofHash: f.proofHash,
|
|
59
|
+
timestamp: f.timestamp,
|
|
60
|
+
blockHash: f.blockHash,
|
|
61
|
+
blockNumber: String(f.blockNumber),
|
|
62
|
+
floor: { timeSource: f.timeSource },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/** The tighter of two floors (later block time; at a tie, the lower proof hash, for determinism). */
|
|
66
|
+
function laterFloor(a, b) {
|
|
67
|
+
if (a === undefined)
|
|
68
|
+
return b;
|
|
69
|
+
if (b === undefined)
|
|
70
|
+
return a;
|
|
71
|
+
if (a.timestamp !== b.timestamp)
|
|
72
|
+
return a.timestamp > b.timestamp ? a : b;
|
|
73
|
+
return a.proofHash <= b.proofHash ? a : b;
|
|
74
|
+
}
|
|
75
|
+
function buildPartitionSegments(partition, byHash, anchorEvidence, floorBounds) {
|
|
44
76
|
const members = partition.memberProofHashes.map((h) => byHash.get(h));
|
|
45
77
|
// Keyed by CHAIN hash: this map is used only to resolve prevB64 pointers
|
|
46
78
|
// (here and in collectAncestors), and prevB64 references the predecessor's
|
|
47
79
|
// chain hash, not its identity hash.
|
|
48
80
|
const memberSet = new Map(members.map((m) => [m.chainHash, m]));
|
|
49
|
-
const anchors = members.filter((m) =>
|
|
81
|
+
const anchors = members.filter((m) => anchorEvidence.has(m.proofHash));
|
|
82
|
+
// Base floors signed in this partition. Floor sources join the evidence
|
|
83
|
+
// map under their own keys, so selection treats a floor exactly as it
|
|
84
|
+
// treats an anchor's not-before.
|
|
85
|
+
const floored = members.filter((m) => floorBounds.has(m.proofHash));
|
|
86
|
+
let evidence = anchorEvidence;
|
|
87
|
+
if (floored.length > 0) {
|
|
88
|
+
evidence = new Map(anchorEvidence);
|
|
89
|
+
for (const m of floored)
|
|
90
|
+
evidence.set(FLOOR_KEY + m.proofHash, floorSource(floorBounds.get(m.proofHash)));
|
|
91
|
+
}
|
|
50
92
|
// Hash-link structure within the partition.
|
|
51
93
|
const successors = new Map();
|
|
52
94
|
for (const m of members) {
|
|
@@ -65,6 +107,58 @@ function buildPartitionSegments(partition, byHash, evidence) {
|
|
|
65
107
|
chainAfter.set(anchor.proofHash, collectDescendants(anchor, successors));
|
|
66
108
|
chainBefore.set(anchor.proofHash, collectAncestors(anchor, memberSet));
|
|
67
109
|
}
|
|
110
|
+
// Base floors reach a member three ways: its own signed floor; the
|
|
111
|
+
// tightest floor among its hash-link ancestors (chain-link); the tightest
|
|
112
|
+
// floor signed at a lower commit counter (counter-order). Both inherited
|
|
113
|
+
// forms are computed in one pass each, never per pair.
|
|
114
|
+
const chainFloor = new Map();
|
|
115
|
+
const counterFloor = new Map();
|
|
116
|
+
if (floored.length > 0) {
|
|
117
|
+
const pred = (m) => {
|
|
118
|
+
if (m.prevB64 === undefined)
|
|
119
|
+
return undefined;
|
|
120
|
+
const p = memberSet.get(m.prevB64);
|
|
121
|
+
return p === undefined || p.proofHash === m.proofHash ? undefined : p;
|
|
122
|
+
};
|
|
123
|
+
for (const m of members) {
|
|
124
|
+
const path = [];
|
|
125
|
+
const seen = new Set();
|
|
126
|
+
let cur = m;
|
|
127
|
+
while (cur !== undefined && !chainFloor.has(cur.proofHash) && !seen.has(cur.proofHash)) {
|
|
128
|
+
seen.add(cur.proofHash);
|
|
129
|
+
path.push(cur);
|
|
130
|
+
cur = pred(cur);
|
|
131
|
+
}
|
|
132
|
+
let carry = cur !== undefined && chainFloor.has(cur.proofHash)
|
|
133
|
+
? laterFloor(chainFloor.get(cur.proofHash), floorBounds.get(cur.proofHash))
|
|
134
|
+
: undefined;
|
|
135
|
+
for (let i = path.length - 1; i >= 0; i--) {
|
|
136
|
+
const node = path[i];
|
|
137
|
+
chainFloor.set(node.proofHash, carry);
|
|
138
|
+
carry = laterFloor(carry, floorBounds.get(node.proofHash));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
const counted = members
|
|
142
|
+
.map((m) => ({ m, c: parseCounter(m.counter) }))
|
|
143
|
+
.filter((x) => x.c !== undefined)
|
|
144
|
+
.sort((a, b) => (a.c < b.c ? -1 : a.c > b.c ? 1 : 0));
|
|
145
|
+
let running;
|
|
146
|
+
for (let i = 0; i < counted.length;) {
|
|
147
|
+
let j = i;
|
|
148
|
+
while (j < counted.length && counted[j].c === counted[i].c)
|
|
149
|
+
j++;
|
|
150
|
+
let group;
|
|
151
|
+
for (let k = i; k < j; k++) {
|
|
152
|
+
const m = counted[k].m;
|
|
153
|
+
counterFloor.set(m.proofHash, running);
|
|
154
|
+
group = laterFloor(group, floorBounds.get(m.proofHash));
|
|
155
|
+
}
|
|
156
|
+
running = laterFloor(running, group);
|
|
157
|
+
i = j;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const mixed = floored.length > 0 && anchors.length > 0;
|
|
161
|
+
const anchorLower = new Map();
|
|
68
162
|
// Candidate bounds per member.
|
|
69
163
|
const memberBounds = members.map((member) => {
|
|
70
164
|
const lowerCandidates = new Map();
|
|
@@ -99,6 +193,25 @@ function buildPartitionSegments(partition, byHash, evidence) {
|
|
|
99
193
|
upperCandidates.set(anchorHash, "counter-order");
|
|
100
194
|
}
|
|
101
195
|
}
|
|
196
|
+
// A partition holding both anchors and floors keeps each member's
|
|
197
|
+
// anchor-only not-before apart, for the cross-epoch pairs.
|
|
198
|
+
if (mixed && lowerCandidates.size > 0) {
|
|
199
|
+
anchorLower.set(member.proofHash, selectBounds("not-before", lowerCandidates, evidence));
|
|
200
|
+
}
|
|
201
|
+
// Base floors: not-before only. Never an upper candidate.
|
|
202
|
+
if (floored.length > 0) {
|
|
203
|
+
const own = floorBounds.get(member.proofHash);
|
|
204
|
+
if (own !== undefined)
|
|
205
|
+
lowerCandidates.set(FLOOR_KEY + own.proofHash, "signed-floor");
|
|
206
|
+
const viaChain = chainFloor.get(member.proofHash);
|
|
207
|
+
if (viaChain !== undefined && !lowerCandidates.has(FLOOR_KEY + viaChain.proofHash)) {
|
|
208
|
+
lowerCandidates.set(FLOOR_KEY + viaChain.proofHash, "chain-link");
|
|
209
|
+
}
|
|
210
|
+
const viaCounter = counterFloor.get(member.proofHash);
|
|
211
|
+
if (viaCounter !== undefined && !lowerCandidates.has(FLOOR_KEY + viaCounter.proofHash)) {
|
|
212
|
+
lowerCandidates.set(FLOOR_KEY + viaCounter.proofHash, "counter-order");
|
|
213
|
+
}
|
|
214
|
+
}
|
|
102
215
|
return {
|
|
103
216
|
member,
|
|
104
217
|
lower: selectBounds("not-before", lowerCandidates, evidence),
|
|
@@ -134,7 +247,7 @@ function buildPartitionSegments(partition, byHash, evidence) {
|
|
|
134
247
|
});
|
|
135
248
|
}
|
|
136
249
|
segments.sort(compareSegments);
|
|
137
|
-
return segments;
|
|
250
|
+
return { segments, anchorLower };
|
|
138
251
|
}
|
|
139
252
|
/**
|
|
140
253
|
* Select the reported bounds from the candidate set: the tightest bound
|
|
@@ -158,9 +271,10 @@ function selectBounds(kind, candidates, evidence) {
|
|
|
158
271
|
? a.info.timestamp > b.info.timestamp
|
|
159
272
|
: a.info.timestamp < b.info.timestamp;
|
|
160
273
|
}
|
|
161
|
-
// Tie: prefer
|
|
274
|
+
// Tie: prefer the proof's own signed floor, then chain-link evidence over
|
|
275
|
+
// counter order, then the lower key.
|
|
162
276
|
if (a.evidenceKind !== b.evidenceKind)
|
|
163
|
-
return a.evidenceKind
|
|
277
|
+
return EVIDENCE_RANK[a.evidenceKind] > EVIDENCE_RANK[b.evidenceKind];
|
|
164
278
|
return a.anchorHash < b.anchorHash;
|
|
165
279
|
};
|
|
166
280
|
let best;
|
|
@@ -168,19 +282,19 @@ function selectBounds(kind, candidates, evidence) {
|
|
|
168
282
|
for (const entry of entries) {
|
|
169
283
|
if (better(entry, best))
|
|
170
284
|
best = entry;
|
|
171
|
-
if (entry.evidenceKind
|
|
285
|
+
if (entry.evidenceKind !== "counter-order" && better(entry, bestChain))
|
|
172
286
|
bestChain = entry;
|
|
173
287
|
}
|
|
174
288
|
const bounds = [makeBound(kind, best)];
|
|
175
|
-
if (bestChain !== undefined &&
|
|
176
|
-
(best.anchorHash !== bestChain.anchorHash ||
|
|
177
|
-
best.evidenceKind !== "chain-link")) {
|
|
289
|
+
if (bestChain !== undefined && bestChain !== best) {
|
|
178
290
|
bounds.push(makeBound(kind, bestChain));
|
|
179
291
|
}
|
|
180
292
|
return bounds;
|
|
181
293
|
}
|
|
182
294
|
function makeBound(kind, entry) {
|
|
183
295
|
const { info, evidenceKind } = entry;
|
|
296
|
+
if (info.floor !== undefined)
|
|
297
|
+
return makeFloorBound(entry);
|
|
184
298
|
const iso = new Date(info.timestamp * 1000).toISOString();
|
|
185
299
|
const blockName = info.blockNumber !== undefined ? `Ethereum block ${info.blockNumber}` : "an Ethereum block";
|
|
186
300
|
const evidenceSentence = evidenceKind === "chain-link"
|
|
@@ -213,8 +327,44 @@ function makeBound(kind, entry) {
|
|
|
213
327
|
claim: kind === "not-before" ? claim : "NOT a proof-carried upper bound. " + claim,
|
|
214
328
|
};
|
|
215
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* A not-before from a Base floor (enclave v10). The proof that signs the
|
|
332
|
+
* floor block is named in anchorProofHash; source, chain and timeSource say
|
|
333
|
+
* what it is. Always evidence, never an assumption, and never a not-after.
|
|
334
|
+
*/
|
|
335
|
+
function makeFloorBound(entry) {
|
|
336
|
+
const { info, evidenceKind } = entry;
|
|
337
|
+
const timeSource = info.floor.timeSource;
|
|
338
|
+
const iso = new Date(info.timestamp * 1000).toISOString();
|
|
339
|
+
const evidenceSentence = evidenceKind === "signed-floor"
|
|
340
|
+
? "Evidence: the proof signs this block as its floor (commit.slotFloor)."
|
|
341
|
+
: evidenceKind === "chain-link"
|
|
342
|
+
? "Evidence: a verified hash-link path connects these proofs to a proof that signs this block as its floor."
|
|
343
|
+
: "Evidence: commit-counter ordering within the partition only, after a proof that signs this block as its " +
|
|
344
|
+
"floor; this relies on the authority's counter discipline rather than verifiable hash links (weaker).";
|
|
345
|
+
const claim = `These proofs were committed no earlier than ${iso} (unix ${info.timestamp}), the time of Base block ` +
|
|
346
|
+
`${info.blockNumber}: the block hash was unpredictable before that time and the floor proof signs it. ` +
|
|
347
|
+
`${baseFloorTimeSentence(info.blockNumber, info.timestamp, timeSource)} Reading this as a wall-clock ` +
|
|
348
|
+
`floor additionally assumes the block is a genuine, publicly published Base block, which this offline audit ` +
|
|
349
|
+
`cannot confirm. A floor is never an upper bound on anything. ${evidenceSentence}`;
|
|
350
|
+
return {
|
|
351
|
+
kind: "not-before",
|
|
352
|
+
anchorProofHash: info.anchorProofHash,
|
|
353
|
+
source: "signed-floor",
|
|
354
|
+
chain: "base",
|
|
355
|
+
timeSource,
|
|
356
|
+
...(info.blockNumber !== undefined ? { blockNumber: info.blockNumber } : {}),
|
|
357
|
+
blockHash: info.blockHash,
|
|
358
|
+
timestamp: info.timestamp,
|
|
359
|
+
evidence: evidenceKind,
|
|
360
|
+
weaker: evidenceKind === "counter-order",
|
|
361
|
+
basis: "block-hash-unpredictability",
|
|
362
|
+
boundClass: "evidence",
|
|
363
|
+
claim,
|
|
364
|
+
};
|
|
365
|
+
}
|
|
216
366
|
function boundSetKey(mb) {
|
|
217
|
-
const part = (bounds) => bounds.map((b) => `${b.anchorProofHash}:${b.evidence}`).join(",");
|
|
367
|
+
const part = (bounds) => bounds.map((b) => `${b.source === "signed-floor" ? FLOOR_KEY : ""}${b.anchorProofHash}:${b.evidence}`).join(",");
|
|
218
368
|
return `${part(mb.lower)}|${part(mb.upper)}`;
|
|
219
369
|
}
|
|
220
370
|
function collectDescendants(anchor, successors) {
|
|
@@ -295,12 +445,57 @@ function weakerCaveat(weaker) {
|
|
|
295
445
|
"path, which relies on the authority's counter discipline (weaker evidence)."
|
|
296
446
|
: "";
|
|
297
447
|
}
|
|
298
|
-
|
|
448
|
+
/** Fold one not-before bound into a coverage minimum, preferring stronger evidence at an equal time. */
|
|
449
|
+
function foldLower(current, bound) {
|
|
450
|
+
if (current === undefined ||
|
|
451
|
+
bound.timestamp < current.timestamp ||
|
|
452
|
+
(bound.timestamp === current.timestamp && current.weaker && !bound.weaker)) {
|
|
453
|
+
return {
|
|
454
|
+
timestamp: bound.timestamp,
|
|
455
|
+
anchorProofHash: bound.anchorProofHash,
|
|
456
|
+
blockHash: bound.blockHash,
|
|
457
|
+
...(bound.blockNumber !== undefined ? { blockNumber: bound.blockNumber } : {}),
|
|
458
|
+
...(bound.source === "signed-floor" ? { floor: true } : {}),
|
|
459
|
+
evidence: bound.evidence,
|
|
460
|
+
weaker: bound.weaker,
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
return current;
|
|
464
|
+
}
|
|
465
|
+
/** The epoch-level not-before claim, worded for what grounds it. Pure-anchor wording is unchanged. */
|
|
466
|
+
function lowerClaim(cov) {
|
|
467
|
+
const min = cov.lowerMin;
|
|
468
|
+
if (!cov.lowerFromFloors) {
|
|
469
|
+
return (`${cov.lowerCovered.size} of ${cov.totalProofCount} observed proofs of this epoch were ` +
|
|
470
|
+
`committed no earlier than unix ${min.timestamp}, grounded in block-hash ` +
|
|
471
|
+
`unpredictability through verified anchor witnesses. This additionally assumes the anchored ` +
|
|
472
|
+
`header is a genuine, publicly published Ethereum block, which this offline audit cannot ` +
|
|
473
|
+
`confirm.` +
|
|
474
|
+
weakerCaveat(min.weaker) +
|
|
475
|
+
` The remaining proofs sit causally before the covering anchors and carry no lower bound ` +
|
|
476
|
+
`from this evidence.`);
|
|
477
|
+
}
|
|
478
|
+
const grounds = cov.lowerFromAnchors
|
|
479
|
+
? "the Base blocks the proofs sign as their floors and verified Ethereum anchor witnesses"
|
|
480
|
+
: "the Base blocks the proofs sign as their floors";
|
|
481
|
+
const blocks = cov.lowerFromAnchors ? "Base or Ethereum block" : "Base block";
|
|
482
|
+
return (`${cov.lowerCovered.size} of ${cov.totalProofCount} observed proofs of this epoch were ` +
|
|
483
|
+
`committed no earlier than unix ${min.timestamp} (${min.floor ? `Base block ${min.blockNumber}` : `Ethereum block ${min.blockNumber ?? "(unnumbered)"}`}), ` +
|
|
484
|
+
`grounded in block-hash unpredictability through ${grounds}. This additionally assumes each ` +
|
|
485
|
+
`${blocks} is a genuine, publicly published one, which this offline audit cannot confirm.` +
|
|
486
|
+
weakerCaveat(min.weaker) +
|
|
487
|
+
` The remaining proofs sign no Base floor and follow no covering floor or anchor; they carry no ` +
|
|
488
|
+
`lower bound from this evidence. A floor is a lower bound only: it orders no epoch.`);
|
|
489
|
+
}
|
|
490
|
+
function aggregateEpochs(reconstruction, segments, anchorLower) {
|
|
299
491
|
const coverage = new Map();
|
|
300
492
|
for (const epoch of reconstruction.epochRelationships.epochs) {
|
|
301
493
|
coverage.set(epoch.epochId, {
|
|
302
494
|
totalProofCount: epoch.proofCount,
|
|
303
495
|
lowerCovered: new Set(),
|
|
496
|
+
lowerFromFloors: false,
|
|
497
|
+
lowerFromAnchors: false,
|
|
498
|
+
anchorLowerCovered: new Set(),
|
|
304
499
|
upperCovered: new Set(),
|
|
305
500
|
});
|
|
306
501
|
}
|
|
@@ -319,17 +514,30 @@ function aggregateEpochs(reconstruction, segments) {
|
|
|
319
514
|
for (const bound of segment.lowerBounds) {
|
|
320
515
|
for (const h of segment.memberProofHashes)
|
|
321
516
|
cov.lowerCovered.add(h);
|
|
322
|
-
if (
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
cov.
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
517
|
+
if (bound.source === "signed-floor")
|
|
518
|
+
cov.lowerFromFloors = true;
|
|
519
|
+
else
|
|
520
|
+
cov.lowerFromAnchors = true;
|
|
521
|
+
cov.lowerMin = foldLower(cov.lowerMin, bound);
|
|
522
|
+
}
|
|
523
|
+
// Anchor-only coverage, for the pairs. In a partition holding both
|
|
524
|
+
// anchors and floors a member's anchor bound may have been displaced
|
|
525
|
+
// from its segment by a tighter floor, so it is read per member there.
|
|
526
|
+
if (segment.memberProofHashes.some((h) => anchorLower.has(h))) {
|
|
527
|
+
for (const h of segment.memberProofHashes) {
|
|
528
|
+
for (const bound of anchorLower.get(h) ?? []) {
|
|
529
|
+
cov.anchorLowerCovered.add(h);
|
|
530
|
+
cov.anchorLowerMin = foldLower(cov.anchorLowerMin, bound);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
for (const bound of segment.lowerBounds) {
|
|
536
|
+
if (bound.source === "signed-floor")
|
|
537
|
+
continue;
|
|
538
|
+
for (const h of segment.memberProofHashes)
|
|
539
|
+
cov.anchorLowerCovered.add(h);
|
|
540
|
+
cov.anchorLowerMin = foldLower(cov.anchorLowerMin, bound);
|
|
333
541
|
}
|
|
334
542
|
}
|
|
335
543
|
// Maximum timestamp for not-after, same chain-link tie preference.
|
|
@@ -358,6 +566,7 @@ function aggregateEpochs(reconstruction, segments) {
|
|
|
358
566
|
bounds.push({
|
|
359
567
|
kind: "not-before",
|
|
360
568
|
anchorProofHash: cov.lowerMin.anchorProofHash,
|
|
569
|
+
...(cov.lowerMin.floor ? { source: "signed-floor", chain: "base" } : {}),
|
|
361
570
|
...(cov.lowerMin.blockNumber !== undefined ? { blockNumber: cov.lowerMin.blockNumber } : {}),
|
|
362
571
|
blockHash: cov.lowerMin.blockHash,
|
|
363
572
|
witnessTimestamp: cov.lowerMin.timestamp,
|
|
@@ -367,14 +576,7 @@ function aggregateEpochs(reconstruction, segments) {
|
|
|
367
576
|
basis: "block-hash-unpredictability",
|
|
368
577
|
evidence: cov.lowerMin.evidence,
|
|
369
578
|
weaker: cov.lowerMin.weaker,
|
|
370
|
-
claim:
|
|
371
|
-
`committed no earlier than unix ${cov.lowerMin.timestamp}, grounded in block-hash ` +
|
|
372
|
-
`unpredictability through verified anchor witnesses. This additionally assumes the anchored ` +
|
|
373
|
-
`header is a genuine, publicly published Ethereum block, which this offline audit cannot ` +
|
|
374
|
-
`confirm.` +
|
|
375
|
-
weakerCaveat(cov.lowerMin.weaker) +
|
|
376
|
-
` The remaining proofs sit causally before the covering anchors and carry no lower bound ` +
|
|
377
|
-
`from this evidence.`,
|
|
579
|
+
claim: lowerClaim(cov),
|
|
378
580
|
});
|
|
379
581
|
}
|
|
380
582
|
if (cov.upperMax !== undefined) {
|
|
@@ -415,20 +617,22 @@ function aggregateEpochs(reconstruction, segments) {
|
|
|
415
617
|
if (after.epochId === before.epochId)
|
|
416
618
|
continue;
|
|
417
619
|
const covB = coverage.get(after.epochId);
|
|
418
|
-
|
|
620
|
+
// The after side is read from anchor bounds alone: floors order no epoch.
|
|
621
|
+
const lowerB = covB.anchorLowerMin;
|
|
622
|
+
if (lowerB === undefined)
|
|
419
623
|
continue;
|
|
420
|
-
if (covA.upperMax.timestamp >=
|
|
624
|
+
if (covA.upperMax.timestamp >= lowerB.timestamp)
|
|
421
625
|
continue;
|
|
422
626
|
const upperEvidence = covA.upperMax.evidence;
|
|
423
|
-
const lowerEvidence =
|
|
424
|
-
const weaker = covA.upperMax.weaker ||
|
|
627
|
+
const lowerEvidence = lowerB.evidence;
|
|
628
|
+
const weaker = covA.upperMax.weaker || lowerB.weaker;
|
|
425
629
|
pairs.push({
|
|
426
630
|
beforeEpochId: before.epochId,
|
|
427
631
|
afterEpochId: after.epochId,
|
|
428
632
|
upperAnchorProofHash: covA.upperMax.anchorProofHash,
|
|
429
633
|
upperBoundTimestamp: covA.upperMax.timestamp,
|
|
430
|
-
lowerAnchorProofHash:
|
|
431
|
-
lowerBoundTimestamp:
|
|
634
|
+
lowerAnchorProofHash: lowerB.anchorProofHash,
|
|
635
|
+
lowerBoundTimestamp: lowerB.timestamp,
|
|
432
636
|
basis: "anchor-bounds",
|
|
433
637
|
assumptionDependent: true,
|
|
434
638
|
upperEvidence,
|
|
@@ -436,14 +640,14 @@ function aggregateEpochs(reconstruction, segments) {
|
|
|
436
640
|
weaker,
|
|
437
641
|
beforeCoveredProofCount: covA.upperCovered.size,
|
|
438
642
|
beforeTotalProofCount: covA.totalProofCount,
|
|
439
|
-
afterCoveredProofCount: covB.
|
|
643
|
+
afterCoveredProofCount: covB.anchorLowerCovered.size,
|
|
440
644
|
afterTotalProofCount: covB.totalProofCount,
|
|
441
645
|
note: `The anchor-covered portion of epoch ${before.epochId} ` +
|
|
442
646
|
`(${covA.upperCovered.size} of ${covA.totalProofCount} proofs) precedes the ` +
|
|
443
647
|
`anchor-covered portion of epoch ${after.epochId} ` +
|
|
444
|
-
`(${covB.
|
|
648
|
+
`(${covB.anchorLowerCovered.size} of ${covB.totalProofCount} proofs): the first is bounded ` +
|
|
445
649
|
`not-after unix ${covA.upperMax.timestamp} and the second not-before unix ` +
|
|
446
|
-
`${
|
|
650
|
+
`${lowerB.timestamp}. One-sided evidence about the covered portions only; the ` +
|
|
447
651
|
`not-after side rests on the anchor-freshness assumption documented on its bound.` +
|
|
448
652
|
(weaker
|
|
449
653
|
? ` At least one side rests on commit-counter ordering rather than a verified hash-link ` +
|
package/dist/temporal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../src/temporal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../src/temporal.ts"],"names":[],"mappings":"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"}
|