-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Public key ID format #20
Comments
This is a good question. I don't think there is any incontrovertible reason why did:peer needs to be opinionated, but there is a medium-to-strong desire to be simple. The key ID formats that are given were intended to limit the difficulty of implementing the spec. Having said that, I don't want to preclude good connections to hardware-based key tech, so maybe we should introduce more flexibility. I'd be curious to get an opinion from @OR13 , who has followed key format debates in W3C more closely than I have, and also from @SmithSamuelM , who may have some thoughts about KERI's opinion on the subject. |
oh boy do I have opinions on this subject....
You will be shooting your DID Method in the foot, if you do not support 1 and 2... 3 is a stretch goal. |
@OR13 : just to be clear, the peer DID spec supports any key format -- what we are talking about here is the format of the id of the keys. The ID format is relevant to the CRDT logic. |
https://w3c.github.io/did-core/#public-keys If the |
if did peer is a linked data did document (uses https://didme.me/did:meme:1zgsya8mdj6mq4ytx7a57fx89r0c404eyqej6kfl2wtm3fyvm5qgpngs0725xp {
"@context": [
"https://www.w3.org/ns/did/v1",
{
"@base": "did:meme:1zgsya8mdj6mq4ytx7a57fx89r0c404eyqej6kfl2wtm3fyvm5qgpngs0725xp"
}
],
"id": "did:meme:1zgsya8mdj6mq4ytx7a57fx89r0c404eyqej6kfl2wtm3fyvm5qgpngs0725xp",
"publicKey": [
{
"id": "#z6MksH8do3evRtfrCSiF1Pg5qXkKWwbBBXAno2iiHQHWAgsU",
"type": "Ed25519VerificationKey2018",
"controller": "did:meme:1zgsya8mdj6mq4ytx7a57fx89r0c404eyqej6kfl2wtm3fyvm5qgpngs0725xp",
"publicKeyBase58": "DpsbCoQV6MBP5wsYKpiEzSCKhNKKmdvS71onT8KVFU66"
}
],
"authentication": [
"#z6MksH8do3evRtfrCSiF1Pg5qXkKWwbBBXAno2iiHQHWAgsU"
],
"assertionMethod": [
"#z6MksH8do3evRtfrCSiF1Pg5qXkKWwbBBXAno2iiHQHWAgsU"
],
"capabilityDelegation": [
"#z6MksH8do3evRtfrCSiF1Pg5qXkKWwbBBXAno2iiHQHWAgsU"
],
"capabilityInvocation": [
"#z6MksH8do3evRtfrCSiF1Pg5qXkKWwbBBXAno2iiHQHWAgsU"
],
"keyAgreement": [
{
"id": "#z6LSkAAvzPiT1JcSSRrBD6Tu353u4XGCDpjVBL83y28dLeAW",
"type": "X25519KeyAgreementKey2019",
"controller": "did:meme:1zgsya8mdj6mq4ytx7a57fx89r0c404eyqej6kfl2wtm3fyvm5qgpngs0725xp",
"publicKeyBase58": "9UzmU5uauqthM3UQgSwwiUqRDNj5XDZLJMQNUZV6dGPk"
}
]
} |
if did peer is not planning on using JSON-LD / documentLoaders... We will need to describe document dereferencing yet again.... I strongly suggest keeping |
@OR13 : My intention with respect to JSON-LD is to describe the structure of peer DID docs such that JSON-LD is an option; that is, we dot all the i's and cross all the t's needed to make a peer DID doc consumable in JSON-LD stacks. We always put |
I want to support @dhh1128 position. I concur that the Semantic RDF/JSON-LD model is most beneficial for small contexts but which have variability and therefore need high extensibility. In other words many sets of shallow ontologies that have some degree of intersection or overlap. The VC schema use case fits this extremely well. If there is an ideal application for RDF/JSON-LD it is VC schema. Moreover, the principle limitation of Semantic RDF/JSON-LD is that there is no practical universal ontology. For numerous well documented reasons, ontologies break down as they grow in scope . Thus limited scope ontologies are a sweet spot for extensibility. However when there is not a high degree of variability within scope, as is the majority use case for DID Docs, then for most practitioners, the extensibility overhead of RDF/JSON-LD is not justified by its benefits. Clearly the overhead cost is relative to the practitioner. Someone who is using JSON-LD/RDF extensively for other purposes will see a much lower overhead than someone whose only use case is for a DID:Doc. But just based on the demographics of web application development alone, the practitioners adopting DIDs going forward will be overwhelmingly JSON/Web practitioners not JSON-LD practitioners. This means care should be taken to minimize the JSON-LD overhead associated with adoption not increase it. Indeed the first meaningful exposure these practitioners may have to JSON-LD will be the need to populate the JSON-LD side of the registry for new JSON DID Doc properties. IMHO therefore it is concomitant on the JSON-LD community to remove JSON-LD friction as much as possible as this friction will limit the adoption rate which is bad for the community in general. |
agreed, but deleting an |
@OR13 : yes, that (keeping |
The spec defines 2 specific approaches for the format of a public key ID: https://identity.foundation/peer-did-method-spec/#publickey. While I think they are good approaches, they can be limiting in some cases.
For example, an HDKD based 'wallet' seems like a logical approach to generate a number of pairwise, n-wise DIDs and their associated keys for a user. However, HDKD uses paths such as
m/0/1/1
as the key identifier. In order to be spec compliant, and HDKD 'wallet' would need to have additional logic and storage just to map paths to Peer formatted public key ids and vice-versa.Is there a need for Peer DIDs to enforce a specific format for key ids?
The text was updated successfully, but these errors were encountered: