Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add did:tdw, did:keys, did:svc, and did:proof plus DID Categories (13x) (Trusted Digital Web / Web 7.0). Remove bluetoque*.json (4x) #603

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

mwherman2000
Copy link
Contributor

----- DID METHOD REGISTRATION FORM: DELETE EVERYTHING ABOVE THIS LINE ------

DID Method Registration

As a DID method registrant, I have ensured that my DID method registration complies with the following statements:

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Nov 27, 2024

In his last Zoom call, @swcurran and I agreed that, to avoid confusion for the next several months, Web 7.0 Ultraweb/Trusted Digital Web (TDW) would postpone using did:tdw until Dec. 1, 2025.

Reference: Nov. 21, 2024 DIF Call: Timecode 20:00 in https://us02web.zoom.us/rec/share/UsNpfqags9z3oprz-DbXQZQX-xPEnJlBZhTn8AWfY-35hNdFkBk9QJQfVKXmU867.mbd57z9owlBoP-oi

UPDATE: Related, I've proposed a future solution to the "attestation of unique DID Method names" problem here: #597

@mwherman2000 mwherman2000 changed the title Add did:tdw (Trusted Digital Web / Web 7.0) Add did:tdw, did:keys, did:svc, and did:proof (Trusted Digital Web / Web 7.0) Dec 10, 2024
…istory Mathematics Nature People Philosophy Religion Society Technology
@mwherman2000 mwherman2000 changed the title Add did:tdw, did:keys, did:svc, and did:proof (Trusted Digital Web / Web 7.0) Add did:tdw, did:keys, did:svc, and did:proof plus DID Categories (13x) (Trusted Digital Web / Web 7.0). Remove bluetoque*.json (4x) Dec 11, 2024
Copy link
Contributor

@peacekeeper peacekeeper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mwherman2000 Apart from the fact that (at the moment) your specification links return a 404 error, I don't think doing this is a good idea. DID methods are meant to distinguish between different technical approaches to how DID syntax and DID operations work. Defining a new DID method only makes sense if there is a new technical way of implementing the abstract DID operations.

DID methods are NOT meant to be used to identify certain types or classes of subjects. This can be done in DID documents or (better) in Verifiable Credentials or other places.

-1 to this PR.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 11, 2024

your specification links return a 404 error

Copy and paste error. Fixed. Thank you.

DID methods are NOT meant to be used to identify certain types or classes of subjects. This can be done in DID documents or (better) in Verifiable Credentials or other places.

@peacekeeper Can you provide a specific reference or link for your above assertion?

DID Methods are a classification or naming convention for grouping and naming related subjects together as flat collections or as hierarchical-structured collections:

did:svc:1234
did:svc:dns:5678
did:svc:authentication:basic:abcdefg

[DID CORE] A DID refers to any subject (e.g., a person, organization, thing, data model, abstract entity, etc.) as determined by the controller of the DID.

Decentralized identifiers (DIDs) are a new type of identifier that enables verifiable, decentralized digital identity. A DID refers to any subject (e.g., a person, organization, thing, data model, abstract entity, etc.) as determined by the controller of the DID. In contrast to typical, federated identifiers, DIDs have been designed so that they may be decoupled from centralized registries, identity providers, and certificate authorities

[DID CORE] Anything can be a DID subject: person, group, organization, physical thing, digital thing, logical thing, etc.

DID subject
The entity identified by a DID and described by a DID document. Anything can be a DID subject: person, group, organization, physical thing, digital thing, logical thing, etc.

I believe it is outside the pervue of the W3C to mandate how software architects/developers can or should use DID Methods from the perspective of being a naming convention for every little thing (ELT) on the planet. This is established in the opening paragraphs of the [DID CORE] (see above).

@peacekeeper
Copy link
Contributor

Anything can be a DID subject

Yes, but this doesn't mean that DID method names should be used to identify certain types or classes of subjects. I'm not aware of any DID method today which does this.

DID Methods are a classification or naming convention for grouping and naming related subjects together

No they are not.

Can you provide a specific reference or link

https://www.w3.org/TR/did-core/#methods

A DID method defines how implementers can realize the features described by this specification.

In addition to defining a specific DID scheme, a DID method specification also defines the mechanisms for creating, resolving, updating, and deactivating DIDs and DID documents using a specific type of verifiable data registry.

https://www.w3.org/TR/did-extensions/#the-registration-process

Any method name SHOULD avoid generic terms such as "mymethod" or "registry".

@peacekeeper
Copy link
Contributor

This approach would also violate rule 1 in https://www.w3.org/TR/did-core/#method-syntax:

A DID method specification MUST define exactly one method-specific DID scheme that is identified by exactly one method name

In my opinion this would still apply if e.g. the same document was copied&pasted multiple times, and if there was no technical difference between the copies.

@peacekeeper
Copy link
Contributor

Also, it's not clear to me what the verifiable data registry would be in this case? The specification seems to show abstract API interfaces that can be called, but there is no information about how the DID is created/resolved/etc. in the verifiable data registry?

@mwherman2000
Copy link
Contributor Author

@peacekeeper There needs to be provision and protection for public DID Method names as well as internal/private DID Method names.

svc, keys, and proof are internal DID Method names that need to be protected. did:object is the public facing DID Method name.

I guess I can create 3 stub specs that contain a single link to the common spec. Absurd as this sounds, here it comes...

@mwherman2000
Copy link
Contributor Author

@peacekeeper

this doesn't mean that DID method names should be used to identify certain types or classes of subjects

Again, an assertion with no justification/no backup Markus.

I'm not aware of any DID method today which does this.

This is irrelevant to the current discussion.

https://www.w3.org/TR/did-core/#methods

A DID method defines how implementers can realize the features described by this specification.

In addition to defining a specific DID scheme, a DID method specification also defines the mechanisms for creating, resolving, updating, and deactivating DIDs and DID documents using a specific type of verifiable data registry.

https://www.w3.org/TR/did-extensions/#the-registration-process

Any method name SHOULD avoid generic terms such as "mymethod" or "registry".

My DID Method registry applications meet all of the criteria.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 11, 2024

there is no information about how the DID is created/resolved/etc. in the verifiable data registry?

@peacekeeper Again, do you have a link where this requirement stated?

I have a large number of previously approved registrations and they all use the same text. The elaboration of DID Specifcations is being handled by the DIF did-methods working group. I look forward to seeing that that WG produces. These registrations are solely for the purpose of registration - that's all.

As an aside, all Web 7.0 Sharded DID Registry hosted methods are implemented the same way at both the logical architecture and physical deployment layers of the Web 7.0 decentralized operating system architecture. One single specification will be needed to describe these 2 layers - but this latter specification is not required for registration.

(Hopefully) lastly, the Web 7.0 Sharded DID Registry supports a DID CORE compliant data model - that's the most important requirement as one starts this journey.

@peacekeeper
Copy link
Contributor

Again, do you have a link where this requirement stated?

I already provided the relevant links and references in an earlier comment. Your specifications do NOT meet the requirements. Please see the section of DID Core that defines requirements for DID methods.

all Web 7.0 Sharded DID Registry hosted methods are implemented the same way at both the logical architecture and physical deployment layers

One single specification will be needed

In this case, I would really urge you to just register a single DID method. If you really want to use the identifier itself to identify specific classes or types of subjects - which I think is not a good idea - consider using the method-specific identifier for these sub-divisions, e.g.:

did:web7:religion:1234
did:web7:philosophy:1234
....

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 11, 2024

We've been designing the Web 7.0 DOS based on what we think is best based on several decades of experience working for some of the largest software organizations on the planet, actual app developer feedback, and living through the births and maturation of BSD Unix, AIX, Thoth, Port, Linux, every version of Windows, Groove, SharePoint, .NET, Java, ARPANET, Internet, Browser Wars, and Web 1/2/3.
...and we'll continue to do so based on this legacy of experience.

@genaris
Copy link
Collaborator

genaris commented Dec 11, 2024

...
Any method name SHOULD avoid generic terms such as "mymethod" or "registry".

My DID Method registry applications meet all of the criteria.

Do you think 'religion', 'geography', 'history' and many others aren't generic enough to meet this criteria?

I agree with @peacekeeper's proposed solution to achieve a classification using method-specific identifier rather than using the method name itself.

It is good to push to make specifications as clear as possible and remove any ambiguity on them. But sometimes we just need to use common sense. And unfortunately it's hard to put that common sense into words.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 11, 2024

SDOs need to do their work (develop and publish standards) and then get out of the way - no running interference.

That is, follow the Open To Innovation principle: https://hyperonomy.com/2019/03/12/internet-protocols-and-standards-not-only-need-to-be-open-but-more-importantly-open-to-innovation/

@mwherman2000
Copy link
Contributor Author

RE: Any method name SHOULD avoid generic terms such as "mymethod" or "registry".

Do you think 'religion', 'geography', 'history' and many others aren't generic enough to meet this criteria?

@genaris SHOULD avoid is not a requirement.

@brianorwhatever
Copy link
Contributor

I object to the registration of did:tdw as this will cause confusion with the did:tdw method that is now known as did:webvh.

I will withhold further comment on the rest of these registrations which are quite clearly a bad idea.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 11, 2024

@brianorwhatever Two wrongs don't make it right.

W3C has no basis for interfering with my rights as the trademark holder. @swcurran and I made an arrangement documented at the top of this thread.

@brianorwhatever what is your stake in this issue? ...any further grievances? @swcurran and I resolved this issue weeks ago: #603 (comment)

@peacekeeper
Copy link
Contributor

an arrangement

Actually I remember that arrangement differently than it is expressed in this thread.

@mwherman2000
Copy link
Contributor Author

Actually I remember that arrangement differently than it is expressed in this thread.

@peacekeeper What is your evidence?

Please don't make assertions based on what someone does or does not remember - the truth is what's recorded in the call:
https://us02web.zoom.us/rec/share/gllobsEiHYk_fsSjoaOQA3b3WQjl_MbFcw1m3XeuXhKfZqL9rKmTUUyNh9IqMAZL.wbw7Bla6LkMzA6d3

@davidlehn
Copy link
Contributor

@mwherman2000 I can't speak for others, but my thoughts on this:

  • I also think the direction of this request is asking for too much as is. It appears to be a sort of "land grab" of high level concept names without a clear explanation of why that construct is used. My first though also aligns with comments above about using one spec and URLs like did:[name]:[all the sub method things]:.... There will be far less push back on a simplified scoped style.
  • I believe this group wants to see innovation and exploration of DIDs and related technology. That's partly why it was created.
  • When there is immediate push back to a request like this, it's a good indication to look at why there is a misalignment of expectations. People do want to help make this technology successful. Part of that process is to help guide potential use cases in a direction that aligns with a rough shared vision of the tech, which may not be documented.
  • It is not productive to ask the group to "get out of the way" and be so confrontational. Arguing what specific spec text strictly allows with the group that wrote that text is not looking like fun for anyone.
  • I would highly suggest a different approach in this case. Add a summary explanation of what you are try to accomplish, perhaps with example use cases, and ask for feedback about the solution you are proposing. Then iterate.
  • There isn't a requirement to explain what you are doing, but some additional text would greatly help others to help you. It's also good to use an ELI5 approach vs a Rockwell Retro Encabulator one. Leave out the proprietary buzzwords and lingo. I, for one, do not have the time to dig deep into your tech stack and writings to learn what is going on otherwise. It's difficult to help without some shared understanding.
  • Ideally such a discussion and process would result in methods that are considered well designed and aligned with the intended DID principles. And hopefully some improvements to the DID documentation would be suggested along the way to improve clarify and help future method developers along the same path.
  • It's a tough sell to "protect" "internal" DID method names with global registrations. Namespaces are one honking great idea and at first glance it seems like that's what should be used here for those methods. If they later turn out to be generally useful beyond internal details, then promote them later with a full spec.
  • The contact websites appear to be new empty landing pages. I note they are using the domain naming scheme proposed elsewhere as a means to register methods. I suspect nearly everyone will solidly reject that idea. It would be more affordable to point at an existing single website contact page.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 12, 2024

@davidlehn I appreciate the time you invested to write the above reply. It is thoughtful. That being said, it is suffering from a Circle of Competence problem: the difference between what you know to be true and is true and what you believe to be true that is not true. This is a disease that is pervasive in all of these discussions: too many people articulating what they believe to be true that simply isn't. They are outside their Circle of Competence. Reference: #599

I simply don't have the time, energy, or resources to correct every untrue statement that is made. Tomorrow, I leave for a month in France and Malta. Friday, I'm a member of The Digitial Economist Fractured Futures panel. In January, I've been invited to the World Economic Forum in Davos, Switzerland to discuss decentralized systems architectures and futures - followed my some time off in Barcelona, Malaga, and Frankfurt.

Here's a couple corrections:

I also think the direction of this request is asking for too much as is. It appears to be a sort of "land grab" of high level concept names without a clear explanation of why that construct is used. My first though also aligns with comments above about using one spec and URLs like did:[name]:[all the sub method things]:.... There will be far less push back on a simplified scoped style.

  1. I'm not asking for too much. I'm simply requesting to have a number of DID Method names registered - plain and simple. Any further speculation is outside of one's Circle of Competence.
  2. It's not a "land grab". It is outside your Circle of Competence to claim this. It's an integral part of an effort I'm making to provide a categoration framework for DID Methods (Requirements based on Subject Scopes/Subject Domains decentralized-identity/did-methods#14 (comment)). A new matrix will be posted shortly.
  3. We're also implementing a novel concept called a Web 7.0 Sharded DID Registry where we need additional DID Methods. As you point out, I'm not under any obligation to explain what this is nor do I need any "help" ...although I do appreciate the offer. This isn't my first rodeo as my neighbors say.

Ideally such a discussion and process would result in methods that are considered well designed and aligned with the intended DID principles.

I've been a named Contributor to DID CORE since the first drafts of the specification. I believe I've driven over 75+ changes in the spec - most notably the inclusion of Things as a first-class subject class in both the DID CORE as well as the Sovrin Glossary (this was done in parallel with @talltree). I am extraordinary passionate about Things and will continue to be. I've been doing it for longer that most community members have been alive (a software career spanning ~50 years).

As a First Principles Thinker (https://hyperonomy.com/2021/03/10/first-principles-thinking/), I know and understand the DID CORE Principles and contributed to them. Although my view may be different from others, I am aligned with the original and current ideals related to Decentralized Identifiers.

It's a tough sell to "protect" "internal" DID method names with global registrations.

There is no need to. Currently, there is no specific support for private, internal DID Methods in DID CORE. That being said, they are core to the design of Web 7.0 Sharded DID Registries and in fact, the DID Methods are public facing even though they are conceptually private and internal to the implementation.

The contact websites appear to be new empty landing pages.

Of course, they are! When do you register a domain for a web site? ...before you create the website? ...or after, hoping the domain is still available? These domains were acquired earlier today on schedule and on plan. If you are truly interested in wanting to see a working example, here's an early implementation:

  • https://didns.directory
  • Browse to this URL.
  • Click on the link to the DIDNS specification.
  • Click on the first link at the top of the spec page.

Over & out.

@peacekeeper
Copy link
Contributor

peacekeeper commented Dec 12, 2024

What is your evidence?

Please don't make assertions based on what someone does or does not remember - the truth is what's recorded in the call: https://us02web.zoom.us/rec/share/gllobsEiHYk_fsSjoaOQA3b3WQjl_MbFcw1m3XeuXhKfZqL9rKmTUUyNh9IqMAZL.wbw7Bla6LkMzA6d3

@mwherman2000 It is not nice to ask people for evidence if you can't produce evidence yourself. Your link points to the 5th December 2024 meeting of the did:webvh Method work item at DIF. As far as I can tell, you were not even on this call!

Perhaps you meant to share the link to the 21st November 2024 meeting of this work item at DIF, which is here: https://us02web.zoom.us/rec/share/mh3dI2YQe9p9Y4KJZDmFw57nPU_kHTEkJbXJ66ERzCpn7qyMj5Bn0TTvt4MyHrEQ.PNLEb9WVXUWU8sva

The agreement on this call was that your PR would not be accepted until 1st December 2025, whereas now you are claiming that the agreement was that you would postpone using did:tdw until Nov. 1, 2025. Clear difference.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 12, 2024

The agreement on this call was that your PR would not be accepted until 21st December 2025, whereas now you are claiming that the agreement was that you would postpone using did:tdw until Nov. 1, 2025. Clear difference.

@peacekeeper The above statement is inaccurate/untrue - this is why evidence is needed.

The final date that @swcurran and I agreed to was Dec. 1, 2025.

Reference: Nov. 21, 2024 DIF Call: Timecode 20:00 in https://us02web.zoom.us/rec/share/UsNpfqags9z3oprz-DbXQZQX-xPEnJlBZhTn8AWfY-35hNdFkBk9QJQfVKXmU867.mbd57z9owlBoP-oi

@swcurran initiated the conversation at timecode 18:00 and suggested a delay of 12 months/1 year. I rounded it up to Dec. 1, 2025 and that's the date we agreed upon. End of story.

@peacekeeper
Copy link
Contributor

@mwherman2000 We both had typos in our comments above, and we both fixed them now, which is visible in the comment edits. You wrote 1st Nov 2025 and meant 1st Dec 2025. I wrote 21st Dec 2025 and meant 1st Dec 2025. So there is agreement on the date being 1st Dec 2025.

I hope there is also still agreement that this date is for accepting the registration.

Screenshot From 2024-12-12 01-35-54

@wip-abramson
Copy link

This is an interesting PR. It brings into focus some challenges that the WG has been grappling about the purpose of maintaining a list of DID methods and the processes around how we maintain this list over time.

  1. Is this list about providing "protection" over DID method names through a process of registration and a first come first serve basis?

Chair hat off - that feels really problematic to me. I think this PR highlights why. @mwherman2000 has arguably met the very low bar required to register a method in this list. Does that mean he get "protection" over all of these method names he wishes to register.

To me this is a good argument for why we need to double down on emphasizing that this is just a informative list of known DID methods and their specifications. It provides no protection or any W3C stamp of approval whatsoever. It feels like what we should be doing is encouraging other authorities, who are motivated to, to manage their own lists/registries/whatever with the registration rules and governance processes they deem fit for their needs.

The overhead of maintaining this list as anything other than informative feels too great. I also believe strongly it is not our place, as a W3C WG, to fill any other role.

If anything, I would be in favor of publishing a point in time WG Note that contains a set of DID methods with implementations that have passed some to be defined set of conformance/interop tests.

  1. What is the bar for entry in this list?

This PR contains multiple DID methods each with a different specification, accept these specifications are equivalent apart from the method name. As @mwherman2000 points out, he has already registered a number of DID methods in this list in a similar manner.

I too share @peacekeeper's opinion that these do not meet the requirement:

A DID method specification MUST define exactly one method-specific DID scheme that is identified by exactly one method name

Regardless, I think this issue demonstrates the challenges of maintaining a list. We, the working group, do not have the time to properly evaluate DID method registrations against anything but the most minimal of criteria for entry in this list. I am confident there are numerous entries in the current list that are non-conformant. The fact that they are in this list gives them a sense of legitimacy, whether we like it or not.

We need to spend more time as a group discussing these issues to find a path forward.

@mwherman2000
Copy link
Contributor Author

mwherman2000 commented Dec 12, 2024

@wip-abramson @peacekeeper @talltree

How does the concept of a purpose-built Glossary of DID Methods sound/meet the bill?

The ToIP CTWC* WG has built some simple and very easy to use GitHub-based tooling I believe they would like to share for this purpose.

Checkout https://github.com/trustoverip/ctwg-main-glossary/tree/main/spec%2Fterms-definitions for an example of the "production" ToIP Glossary.

Here is a link to the high-function published version of the ToIP Glossary: https://glossary.trustoverip.org/

Is this an answer?

*Mnemonic: Colonial Turkey With Cranberries (CTWC)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants