Decentralized Identifier WG
TPAC Sessions
Day 1: September 23, 2024
Chairs: Gabe Cohen, Will Abramson, Dan Burnett
Location: Hilton Anaheim, 4th Floor, Capistrano
1
Welcome!
2
Logistics
3
IRC and Scribes
4
| Monday | Tuesday |
AM1 | Brent | Joe |
AM2 | Benjamin | Erica |
PM1 | Manu | Gabe |
PM2 | Will A | Dan Burnett |
|
W3C WG IPR Policy
5
Introductions & Dinner
6
Suggested dinner options
Savor Stone Hearth Pizza and Wine (upscale pizza) - $$ - 6 min walk https://www.savorpizzaandwine.com/ �Currently: Reservation for 14
Tangerine Room - $$ - 15 min walk https://www.tangerineroom.com/
Craft by Smoke and Fire - $$ - 12 min drive https://www.craftbysmokeandfire.com/menu
Haven Craft Kitchen and Bar - $$ - 15 min drive https://www.havencraftkitchen.com/our-menu#menu=dinner-ordering
Solita Tacos & Margaritas - $$ - 9 min drive https://solitatacos.com/menus/
O Sea (seafood) - $$ - 12 min drive https://www.eatosea.com/menus/#dinner
The Peel - $$ - 9 min drive https://www.peelcraftbar.com/
Byblos Cafe (Mediterranean) - $$ - 14 min drive https://www.byblos.cafe/#menu-section
7
And still more here: https://docs.google.com/document/d/1zGseZW0sDL50-Fq45PVN2zY5EK8XxbLrvf88MOnLUJo/edit
Potential topics for the “Open Topics” sessions
8
Agenda: Day 1
9
Time | End | Topic | Discussion Leader |
9:00 | 9:30 | Welcome, Introductions, and Logistics | Chairs |
9:30 | 10:00 | State of the Industry | Manu, Gabe |
10:00 | 10:30 | A short history of DIDs | Drummond Reed |
10:30 | 11:00 | Break | |
11:00 | 11:30 | DID Method Standardization | Kim |
11:30 | 11:45 | Self-Describing DID Methods | Kevin Dean |
11:45 | 12:00 | DID DHT | Gabe |
12:00 | 12:15 | BTCR lessons learned and improvements | Joe Andrieu |
12:30 | 13:30 | Lunch | |
13:30 | 13:45 | Work Item Inventory | Chairs |
13:45 | 14:15 | DID Registry Process | Christopher Allen |
14:15 | 14:37 | DID Methods | All |
14:37 | 15:00 | DID Extensions | All |
15:00 | 15:30 | DID Rubric | Joe Andrieu |
15:30 | 16:00 | DID Traits (Feature Sets) | Dmitri |
16:00 | 16:30 | Break | |
16:30 | 17:30 | Controller Document | All |
17:30 | 18:00 | What's Interoperability? How can we test/demonstrate it | Dmitri |
State of the Industry (30 min) — Manu, Gabe
10
Overview
11
Bluesky
Details
Today: Over 10,062,511 DIDs on Bluesky
Potential: Could grow to hundreds of millions to billions
12
TruAge
Details:
Today: Several hundred thousand in TruAge
Potential: 200M+ in US at scale, with 52 million age checks per day
13
California Department of Motor Vehicles
Details
Today: 600K with ~1.2K added per day
Potential: 27-34 million people in California with IDs through the State
14
US Department of Homeland Security (USCIS)
Details
Today: Readying for deployment
Potential: 43 million permanent residents and naturalized citizens
15
Switchchord
Details:
Today: one music publisher with 10 songwriters; one publishing administrator that represents ~8,000 songwriters (current pilot is limited to 100); and ~100 independent songwriters.
Potential: 10M+ creator economy musicians, plus thousands of record labels and music publishers.
16
European Blockchain Services Infrastructure (EBSI)
Details:
Today: ???
Potential: 449 million+ people
17
Bhutan National Digital Identity (NDI)
Details:
Today: ???
Potential: 790,000+ people
18
Velocity Network
Details:
Today: 70+ companies.1 1M+ credentials issued in 185 countries.2
Potential: Millions of workers, worldwide.
19
TBD
Details:
Today: DIDs created in the 3M+ range (mostly did:dht).
Potential: Millions of individuals and businesses using Square, Cash App, Afterpay and other Block products worldwide.
20
…. and more…
Privado iD: An EVM-based set of tools for developers to use W3C VCs and DIDs for use cases like age verification, national ID, content authenticity, and more. Uses did:polygonid.
Dock: Customer onboarding acceleration with reusable ID. Uses a proprietary blockchain for did:dock (now merged with Cheqd).
Cheqd: Payment and trust infrastructure for credentials (now merged with Dock). Uses did:cheqd, a Cosmos-blockchain based DID method.
Walt.id: Digital identity and wallet infrastructure used by 10k+ developers and organizations. Supports did:key, did:jwk, did:web, did:cheqd.
21
…. many more!
Microsoft Entra: Supports did:web as part of the Entra Verified ID suite.
Trinsic: An identity acceptance network. Supports 16,000+ document types in 220+ countries. 20+ reusable ID schemes. 60M+ pre-verified users. Uses did:key.
IOTA Identity Framework: Uses the did:iota method to facilitate a general purpose identity network for people, organizations, things, and objects.
GLIEF: Verifiable Legal Entity Identifiers powered by did:webs. GLIEF has issued over 2.7M legal entity identifiers as of September 2024.
… and still many more!
22
Challenges
23
A brief history of DIDs (30 min) — Drummond
24
PART ONE: Early History
25
(The following slides are from the first meeting of the W3C DID Working Group on Sept. 16, 2019)
Timeline
26
2015
2016
2017
2018
2019
Spring IIW: First blockchain identity discussions
Fall IIW: Decision to begin blockchain ID projects
W3C VCTF: A Decentral- ized Hash Table for the Web
DHS: Awards 1st blockchain Identity R&D contracts
Spring IIW: DID Spec work fully underway
Fall IIW: First DID Spec nearly complete
DHS: �First DID Spec published & contract complete
DHS: �DKMS contract awarded; work begins
W3C CCG: DID Spec contributed
DHS: �DKMS Design & Architec- ture V3 published
W3C CCG: Second draft of �DID Spec
W3C CCG: Work on DID WG Charter begins
W3C: �DID WG Charter approved
W3C CCG: �Community Final�Draft of�DID Spec
DHS: �DKMS Design & Architec- ture V4 published
Where did the term “DID” come from?
27
28
29
Why did the U.S. Department of Homeland Security fund development of the DID spec?
30
Four reasons:
It never needs to change
You can look it up to discover metadata
You can prove control using cryptography
No centralized registration authority is required
31
URNs (Uniform Resource Names, RFC 8141)
DIDs
32
How widely are DIDs in use today?
33
Some statistics
34
For a full history, see:
35
PART TWO: A Quick Update
36
(The following slides are from an Evernym webinar given a few weeks after the W3C vote on DID 1.0)
37
38
39
40
41
42
43
44
Morning break (10:30)
45
DID Method Standardization (30 min) — Kim
46
Agenda
Context & Status
DID Method Working Group Overview
Purpose
Accelerate standardization of DID methods, collaboratively with key organizations
Key Activities
DID Method Categories
Working Group Goals
Select Initial Methods
Choose and advance standards for key DID methods across the 3 categories.
Develop Scalable Approaches
Create frameworks for independent, scalable DID method standardization, based on DID Traits, Rubric
Standardize & Advance to Maturity
Progress DID method standards through appropriate Standards Development Organizations.
Define Criteria for DID Method Selection
Discuss and document criteria for selection across 3 categories
Select DID Methods for Standardization
Choose candidate DID method for each of the 3 categories.
Standardize Selected Methods
Progress the specifications
Develop Scalable Standardization Approaches
Create recommendations for independent, scalable DID method standardization, based on DID Traits, Rubric
Advance to Maturity
Bring to “Approved” stage and contribute specification to relevant SDO (as needed per method)
Working Group Efforts, Detailed
Develop Tooling and Test Harnesses
Develop open source tooling and test harnesses in support of efforts
Mature Specifications
Working group-approved specifications for initial DID methods.
SDO Collaboration
Establish new W3C DID Methods Working Group for broader standardization, and TBD other organizations
Test Suites
Create comprehensive test suites and conformance criteria for DID methods.
DID Method Standardization Empowerment
Enable broader standardization efforts across any organization
Ecosystem Growth
Enable increased adoption of DIDs across various sectors and use cases.
Expected Outcomes
Participation & Logistics
Participation Requirements
1
Membership
Member of one of the following organizations
2
Sign Feedback Agreement
Sign the Working Group Feedback Agreement to participate
3
Code of Conduct
Adhere to DIF Code of Conduct for respectful and productive collaboration.
DIF Working Group Processes
1
Transparent Development, W3C License
GitHub for open collaboration and version control of specifications. Github and slack or mailing list enables asynchronous progress towards goals. DIF uses W3C license for specifications.
2
Regular Meetings
Regular meetings to push forward steady progress, especially if agreement can’t be reached asynchronously.
3
Consensus Decision Making
Use consensus-based approach for key decisions and direction. Specifications move through WG Draft to WG Approved to final approval
Next Steps
DIF SC Approval
Expected by 2nd week of October.
Select Co-Chairs
Let us know if you're interested.
Chair: Markus Sabadello
Interim Chairs: Kim. Gabe
Find recurring time
We need to select a recurring meeting time.
Select comm channel
For coordination, notification, and discussions outside of Github when needed.
Slack, mailing list, or both
Poll:
Thank you & Discussion
Open floor for questions and comments
Self-describing DID Methods (15 min) — Kevin Dean
58
The Problem
Requirements
Semantic Versioning
Semantic Versioning
Semantic Versioning
63
Method Name Generation
Version Advertisement
Implementation
Standardization
Example
Scenarios
Questions?
70
DID DHT (15 min) — Gabe
71
DID Methods Comparison
did:jwk
(+) Self-resolving key that always has the latest state
(-) No updates
(-) No way to signal compromise
did:web
(+) Domain based method
(+) Supports updates
(-) Relies on TLS certs
(-) Relies on DNS / domain registrars
(-) No historical state resolution
did:ion
(+) Supports any DLT and Content-Addressable Storage
(+) Permissionless + full featured (update, recovery, deactivation)
(-) Complex architecture
(-) Uncertain if you have the latest state / pinning risk
72
Why move away from ION?
Usability issues & technical complexity
Can we do better?
73
Enter did:dht
A new free, fast, efficient, massively decentralized DID method
74
What’s a DHT?
75
BitTorrent
76
BitTorrent in Numbers
18
Years of activity
15M+
Active nodes
1000s
Organizations using it!
77
What’s DID DHT?
78
What’s DID DHT? (contd.)
79
Where We’re At
80
Q4 2023
Beyond
Q1-3 2024
One More Thing…
The DID method to end all DID methods?
81
BTCR lessons learned and improvements (15 min) — Joe Andrieu
82
BTCR Lessons Learned and Improvements
TPAC 2024
Agenda
Motivations
85
Pain Points
Solutions
Beacons
{
"id": "#smt_aggregated",
"type": "MerkleAggregator",
"serviceEndpoint": "bitcoin:tb1pfdnyc8vxeca2zpsg365sn308dmrpka4e0n9c5axmp2nptdf7j6ts7eqhr8"
}
Beacon Signal: TxOut of format [OP_RETURN, <32 bytes>]
zCaps
Root capability for did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a
{
"@context": "https://w3id.org/zcap/v1",
"id": "urn:zcap:root:did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a",
"controller": "did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a",
"invocationTarget": "did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a"
}
Guaranteed Invariant Provenance
did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a
v1
v2
v3
v4
=?
Initial DID document
u1
u2
u3
u2
Beacon signals
Sidecar
resolve(did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a, resolutionOptions)
U1
U1
U1
U1
v1
U1
u1
+
Sidecar Data
Next Steps
Come talk to us about it during TPAC
Thanks
Special thanks to Ryan Grant and Digital Contract Design for continuing to support this work.
ZCap Invocation to update did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a
{'@context': [... ],
'patch': [
{'op': 'add',
'path': '/service/4',
'value': {
'id': '#linked-domain',
'type': 'LinkedDomains',
'serviceEndpoint': 'https://contact-me.com'
}}
],
'proof': {...}
}
ZCap Invocation to update did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a
{'@context': [... ],
'patch': [... ],
'proof': {
'type': 'DataIntegrityProof',
'cryptosuite': 'secp-schnorr-2024',
'verificationMethod':'did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a#initialKey',
'invocationTarget':'did:btc1:k1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a',
'capability': 'urn:zcap:root:did%3Abtc1%3Ak1t5rm7vud58tyspensq9weyxc49cyxyvyh72w0n5hc7g5t859aq7sz45d5a',
'capabilityAction': 'Write',
'proofPurpose': 'capabilityInvocation',
'proofValue':'...'
}
}
Lunch (12.30)
97
Work Item Inventory (15 min) — Chairs
98
Charter Deliverables and Status
99
W3C Technical Report Process
100
Timing of our primary spec
April 2026 (REC)
Jan 2026 (PR)
Nov 2025
(CR2)
Aug 2025
(CR1) .
Sept 2024
(FPWD)
Jan 2025
(Feature freeze)
Goals for this meeting
102
DID Registry Process (30 min) — Christopher Allen
103
Some History
104
Current Method Registry
105
DID WG 1.1
106
One proposal
107
DID Methods (30 min)
108
109
110
DID Extensions (30 min)
111
112
DID Rubric (30 min) — Joe Andrieu
113
Rubric for Decentralization of DID Methods
JOE ANDRIEU
DID WG FACE TO FACE TPAC 2024
JOE@LEGREQ.COM
Agenda
Why a rubric
What is a rubric?
Our approach
Work prior to WG
Joe Andrieu joe@legreq.com , Shannon Appelcline shannona@skotos.net, Amy Guy amy@rhiaro.co.uk, Joachim Lohkamp joachim@jolocom.com, Drummond Reed drummond.reed@evernym.com, Markus Sabadello markus@danubetech.com, Oliver Terbu oliver.terbu@consensys.net, and Kai Wagner kai@jolocom.com
Lessons Learned - Subjectivity
Lessons Learned – Categories Matter
Lessons Learned – Architecture
Lessons Learned – Examples
Lessons Since Publishing
The Initial Goal: A Litmus Test
Next Steps
DID Traits, Feature Sets (30 min) — Dmitri
127
What are DID traits?
"LEGOs for DID method authors" (Design patterns of DID method construction)
Part of rubrics (technical affordances)
Example traits:
128
did:key traits
Deterministic
Immutable
Offline capable
No support for: service endpoints, alsoKnownAs, history. more than one key
129
did:web traits
Mutable, revocable, deletable�Support for many key types, multiple keys
No key rotation history
Not self certifying�
130
did:tdw traits
131
did:dht traits
132
See also
https://identity.foundation/did-traits/
133
Afternoon break (16.00)
134
Controller Documents (60 min)
135
What is a "Controller Document"?
136
… the plan is on track, more-or-less, with some weirdness
137
What's in the Controller Document today?
138
What is the timeline?
139
Discussion
140
What's Interoperability? How can we test/demonstrate it? (30 min) — Dmitri
141
What is interoperability?
142
who is concerned with interop?
What is a DID used for?
143
Interop between DID methods
First and foremost. interop on the policy level
That is does a given system (issuer, verifier, agent) even intend to support a given DID method?
Currently, most deployed issuers, verifiers, and wallets support a small curated subset of DID methods.
Why? Affordances, tech constraints, library support, governance, policy, level of confidence
144
Interop within a DID method
Watch for:
145
Practical Interop Concerns
For a given DID method, how many registrar and resolver libraries in various languages?
For signing (e.g. VC issuance), do issuers and verifiers support a given set of DID methods? (interop through wide usage)
Similar question for authn (RPs), encryption, routing.
DID interop basically tied to the use case.
146
Bonus: DID based signature validation concerns
(beyond key type support)
Which Issuer and Verifier Registries support this DID method?
What about historical verification? (key rotation events, observers. logs, anchoring in time)
147
Dinner Tonight: 6:45
https://www.savorpizzaandwine.com/
6 minute walk
MEET: 6:30 Hilton Anaheim Lobby (If you’re late, you’re on your own)
148
Decentralized Identifier WG
TPAC Sessions
Day 2: September 24, 2024
Chairs: Gabe Cohen, Will Abramson, Dan Burnett
Location: Hilton Anaheim, 4th Floor, Capistrano
149
Agenda: Day 2
150
9:00 | 9:30 | Agenda Review; Tie up loose threads from prior day | Chairs |
9:30 | 10:00 | Extensibility of DID Resolution and DID URL Dereferencing | Markus |
10:00 | 10:30 | DID Resolution Open Discussion | All |
10:30 | 11:00 | Morning Break | |
11:00 | 12:00 | DID Resolution Issue & PR Processing | Markus |
12:00 | 13:00 | DID Resolution Issue & PR Processing | Markus |
13:00 | 14:00 | Lunch | |
14:00 | 14:30 | Editor Onboarding | Editors |
14:30 | 15:30 | DID Test Suite / Resolver Test Suite | All |
15:30 | 16:00 | CBOR / CBOR-LD Representation | All |
16:00 | 16:30 | Break | |
16:30 | 16:50 | Minimum criteria for DID Method standardization at W3C? | Manu |
16:50 | 17:10 | Controller Document | Joe |
17:10 | 17:30 | Primer on Decentralization | Gabe |
17:30 | 17:50 | Future proofing to support MPC based multisig, in particular FROST. | Christopher |
IRC and Scribes
151
| Tuesday |
AM1 | Joe |
AM2 | Erica |
PM1 | Gabe |
PM2 | Dan Burnett |
|
Extensibility of DID Resolution and DID URL Dereferencing (30 min) — Markus
152
Resolving DIDs
did = "did:" method-name ":" method-specific-id
resolve(did, resolutionOptions) →� « didResolutionMetadata, didDocument, didDocumentMetadata »
153
Dereferencing DID URLs
did-url = did path-abempty [ "?" query ] [ "#" fragment ]
dereference(didUrl, dereferenceOptions) →� « dereferencingMetadata, contentStream, contentMetadata »
154
Examples of DID URLs
did:example:123456789abcdefghi#key-1
did:example:123?versionTime=2021-05-10T17:00:00Z
did:example:123?transformKeys=JsonWebKey
did:example:123?noCache=true
did:tdw:Qma6mc1qZw3NqxwX6SB5GPQYzP4.example.com#whois
did:tdw:Qma6mc1qZw3NqxwX6SB5GPQYzP4.example.com/whois
did:tdw:Qma6mc1qZw3NqxwX6SB5GPQYzP4.example.com/whois#vc1
did:tdw:Qma6mc1qZw3NqxwX6SB5GPQYzP4.example.com/governance/issuers.json
did:cheqd:mainnet:46e2af9a?resourceName=degreeLaw&resourceType=JSONSchema
did:example:123?service=DecentralizedWebNode&queries=W3sgTUV
155
Where is
it specified?
156
DID URL Dereferencer Functionality
Method-independent functionality
Method-dependent functionality
Where is it specified?
Where is it specified?
?service=
DID Core and DID Resolution
?hl=
DID Core and DID Resolution
?versionTime=
DID Core and DID Resolution and DID Method Spec(s)
?resourceName=
DID Resolution Extension and DID Method Spec(s)
?oobi=
DID Method Spec(s)
/whois
DID Method Spec(s)
?noCache=
DID Resolution
/governance/issuers.json
DID Method Spec(s)
?transformKeys=
DID Resolution Extension
Application Functionality
Where is it specified?
?queries=
Application Spec
DID Resolution Open Discussion (30 min)
157
158
Morning break (10.30)
159
DID Resolution Issue & PR Processing (Markus, 120 min)
160
161
Lunch (13.00)
162
Resolution FPWD?
Publish https://w3c.github.io/did-resolution/FPWD/2024/index.html as FPWD for did-resolution?
163
DID Test Suite / Resolver Test Suite (60 min)
164
165
CBOR / CBOR-LD Representation (30 min)
166
A CBOR-based DID Document
167
What's required of this group?
168
DID Documents as CBOR-LD
CBOR-LD performs "semantic compression" on any JSON-LD Document.
A DID Document can be a JSON-LD document, making this transformation automatic and round-trippable.
169
JSON-LD
CBOR-LD
Build Compression Dictionary
Compress
How efficient is the compression?
170
Example DID Document compression
171
Example JSON-LD did:key document containing 7 keys (1090 bytes)
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/multikey/v1"
],
"id": "did:key:z6Mkw5LtCiW1Dn7dopLTqtcczWoBTQiBQLP6FrZeRYuvtAWv",
"verificationMethod": [
{
"id": "did:key:z6Mkw5LtCiW1Dn7dopLTqtcczWoBTQiBQLP6FrZeRYuvtAWv#z6Mkw5LtCiW1Dn7dopLTqtcczWoBTQiBQLP6FrZeRYuvtAWv",
"type": "Multikey",
"controller": "did:key:z6Mkw5LtCiW1Dn7dopLTqtcczWoBTQiBQLP6FrZeRYuvtAWv",
"publicKeyMultibase": "z6Mkw5LtCiW1Dn7dopLTqtcczWoBTQiBQLP6FrZeRYuvtAWv"
}
],
…
Example CBOR-LD did:key document containing 7 keys (534 bytes, 129 bytes if gzip'd)
D90501 // Semantic annotation: CBOR-LD (1281)
A7 // Object (7 pairs)
01 // positive integer: 1 v1.0 (compressed)
82 // Array (length 2) @context
12 // positive integer: 18 "https://www.w3.org/ns/did/v1",
1831 // positive integer: 49 "https://w3id.org/security/multikey/v1"
1867 // positive integer: 103 id
81 // Array (length 1) did:key value did:key:z6Mkw5LtCiW1Dn7dopLTqtcczWoBTQiBQLP6FrZeRYuvtAWv
83 // Array (length 3)
190401 // positive integer: 1025
5822ED01F6F95ED5204FCDB05E2228763FE5DB2421AF32E13AD8F49278183892E6DC1293 // byte sequence (length 34)
1869 // positive integer: 105 verificationMethod
81 // Array (length 1) did:key:z6Mkw5LtCiW1Dn7dopLTqtcczWoBTQiBQLP6FrZeRYuvtAWv#z6Mkw5LtCiW1Dn…
83 // Array (length 3)
190401 // positive integer: did:key 1025
5822ED01F6F95ED5204FCDB05E2228763FE5DB2421AF32E13AD8F49278183892E6DC1293 // byte sequence (length 34)
5822ED01F6F95ED5204FCDB05E2228763FE5DB2421AF32E13AD8F49278183892E6DC1293 // byte sequence (length 34)
…
What's next for CBOR-LD?
172
Is there demand for a “Plain CBOR Implementation”?
173
174
Afternoon break (16.00)
175
Minimum Criteria for DID Method Standardization at the W3C (Manu)
176
The Controller Property (Joe)
177
Primer on Decentralization (Gabe)
178
Future proofing to support MPC based Multi-Sig e.g. FROST (Christopher)
179
New Cryptography Challenges Assumptions
180
Final comments
181
Final Items
182
Meeting adjourned!
183