Expand description
The DID<->store bidirectional-pairing predicate, as pure types over supplied Chia records.
A store is the authoritative profile of an identity anchor only when BOTH links hold:
- Discovery – the store’s
descriptionnames the DID (description == the DID string). - Authority – the store was LAUNCHED FROM the identity singleton, i.e. the store’s launcher coin’s PARENT is a genuine coin IN THE DID SINGLETON’S LINEAGE (launch-from-DID lineage – unforgeable, inherent at launch; no metadata spend, no transfer/ownership layer).
§Why authority is lineage MEMBERSHIP, not tip EQUALITY
A store (or NFT) launched from a DID parents its launcher coin to the DID coin AS IT EXISTED AT
SPEND TIME (Cn), and that SAME spend RECREATES the DID singleton, advancing it to Cn+1
(chip35’s IntermediateLauncher::new(did.coin.coin_id(), ..) + did.update). So the launcher’s
parent is Cn while the singleton’s CURRENT tip is already Cn+1 – they never match. Binding
authority to == tip would therefore reject EVERY legitimately-launched profile store. Authority
is instead MEMBERSHIP: the launcher’s parent must be a genuine coin in the DID singleton’s lineage
(launcher -> tip inclusive). This keeps the security property – producing ANY coin in the victim
DID’s lineage requires the victim’s key, so an attacker’s coin is never a member and the link stays
unforgeable – while accepting a store parented to ANY historical DID coin.
Discovery alone is forgeable (anyone can put any DID in their store description), so a
consumer MUST require BOTH links – description-only is REJECTED. WU1 supplies the predicate over
caller-provided records built from canonical chia-protocol types; WU3 wires the chain fetch that
populates the lineage (a walk from the DID launcher to its current tip).
Structs§
- Identity
Singleton - The identity anchor a store claims to belong to.
- Pairing
Outcome - The result of evaluating the pairing predicate – each link reported independently.
- Singleton
Lineage - The lineage of a DID identity singleton: every coin id from the launcher spend forward to the current unspent tip.
- Store
Ownership Proof - A convenience bundle of the
(singleton, store)records the pairing predicate runs over. - Store
Record - The record a caller supplies about a candidate profile store.
Functions§
- evaluate_
pairing - Evaluates both pairing links between
storeandsingleton, reporting each independently. - is_
authoritative_ profile - Returns
trueiffstoreis the authoritative profile ofsingleton(BOTH links required). - store_
belongs_ to_ did - Returns
trueiff the chip35 DataLayerstorebelongs to the identitysingleton.