§ 02 ·
The architecture
The architectural primitives that have held up.
The trust triangle
Three roles, connected by three relationships. The issuer signs a claim about the holder. The holder presents the claim to the verifier. The verifier validates the signature against the issuer's public key. The triangle is the architectural primitive; the relationships are the contract.
The DID and DID method
The DID (decentralized identifier) is the identifier. The DID method is the resolution mechanism (how the DID resolves to a DID document that contains the public keys). The DID is portable: the holder can update the DID document without changing the DID. The DID method is the trust anchor: the verifier trusts the DID method that produces the public key.
The verifiable credential
The verifiable credential is the data model. The credential is a signed JSON-LD document that contains claims about the holder. The signature is the trust anchor: the verifier validates the signature against the issuer's public key. The credential is portable: the holder can move it between wallets without contacting the issuer.
The wallet
The wallet is the holder's interface. The wallet holds the credentials, controls the DIDs, and generates the presentations. The wallet is the surface where the holder exercises control. The wallet is the boundary the user actually experiences.
The resolver
The resolver is the bridge between the DID and the DID document. The resolver takes a DID and returns the DID document. The resolver is the service that the verifier depends on. The resolver is the threat model: a compromised resolver can return a fraudulent DID document.
The triangle, the DID, the credential, the wallet, and the resolver are the architectural primitives. The relationships between them are the contract. The issuer is responsible for the credential; the holder is responsible for the wallet; the verifier is responsible for the validate.