Every Vendor Demo Shows Proving You Are Over Eighteen Without Revealing Your Birthday. We Cannot Do That.

The capability described on this page is not built here, and it is the single most important sentence on it.

The demo everyone has seen

A holder is asked whether they are over eighteen. The wallet answers yes. The birthdate never moves. The verifier learns one bit and stores one bit, so a breach at the verifier leaks one bit.

It is the most persuasive thirty seconds in this industry, and it is the reason people fund identity companies.

It is also a different mechanism from the one most vendors ship, and the gap is almost never stated out loud.

What selective disclosure actually does

Selective disclosure lets a holder reveal some fields and not others from a credential the issuer signed. Show the country, hide the street. Show that a verification level was reached, hide the document number.

What moves is still a value. A field the verifier named, disclosed literally, from a set the issuer fixed at issuance.

A predicate proof is a different thing. It evaluates a statement about a hidden value and returns only whether the statement holds. The value is never disclosed at any point, to anyone, including the verifier who asked.

"Reveal fewer fields" and "reveal no fields, only a verdict" are not degrees of the same feature. They are separate constructions, and the second is materially harder to build.

Why we are telling you this

Because the demo is what gets remembered, and a buyer who saw it at a conference will assume every vendor in the category has it.

Most do not. The word "predicate" rarely appears in the material; what appears is the age example, illustrated with a mechanism that discloses a bucketed value. If we let you carry that assumption into a contract, you would discover the difference during integration, which is the worst possible moment and the reason this page exists.

What to ask any vendor about the age demo

"When the wallet answers yes, what leaves the device?" A verdict, or a value the issuer bucketed in advance. These are different answers and only one is the demo.

"Who chose the threshold, and when?" If the issuer chose it at issuance, every verifier is stuck with that threshold forever. Ours is chosen at issuance.

"Is the predicate evaluated against a hidden value, or against a disclosed one?" This is the whole question in one sentence, and most material does not answer it.

"Show me the package." For a capability this specific, a specification is not an implementation. Ours is a specification.

Where this leaves a decision

If your requirement is a true verdict over a hidden value, we do not have it, the design is written and unbuilt, and you should evaluate somebody who has shipped one.

Keep reading

Every Vendor Demo Shows Proving You Are Over Eighteen Without Revealing Your Birthday. We Cannot Do That. · Solidus