One synthetic shipment record, three commitment mechanisms. Elide a field and watch what a verifier still sees: SD-JWT disclosures replace hidden claims with salted digests, the estate's sha256-salted@1 commitments never reveal the value, and an Envelope-style digest tree keeps the hidden node's digest so the root over the whole record does not move.
Both records are toy data from a seeded corpus, shaped like a supply-chain shipment. The counterparty values are drawn from a small corpus of counterparties, and that is deliberate: it is what makes the unsalted digest recoverable later in the page.
Each claim is wrapped in a disclosure of three values: a fresh salt, the claim name, and the value. The digest of that disclosure lands in the _sd array of the signed payload. Elide a claim and its disclosure is simply not presented; the verifier sees the remaining claims in the clear plus an unrecoverable digest for the hidden one. This is the same construction the SD-JWT Disclosure Workbench issues live.
The estate's sha256-salted@1 commitment shape hashes a fresh 256-bit salt together with the value. A verifier holding only the commitments can check a revealed value against its commitment but can learn nothing about a withheld one. The salt stays with the committer.
The draft builds a tree: each leaf is hashed over its CBOR bytes, each assertion over its predicate and object digests, and the node over its subject digest followed by the assertion digests in ascending lexicographic order. Eliding a node replaces its payload with a placeholder that carries the same digest, so every digest above it, including the root, is unchanged. The digests below follow sections 4.1 to 4.4 of draft-mcnally-envelope-12, computed with WebCrypto SHA-256. The bytes are simplified for teaching and the page never claims interop with a conformant implementation.
The elided tree hides the counterparty bytes, but its digest is published. If the value comes from a small enumerable market, an attacker hashes each candidate and matches the digest, exactly the enumerability lesson of the salted-hash enumerability demo. Section 7.4 of the draft answers with salt: random assertions perturb the digest tree so elided digests no longer correlate with known values.
The SD-JWT path is live: the SD-JWT Disclosure Workbench issues and presents real selective-disclosure tokens today. The sha256-salted@1 commitment shape is used by the estate today, and the salted-hash enumerability demo shows why the salt is not optional. Canton selective disclosure is exercised by the art-108 selective-disclosure node. Envelope and dCBOR are not used by the estate; the estate's integrity path is the JCS execution_hash, computed over canonicalized chain artifacts, and this page's teaching tree never touches that path.