Unlinkability
Company-side and citizen-side records are kept apart. What is anchored on-chain is
an opaque bytes32 commitment, with no company identifier, no DID and no personal
information: an on-chain observer can infer nothing from it that links a person to
a company. And a company sees only its own records: it can read neither another
company's records nor the citizen side.
The precise boundary
Unlinkability is a precise property, and overstating it would be dishonest. It holds against two kinds of observer, and not against a third.
- An on-chain observer. They see only opaque commitments. This is a cryptographic property.
- Another company. It sees only its own records, through tenant and role separation. This is access control.
- Agreely itself, or anyone who reads the whole database. The protection does not hold against them. Inside one database, a consent reference links the company side (the customer reference) and the citizen side (the DID), and someone with access to the whole database can join them. Against the operator, unlinkability is a matter of access control and policy (separate schemas, database role grants, operating rules), not a cryptographic guarantee.
What unlinkability does not do
It does not make the person anonymous to the company they deal with. The company already knows its own customers, and it learns the citizen's DID: it is on the receipt the company issues. Agreely also holds, in the customer registry, the name and email the company enters there, encrypted at rest under the tenant key. Agreely is not an anonymity system.
Next
- Privacy and erasure: how erasure destroys the readable statement while keeping the proof.
- Honest boundaries: the full honesty posture, including what is and is not written on-chain.
- The protocol for how the DID and the commitments are built.