decentralized-identity / peer-did-method-spec

A rich DID method that has no blockchain dependencies. The verifiable data registry is a synchronization protocol between peers.
https://decentralized-identity.github.io/peer-did-method-spec/index.html
Apache License 2.0
27 stars 17 forks source link

first attempt at peer method 3 #49

Closed AlexAndrei98 closed 1 year ago

dhh1128 commented 1 year ago

Hi, @AlexAndrei98 . Thank you for the PR!

Can you provide some background on the goals that motivated this PR, and how it relates to goals @TelegramSam might have had when he wrote method2? This will help me to know whether I should just accept the PR directly, or try to look for ways to align methods 2 and 3 more closely.

swcurran commented 1 year ago

@dhh1128 -- the motivation of did:peer:3 is to have the capability/ease of use of did:peer:2 (in DIDComm v1 and v2), without always having to have the super long, info rich DID. A party could send a single did:peer:2 (thus transmitting the DIDDoc) and then send a peer:did:3 with every subsequent message.

Practically, we also want to transition from the current unqualified peer DIDs (with no formal DID method) in Aries to did:peer:3s, but canonicalizing the existing DIDDoc to a did:peer:2, and then converting it to a did:peer:3.

From an implementation perspective, support would be needed for "synonym" DIDs -- finding a connection based on either DID format.

in separate issue/PR, I would further suggest that we deprecate did:peer:0 (always use did:key) and did:peer:1 (no canoncialization defined, and the DID rotation support is "unwieldy"). Instead, we should use DID rotation, which I think is already supported in DIDComm v2 (right).