You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Record the TxRefHash correction and the M1-1 migration
The m1-2 review established that EB references must hash the complete
transaction bytes (TxRefHash), not the body-identity TxId, which cannot
pin witnesses; update the type sketches and the M1-3 issue accordingly,
and correct the M1-2 issue's superseded AbstractFunctions threading
bullet to the GovStructure design. Regions refreshed from the fork,
recording issue #2 closed after its migration to IntersectMBO#1296
(delivered by IntersectMBO#1297).
AI-assisted development: Claude Fable 5 (Anthropic)
@@ -441,10 +444,10 @@ Amendments (2026-08-19 field review, from the Musashi trace-verifier work; shipp
441
444
## Description
442
445
443
446
New module `Ledger.Dijkstra.Specification.Leios.Abstract` with the `LeiosAbstract` record sketched in the plan's "Predicted new Agda types" section: abstract types for voting keys, signatures, aggregate
444
-
signatures, proofs of possession, and EB hashes; verification predicates over the message `Slot × EBHash`; the EB-reference hash function; decidability instances.
447
+
signatures, proofs of possession, EB hashes, and transaction-reference hashes (`TxRefHash`: the hash of the complete transaction bytes, per CIP-164 Appendix B); verification predicates over the message `Slot × EBHash`; the EB-reference hash function; decidability instances.
445
448
446
449
-[ ] Define the record; keep it scheme-agnostic (CIP-164 Appendix A); no concrete curve arithmetic, `--safe` throughout.
447
-
-[ ] Thread it as a new field of `AbstractFunctions` in `Ledger.Dijkstra.Specification.Abstract`, so downstream module signatures do not change.
450
+
-[ ] Thread it as a new `leiosAbstract`field of `GovStructure` (`Gov/Base.lagda.md`), supplied through `TransactionStructure`, so downstream module signatures do not change. (Revised during review: `Certs` sees only `GovStructure` and sits upstream of `AbstractFunctions`, so an `AbstractFunctions` field cannot reach the registration rule's proof-of-possession premise.)
448
451
-[ ] Module prose: one paragraph on the BLS12-381 instantiation and the Peras-sharing intent, with the core-migration noted as follow-up.
New module `Ledger.Dijkstra.Specification.Leios.Types` with `EndorserBlock` (ordered transaction references: id and declared size), `Announcement`, `Vote`, and `Certificate`, per the sketches in the plan.
462
+
New module `Ledger.Dijkstra.Specification.Leios.Types` with `EndorserBlock` (ordered transaction references: `TxRefHash` and declared size), `Announcement`, `Vote`, and `Certificate`, per the sketches in the plan.
460
463
461
464
-[ ] Records and `DecEq` instances; EB identifier via `hashEBRefs`.
465
+
-[ ] References carry `TxRefHash`, not `TxId`: the body-identity `TxId` cannot pin witnesses, while CIP-164 Appendix B fixes the reference hash over the complete transaction bytes (established in the m1-2 review; `LeiosAbstract` already provides the carrier and `hashEBRefs : List (TxRefHash × ℕ) → EBHash`). `EndorserBlock` is therefore `List (TxRefHash × ℕ)`.
462
466
-[ ] Module prose marks the EB-identifier boundary as a known conformance cliff: the identifier is `hashEBRefs` of the reference structure with the byte-exact preimage deliberately unpinned; pinning it is a named follow-up prerequisite for conformance testing (Cardano precedent: the block-body hash's segmented preimage exists only in implementation internals).
463
467
-[ ] Decide the duplicate-freedom representation (validity condition versus proof field) and record the choice in module prose.
464
468
-[ ] Module prose maps each type to its CIP-164 CDDL counterpart (Appendix B), including the note that the header's `certified_eb` bit is spec-derived.
0 commit comments