01:11:29 meeting: Decentralized Identifier WG F2F day 2 @ TPAC 01:11:29 previous meeting: https://www.w3.org/2024/09/23-did-minutes.html 01:11:29 next meeting: https://www.w3.org/2024/10/10-did-minutes.html 02:49:20 Jay has joined #did 04:30:12 dmitriz has joined #did 04:30:21 manu_ has joined #did 05:27:21 Kyle has joined #did 05:34:28 Zakim has left #did 05:37:14 Kyle has left #did 06:32:56 dmitriz has joined #did 12:19:54 manu_ has joined #did 15:59:07 RRSAgent has joined #did 15:59:07 logging to https://www.w3.org/2024/09/24-did-irc 15:59:08 RRSAgent, make logs Public 15:59:10 please title this meeting ("meeting: ..."), ivan 16:00:03 Wip has joined #did 16:00:03 present+ 16:00:12 present+ 16:00:18 burn has joined #did 16:00:28 ivan has changed the topic to: TPAC Agenda 2024-09-24: https://docs.google.com/presentation/d/1s6tf0VOKdIr3Gf_t7ROypyeg07Lk_myoOFby6AL4I7g/edit#slide=id.g2a8b040676_0_74 16:00:28 laurens has joined #did 16:00:33 Agenda: https://docs.google.com/presentation/d/1s6tf0VOKdIr3Gf_t7ROypyeg07Lk_myoOFby6AL4I7g/edit#slide=id.g2a8b040676_0_74 16:00:44 TallTed has joined #did 16:00:47 markus_sabadello has joined #did 16:01:43 ericaconnell has joined #did 16:01:43 HaoYuan has joined #did 16:02:06 5 min warning 16:02:42 dlongley has joined #did 16:03:56 it seems like there should be some liaison between DID and FedID. https://www.w3.org/events/meetings/ecf72b3f-b081-499b-b50f-b9065036af65/ 16:06:57 pchampin - Did you see my note of last evening, about IRC log and minutes? (RRSAgent rolled over at midnight GMT.) 16:07:52 RRSAgent, this meeting spans midnight 16:08:24 pchampin - That's good for today, but what happens to *yesterday*'s data? 16:08:34 bigbluehat has joined #did 16:09:16 wes-smith has joined #did 16:09:25 present+ 16:09:34 present+ 16:10:42 present+ 16:10:45 present+ 16:10:48 present+ 16:11:04 present+ 16:11:13 manu_ has joined #did 16:11:36 present+ 16:11:40 mandyv has joined #did 16:12:11 present+ 16:12:12 danpape has joined #did 16:12:15 present+ 16:12:24 present+ 16:12:25 present+ 16:12:50 present+ 16:13:43 JoeAndrieu has joined #did 16:13:48 scribe+ 16:13:53 present+ 16:13:56 cc has joined #did 16:14:11 Kyle has joined #did 16:14:21 shiyu has joined #did 16:14:28 wip: any changes the agenda? 16:14:43 [discussion of possible adjustments] 16:14:57 q? 16:15:29 Jenniem has joined #did 16:15:40 wip: First up, Markus to talk about extensibility of DID Resolution 16:16:09 kaz has joined #did 16:16:35 markus_sabadello: What I wanted to do with this session is to get a discussion and changing thoughts on extensbility and the algorithm of resolution when you give a DID to a resolver or a DID URL to a dereferencer 16:16:49 present+ Kaz_Ashimura 16:16:51 ... this has to do with the discussion from previous meeting, around primary and secondary resources and fragments 16:17:04 ... can you resolve to something other than the DID document? 16:17:35 KevinDean has joined #did 16:17:38 present+ 16:17:42 ... What's already in DID core (showing basic syntax) for resolve. Input is the DID, plus a map of options. The output is primarily the did document plus two types of meta data. 16:17:49 ... We've had that for a long time. 16:18:15 ... A bit of innovation in places. Regarding extensibilty, most of these elements are points of extensibility 16:18:34 ... described in the specifications, but they are ways to add features 16:18:51 ... resolution options haven't been used much. I don't know of any particular implementations. 16:19:20 ... the one that is definitely being used is the request for a particular representation of the did document 16:19:28 q+ to ask about how you might supporting sidecar data 16:19:38 brent has joined #did 16:19:42 ... the result is guaranteed to have meta data, but that meta data may be customized 16:19:49 present+ 16:19:51 ... So how flexible should the resolution spec be? 16:20:04 ... How constrained or open should the generic did resolution process be? 16:20:10 q? 16:20:12 present+ 16:20:17 ack Wip 16:20:17 Wip, you wanted to ask about how you might supporting sidecar data 16:20:39 wip: I wanted to ask, because of did:btc1, we have a need for that options, but we weren't sure if it fit 16:20:54 ... we want to pass in the did and some additional data to help resolve the DID 16:21:19 markus_sabadello: absolutely. I remember your conversation and also KERI methods where the DID itself isn't sufficient to fully resolve. 16:21:26 q+ 16:21:28 ... I think absolutely that's something to put in there. 16:21:40 ack decentra_ 16:21:48 decentra_: I think a common resolution option would be a version of the did document 16:22:01 Version or time 16:22:16 markus_sabadello: yes. I have a few more examples also 16:22:44 ChristopherA has joined #DID 16:22:51 present+ 16:22:53 ... Dereferencing a DID URL is when you have a DID with an optional path, query, and fragment parts 16:22:54 dezell has joined #did 16:22:54 present+ 16:23:05 present+ 16:23:06 ... the tension is that the result *may* be a DID document, but it may be something else 16:23:11 q+ 16:23:19 dmitriz has joined #did 16:23:23 present+ 16:23:25 q+ to say DID URL deref to did document != resolution 16:23:54 ... you can have parameters in the query stream, but the interesting question is what should the spec say about the dereferencing algorithm 16:24:08 q? 16:24:11 ack ChristopherA 16:24:44 ChristopherA: One of the things we've run into is you may need to speak to a ... you may need to have a more interactive back & forth with the resolver 16:24:46 scribe+ 16:24:59 ... and there is no way to have an id for "this particular conversation" 16:25:13 +1 for a simpler/modular design so that you either get back a DID document, a portion of it, or another URL that would could be resolved via another resolver -- rather than trying to have `dereference()` do everything (including resolving that other URL to get its content, etc.) 16:25:19 ... so if the resolver needs more information, we don't have a standard way to relate the next resolution to the prior one 16:25:35 ... lots of advanced use cases, you won't immediately get the answer. 16:25:44 ... So can we have some sort of id for a series of transactions? 16:26:34 markus_sabadello: we've done something very much like that in the did registration specification. I think it could be done. Through the options object and metadata returned. 16:26:55 ... The metadata could communicate that more is needed and the additional information can be sent in the options 16:27:09 ... You could send something like a state identiifier or cookie to keep track 16:27:22 ... But also, we could discuss extending the interface to have more inputs 16:27:24 q? 16:27:30 ack JoeAndrieu 16:27:30 JoeAndrieu, you wanted to say DID URL deref to did document != resolution 16:27:50 JoeAndrieu: The way you introdueced this Markus, a DID URL could resolve to a DID Document -- I think that's correct. 16:28:14 JoeAndrieu: We need to communicate that that is not a form of resolution. Just because a DID Document resolves, doesn'tmean it is the DID Document for the DID. 16:28:26 JoeAndrieu: For DID Document that is canonical for the DID -- we need to be clear about that. 16:28:29 q+ 16:28:42 markus_sabadello: I think we're aligned there. 16:28:43 smccown has joined #did 16:28:53 ... Resolving a did != dereferencing a did URL 16:28:58 ack decentra_ 16:29:05 scribe- 16:29:15 decentra_: I'm wondering if there's language in the spec today about trusting the resolution process? 16:29:21 markus_sabadello: there is a section about that 16:29:22 jets has joined #did 16:29:39 q+ to ask about examples of where you would use a path in the DID url 16:29:46 ... it's called DID Resolution architecture. we can probably expand that 16:30:04 cc has joined #did 16:30:13 ... Let's talk about the inputs and outputs. And definitely the metadata can help you make some trust decisions 16:30:24 ack Wip 16:30:24 Wip, you wanted to ask about examples of where you would use a path in the DID url 16:30:28 ... Maybe we can save the trust conversation and get to the next slide 16:30:32 wip: do you have examples? 16:30:39 present+ 16:30:40 markus_sabadello: Yes, on my next slide 16:31:10 present+ Brian_McManus 16:31:13 ... Here are a bunch of examples of DID Urls 16:31:48 ... Some of these combinations are very generic. Maybe could be defined in the spec itself. Some could be defined in extensions. Some may not work with all DID methods. 16:31:55 ... Let's look at them one-by-one 16:32:09 ... First is a #fragment to refer to a key. 16:32:12 ... Fairly common. 16:32:18 Examples: https://docs.google.com/presentation/d/1s6tf0VOKdIr3Gf_t7ROypyeg07Lk_myoOFby6AL4I7g/edit#slide=id.g3027975a40a_0_2 16:32:19 ... So what should the spec say about it? 16:32:41 ... I hope we agree that dereferencing that is one of the verification methods from the DID document. 16:32:50 Bert has joined #did 16:32:52 ... because the fragment is a related resource. 16:33:04 ... I was using the language of primary resource and secondary resource. 16:33:47 ... when that first DIR URL is dereferenced, you first dereference the DID to get the primary resource, the DID Document which you can use to get the secondary resource of the verification method with that id 16:33:51 q+ to ask about the relationship b/w fragments and options 16:33:59 Agree that it sounds right to me 16:34:05 ack decentra_ 16:34:05 decentra_, you wanted to ask about the relationship b/w fragments and options 16:34:06 Me too 16:34:16 decentra_: I'm wondering. Is it worth having an understanding that these fragments should be coordinated or aligned with resolution options? 16:34:23 markus_sabadello: I don't think so. 16:34:41 ... If we look at the next example, with version time as a query parameter. 16:35:08 ... The specification currently says that to dereference, the versionTime must be passed as a resolution option 16:35:28 tre has joined #did 16:35:32 ... so when you do resolution, you do it differently because of the parameters. 16:35:35 q+ to say if any DID URL resolves to another "intermediate URL", i would recommend that just be the result -- rather than automatically trying to resolve that... for example, i imagine the did:tdw DID URLs with `.../governance/issuers.json` maps to an HTTPS URL, so ideally (to me) the result of resolution is that HTTPS URL, not whatever content lives at that HTTPS URL. 16:35:40 ack dlongley 16:35:40 dlongley, you wanted to say if any DID URL resolves to another "intermediate URL", i would recommend that just be the result -- rather than automatically trying to resolve that... 16:35:44 ... for example, i imagine the did:tdw DID URLs with `.../governance/issuers.json` maps to an HTTPS URL, so ideally (to me) the result of resolution is that HTTPS URL, not whatever 16:35:44 ... content lives at that HTTPS URL. 16:35:45 ... so, yes a relationship for query terms, but not fragments 16:36:15 Max has joined #DID 16:36:26 dlongley: if many of these, resolveing the DID URL probably returns an HTTP URL 16:36:55 ... if that points to something other than the VDR, then dereferencing should should RETURN that URL, not attempting to handle all possible URLs 16:37:28 ... a boundary: are the resolvers just returning content they generate (per method resolution) or is it something that is from somewhere else (and they should just return the http URL) 16:37:28 +1 to what Dave said. 16:37:42 markus_sabadello: that is what happens when we use the service parameter. 16:38:06 +1 to a compositional design 16:38:07 ... so a DIDURL with a service parameter is not the final resource, (the content) but just the URL that can be separately dereferenced 16:38:52 q+ to note that different rules in each Method specification could be challenging. 16:39:01 ... however with did:tdw (we can discuss that)... in my mind, (with the governance example), it should return the content, because the webserver *is* the VDR 16:39:26 bkardell_ has joined #did 16:39:34 ack manu_ 16:39:34 manu_, you wanted to note that different rules in each Method specification could be challenging. 16:39:34 q? 16:39:41 ... look at did:cheqd, you also get something back other than the DID document, but the result is not the URL. 16:39:50 having to mirror every possible thing you can do with HTTP into `didResolutionOptions` (or whatever that param is called) ... is not something we want to do (IMO) 16:40:15 manu: I'm concerned if DID methods can define how things are resolved differently where its really up to the did method and different did methods do it differently. 16:40:39 ... for example, if it's a service, it just returns the URL back. But did methods could do something completely different. 16:41:04 q+ to talk about DID URL as http replacement in HTML 16:41:06 Consistency from the point of view of Developer is important. 16:41:11 +1 for consistency 16:41:26 markus_sabadello: yes, we should put some things in the spec that methods can't or shouldn't override 16:42:09 scribe+ 16:42:12 ... At one point we had different syntax for method-specific and generic parameters, and we decided that was too complicated 16:42:24 Aaron has joined #did 16:42:34 ... if people come up with new parameters, but make sense to be consistent across different methods, they can be registered 16:42:55 ... the did:cheqd example is a good model 16:43:15 q? 16:43:17 ack JoeAndrieu 16:43:17 JoeAndrieu, you wanted to talk about DID URL as http replacement in HTML 16:43:30 JoeAndrieu: Wanted to push back a bit on something Dave Longley said. 16:44:18 JoeAndrieu: In Linked Resource for did:cosmos, it was designed that if the DID URL has a path part, we replace the resource, so you can put that URL as src in image tag in URL. When you put DID URL in, what you get back is a resources, we miss opportunity to update Web to use DIDs. 16:44:41 JoeAndrieu: I would like to use DID URL as src in image tag. I'd like to be able to support that use case. 16:44:42 q+ 16:44:45 q+ to say that's an interesting use case, but i don't if it can't be supported either way 16:44:49 markus_sabadello: I agree 16:44:50 ack manu_ 16:44:59 manu_: +1 to supporting the use case 16:45:07 q- 16:45:09 +1 to what Manu is saying. 16:45:10 wes-smith has joined #did 16:45:35 ... there are two things going on here. The question is what do you send to the resolver api to get one of two things: 16:45:35 1 is fully resolved URL 2 what do you do to get the actual content 16:45:37 q+ 16:45:45 ack JoeAndrieu 16:46:00 (notably, you can return a data URL as well) 16:46:04 q+ 16:46:26 JoeAndrieu: The way we navigated it, but not how did:cheqd did it, we treated, if there is a path part, you get back resource. That was a definitive one way or the other. If you don't have a path, you want DID Document, if you have path, you get back secondary resource. 16:46:45 JoeAndrieu: Maybe service query pattern gives you URL -- maybe we can break it into different responses based on URL structure. 16:46:47 ack dlongley 16:46:58 dlongley: I support the use case. a number of different ways to do it. 16:47:20 ... it may be that if a URL is always returned, then browsers are told they should continue dereferencing 16:47:39 kazho has joined #did 16:47:41 ... but adopting design when we can use current tooling would be powerful 16:47:43 +1 16:48:02 s/+1/JoeAndrieu: +1/ 16:48:20 scribe- 16:48:40 markus_sabadello: keep in mind, like with did:cheqd, there are other did methods where there isn't a URL. We could use a data URL... but then why have an interface to return a content stream in the first place? 16:49:30 ... regarding the path. the resolution specification doesn't tell you anything about how to dereference the path. Maybe that is defined by the did method, or by an application, but other than that is completely open and flexible. 16:49:41 ... So it doesn't say that if it's a path, it must be content. 16:49:51 q+ to ask about tdw examples 16:49:51 q+ to say: i'm not against returning a content stream, but with no clear guard rails on when that would happen, we run the risk of having to wrap every possible protocol for retrieving other content 16:49:51 ... In current design its left up to did method 16:49:56 ack Wip 16:49:56 Wip, you wanted to ask about tdw examples 16:50:16 wip: About the tdw examples, could you explain the difference 16:50:31 Kyle has joined #did 16:50:44 did:tdw:Qma6mc1qZw3NqxwX6SB5GPQYzP4.example.com#whois 16:50:51 did:tdw:Qma6mc1qZw3NqxwX6SB5GPQYzP4.example.com/whois 16:51:30 markus_sabadello: the one with the hash is just a DID URL with a fragment. in this case, when you dereference, you first get DID document, then process fragment according to rules of the media type. 16:52:02 ... Assuming this is a service, the result would be the service with the id that matches the hash 16:52:17 ... The second example with /whois, the DID method would have to define that. 16:52:38 ... I realize its tempting to come up with a generic set of rules, but I don't think that would be right. 16:52:40 JennieM has joined #did 16:53:25 ... In the did:tdw spec, it says that in order to dereference, you find the endpoint, then you look for the service and return the content 16:53:26 dezell has joined #did 16:53:53 ack dlongley 16:53:53 dlongley, you wanted to say: i'm not against returning a content stream, but with no clear guard rails on when that would happen, we run the risk of having to wrap every possible 16:53:56 ... protocol for retrieving other content 16:54:20 dlongley: you mentioned returning a content stream and making sure we have reason to do that. I'm not against that, but we need to figure out guardrails 16:54:21 Kyle_ has joined #did 16:54:40 ... there's an imedence mismatch where you'd have to know what is behind the URL to pass the right options for further resolution 16:55:01 ... I'm concerned that we are trying to enable a generic solution but only having a limited mechanism to do it 16:55:05 s/imedence/impedence/ 16:55:34 ... I'm worried that if we don't give people any guardrails, then clients will need to have magical super powers to know what to do. 16:55:43 markus_sabadello: I agree. 16:56:14 ... these examples would theoretically work with no additional parameters in the dereferencing 16:56:24 ... some of it is defined by DID methods, some by the spec 16:56:40 q+ to say I think interop between methods is the better options 16:56:43 did:example:123?service=DecentralizedWebNode&queries=W3sgTUV 16:56:48 ack JoeAndrieu 16:56:48 JoeAndrieu, you wanted to say I think interop between methods is the better options 16:56:52 scribe+ 16:57:16 drummond has joined #did 16:57:23 present+ 16:57:42 JoeAndrieu: Wanted to provide counerpoint on advocacy to leave bulk up to DID Method. We have a challenge where did:cheqd is doing what did:cosmos did, going to limit interop -- what is the common pattern that these DID Methods upgrade to? Can we figure out how we could have mechanism to get resource back in a common way. 16:57:46 q+ 16:57:54 +1 to Joe for finding consistency and creating more well-defined boundaries / layers 16:57:56 markus_sabadello: I would love to learn more about the did:cosmos approach. 16:57:58 +1 to defining a common pattern that any DID method can adopt for DID URL construction. 16:58:19 markus_sabadello: the objective for this discussion is the question of how much we should standardize 16:58:23 +1 16:58:31 +1 16:58:40 +1 16:58:42 manu: +1 16:58:49 +1 to define the scope of dereferencing should happen on DID resolution lev,e 16:58:55 Or the did method, etc 16:59:05 did:example:123?transformKeys=JsonWebKey 16:59:05 markus_sabadello: we have a mechanism to define common parameters (did core and extension registry) 16:59:46 ... this JsonWebKey example is defined by the method, but maybe it could be elevated to be worth putting in did-core 17:00:04 ... So we might want to create a section for path patterns 17:00:25 +1 to extension registry for common path patterns such as /whois 17:00:27 q+ to say the linkedResources is in the extension registry 17:00:39 q? 17:01:01 ack manu_ 17:01:29 manu: to note the plus ones further up. I think making it so that we don't know how to interpret path patterns is going to lead to a lot of problems. 17:02:03 ... I'd go a bit further. Maybe we do need path patterns, but I'm concerned that they might be totally different. So you see similar patterns, but handled wildly differently 17:02:13 ... can we not just standardize the path pattern? 17:02:35 +1 for standardizing the path pattern 17:02:37 ... I am not certain about the ramifications of that option, but it seems the other way feels like we are buying ourselves trouble 17:02:54 markus_sabadello: the counter argument would be that isn't how http urls to work 17:03:04 q+ 17:03:11 and maybe it ends up being ok for the paths to be wildly different, but we need to make sure it's really clear where the lines are and that we can *construct* (in a compositional way) the pieces we need to do interesting things, using existing interfaces, without having to wrap every interface to integrate existing technologies with DIDs. 17:03:18 q? 17:03:32 ack JoeAndrieu 17:03:32 JoeAndrieu, you wanted to say the linkedResources is in the extension registry 17:04:27 JoeAndrieu: linkedResources are in the extension registry. That particular use of that property determines how the path is used because it's method specific. That's the dangerous pattern we're in and anyone can add that pattern to the registry, but no one outside DID IXO community understands it. Creates the problem Manu is raising a concern about. 17:04:33 Agree with Markus that expectations from HTTPS URLs need to be met as much as we can to reduce confusion 17:05:23 JoeAndrieu: We have a path property that is a property of linked resource that would be looked up... bespoke way to do it, but we just thought through it in our own internal conversations. 17:05:25 ack manu_ 17:05:39 LinkedResources - https://earthprogram.github.io/did-cosmos/#linked-resources 17:06:00 manu: I didn't mean to imply that the same path on two different did methods would give you the same resouce. I agree. the path on one DID URL may give you a totally different resource than that same path on another DID 17:06:39 agree that that would be a big problem 17:06:45 also agreed 17:07:01 ... In one situation, it results in getting the DID document and the second is a direct resource, then the DID method fundamentally overwrites the fundamental expectations 17:07:11 Sounds like the key is not so much what is returned but whether behavioral actions differ 17:07:11 ... there needs to be some level of predictabiliity 17:07:35 ... the linked resources is a great example, I would expect that to behave the same way across DID methods 17:07:50 q? 17:07:55 ... So we might restrict extensions to prevent that kind of duplication / ambiguity 17:08:00 What would be ideal is if you can request the same type of resource (or action) with a specific path construction that works across all DID methods that adopt it. Linked Resources is a good example. 17:08:03 (can't put the requirement on DID registry administrators though :) ) 17:08:13 +1 17:08:27 +1 to manu, probably we could have a more strict resolution rules, rather than just putting everything we’ve used from URL dereferencing 17:08:32 markus_sabadello: I've organized those examples into patterns we've been seeing 17:09:14 we need different categories that can each be reasoned about similarly -- and DID method authors can put their extensions in the right place/category. 17:09:42 I wonder whether people would be feeling the same way if these URLs were fully opaque/obfuscated (as URLs are specified to be), rather than using human-friendly-ish parameters, values, etc. 17:09:52 q+ 17:09:58 ... The method independent ones don't require any method-specific logic. Selecting a service endpoint from a did document that doesn't have to be encoded in a method specific way 17:10:02 q? 17:10:05 q+ 17:10:40 TallTed: i think the point Manu is raising starts to involve something like verbs / actions and how those interact with URLs (or if they are "part of" the URLs) 17:10:41 ... The processing of the service parameter is completely independent of the DID method 17:10:52 s/TallTed: i/TallTed -- i 17:10:55 ... Some of this could be changed or improved 17:11:06 ... Where these things are specified is the heart of this discussion 17:11:07 q? 17:11:13 ack manu_ 17:11:43 Wonsuk has joined #did 17:11:48 manu_: looking at the list, my gut is that anything that's a query parameter feels right. It's the path part for /whois, and leave that method-specific 17:12:03 q+ 17:12:07 ... if that were a query term, it would feel less confusing 17:12:21 +1 to confusion b/w path and query param 17:12:39 ... in the extensions, if query and path are interchangeable that could become confusing 17:12:58 And that has happened everywhere 17:13:06 markus_sabadello: the different between /whois and ?whois and /governance/issuers could be anything. 17:13:26 .... you can have any arbitrary path and how to dereference it. 17:13:33 q? 17:13:35 ack TallTed 17:13:36 ... because the DID method may want to support arbitrary paths 17:14:06 TallTed: I'm concerned people seem to be interpreting URLs based on their intuititive interpretation of the words they are seeing there. URLs are by definition opaque. 17:14:31 ... so if we used opaque identifiers, would that change our sense of how these things work? 17:15:03 ... replaceing "whois" within "xc13" would shift expectations, but *it shouldn't* 17:15:04 q+ to agree with Dave Longley that this is about verbs/actions 17:15:25 `did:method:abc/p1/p2.ext?x=y&z=1#f` <-- need clear boundaries around how each of these "things" work :) 17:15:39 q+ to note that URLs are supposed to be opaque, but the patterns we build on top of them are not. 17:15:42 ack ChristopherA 17:15:44 ... There's intuitive understanding of how things work because of an incorrect believe that we understand how things work. Because the services don't have any intuitive anything 17:16:13 ChristopherA: I'm struggling with a trust model problem. Which is, how much does the resolver that I trusted 17:16:28 ... versus a resolver going and asking something else for an opinion? 17:16:34 q+ to speak to "don't know what is handled by DID Core / DID Resolution vs. DID Method" 17:16:49 ... In a bunch of these there is zero trust, because there aren't mechanisms to ensure it. 17:17:23 ... What data comes from my browser resolver and I am forced to trust, but if it calls some other resolver, how/why should I trust it? 17:18:00 markus_sabadello: there is some language about this in the architecture section. It's incomplete, but it tries to decsribe that it is possible to have a setup where one resolver talks to another resolver, even at different parts in the process 17:18:08 ... that has implications on trust model 17:18:31 ... For example, fragment could be used to resolve the document, then processing the fragment yourself. 17:18:35 How do you know to trust the HTTPS server your browser sends a GET to? How do you know that HTTPS server isn't parsing your GET and passing chunks of it to a remote process, that does the same, etc., until something gets returned to you? 17:18:51 q+ to talk about fragments not being sent to resolvers and dereferencers 17:18:53 also something to note... if you can't resolve a DID URL to an intermediate URL, it becomes harder to figure out what to update :), i.e., people will need/want to update "pointers" to things and they might need to know what those pointers are, not only get back the fully dereferenced content. 17:19:20 q? 17:19:23 ack burn 17:19:23 burn, you wanted to agree with Dave Longley that this is about verbs/actions 17:19:38 shiyu has joined #did 17:19:40 +1 to TallTed, when we hide the HTTPS calls behind a DID resolver we also don't necessarily know what's being used there for trust 17:19:40 burn: I want to go back to Manu's comment on the example of what concerns him with path. 17:20:16 ... I think it really is about verbs and actions. Even with HTTP urls, it feels wrong when the path has "actiony" things like "next" or "prev". 17:20:31 q? 17:20:39 I don't believe there's an suggestion of that in HTTP URLs that are not strictly Locators 17:20:40 ... So that is something not mandated with HTTP urls but if we can restrict/enforce/control that, that would be valuable 17:20:41 ack manu_ 17:20:41 manu_, you wanted to note that URLs are supposed to be opaque, but the patterns we build on top of them are not. and to speak to "don't know what is handled by DID Core / DID 17:20:42 +1 to burn 17:20:44 ... Resolution vs. DID Method" 17:21:02 manu: Agree with Ted, yes, URLs are supposed to be opaque and you get something back. 17:21:25 you don't necessarily get anything back. You *should* usually get a response code, but that may be all! 17:21:31 ... in that way, thy are opaque, but we also have design patterns like .well-known which we now depend on for certain protocols 17:21:48 ... I'm concerned about not know which systems resolve which parts of a path 17:22:14 ... To really understand what happens, you have to have the entire registry in your head of every possible parameter and path to understand what applies 17:22:28 ... Yes, this stuff is support to be opaque 17:22:46 Correct, Ted, but there is an implication that a path leads to a location and not an action. Maybe something at the location is returned, or maybe not, but path-as-action is problematic. 17:23:05 ... but it's a high cognitive load. that increases the chances that people will come to the wrong conclusions, leading to security mistakes 17:23:15 q? 17:23:18 It's no less complex with an HTTP(S) URL and all the things that might be behind /cgi/... 17:23:28 ack JoeAndrieu 17:23:28 JoeAndrieu, you wanted to talk about fragments not being sent to resolvers and dereferencers 17:24:02 Fragments are not sent to servers by clients. It's in the RFCs. 17:24:06 JoeAndrieu: Wanted to speak to a conceptual boundary -- typical pattern in browser is you don't send fragment to server. You process w/ results of resolution or dereferencing. We haven't written that up. 17:24:08 q+ 17:24:47 markus_sabadello: I think you do pass the entire DID URL to the deferencing process, but different things can happen in different components 17:24:53 ... all of which could happen locally 17:24:59 ack shigeya 17:25:15 shigeya: I'm confused about which type of software is using this API 17:25:18 "the server" gets ambiguous, "the resolver" is perhaps not "the server", but the client (even if it also happens to function as a server just to enable you to use its interface), i.e., there is a server/client when resolving and a server/client that provides a resolution interface. 17:25:27 ... There is some confusion about differences of assumptions 17:25:31 q+ 17:25:39 q+ 17:25:41 ... Some think the end result should be resources, but somethings not 17:25:53 ... we could put this onto the browser to get there. 17:26:19 Zakim, please close the queue 17:26:19 ok, decentra_, the speaker queue is closed 17:26:26 ack Wip 17:26:26 markus_sabadello: all of these are implemented somewhere. Maybe not exactly to the interfaces we have in the spec, but these are live uses 17:26:49 wip: It'd be good for everyone to think about next steps. We need some issues and actions we are going to take 17:26:54 PZ has joined #did 17:27:17 q+ to mention inconsistency problems with extensions 17:27:20 ack KevinDean 17:27:38 (Sorry, yes, my bad, I'm usually a stickler about "qualifier server", "qualifier client".) 17:28:19 markus_sabadello: with did resolution you don't always have client and servers 17:28:32 Sure you have clients and servers! 17:28:44 From RFC 3986 (https://datatracker.ietf.org/doc/html/rfc3986): As such, the fragment identifier is not used in the scheme-specific processing of a URI; instead, the fragment identifier is separated from the rest of the URI prior to a dereference, and thus the identifying information within the fragment itself is dereferenced solely by the user 17:28:44 agent, regardless of the URI scheme. 17:29:56 markus_sabadello: it's also a question of which application is treating "dereferencing" to call a dereferencer 17:30:01 Kyle_ has left #did 17:30:05 Kyle_ has joined #did 17:30:11 wip: off to a 30 min break, after an optional group photo 17:30:39 Kyle_ has left #did 17:30:48 back at 10:55 17:45:26 PZ has joined #DID 17:47:14 PZ has left #did 17:47:14 We're experiencing power outage at the venue hotel. We may not able to resume at 10:55... 17:48:45 RRSAgent, draft minutes 17:48:46 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html TallTed 17:50:27 i/5 min warning/topic: extensibility of DID Resolution/ 17:50:34 RRSAgent, draft minutes 17:50:36 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html TallTed 17:51:02 dlehn1 has joined #did 17:51:40 i/Last topic of today/scribe+ wip 17:52:17 i/5 min warning/scribe- wip 17:52:21 RRSAgent, draft minutes 17:52:22 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html TallTed 17:58:08 i/5 min warning/agenda: https://docs.google.com/presentation/d/1s6tf0VOKdIr3Gf_t7ROypyeg07Lk_myoOFby6AL4I7g/edit#slide=id.g2a8b040676_0_74 17:58:21 RRSAgent, draft minutes 17:58:23 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html TallTed 18:07:49 decentralgabe has joined #did 18:07:58 We are delayed - power is out in the building. No estimate of return just yet. 18:08:37 decentralgabe has joined #did 18:13:30 decentralgabe has joined #did 18:15:31 decentralgabe has joined #did 18:16:37 Bruno5 has joined #did 18:22:38 the local power co's website shows a 3PM return. please follow the mailing list, we will post an update when we're able to resume. 18:23:11 W3C in the dark 18:24:00 In case it makes anyone feel better, here in Europe it's dark as well :) 18:24:21 😂 18:26:08 The sun has set on Europe. 18:58:56 Wip has joined #did 19:55:24 ChristopherA has joined #DID 19:55:42 I’m hanging out at pool patio, much cooler there. 19:57:19 Zakim has left #did 20:05:56 dmitriz has joined #did 20:05:57 kaz has joined #did 20:23:21 Jay has joined #did 20:47:42 markus_sabadello has joined #did 21:00:43 decentralgabe has joined #did 21:01:02 scribe+ 21:01:16 Wip has joined #did 21:02:31 spshin has joined #did 21:02:42 Bert has left #did 21:05:53 Kyle has joined #did 21:06:00 KevinDean has joined #did 21:06:01 dmitriz has joined #did 21:06:04 present+ 21:06:06 Present+ 21:06:06 present+ 21:06:17 burn has joined #did 21:06:17 present+ 21:06:18 JennieM has joined #did 21:06:27 present+ 21:06:31 present+ 21:06:37 present+ 21:06:41 ericaconnell has joined #did 21:06:49 danpape has joined #did 21:06:56 present+ 21:07:16 ty-everett has joined #did 21:07:22 wes-smith has joined #did 21:07:24 present+ 21:07:47 Brayden has joined #did 21:08:32 cc has joined #did 21:08:33 present+ 21:08:34 burn: the agenda has adjusted. we will skip issue/PR processing for resolution, which we normally do on calls. 21:09:36 manu_ has joined #did 21:10:06 ... we were going to do editor onboarding for resolution editors. to help with the process for doing that. we will skip it for now. we are going to run a resolution for the FPWD for DID Resolution, so we can begin making edits under the proper structures 21:10:15 ... I will turn it over to Will to run that process. 21:10:17 present+ 21:10:30 Zakim has joined #did 21:10:38 present+ 21:10:42 Zakim, who's here? 21:10:42 Present: denkeni 21:10:44 On IRC I see manu_, cc, Brayden, wes-smith, ty-everett, danpape, ericaconnell, JennieM, burn, dmitriz, KevinDean, Kyle, spshin, Wip, decentralgabe, markus_sabadello, kaz, 21:10:44 ... ChristopherA, dlehn, jets, dlongley, TallTed, RRSAgent, rhiaro, hyojin_, manu, denkeni, cwilso, jyasskin, hadleybeeman, shigeya, pchampin, cel, ivan 21:10:45 q+ to ask about using echidna for publishing. 21:10:51 q? 21:10:54 ... we have draft text. please adjust it 21:10:57 ack manu_ 21:10:57 manu_, you wanted to ask about using echidna for publishing. 21:11:03 isaac has joined #did 21:11:05 q+ christophera 21:11:21 Wonsuk has joined #did 21:11:39 manu_: I don't know if we've made a resolution to use echidna to auto publish, but we should do it. 21:11:40 present+ TallTed, manu, manu_, burn, ChristopherA, markus_sabadello, dlehn, 21:11:46 Zakim, who's here? 21:11:46 Present: denkeni, Wonsuk_Lee, TallTed, manu, manu_, burn, ChristopherA, markus_sabadello, dlehn 21:11:49 On IRC I see Wonsuk, isaac, Zakim, manu_, cc, Brayden, wes-smith, ty-everett, danpape, ericaconnell, JennieM, burn, dmitriz, KevinDean, Kyle, spshin, Wip, decentralgabe, 21:11:49 ... markus_sabadello, kaz, ChristopherA, dlehn, jets, dlongley, TallTed, RRSAgent, rhiaro, hyojin_, manu, denkeni, cwilso, jyasskin, hadleybeeman, shigeya, pchampin, cel, ivan 21:11:54 shiyu has joined #did 21:12:01 burn: I would like Will to run the proposal first for this, then Manu you can run one for echinda 21:12:26 manu_: the other thing ... we need to suggest the short name, which I presume is did-resolution 21:12:27 present+ 21:12:28 present+ 21:12:32 present+ 21:12:38 present+ 21:12:39 present+ 21:12:40 present+ 21:12:45 JoeAndrieu has joined #did 21:12:51 present+ 21:12:52 present+ 21:12:59 EricS has joined #did 21:13:09 the DID WG will publish the following https://w3c.github.io/did-resolution/FPWD/2024/index.html as an FPWD for did-resolution with the short name did-resolution on the 24th of October 2024 21:13:14 present+ 21:13:47 s| the DID WG will publish the following https://w3c.github.io/did-resolution/FPWD/2024/index.html as an FPWD for did-resolution with the short name did-resolution on the 24th of October 2024|| 21:14:03 s|the DID WG will publish the following https://w3c.github.io/did-resolution/FPWD/2024/index.html as an FPWD for did-resolution with the short name did-resolution on the 24th of October 2024|| 21:14:12 RRSAgent, draft minutes 21:14:13 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html TallTed 21:14:19 rrsagent, draft minutes 21:14:20 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html manu_ 21:15:09 q+ 21:15:13 Wip: Does anyone have any concerns for the proposed text before we move forward? 21:15:16 ack christophera 21:15:44 ChristopherA: we have people that haven't been in a W3C process before. we may want to give a recap of what it means to be in a FPWD, who can vote, and what this is ... 21:16:02 Jay has joined #did 21:16:03 kazoo has joined #did 21:16:26 \me thanks Ted 21:16:39 burn: there are several stages in the W3C rec track process. the first stage is called a First Public Working Draft. it begins the intellectual property disclosure process. when certain triggering events occur, this being one of them, you will review the document to make sure you do not have IP conflicts 21:17:03 s|\me thanks Ted|| 21:17:04 ... please read the IPR policy. only invite experts and w3c members of this group can vote. please do not vote if you are not! we know there are sometimes guests. 21:17:07 q? 21:17:15 RRSAgent, draft minutes 21:17:16 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html TallTed 21:17:29 ack TallTed 21:17:30 ... this is a 'continuing group' in a sense ... not everyone has participated so we are giving people context! 21:17:50 bkardell_ has joined #did 21:18:02 TallTed: I added the revised proposal with the addition of 'DRAFT' -- it is proposed, then we vote, then it becomes resolved (or not) 21:18:03 smccown has joined #did 21:18:20 Wip: hearing no objections to the current proposed text 21:18:21 PROPOSED: Publish the DID Resolution specification (https://w3c.github.io/did-resolution/FPWD/2024/index.html) as a W3C First Public Working Draft with a target publication date of 2024-10-24 and a proposed short name of did-resolution 21:18:24 +1 21:18:25 +1 21:18:27 +1 21:18:27 +1 21:18:28 +1 21:18:36 +1 21:18:36 +1 21:18:36 bigbluehat has joined #did 21:18:36 +1 21:18:36 +1 21:18:36 +1 21:18:36 +1 21:18:36 +1 21:18:41 +1 21:18:43 +1 21:18:47 +1 21:18:50 +1 21:19:29 RESOLVED: Publish the DID Resolution specification (https://w3c.github.io/did-resolution/FPWD/2024/index.html) as a W3C First Public Working Draft with a target publication date of 2024-10-24 and a proposed short name of did-resolution 21:19:31 burn: please vote 1 per org. do not want to have a disproportionate representation 21:19:47 ... we declare it resolved! Manu, would you like to make a proposal about echidna 21:19:50 q? 21:19:51 bruno has joined #did 21:20:59 manu_: echidna is a document publishing system the W3C uses to automate the publishing process. it used to be a lot more of a complex process to publish new versions. this meant new versions were only published every few months. echidna was put in place so that any time the editors merge something to the main branch, echidna auto-publishes a version of that document. 21:21:00 Geun-Hyung has joined #did 21:21:12 for future... I would appreciate announcement of "one vote per member org" before or with the PROPOSED, as that can change my opinion of the wording. 21:21:24 present+ 21:21:26 q+ 21:21:31 q+ 21:21:34 ... this proposes the WG use echidna for all documents the WG publishes after the FPWD 21:21:35 ack JoeAndrieu 21:21:52 JoeAndrieu: I want to clarify, this echnida stops when we get to CR? then we have a different process? 21:21:53 ack manu_ 21:22:32 manu_: echidna needs to be disabled at certain points in the process. we should enable it after FPWD. when we go to CR, we turn it off. then go to CR. then re-enable it to publish CR drafts. then turn it off before PR. etc. 21:22:57 JennieM has joined #did 21:23:10 ... re: pushing back on the proposed resolution amendment from Dan. hopefully this proposal works for all documents the group publishes, so that we do not need to agree to use echidna for future documents. 21:23:12 q+ 21:23:17 ack burn 21:23:37 Q+ 21:23:39 burn: that is fine. understanding that this is for the rubric and all other documents. I don't have an objection. 21:23:40 ack ChristopherA 21:24:00 q+ 21:24:03 ChristopherA: are there some documents we have inherited that we may not want to auto-publish. like the plain CBOR document. I don't think that's a good starting point. 21:24:07 q+ 21:24:07 s/understanding/I want to make sure that everyone understands/ 21:24:11 ack manu_ 21:24:27 manu_: that's a good point ... we don't have to enable echidna ... we can be clear what we're talking about 21:24:28 could say echidna by default unless otherwise stated 21:24:31 q- 21:24:41 q+ 21:24:58 ack JoeAndrieu 21:25:09 PZ has joined #did 21:25:25 JoeAndrieu: the use case document could also go in there. for the VCWG we thought we were on echidna but we were not. it would be good to have an explicit list. 21:25:25 q+ 21:25:33 ack manu_ 21:25:44 The list of WG deliverables are here: https://www.w3.org/2024/04/did-wg-charter.html 21:25:45 q+ to ask about registries & echidna 21:26:20 bayfox has joined #did 21:26:24 q? 21:26:27 ChristopherA: the only one's we haven't mentioned are the plain CBOR representation and implementers guide. I will vote against the CBOR representation. the only one questionable is the implementers guide. 21:26:27 ack JoeAndrieu 21:26:27 JoeAndrieu, you wanted to ask about registries & echidna 21:26:41 q+ 21:26:44 JoeAndrieu: do we have any visibility into the interactions b/w echidna when it is a registry? 21:26:51 ack manu_ 21:27:04 manu_: my expectation is that echidna should operate normally for a registry. it should auto-publish. don't see any reason why it wouldn't work like that. 21:27:25 q+ 21:27:29 ... +1 to Christopher's proposal to not apply it to the CBOR representation or implementation guide until someone pushes it forward. it won't be auto-published until someone works on the documents. 21:27:33 q+ 21:27:36 ack burn 21:28:16 burn: doesn't that mean .. anything not intended as a note can use echidna? 21:28:20 manu_: where is the use cases document? 21:28:20 "use echidna for everything except docs X and Y" 21:28:37 burn: let's list the docs it applies to. 21:29:29 ack pchampin 21:29:43 pchampin: we have precedence of registries using echidna, should be no problem with that 21:30:00 q? 21:30:31 PROPOSED: The Working Group will use Echidna to publish the following documents: DID Extensions, DID Method Rubric, DID Core, and DID Resolution. 21:30:35 burn: any questions? recommendations for change? [ hear none ] 21:30:36 +1 21:30:37 +1 21:30:37 +1 21:30:37 +1 21:30:39 +1 21:30:39 +1 21:30:40 +1 21:30:41 +1 21:30:41 +1 21:30:42 +1 21:30:42 +1 21:30:47 +1 21:30:57 +1 21:31:04 burn: resolved! 21:31:06 RESOLVED: The Working Group will use Echidna to publish the following documents: DID Extensions, DID Method Rubric, DID Core, and DID Resolution. 21:31:24 q+ 21:31:25 ... is there anything else related to this topic of publication processes that needs to be addressed at this time? 21:31:25 q+ 21:31:28 ack manu_ 21:31:30 q- 21:31:56 manu_: ... is did use cases not in our charter? 21:32:00 pchampin: we can make new notes 21:32:26 ack Wip 21:32:35 q+ 21:32:38 decentralgabe: the use cases doc is currently an editors draft and will need to be changed https://w3c.github.io/did-use-cases/ 21:32:47 ack manu_ 21:32:48 Wip: I noticed some URLs are not working properly 21:32:52 There is a published Note of the use cases https://www.w3.org/TR/did-use-cases/ 21:33:16 https://www.w3.org/TR/did-extensions/ 21:33:17 HaoYuan has joined #did 21:33:21 other link is here: https://w3c.github.io/did-extensions/ 21:33:43 manu_: maybe PA you know the answer to this ... there is a subdirectory structure, and when published through echidna it is not publishing the sub-directory stuff for extensions 21:33:54 ... the HTML5 is multi-document, so this should work 21:34:00 pchampin: I was not aware of this and will check. 21:34:15 manu_: in the editor's draft it works just fine. in TR space the links get broken. 21:34:18 q+ 21:34:30 For clarification: Use Cases are covered by the W3C process doc (https://www.w3.org/policies/process/#recs-and-notes) "Groups can also publish documents as W3C Notes and W3C Statements, typically either to document information other than technical specifications, such as use cases motivating a specification and best practices for its use. See § 21:34:30 6.4 The Note Track (Notes and Statements) for details." 21:34:50 This old link still works - https://www.w3.org/TR/did-spec-registries/#extensions 21:35:07 ... TR means "Technical Report" which is the official home of a specification. when we publish something we pick a short name (like did-resolution). when we publish a document it is put on the w3c site under /TR/ 21:35:47 q? 21:35:48 ... it is continually published when we use echidna. we will publish to TR space .. then when the WG shuts down the document will in theory live there forever until a new WG comes along to update the document. there are some other ways this can change. 21:35:50 ack Wip 21:35:55 https://www.w3.org/TR/did-spec-registries/#extensions 21:36:07 Wip: flagging the did spec registries link ... should it still resolve? 21:36:32 pchampin: the links in the section resolve to a 404. we will dig into it 21:36:50 burn: PA will take an action to resolve this 21:36:59 pchampin: does someone have a link to the HTML5 spec that follows this pattern? 21:37:41 burn: we are past our original half hour for the 5 min decision. anything else? 21:37:44 JonesJ38 has joined #did 21:38:05 ... our next topic is the DID Test Suite and Resolver Test suite. there are no slides. just discussion. 21:38:33 Wip: we touched on how we would test interoperability. it is connected. this is really - what actions are we taking as a group to sort out our test suite so we can demonstrate interoperability. 21:38:53 cc has joined #did 21:38:53 .. does anyone have context on what exists currently? I'd like to call on Benjamin since he runs the VC stuff 21:38:59 q+ to speak to what test suite we have now 21:39:04 q+ 21:39:05 q+ 21:39:07 @pierre https://github.com/w3c/did-extensions/issues/576 21:39:37 https://w3c.github.io/did-test-suite/ 21:40:46 I assigned it to GitHub @pchampin 21:41:02 q- 21:41:16 manu_: here is a link to our current test suite (https://w3c.github.io/did-test-suite/). if you look at section 4.4.1 ... effectively the suite checks the DID and the Document. does the document conform? does the DID conform to the syntax we've defined? 21:41:20 RRSAgent, draft minutes 21:41:21 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html TallTed 21:42:07 ... we have 102 methods which submitted tests for this. for each method we can see if it passes a particular test for each normative statement in the specification. we are largely a data model specification ... which is what the tests cover. 21:42:31 ... section 4.2 covers the normative statements we are covering. not all methods have implemented all normative statements. 21:42:46 q? 21:42:49 ack manu 21:42:49 manu_, you wanted to speak to what test suite we have now 21:43:15 .. it is fairly comprehensive. not a lot of methods have problems in passing our test suite. in the future we want this to be far more interactive and dynamic. in the past we got a DID string and a document which we checked into a repository. who knows if these methods are still conformant or not. 21:43:22 ... in the VCWG we have made this more active. 21:43:29 ack markus_sabadello 21:43:56 q+ to ask if it should be a requirement to pass the test suite as part of DID method registry submission 21:44:03 markus_sabadello: It is 102 test reports, not methods. there can be multiple reports per method. there is a separate DID resolution report in the CCG. 21:44:14 https://github.com/w3c-ccg/did-resolution-test-suite 21:45:12 ... the resolution test suite we have goes beyond the data model. also tests the resolution and dereference function by using the HTTPS binding. connects to an endpoint, sends a DID resolution or dereference requests, and checks aspects of the responses. it hasn't received as much attention as the DID core test suite. 21:45:40 ... there are no automated test reports. it is possible to download it .. you can configure the repository to generate test reports locally. can be useful as a starting point. 21:45:46 ack Wip 21:45:46 Wip, you wanted to ask if it should be a requirement to pass the test suite as part of DID method registry submission 21:46:08 +1 21:46:08 Wip: should be a requirement to pass the test suite as part of DID method registry submission? 21:46:08 q+ 21:46:10 q+ 21:46:16 ack JoeAndrieu 21:46:22 q+ 21:46:46 JoeAndrieu: we have talked about this. I think it is a really good idea. there is a burden on the editors, but if it is self-reported, and what we accept, maybe it reduces that burden. I don't know why we would put a DID method in a registry if it is not conformant. 21:46:50 ack TallTed 21:46:54 ChristopherA: which level of conformance? 21:47:21 q+ benjamin 21:47:25 q+ to speak to https://w3c-ccg.github.io/did-key-test-suite/#conformance (after Benjamin goes) 21:47:28 TallTed: we have talked about this before. it is a substantial burden on the editors. we do have a new group of editors who are maintaining the original registry. I am not on that team (for good reason). It is a substantial burden of time. 21:47:43 q+ 21:47:48 q- benjamin 21:48:11 ... getting the information that is requested is like pulling teeth. I don't feel like the burden is worth it. sometimes automatic tooling can help generate results. this could be a substantial burden as well. 21:48:12 q+ 21:48:13 ack ChristopherA 21:49:21 ChristopherA: I am OK with some kind of field in the method section of the registry that someone can self-report. I do not believe it should be a requirement. I concur with Ted that it's a real burden on the approving team. It has downstream complications. 21:50:02 ... I would like to see a list of parties that conform to resolution. DID resolver conformance is not required. using a resolver or the API does not prohibit your use of a DID or DID Document. 21:50:02 ack manu_ 21:50:02 manu_, you wanted to speak to https://w3c-ccg.github.io/did-key-test-suite/#conformance (after Benjamin goes) 21:50:12 q+ to speak to https://w3c-ccg.github.io/did-key-test-suite/#conformance (after Benjamin goes) 21:50:14 q- 21:50:15 q+ 21:50:25 ack bigbluehat 21:50:47 https://github.com/w3c/vc-test-suite-implementations 21:51:30 bigbluehat: how the test suite is used is a great conversation which we should come back to. the W3C test suites are testing the spec's statements. they do that by testing implementations, but that is a secondary concern. that doesn't mean we can't turn them into something better. it is better to have an underpinning CG to maintain the suites long term. 21:52:16 ... the VCWG/CCG test suites, parallel to what we have here, do specification testing (MUST statements). the data model suite is up to date. shows all MUST statements, a link to the spec, and who passed. there is also an interop grid, where the suite was implemented through a minimal VC API. 21:52:59 ... there are live tests that run every Sunday, which is beyond the W3C requirements, but does mean we have up-to-date stats on how everyone is doing. the interop tests have gotten less attention than the spec tests. these move VCs in and out of issuers and verifiers to promote cross-consumption. 21:53:18 https://canivc.com/reports/di-ed25519signature2020-test-suite/suites/data-integrity-issuer/ 21:53:36 ... not sure how much will be applicable here. but this does go beyond a JSON-schema evaluation of the data model. this is something we built at Digital Bazaar to aggregate results to understand what implementers have covered. 21:55:19 ... there is a spider chart per implementation for issuers and verifiers. we can see across multiple specs how one implementation is doing. there are 15 or so implementations listed here. an aggregate of VCWG and CCG tests in one place. a useful tool to understand the ecosystem. 21:55:38 q+ to note that it's important to track *implementations*, not *companies* 21:55:48 ChristopherA: what does the dark blue mean? 21:56:07 bigbluehat: that it is unimplemented. you have to opt-in to the test. see it at https://canivc.com/. 21:56:33 https://w3c-ccg.github.io/did-key-test-suite/#conformance 21:56:41 yangsamy has joined #did 21:56:51 ... question for this WG ... how dynamic do we want the tests to be? there is a test suite that is semi-dynamic for did key. if there is a known way to do resolution we can test conformance more often. 21:57:40 q? 21:57:41 ... we have integration tools for mocha-js, for ocaps/zcaps. there are 2-3 community implementations in js, python, rust. can work even if you have static tests behind an API server 21:58:37 q- 21:58:38 ... we are working on surfacing reporting better so that you know what went wrong. this is beyond what the W3C requires. but more implementations are better! 21:58:55 q- 21:59:16 ack manu_ 21:59:25 ack TallTed 21:59:27 TallTed, you wanted to note that it's important to track *implementations*, not *companies* 21:59:36 q+ 21:59:55 ack bigbluehat 21:59:58 TallTed: these are all company names, which is great. but also problematic. companies may have different implementations. it can have the company name but should also have the implementation name. 22:00:23 bigbluehat: there is a PR called 'implementation details' that I could use your help with, Ted, which adds additional information 22:00:48 ... there is also no link to the implementation. there should be a link to open source implementations so the community can use it. haven't had time to remodel it yet. 22:01:20 q+ 22:01:43 q+ 22:01:47 q- 22:02:08 Wip: how does this VC example apply to DIDs and DID Resolution? each method will implement resolution in their own way. we want to test the results of resolution. are we testing interop across DID methods? 22:02:19 ack bigbluehat 22:02:20 ... it would be great to get something similar for DIDs 22:02:33 q+ 22:02:54 scribe+ 22:03:29 bigbluehat: one of the things we kicked around was using Docker containers. you can implement behind that container. resolution methods could hide implementations ... the container could do the resolution, which would be more dynamic than committing DIDs one time. we wouldn't have to implement resolvers for each method. 22:03:34 q+ 22:03:34 ack decentralgabe 22:03:35 q+ 22:03:45 q+ to suggest self attesting... clients to resolvers 22:03:53 decentralgabe: Wondering if we could use the universal resolver to do this, it has a lot of docker containers for drivers for many methods. 22:03:54 ack markus_sabadello 22:04:41 markus_sabadello: yes, the universal resolver is at DIF. there is a docker container that exposes a HTTP endpoint for each method. each can be run locally and tested using this HTTP interface. it should be included in the testing. I would also argue that it is just one project/implementation. 22:04:45 q+ to note that there are probably two test suites here? 22:05:15 ... even though the universal resolver is well known it should be treated as just one implementation. I do like the Docker approach. it illustrates that you do not need to rely on a remote resolver service. we do not need to require DID methods have a HTTPS endpoint. 22:06:02 ... local Docker images, for some methods, need heavy infra (like blockchains ... which you don't want to start locally), which raises a question of how you can trust a result. for example running a BTC node to test did:btcr. there are pros/cons. 22:06:03 ack kaz 22:06:27 ack JoeAndrieu 22:06:27 JoeAndrieu, you wanted to suggest self attesting... clients to resolvers 22:06:34 kaz: there is a possibility that multiple vendors can use the same codebase. we need to be able to see the codebase as well. 22:07:07 ack manu_ 22:07:07 manu_, you wanted to note that there are probably two test suites here? 22:07:07 JoeAndrieu: people writing clients will be motivated to test which resolvers they interoperate with. there is also some client software which we need to test. e.g. is a wallet using the resolver spec correctly? 22:07:49 manu_: there are at least 2 classes of test suites here. 1 - it has to test the resolution interface (the resolver, parameters, MUST statements). 2 - the automation of DID methods and whether they're conformant to DID Core is another set of tests 22:08:13 ... we want to replace the current test suite that we have. it is static but does not guarantee continuous conformance. 22:08:33 q+ 22:08:37 q+ 22:08:38 ... unfortunately these two test suites may be different. we are definitely testing two different things between core and resolution specifications. it is a significant amount of development effort. 22:08:45 ... we will be writing two brand new test suites 22:08:46 ack bigbluehat 22:09:02 q+ 22:09:05 bigbluehat: does anybody know if we add in resolution to the current test suite, even using static files? 22:09:09 ack manu_ 22:09:13 q+ to say is there anything in did-core that isn't just syntax or the DID and data model of the did document? 22:09:40 q+ 22:09:44 manu_: I think so ... from what I remember our current test suite is duct-taped together a bit. it needs some TLC. it just reads a DID Document from disk. instead it should be read from network/docker container. 22:09:46 ack Wip 22:10:36 ack JoeAndrieu 22:10:36 JoeAndrieu, you wanted to say is there anything in did-core that isn't just syntax or the DID and data model of the did document? 22:10:36 Wip: similar to this, we could apply a suite of tests to a DID method for it and its resolver. is that testing conformance to the resolution spec across methods ... maybe that is the same implementation of resolution 22:11:08 JoeAndrieu: re:Manu, are there tests that you anticipate that are not about syntax/the data model? I think there is a nice separation between the data model and resolution 22:11:10 manu_: exactly right 22:11:14 ack shigeya 22:12:04 shigeya: as an implementer of the original DID core tests ... it is a duct-taped thing. the restriction at the time was that the tests should be very static, not dynamic ... that was the assumption. the good news is that is very stable. of course we can plug in something dynamic. 22:12:19 once we have some "discovery" mechanism whereby a particular resolver implementation can specify which DID methods it can resolve, we can build a matrix where there is commonality to compare results when resolving the same DID URLs, perhaps even without having any particular restrictions/requirements on which DID methods to use/include in the test suite. 22:12:35 ... my observation is that the DID Core part of the test still requires static ... but also requires something dynamic like resolution. my gut says that the tests should be separated. 22:12:37 (nods in the room) 22:12:45 q? 22:12:50 +1 to separation 22:13:11 q+ 22:13:16 ack bigbluehat 22:13:18 Wip: maybe we should set up a CCG item to set up these flows? to manage the lifecycle past this group. Should this be on our roadmap? 22:13:41 Wonsuk has joined #did 22:13:47 bigbluehat: the WG is the only group that can officially sanction the test suite. it has to be delivered by the WG members according to the patent policy. then the CCG members can help out. 22:14:16 q+ 22:14:50 .. make sure that it passes as we go to TR. 2+ impls have to pass each statement for those statements to stay in the spec. after that the CG can take it over and do what they want. the report that went up with the spec has to be stable. there are two modes of existence. depends on the WG/CG combo within the W3C. there are also web platform tests that run all the time. 22:15:03 ack burn 22:15:17 q+ 22:15:46 burn: who owns the testing piece now? (which individuals?) Benjamin, do you have a recommendation of which steps we should take in which order based on the conversation we've had so we can assign people. 22:15:47 ack bigbluehat 22:16:50 bigbluehat: great we're having this conversation now as opposed to much later. I would recommend the group not lean heavily on a single provider. The VCWG has been a lonely, singular job. But it is under-reviewed. People don't care until they don't pass. 22:17:10 ... there have been lots of false-positives. It would be great to have multiple people involved. 22:17:11 q+ 22:18:13 ... example of the test suite -- https://w3c.github.io/vc-data-model-2.0-test-suite/ 22:18:53 q+ 22:18:56 JennieM has joined #did 22:19:09 ... there is a way in respec to link from the spec back to the test suite. we can explore using web annotations to link back to the tested statements. 22:19:48 ... it should be multi-constituent. there are key decisions on how we do resolution (how dynamic/static). could be a good topic for special topic calls. 22:19:57 ack decentralgabe 22:20:19 q+ 22:20:27 q+ 22:20:28 ack ChristopherA 22:20:30 decentralgabe: Editors should be responsible for contributing to the test suite. It's a risk to only have one compmany maintain them. My intuition is that Editors have an implementation that they're working on and part of that duty should be to contribute to the test suit. 22:20:37 s/suit./suite./ 22:21:23 ChristopherA: there are tests for core and resolution. we were talking yesterday that there are many interesting edges on resolution. we care most about the simpler cases where there isn't a test of rotation ... let's make sure we have the simpler set solid by the time we close. 22:21:32 q+ to talk about history, champion, and QA 22:21:55 ... the more complex tests are out of the scope. maybe there are a few lines of what we deliver with respect to the test suites. there is core, a subset of resolution, and then also supersets. 22:21:55 ack burn 22:21:55 burn, you wanted to talk about history, champion, and QA 22:22:53 burn: thanks Benjamin. what you've presented looks really great and what I've seen in other WGs that have been successful. there is an opportunity here ... I have seen businesses come out of this (testing opportunity). each group has a champion. it is great if we have multiple champions. 22:23:19 ack bigbluehat 22:23:22 ... please engage! I have seen a lot of success when quality assurance people in your organization participate. they are used to testing anyway. they are ideal for being sticklers for what's wrong/right. 22:23:23 q+ 22:24:17 bigbluehat: it's good if editors are not responsible. they are the ones that wrote it and may have a harder time spotting issuers. good to have others eyes on it! agree on having QA people. 22:24:19 ack Wip 22:24:22 +1 Benjamin great point 22:24:32 Kyle has left #did 22:25:14 q+ to say that someone sets up the infrastructure that everyone else uses 22:25:19 zakim, close the queue 22:25:19 ok, burn, the speaker queue is closed 22:25:28 Wip: it feels like the DID Core stuff is fairly ok. we can update the test cases, but what we have is OK. we can make some updates. for DID resolution ... we need updates. What tests are we going to create? Those test cases should be applicable to every resolver. 22:26:03 ack burn 22:26:03 burn, you wanted to say that someone sets up the infrastructure that everyone else uses 22:26:08 ... many can use the universal resolver. To Christopher's point--many DIDs will be more complex to resolve (multiple updates, rotations). We may have to categorize the types of DIDs people should be submitting and expectations of what we should be testing. 22:26:34 q+ 22:26:47 burn: everywhere I've seen this successful, there has been someone with setting up infrastructure. at some point that will need to happen. usually not by assigning, but by volunteering. that could be you and that would be positive. opening the queue for final comments. 22:26:49 zakim, open the queue 22:26:49 ok, burn, the speaker queue is open 22:27:04 Wip: Markus pointed to a link where we can start. do we need to start from scratch or can we iterate on that? 22:27:27 markus_sabadello: we can start with what we have. I will take it as a responsibility to check the current states. it needs some upgrades but not re-done from scratch. 22:28:03 burn: thank you all this is a good intro conversation for this serious topic 22:28:12 ... moving on to our next topic: CBOR/CBOR-LD representation 22:28:20 Topic: CBOR/CBOR-LD Representation 22:29:17 ChristopherA: there has been demand in the past for a CBOR-based document. it might be interesting ... CBOR is binary, can be very concise when you do it correctly. it is self-describing. wide variety of platform and language support. it is standardized at the IETF. 22:29:31 Kyle has joined #did 22:29:55 ... we have been working extensively at the IETF with the CBOR group about 'what it means to be deterministic' there are drafts for dCBOR, CDE, cbor-packed, cbor-ld, gordian envelope. 22:30:32 ... it is not a triple store by default. self describing is not the same as context. so what's required for this group? the charter says we have a plain CBOR representation as an 'other deliverable' we can choose to not do it. 22:31:19 ... the draft we have is problematic. I do not think anyone has implemented it. originally it had an IPFS CBOR tag but that was taken out. everything is either hex or base64. it is neither concise nor binary. it is very inefficient. there are no deployments as far as I know. 22:31:36 ... CBOR-LD has had maturity and growth in the last couple years. it is deployed in some specific areas related to linked data. 22:31:38 cc has joined #did 22:32:06 q? 22:32:29 manu_: [slides go into CBOR-LD] ... agree with what Christopher said about what we have on CBOR in here. doesn't feel like the right thing for us to do. A little on CBOR-LD - a generalized semantic compression mechanism. it will take a document like an LD document, compress that document into a CBOR representation 22:33:17 ... a CBOR document can be an LD document. you can apply CBOR-LD to it to compress it. ... what type of compression can we expect? we tried compressing a JSON-LD document in many ways (starting at ~1200 bytes). 22:33:19 q+ 22:34:04 "sc" stands for "semantic compression" on the CBOR-LD slides 22:34:06 ... the CBOR-LD compressed payload gets to about ~350 bytes from ~1200 bytes. and you can get smaller. it is a generalized semantic compression scheme. 22:35:00 ... most people use 'artisanal CBOR' and you could get a 10-20% improvement if you hand pick things. if you GZIP the output of CBOR-LD with semantic compression it actually gets larger. shows how efficient it is. 22:35:10 ... if you have questions ask Wes, he is working on the specification. 22:36:08 ... as an example we used it on a did:key document. it has 7 keys (ed25519) about 1kb in size. running it through standard CBOR-LD compression we can get it to 534 bytes. with GZIP it gets down to 129 bytes (lots of duplication in did:key). 22:36:20 ... the slide shows a CBOR diagnostic representation of the compression. 22:37:06 ... so, what would this group need to do? the pitch is not 'we should all use CBOR-LD' ... but we may want to use some form of CBOR. I know there are multiple people in the group that are doing CBOR things with DID Documents. they are good experiments to run and see the outcome. 22:37:36 ... the benefits of CBOR-LD is that is a generalized solution applied to DID Documents. there are other uses with disclosable DID Documents that can be compressed too. 22:37:40 q+ 22:38:24 ack markus_sabadello 22:38:25 ... if we wanted to do CBOR-LD the group would have to establish a media type for it like applicatoin/did+cbor-ld. CBOR-LD will be standardized at W3C and available for us to use. all this group has to do is say this is a media type for us to use. 22:38:34 q+ 22:39:16 q+ to speak to the goal of getting rid of the abstract data model 22:39:26 markus_sabadello: Manu, you said that the JSON-LD DID Document can be transformed, or the CBOR-LD doc is created from the JSON-LD doc. In theory we have an abstract data model...so we should not be converting JSON-LD to CBOR-LD, instead convert any conformant implementation to another. 22:39:37 q- later 22:39:44 ack ChristopherA 22:39:49 ... this could help us answer the open question on the abstract data model 22:40:04 ChristopherA: [to Manu] what language do you use for CBOR LD today? 22:40:21 ack JoeAndrieu 22:40:21 JoeAndrieu, you wanted to speak to the goal of getting rid of the abstract data model 22:40:22 manu_: right now it is JS. another company is working on a Java implementation. 22:40:40 Java CBOR-LD implementation https://github.com/filip26/iridium-cbor-ld 22:40:43 ack decentralgabe 22:40:55 JavaScript CBOR-LD implementation https://github.com/digitalbazaar/cborld 22:41:12 JoeAndrieu: I wasn't sure where Markus was going but I like how we finished. This is a good argument for how an abstract data model is working against us. 22:41:27 Rust CBOR-LD implementation https://github.com/spruceid/cbor-ld 22:41:30 decentralgabe: can we transform the note to support multiple CBOR representations? 22:41:36 decentralgabe: I wanted to support using CBOR to encode DID Documents. We shouldn't pick one, we should provide options in the CBOR document. 22:41:41 wes-smith has joined #did 22:43:00 ChristopherA: if we want to do so, yes, we do have some decisions to make ... I believe there is a Java not a TS impl, and a Ruby one. it has numeric reduction and unicode text (NFC). the advantage of numeric reduction is to remove concerns around numbering differences ... the same number will always be the same number based on ANSI math 22:43:06 q? 22:43:17 ... if you want to do math larger than what ANSI supports we do not support it 22:43:56 q+ to say you can't "use the abstract data model" for CBOR. CBOR uses a JSON data model. Which is not the abstract data model. 22:44:11 ... there are other formats that could be an IETF standard. there is a packed compression format. there is one with tags. and what Gordian envelopes does. The other option is to create a profile using Gordian Envelopes, which is already a dCBOR triple store. 22:45:00 ... it already has subject/predicate things and supports compression. it also adds radical new things like the ability to elide. but you don't have to do it. you can do just the abstract data model and Gordian Envelope. 22:45:15 ... I think we should do the LD one but if there is interest/demand in a non-LD model we can do it. 22:45:17 ack JoeAndrieu 22:45:17 JoeAndrieu, you wanted to say you can't "use the abstract data model" for CBOR. CBOR uses a JSON data model. Which is not the abstract data model. 22:45:38 q+ to note "it doesn't have to be LD?" 22:45:45 ack manu_ 22:45:45 manu_, you wanted to note "it doesn't have to be LD?" 22:45:48 JoeAndrieu: I do not think we can do it, Chris. The abstract data model is in JSON and CBOR uses a different data model. CBOR can work with any JSON. 22:46:30 manu_: just a note on CBOR-LD and the type of data it has. generally DID Documents are simple things. they store keys and some other information ... but in general the fields you have are limited. storing more is a bad idea. 22:46:54 ... we could create an artisanal format for the most basic things. it would be specialized but not hard to implement. 22:47:47 ... CBOR-LD is meant to be generalized for any JSON-LD document. but what about plain JSON stuff? you can use CBOR-LD. even for a JSON based document -> CBOR you can inject a context in and proceed with the compression. 22:48:11 ... it is possible to compress plain JSON documents using CBOR-LD before compression and reversing the process during decompression. a bit of a hack, but a way to do it. 22:48:36 ... doing the Linked Data stuff is important for extensions. but we have a core that will have massive compression but does not necessarily need linked data 22:48:42 +1 to artisanal CBOR 22:49:52 ChristopherA: so what does Gordian Envelope add to this? we already have a claim. you can put context information on any attribute. it already has an extension mechanism. you can add proprietary extension too. it is similar to other formats with salts, but has a merkle tree where each predicate set can have a salt. 22:50:17 ... the salt can be a small value (4 bytes) does not need to be 256 byte salts. this is better than the SD model with a single salt. you can salt individual items. 22:50:20 also +1 to supporting both CBOR-LD and supporting development of an artisanal version that works with WG defined properties 22:50:38 q+ to ask about did:dht and what could be used there when we have larger key sizes and service descriptions. 22:50:48 ... there is value longer term in being able to offer elision. only reveal what the user/app needs. this could easily be something for DID 2.0 to support elision 22:50:48 ack manu_ 22:50:48 manu_, you wanted to ask about did:dht and what could be used there when we have larger key sizes and service descriptions. 22:51:01 q+ 22:51:43 manu_: for did:dht there is a limit on DID Document sizes (1000 bytes) ... there is concern when your DID Document grows past this. if we are using BBS keys or post quantum keys you can be much larger than 1KB. we could use elision for this! 22:52:06 ... Gabe, thoughts on what happens when we have larger keys or post-quantum keys? Has there been thought about this? 22:52:06 ack decentralgabe 22:52:52 decentralgabe: Yes, we have a couple of thoughts today -- might be in spec -- chaining did:dhts together, chaining secondary documents together... or point to external resource that contains authenticated documented. Less familiar with elision mechanisms, good to explore that idea as well. 22:53:05 dezell has joined #did 22:53:55 manu_: I do not think I heard anyone defending our current CBOR document. Maybe we should update it and put the current thoughts of the group into it. There is support for supporting multiple types of conversion to CBOR. some support for artisanal CBOR. defining that will get us well down the road. similar support for CBOR-LD. 22:53:58 Q+ 22:54:11 wes-smith has joined #did 22:54:22 ack ChristopherA 22:54:30 ... we would probably need a mechanism to signal which CBOR scheme you are using. it is a bit in the CBOR payload. we should explore Gordian Envelope and explore other elision mechanisms. 22:55:19 ChristopherA: we as W3C are very web oriented. we don't concern ourselves as much with difficulties of doing this in embedded hardware. I have been working with NFC cards...using a constrained subset of Java. With CBOR and embedded systems/chips, it's much easier to deal with this representation. 22:55:44 ... as our usage expands to embedded hardware or IoT devices I would like to see that community speak up. Very small sensors could have a DID. 22:55:50 burn: any other comments? 22:55:51 +1 to the use cases that could be expanded to the embedded system 22:56:11 +1 denkeni agreed. 22:56:12 ... thank you for a good session. we are about to go on our last break of the day. we will have some announcements at the very end. 22:56:48 ... back at :25 22:56:56 Kyle has left #did 22:57:12 We actually have hardware vendors in Taiwan investigating DID solutions 23:24:10 burn has joined #did 23:26:33 present+ 23:26:39 Wip has joined #did 23:26:48 present+ 23:27:20 Jay has joined #did 23:30:10 decentra_ has joined #did 23:30:29 wes-smith has joined #did 23:30:34 manu_ has joined #did 23:31:00 JoeAndrieu has joined #did 23:31:09 Topic: Minimum Criteria for DID Method Standardization at the W3C 23:31:57 present+ 23:32:00 ericaconnell has joined #did 23:32:11 present+ 23:32:15 smccown has joined #did 23:32:26 present+ 23:32:40 present+ 23:32:48 present+ 23:32:58 Zakim, who's here? 23:32:58 Present: denkeni, Wonsuk_Lee, TallTed, manu, manu_, burn, ChristopherA, markus_sabadello, dlehn, pchampin, decentralgabe, dmitriz, ericaconnell, JennieM, danpape, JoeAndrieu, 23:33:02 ... EricS, Geun-Hyung, Wip, decentra_, wes-smith, smccown 23:33:02 On IRC I see smccown, ericaconnell, JoeAndrieu, manu_, wes-smith, decentra_, Jay, Wip, burn, Geun-Hyung, bruno, bigbluehat, bkardell_, Zakim, dmitriz, markus_sabadello, kaz, 23:33:02 ... ChristopherA, dlehn, jets, dlongley, TallTed, RRSAgent, rhiaro, hyojin_, manu, denkeni, cwilso, jyasskin, hadleybeeman, shigeya, pchampin, cel, ivan 23:34:39 present+ 23:35:29 present+ 23:35:59 present+ 23:36:00 scribe+ 23:36:02 present+ 23:36:09 Topic: Brett Banfe on BSV 23:36:17 present+ 23:36:32 present+ 23:36:41 present+ 23:36:43 present+ 23:36:49 JennieM has joined #did 23:36:55 Brett Banfi: enjoyed the session. Hiring in our team to extract biz requirements that this group would be interested in implementing. would love advisors on that, reach out to me if interested. BSV Alliance. 23:37:03 Topic: Open Topics 23:37:05 Wip: remainder of session will be on open topics 23:37:13 Subtopic: Minimum Criteria for DID Method Standardization at the W3C (Manu) 23:37:19 present+ 23:37:42 manu: asking the group if theer aer any opionins on which did methods should be standardized at W3C (in another group). 23:38:00 danpape has joined #did 23:38:06 present+ 23:38:16 ... another group will be proposed tomorrow to do that. Need predferred criteria to meet for standardization. Think of this as antipatterns and patterns for what should go into W3c. 23:38:33 ... a blockchain based DID method would be hard to do heer because of some opposing member companies. 23:38:36 HaoYuan has joined #did 23:38:58 ... even if we proposed a well-done one, it would likely create formal objections. So maybe not best to try that here. 23:39:03 s/heer/here/ 23:39:04 ... just one example. 23:39:08 q? 23:39:14 KevinDean has joined #did 23:39:37 ... wrt a good place, did:web or did:dtw use web tech. 23:39:38 present+ 23:39:48 present+ 23:40:10 ... should have multiple implementations, well-vetted spec, broad deployment and production (ideally). what does the group think? 23:40:11 I still want do see did:onion as a decentralized did:web 23:40:21 ... criteria for being standardized here. 23:40:25 q+ 23:40:27 Q+ 23:40:32 ack KevinDean 23:40:33 q+ 23:40:41 present+ 23:41:52 ack ChristopherA 23:41:52 dezell has joined #did 23:41:53 KevinDean: 1. standardizing a did method with broad deployment. 2. idea of a quick start. interested in VCs at GS1. did:web was implemnteted knowing that for any production solution we needed soemthing better, but it was a quick sart. Ease of implementatnion important. 23:41:59 preent+ 23:42:04 present+ 23:42:04 q+ 23:42:25 ChristopherA: intrigude by antipattern comment. several people looking for human-readable names, for example, this is my interest area. 23:42:55 ack TallTed 23:42:55 ... doing a did:web their own way (ignorantly) 23:42:57 q+ to say independent verification of proofs without reliance on a central party 23:43:10 TallTed: this would be a good use of the rubric. 23:43:30 brent has joined #did 23:43:30 ... tick off the things that are w3c-like as important. Should be high on those scales, for example. 23:43:35 q? 23:43:54 ... don't think ease of implemeantint is in rubric, but that could still be important. 23:43:56 ack decentra_ 23:44:46 decentra_: agree with Ted. Is it a mistake to standardsize ones that are not fully decenttralized, etc. unless part of a set of DID methods that meet different use cases. For exampel,e did:key, did:web, did:tdw, 23:44:54 q+ to ask an impertinent question 23:44:57 ack JoeAndrieu 23:44:57 JoeAndrieu, you wanted to say independent verification of proofs without reliance on a central party 23:44:58 ... opening ourselves up to critique if we only standard one or two of these 23:45:24 JoeAndrieu: independently verifying proofs without relying on sep'rate authority would be important. 23:45:54 ... are we looking for criteria for the group, or for the world? uncomfortable setting up group that is curating this activity. 23:45:54 q+ to speak to "categories that might work" -- and who is using this criteria? Group to curate activity? 23:45:54 ack brent 23:45:55 brent, you wanted to ask an impertinent question 23:46:13 brent: are there many methods clamoring for this standardization? 23:46:27 ... doesn't seem to be an issue at the moment 23:46:28 ack manu_ 23:46:28 manu_, you wanted to speak to "categories that might work" -- and who is using this criteria? Group to curate activity? 23:47:12 manu_: if there is a new group just to stashalhie new metheds, w3C would likely object. If we don't cover all bases, group will get rejected. 23:47:30 ... an antipattern would be a w3c group tht blesses and anoints did methods. 23:47:40 ... we are the ones who will use this info. 23:47:56 ... if there is a formal objection on the charter, that's useful info. 23:48:18 q+ 23:48:23 ... brent's point is good. How many methods actually have agreement? only a handful 23:48:40 ... many showed up to a did method standardiation group meeting. 23:49:02 ... some are thinking they can get their method standardized despite no spec, no impl., etc. 23:49:04 Zakim, close the queue 23:49:04 ok, Wip, the speaker queue is closed 23:49:24 q+ to say roughly what the categories have been 23:49:32 ... we know there are certain did methods in production with no vetting, etc. nation states are lookinng for at least some vetting before using. 23:49:45 ... without official standardization they consder it a problem. 23:49:47 ack ChristopherA 23:50:19 ChristopherA: a challege here is that w3c has not been considered a friendly venue. Some went to IETF. would love to see Keri back here. 23:50:50 minimum criteria: one's we can actually agree to standardize 23:50:50 manu_: would really love input from this group on what would make goodh criteria to help folks know whether it's worth doing the work here. 23:50:57 q+ 23:51:05 ... if there is a better venue for some methods, definitiely go there 23:51:28 ... if you can think of a reason for a method not ot be done here, let us know. 23:51:44 Topic: Controller Property 23:51:54 When a controller property is present in a DID document, its value expresses one or more DIDs. Any verification methods contained in the DID documents for those DIDs SHOULD be accepted as authoritative, such that proofs that satisfy those verification methods are to be considered equivalent to proofs provided by the DID subject. 23:52:21 JoeAndrieu: ^ definition for controller property, likely without sufficient thought. Maybe I wrote it. 23:52:42 ... Manu agreed that this is not how anyone uses the property. 23:52:52 ... we should discuss and figure out what to use it for 23:53:02 ... manu, whaht do you think it should have been 23:53:08 q+ 23:53:22 s/whaht/what/ 23:53:26 manu_: we needed a way for the did document to express what other entity could make changse to it 23:53:35 Zakim, open the queue 23:53:36 ok, Wip, the speaker queue is open 23:53:38 ... controller for the DID document, authorized to update and make changes 23:53:49 ... language makes no sense today! 23:54:22 JoeAndrieu: property we discussed today can't be used for certain methods. 23:54:52 q+ to say that the current language, while hard to parse, does do what manu says -- provided that the VDR supports updates via proofs created by the controller 23:54:55 ... there's a pattern in did:key where the did is put into the controller property, indicating it controls itself. But that does'nt match th edefinition either 23:55:01 ... not sure how to proeed 23:55:14 ack ivan 23:55:32 ivan: even more complex, that property is now specified in the VCWG, right? 23:55:49 s/th edefinition/the definition/ 23:55:50 ... in a way, it's in the other WG that we have to define it's meaning in a general way that would be usalbe for DID 23:55:56 ... this discussion is moot 23:55:59 ack dlongley 23:56:00 q+ 23:56:01 dlongley, you wanted to say that the current language, while hard to parse, does do what manu says -- provided that the VDR supports updates via proofs created by the controller 23:56:24 dlongley: this text is hard to read but does say what Manu says he wants, assuming VDHR accepts proofs 23:56:34 ... nothing says VDR has to accept proofs. 23:57:09 ... But if it does, it should accept ones that are created by the controller of the identifier of the documeunt. 23:57:21 q+ to say the language is more transclusion than alternate updaters 23:57:54 ... this language lets you do what we want, but if the VDR allows you to do proofs this way, it should allow the one listed in the controller property to do the updates. 23:58:08 ... we need to leave room for specialized implementations specific to a VDR. 23:58:21 ack brent 23:58:37 brent: this is not moot, has not come up in VCWG 23:59:06 ... controller property as written allows control of the DID (as if you were the subject). If we want to mae thath clear, we should 23:59:10 ack JoeAndrieu 23:59:10 JoeAndrieu, you wanted to say the language is more transclusion than alternate updaters 23:59:26 JoeAndrieu: the subject is not involved in control of the document. 23:59:35 David = David Chadwick from the VCWG. 00:00:11 ... the language that confused Dave dosn't do what he thought. Currently meant to do a transclusion, that verification sholud be treated as if in the document. 00:00:11 q+ 00:00:14 ... probably bad security idea. 00:00:16 ack brent 00:00:36 q+ 00:00:38 brent: (missed) 00:00:40 q+ to say i don't think it's a bad security idea nor do i think a VDR *has* to allow updates using proofs, but if it does allow proofs that way... 00:00:45 q- 00:00:48 ack manu_ 00:00:53 ack dlongley 00:00:53 dlongley, you wanted to say i don't think it's a bad security idea nor do i think a VDR *has* to allow updates using proofs, but if it does allow proofs that way... 00:01:25 q+ 00:01:30 dlongley: not a bad security idea. a vdr does not have to allow updates using proofs, but if it does, bad not to allow the controller of a did to update the document. 00:01:48 brent: there is no guarantee that the proof method in the controller's did, which may be a completely different method, is even one that the VDR can understand. 00:01:55 q+ to note there are lots of options here, and that can be bad. 00:02:21 ack JoeAndrieu 00:02:24 ... if you can create profos on behalf of the did, it's an antipattern to not allow that controller to do the updates 00:03:14 ack manu_ 00:03:14 manu_, you wanted to note there are lots of options here, and that can be bad. 00:03:14 JoeAndrieu: still talking past each other. ew would want VDR to rpsect allowed to update. but if signed by did A and ... (joe, fill in) 00:03:32 q+ to speak to btc1 and resolution 00:03:39 s/ew/we/ 00:03:44 manu_: we have alot of optionality we never planned for. the subject can update the did doc. 00:03:46 s/rpsect/respect/ 00:03:49 JoeAndrieu: disagree 00:04:38 manu_: sometimes the subject can update, sometimes not. controller field gives someone control over did document. dislke transclusion term. it only says who can update it. 00:05:01 JoeAndrieu: we are talking about an auth method, going to the other did method and using that other proof 00:05:16 q? 00:05:18 manu_: up to vdr to determine how to 00:05:31 q+ 00:05:39 brent has joined #did 00:05:42 q+ 00:06:31 ... use thaht controller field. in our impl. the VDR it lists who can update the doc. he would have to generate proof that has one of his auth keys. he is the one who creates an update, adds a proof, sendis to VDR, which confirms that his auth keys were used to create the proof, so valid. 00:06:37 present+ 00:06:37 ack Wip 00:06:37 Wip, you wanted to speak to btc1 and resolution 00:07:16 Wip: in BTC1, using controller property to invoke a proof to update the did. 00:07:36 ... resolution - how does it handle controller properties. Maybe that needs to be addressed. 00:07:42 ack KevinDean 00:07:58 Zakim, close the queue 00:07:58 ok, Wip, the speaker queue is closed 00:08:10 -1 "update to the VDR what to do with the controller property" ... 00:08:21 i think manu was saying that how an update is performed to a VDR is up to a VDR 00:08:43 KevinDean: idea that it should be up to teh VDR to decide what te od with controller property is concerning. 'controller' to him means that it hs control of the did itself, not an ability to make st'tements about the did itsellf. 00:09:08 ... could have a did for each intety in company, but only one controller. Only the controller can update. 00:09:30 ... saying a controller means a verifier has to compare keys in a VC extends the definition too far. 00:09:35 we might want to limit this based on proof purpose. 00:09:43 ack JoeAndrieu 00:09:45 ... maybe need a new attribute that someone can make a statmeent on my behlaf. 00:10:24 +1 the language is in the spec is weird! but is kinda right in the abstract but not really right concretely 00:10:28 JoeAndrieu: dave and manu were explaining how they thought the properyt worked. I think the language in the spec has a different notion. (transclusion). And that's a security isseu and I want to get rid of it. 00:10:46 ... more work to d. 00:10:46 q+ 00:11:05 ... we have an issue on it, someone needs to try to write new laguage. I will in the issue. 00:11:12 ... will try to move in your direction. 00:11:30 Topic: Primary on Decentralization 00:11:51 s\Primary\Primer\ 00:12:08 decentra_: the rubric has a lot of good content, but the structure doesn' help 00:12:14 s/Pimary/Primer/ 00:12:15 +1 yes, it got muddied as we went beyond decentralization 00:12:18 ... maybe would be good to create a new doc 00:12:42 ... godo to define things that indicate decentralization, also that there are times when centralization is useful. 00:12:53 brent has joined #did 00:13:05 s/godo/good/ 00:13:13 ... ex: establish id indepentetn of anything else. an identifier in a centralized inisttition might not be good but needed 00:13:26 ... many methods is a facet of decentralization 00:13:49 ... custodial or centralized usage we can explain is not good 00:13:57 q? 00:13:58 q+ 00:14:00 ... any interest in this kind of thing? 00:14:05 ack manu_ 00:14:10 Zakim, open the queue 00:14:10 ok, Wip, the speaker queue is open 00:14:13 q+ for decentralization definition and solution for what 00:14:20 manu_: yes. Would be good to summarize our lernings around d14n 00:14:27 q+ to +1 00:14:50 +1 to also talk about decentralization as a spectrum 00:15:24 (in addition to having many axes) 00:15:30 ... there are many axes here. it can help W3C to talk about d14n themselves (say the TAG), and can have a section in the did core spec that mentions things you should know about d14n. So we can pooint to that section. 00:15:32 (or dimensions) 00:15:40 ... this is something our group could contribute to the larger w3c 00:15:52 ack denkeni 00:15:52 denkeni, you wanted to discuss decentralization definition and solution for what 00:16:03 also, interesting read about decentralization: https://www.rfc-editor.org/rfc/rfc9518.html 00:16:52 ^ thanks, was trying to remember that RFC... we should reference that and ensure not to repeat. 00:17:38 denkeni: we have projects (digital wallet) where they talk about d14n often. when people think about their API they think it is too centralized. Govt issues VC and hosts verifictation service. People think this is a probelm. Also, some info has been put on blockchain, but not the VC or DID. Only the trust registry of the issuers. But poeple 00:17:39 think it's not decentralized. 00:17:52 Dingwei has joined #did 00:18:19 wes-smith has joined #did 00:18:25 ... many ways to address single point of failure. 00:18:26 ack JoeAndrieu 00:18:26 JoeAndrieu, you wanted to +1 00:18:46 JoeAndrieu: we need some sort of primer. rubric good, end narrative insufficient. 00:18:51 +1 to referencing the RFC 00:19:09 ... in this doc we should celebrate that the web and DNS are decentralized in a nice way. 00:19:31 q? 00:19:32 ... there were some central naming authorities established, we are trying to solve some of the final issues here. 00:19:40 q+ 00:19:46 ack decentra_ 00:20:03 decentra_: sounds lie ther is interest. I will put together some text and the group can decide where it belongs. Thanks. 00:20:26 Topic: Future proofing to support MPC based multisig, in particular FROST. 00:21:11 ChristopherA: We have many assumptions based on 40 year old crypto tech. If you keep your private key safe you can safely use your puiblic key. 00:21:40 ... property law says internet access is rented to you. Only if you lock with private key do you have ownership. 00:22:22 ... but that's not true anymore. new crypto challenges these assumptions. 00:22:49 ... for example. with distridbuted keygen, we can have only one device be honest 00:23:11 ... we can still trust the key despite most devices being dishonest 00:23:39 ... do we realyl need a hardware locked device to secure a key when cooperating entities can make something stronger?\ 00:23:39 s/distridbuted/distributed/ 00:24:02 s/realyl/really/ 00:24:27 ... your first identity is as a child. that's an edge. but now a public key can represen that edge. 00:24:44 ... advantages because we can say more complex things about relationships. 00:25:21 ... with FROST can have large networks where a public key could represent mulitple enitties that cooperated, but you can't tell 00:25:38 q+ 00:25:56 ... in some cases the math protects us 00:26:27 ... multiparty compuation. BBS is only a small subset of what is possibel. 00:27:03 ... merkle trees can be huge. but now there is a ZKP that is 72 bytes to represent a whole path of the tree. 00:27:16 ... we are assuming a public key is a single prty in a single node 00:27:31 ... better not to lock ourselves into that concept 00:27:38 ack Wip 00:27:40 q+ 00:28:03 Wip: want to be albe to support this new tech. maybe they can. 00:28:04 q+ to note that these are all useful things and I hope we're not preventing these use cases. 00:28:18 q+ to ask Chris for a reference to the ZKP merkle proof technique 00:28:28 ... eg did:ring can ???? 00:29:03 ... (comments about ring signauters already being possible) 00:29:10 s/????/There was work done to get DIDs to support ring signatures/ 00:29:18 ack manu_ 00:29:18 manu_, you wanted to note that these are all useful things and I hope we're not preventing these use cases. 00:29:37 manu: yes we want to support them. I don't think we prevent them toda. 00:29:39 https://developer.blockchaincommons.com/frost/ 00:30:02 +1 to not prevent new interesting primitives ... but also noting that it's hard when we don't know or understand them all -- and there is always another new one :) 00:30:04 ... need to use the words "proof", "verigficaion method", etc. 00:30:21 s/verigficaion/verification/ 00:30:23 ... we should be allowing all of this to work. MPC, multi-party keys, etc. 00:30:36 ... i think we support all of these options today, but am not sure of it. 00:30:50 q+ 00:30:51 ... does anyone know of something that is impos-ible to use today 00:31:09 ... eg some new zkevm thing that doess't fit into proof 00:31:30 ChristopherA: subjects become more complex, esp. when edges. 00:31:38 ... no way to express that. 00:32:06 ... non-provability of voting one way or another. but sometimes you waunt accountability. 00:32:19 ack JoeAndrieu 00:32:19 JoeAndrieu, you wanted to ask Chris for a reference to the ZKP merkle proof technique 00:32:19 ... what if it's multiple parties? 00:32:46 q+ 00:32:46 JoeAndrieu: do you have a reference for the zkp merkle proof? 00:32:51 ack ivan 00:33:12 q- 00:33:54 ivan: when you refer to relationships as an entity, this is exactly what RDF 1.2 will have. A link has its own identity. People working on how to reflect this in syntax, but that issue does have a path for us. 00:33:56 q? 00:34:28 ChristopherA: also object capabilities. the issuer has the choice to accept the keys. 00:34:47 ... or never requires talking with original issuer to verify. 00:35:12 ... more papers at blockchaincommons.com/frost 00:35:33 ... these libraries are becoming more mature and numerous, closer to deployability. 00:35:42 ... listen to the videos and transcripts there. 00:35:50 q+ 00:35:57 ack Wip 00:36:33 Wip: with a schnorr key there is no way to know 1 of 1, 3 of 1, etc. I can use the key but don't know how many keys secure it (for good or ill) 00:36:47 ... this can be useful, of course. 00:36:47 q? 00:37:02 scribe+ 00:38:21 burn: I enjoyed dinner last night, it was good. We should talk about repaying for dinner last night. Some paid out of the kindness of their hearts, they need to be repaid. If you had dinner last night, and you don't know who paid for you, you need to speak with some folks. 00:39:28 burn: Please reimburse them. 00:39:48 burn: It's traditional to not have regular meeting after this week. It's a tiring week, so no meetings next week. 00:40:22 burn: What do we want to do for a F2F meeting next year? You get to stay however many days you want. 00:40:49 burn: We can do that, rough idea of who thinks it might be valuable for such a meeting? 00:41:02 danpape: In a year? 00:41:20 burn: More like 6 months. 00:41:43 ChristopherA: I know budgets are difficult now, travel is difficult, especially overseas. 00:42:24 JoeAndrieu: There is a sample bias, those that could make it are here. 00:42:29 ivan: Next TPAC is in Japan. 00:42:41 burn: Next logical way to have this is in Europe. 00:43:07 burn: Reason we're asking now is that you need to plan in advance -- cannot wait until 2 months before. 00:43:13 burn: Thanks for the input. 00:43:17 s/is in Japan/may be in Japan/ 00:43:22 thanks everyone! 00:43:27 decentra_: Thanks for coming! 00:43:35 Everyone thanks the Chairs!!! 00:43:41 rrsagent, draft minutes 00:43:42 I have made the request to generate https://www.w3.org/2024/09/24-did-minutes.html manu_ 01:22:23 Jay has joined #did 01:44:50 Jay has joined #did