did:web Method
Leveraging existing trust relationships
for DIDs
Dmitri Zagidulin / @codenamedmitri
dzagidulin@gmail.com �Software Engineer, Digital Bazaar / Solid Project�Co-Chair, Secure Data Storage Working Group (DIF/W3C)
Topics
2
About �Decentralized Identifiers�(DIDs)
Why do we need identifiers?
Many many reasons. Including:
Issuing Credentials of any sort.
4
Why are identifiers hard?
5
(online) Identifier Wishlist
6
Brief History of Identifiers on the Internet
Usernames�- Local to a particular domain (I’m @codenamedmitri on Twitter)�- Easy to forget�- Not portable
Emails�- Globally unique�- Slightly easier to remember�- Not portable
7
Brief History of Identifiers, part 2
Public Keys (e.g. PGP, used by hardcore engineers, lawyers)�- Globally unique, portable�- Impossible to remember�- Can’t revoke or change
URLs�- Globally Unique�- Almost impossible to remember�- Not portable
8
Proving Control of Identifiers
9
Brief History of Identifiers, part 3
WebIDs and DIDs�- URLs�- Hard or impossible to remember (need apps)�- Contain proofs - can cryptographically prove control�- Secure like public keys, but:�- Allow for easier revocation / recovery
10
What is a Decentralized Identifier?
A new type of URL that is:
11
What does a DID look like?
12
URNs (Uniform Resource Names, RFC 8141)
DIDs
13
DIDs Resolve to Documents
14
{� "@context": ["https://w3id.org/did/v0.11"],� "id": "did:v1:nym:DwkYwcoyUXHNkpj3whn4DgXB4fcg9gj95vKxYN2apkZD",� "authentication": [{� "type": "Ed25519SignatureAuthentication2018",� "publicKey": [{� "id": "did:v1:test:nym:DwkYwcoyUXHNkpj3whn4DgXB4fcg9gj95vKxYN2apkZD#authn-key-1",� "type": "Ed25519VerificationKey2018",� "controller": "did:v1:nym:DwkYwcoyUXHNkpj3whn4DgXB4fcg9gj95vKxYN2apkZD",� "publicKeyBase58": "DwkYwcoyUXHNkpj3whn4DgXB4fcg9gj95vKxYN2apkZD"� }]� }],� "service": [{� "type": "ExampleMessagingService2018",� "serviceEndpoint": ”https://example.com/services/messages”� }],� … more DID-specific information here …
}
1. Authentication
Mechanisms
3. Service Discovery
2. Public Key Material
We use DIDs in Verifiable Credentials
15
21
did:x:123
did:x:789
Professor
knows
Pat
Sam
name
ageOver
name
jobTitle
Categories of DID Methods
16
DIDs - Summary
17
did:web
18
DID Challenges
19
What if we could leverage existing WWW domains to serve as a storage mechanism for DID Documents?
20
did:web DIDs
did:web:FamousUniversity.edu
21
{� "@context": ["https://w3id.org/did/v0.11"],� "id": "did:web:FamousUniversity.edu",� "authentication": [{� "type": "Ed25519SignatureAuthentication2018",� "publicKey": [{� "id": "did:web:FamousUniversity.edu#authn-key-1",� "type": "Ed25519VerificationKey2018",� "controller": "did:web:FamousUniversity.edu",� "publicKeyBase58": "DwkYwcoyUXHNkpj3whn4DgXB4fcg9gj95vKxYN2apkZD"� }]� }],� "service": [{� "type": "ExampleMessagingService2018",� "serviceEndpoint": ”https://example.com/services/messages”� }],� … more DID-specific information here …
}
1. Authentication
Mechanisms
3. Service Discovery
2. Public Key Material
Linking a DID Document to a domain
22
did:web Benefits
23
did:web Challenges
24