#

did

(5 articles)

Zooko’s Triangle and DIDs

The Zooko’s Triangle is a concept in the realm of naming systems, specifically for decentralized or distributed networks. It was named after Zooko Wilcox-O’Hearn, a computer scientist and cypherpunk known for his work on the Zcash cryptocurrency. The triangle illustrates a trade-off between three desirable properties in a naming system: ![](https://miro.medium.com/v2/resize:fit:1400/1*jPMtyoiTH9wq7TSyB584uQ.png) 1. **Human-meaningful:** Names are easily understood and remembered by humans. 2. **Decentralized**: No central authority controls the allocation or management of names. 3. **Secure**: Names are unique and cannot be easily taken or manipulated by others. Zooko’s Triangle posits that achieving all three properties in a single system is difficult. Traditionally, a system could have only two of the three properties, leading to various combinations of naming systems with their respective advantages and disadvantages. However, recent developments in cryptographic and distributed systems have led to solutions that challenge the traditional constraints of Zooko’s Triangle. One such system is the Decentralized Identifiers (DIDs). ## DIDs Decentralized Identifiers (DIDs) are a new identifier for verifiable, decentralized digital identity. DIDs are designed to be self-sovereign, meaning that individuals or organizations control their identifiers without relying on a central authority. DID systems are built on top of decentralized networks, such as blockchain or distributed ledgers, providing a secure and tamper-proof infrastructure for identity management. DIDs aim to achieve the three properties of Zooko’s Triangle: 1. Human-meaningful: While DIDs may not be human-meaningful due to their cryptographic nature, they can be associated with human-readable names or aliases. 2. Decentralized: DIDs are managed on decentralized networks, removing the need for a central authority. 3. Secure: The decentralized nature of DIDs, combined with cryptographic techniques, ensures that identifiers are unique, secure, and resistant to tampering. In summary, Zooko’s Triangle presents a trade-off between human-meaningful, decentralized, and secure properties in naming systems. Decentralized Identifiers (DIDs) are an example of a system that seeks to overcome the traditional limitations of the triangle by leveraging decentralized networks and cryptographic techniques to provide a more comprehensive solution for digital identity management.

Autonomous DIDs Identifiers for Organisations

# Organizational identifiers Organizational identifiers have different sets of requirements and functions. It is not enough to have per-to-peer private communications. Organizations are more public, so we need publicly resolvable identifiers. DID:key satisfy this condition entirely but fails to fulfill the organization's needs. - Organizations quite often act as issuers of credentials or attestations. For issuance, it is critical to have the possibility to rotate signing keys or even deactivate or delete identifiers if keys or issuer get compromised or to comply with security company policies. - Organizations often require a split between the Controller of the identifier and the Identifier subject or even a transfer of the identifier subject. - Organizations must have complete control of infrastructure and effectively manage resources and costs. The price of a single identifier should be fixed, and the method of creating new identifiers should be scalable. - One of the essential requirements is trust and governance and transparent mechanics of proving and binding an identifier to an organizational entity and creating trust relations. - Access to Identifier management is quite often controlled by a group of users Nonfunctional requirements - portability - interoperability - scalability - Autonomous and control - security In my previous articles, we talk about Autonomous identifiers and how they differ from regular DIDs. To recap ***Autonomous identifiers (AIDs)*** *are* ***DIDs*** *generated algorithmically from a crypto- graphic key pair in such a way that they are self-certifying, i.e. the binding with the public key can be verified without the need to consult any external blockchain or third party.* [*KERI*](https://keri.one/) *is an example of a decentralized identity technology based entirely on AIDs. ©* [*https://trustoverip.org/blog/2023/01/05/the-toip-trust-spanning-protocol/*](https://trustoverip.org/blog/2023/01/05/the-toip-trust-spanning-protocol/) In a previous article, I show how to create and use a did:key as an Autonomous identifier that feet well to private person-to-person secure communication. Architectures and protocols that build on top of AIDs have few critical properties - self-hosting and self-contained - self-certified and Autonomous - portable - interoperable - full control of infrastructure - cost management Nowadays, I discovered a few AIDs methods - **did:key** — self-contained and public - **did:peer** — self-certified, upgradable but private - **KERI based** did — we waiting for did:keri method to be announced soon, but KERI infrastructure could be used to build internals of did:peer or similar methods. - **did:web** — public, self-certified, and self-hosted method, but still, we have active community discussion and critics as far as it fully relays to ownership of domain name that could be stolen or re-assigned. So we have to choose from did:key did:web and I hope in a future from did:keri. To move forward, we need to understand the DID architecture better and how all parts are connected. In many cases of personal or sovereign entities Subject and the Controller are the same, but for Organisations, it could have a crucial difference. ## DID Subject The DID subject is the entity that the DID represents. It can be a person, organization, device, or other identifiable entity. The DID subject is associated with a unique DID that serves as a persistent, resolvable, and cryptographically verifiable identifier. The subject is the primary focus of the identity management process and typically has one or more DIDs associated with it. ## DID Controller The DID controller is the entity (person, organization, or device) that has the authority to manage the DID Document associated with a particular DID. The DID controller can update, revoke, or delegate control of the DID Document, which contains the public keys, service endpoints, and other information required for interacting with the DID subject. In many cases, the DID subject and DID controller can be the same entity, especially for individual users who create and manage their DIDs. However, in some situations, the DID controller may differ from the DID subject, such as when an organization manages the DIDs on behalf of its employees or when an administrator manages a device. In summary, the DID subject is the entity the DID represents, while the DID controller is the entity with authority to manage the associated DID Document. Depending on the specific use case and requirements, these roles can be held by the same or different entities. ## Key Pair It is simple from the first point of view. Key-Pair is an asymmetric public and private key. One of the main DID functions is the distribution of public keys. DIDDoccument could contain multiple public keys with authorization rules and key roles. ## Identifier Representation of did itself. is a part of DID URI. DID:Key ![](https://miro.medium.com/v2/resize:fit:1400/1*Q-yQXBFuuFIEZIjADkinVw.png) did:key identifier DID web ![](https://miro.medium.com/v2/resize:fit:1076/1*prr0S1NEghhuLlawMUzYaQ.png) did:web ## Relations Relations between all parts of DID identifier can be illustrated in the following diagram. DID method dictate how DID identifier gets created, updated, deactivated, and resolved. ![](https://miro.medium.com/v2/resize:fit:1064/1*ccyyKkG4pIOB47Mi6BNGYw.png) Focusing on the relations of the controller, key pairs, and the identifier is more interesting for us. The most significant power and benefit of DID are decoupling a key pair from a controller and identifier. It allows the rotation of keys and changes the ownership of the identifier and its subject and controller. It is the main competitive advantage of DID and SSI over web3 wallets and raw keys. The ideal case is KERI infrastructure that decouples all parties via cryptographic binding and protocols. To discover more, read the paper. We used did: keys as AID in the previous article. DID:key is a cryptographically bound identifier to the public key but cannot change the binding. As a result, keys couldn't be rotated in the future. The controller has no binding except to prove private key ownership via the signature-based protocol. On the other side, DID:web does not have a cryptographic binding of an identifier to a key pair from one side. It gives an easy possibility to rotate keys but loses the verifiability of the identifier. The most interesting part is the Controller to identifier binding in a did: web. It is based on proof of domain name ownership and website resource. As I mention, it has some security considerations and critics in a community. Still, at the same time, we get a critical mechanism that settles trust and connects identifiers to the organization entity. The mechanism of web domain ownership is well-defined and easy to explain to other users, even outside of SSI and web5 domain. It is getting wider adoption and creating a lot of use cases for organizations. So it helps to create a trust relationship between an identifier and organizational entity in a very transparent, human-readable, and self-explained way — the identifier hosted on the corporate domain belongs to the organization. On another side, it makes the transfer of the controller almost impossible. That's why it is critical to differentiate between a subject and a controller. ![](https://miro.medium.com/v2/resize:fit:1400/1*YAiTdueBSXhO8qAwD_9DOg.png) I believe that did:web still covers a lot of organizational cases and is suitable for issuing Verifiable Credentials and attestations on behalf of organizations. Step-by-step guide on how to create and manage did:web you could find in my article More detailed step-by-step coding guide with the live example you could find in my SSI notebooks book

Authentic Data Specifications and DIDs Critics.

## Authentic Data Specifications and DIDs Critics [Authentic Data Specifications](https://github.com/TrustFrame/authentic-data-specifications) Quite interesting work and concept that rise a few important questions and gives a critical view of current DIDs and did documents. ### DID critics > The first flaw is in the decentralized identity URI standard. The W3C proposed standard conflates identification with location causing complete chaos in the implementation and adoption of the standard. The standard says, "…the DID [string] identifies the DID subject and resolves to the DID document." By creating a standard URI format that both identifies and resolves, it has created a ridiculous explosion of pet storage and provenance solutions, each one having their own decentralized identity method (DID method) standard From one side I agree that did Url point and resolve to a did document but at the same time could point to a did subject or a did controller. So mixed concerns and purposes take a lot of work to address. I can't entirely agree that the variety of DID methods and sets of different trust registers is bad. I see a missed gap in the specs. We need to put more effort into normalizing and bringing more interoperability to the resolution process of DIDs. So we need a Universal resolution protocol. ### DID document critics At the same time folks rise a few topics about DID Docs itself: #### Byte sensitivity and IoT > The second flaw is in the decentralized identity document standard. Ignoring the fact that text based formats (JSON and JSON-LD) were chosen for byte-sensitive, digitally signed documents, the existing standard simply doesn't meet the requirements for an Internet-scale provenance-driven digital identity solution Text base is quite robust and human-friendly but performs purely on IoT where computation and memory are limited and internet environments with limited bandwidth. I agree that the textbase signet document is sensitive and fragile. I like the work of KERI community around a CESR. Composable Event Streaming Representation (CESR) The Composable Event Streaming Representation (CESR) is dual text-binary encoding format that has the unique property…www.ietf.org The Composable Event Streaming Representation (CESR) is dual text-binary encoding format that allows interchanging binary and text representations. It could be a good candidate that solve a format problem. #### Key rotation and history > ….they provide no solution for tracking the evolution of digital identities over time. There is no mechanism for recording key rotations and other provenance aggregations that occur over the lifetime of the controller. It is considered good hygiene to rotate identity keys on a regular basis, even if they have not become compromised. The consequence of having old keys is that there is the potential for old digitally signed data to be stored for years and still require the old keys for verification. DID docs do not support this. It is not fully true some DIDs methods is based on change events and centered around CRDT-based document changes like Sidetree protocol does. https://identity.foundation/sidetree/api/ True changes and diffgrames are not the first part citizen in a did Document, and quite often we have no way to observe a chain of changes, but it is a few dids that focus on this problem. So we mention SideTree and did:ion or did:elem. We still could interact with the side tree nodes and request operations for these dids even if it is not reflected in a document. Another working group is a KERI and KELs that address exactly this Key Event Receipt Infrastructure Key Event Receipt Infrastructure (KERI) An identity system-based secure overlay for the Internet is presented. This is based on a Key Event Receipt…weboftrust.github.io So we get KERL with a history of all changes with keys for the concrete identifier. In a same family or community, we have a did:peer that offer a diff gram protocol and operates with a backing storage https://identity.foundation/peer-did-method-spec/#backing-storage One more simplified and naive model is signed DID docs. This signed docs could form a micro-ledger chain where every key rotation did document change is signed with a previous version of the key or with a specific version of the recovery key. ### Portability > The last flaw in the existing standards is the lack of interchangeability of DID methods/services. Interchangeability is critical for portability of data and the sovereignty of users. Because not all DID methods are the same, moving from one method to another is neither automatic nor universal. Nor is there a standard for a DID document to keep a history of the DID methods that have been used to manage it throughout its past. Truly decentralized systems use standard file formats and standard protocols to ensure that users can take there data from one system to another with minimal effort. The best example we have today is still email. Anybody can use an IMAP client to download all of their email from their email provider (e.g. GMail, Yahoo Mail, etc), store them locally in .mbox files, and then later use the IMAP client to upload them to a different email provider. This is only possible because of the standard protocol (IMAP) and standard file format (MBox) used with email. Well I belive that with CESR serialization and DID doc spec or next iteration of did docs that could be based on ACDC we could have a transferable and portable file format Authentic Chained Data Containers (ACDC) An authentic chained data container (ACDC) is an IETF internet draft focused specification being incubated at the ToIP…www.ietf.org Authentic Data Provenance Logs authentic-data-specifications/Authentic Data Provenance Log.md at main ·… Community Specifications are recommended to be drafted in accordance with international best practices. Doing so…github.com As for 2023 I see that KERI successfully solve a raised challenge. In same time it is mean that we should revisit and apply all good parts of KERI community work streams to a DIDs

Web3 login web3 ID vs Web5 DIDAuth ( DID authentication)

*By Volodymyr Pavlyshyn, [YouTube Video](https://www.youtube.com/watch?v=NwN_4ksbuE4)* ## Introduction Web3 ID or Web3 login is being touted as a solution to many of our problems - it's decentralized, OTP-less, and passwordless. However, before we all move to this new, happier world, there are a few questions that need to be addressed: - How do we rotate a key and deal with a stolen private key? - Is it truly passwordless? How do we unlock a wallet, and how do we recover a password? - How do we make it cross-device? I propose a better answer to these challenges - Web5 Auth, or as we call it in our Affinidi SDK, DIDAuth. ## What is DIDAuth? DIDAuth is an edge auth protocol that proves ownership of private keys based on DID (Decentralized Identifiers). With DID, we decouple but cryptographically bind the Controller (user), private/public key pair, and identifier. So, we could solve the first challenge with a DID method that supports key rotation. With seed migration, we could solve a cross-device experience. Recovery is a more complex story; Affinidi SDK solves it for custodial users and provides building blocks for edge developers to implement their solutions for this challenge. ## The Problem with Web3 Login Web3 login or Web3 identity is a simple concept - login with your wallet, such as Metamask. However, this approach has several issues: - **Key Rotation**: If someone steals your wallet, they steal your identity. Key rotation should be a key feature, but it's not working well with login with Metamask or other similar solutions. - **Passwordless?**: Despite claims, you still need to maintain a password to access your private key. So, it's not truly better than what we already have. - **Portability**: It's not easy to port your wallets to different locations. - **Recovery**: If you forget the password, what should you do? The main concern is the possibility to rotate keys, which is why there are a lot of concerns about the Web3 login. ## The Solution: Web5 Login What I can offer, which has been available in our Affinidi SDK for a few years, is Web5 login. This protocol solves several issues: - **Decoupling**: The Decentralized Identifier (DID) allows you to decouple several elements. This is represented as a triangle, not as popular as the self-sovereign identity triangle, but it's the identity triangle. This triangle is the cryptographic binding between three things: the user or controller, the key pair (public and private key), and the identifier. The DID is your identifier that is cryptographically bound with the private and public key and cryptographically or otherwise bound with the controller. - **Key Rotation**: We need to find DID methods that allow us to keep the identifiers stable but still connected to the private and public key and to the controller, and allow us to rotate the keys. There are several DID methods that allow this, including DID peers, DID Key, and off-chain methods. On-chain methods can be quite expensive and not all of them give you the possibility to easily rotate the signing key. - **Portability and Recovery**: There are still open questions about how we do the portability between devices and how to do the recovery. For the Affinidi SDK, we have the answer for the recovery because we have the backup of the seeds and then you could use your email or phone```markdown to recover with your password. However, if you compromise your key, we need to build some extra protocol that allows us to do the operations in this case. The answer to this could be DID Key or DID Peer, and you could notify all your peers that this key is not valid anymore. While I see a lot of potential in Web5 Auth, I also see a lot of gaps and problems in the idea of logging in with your wallet. I encourage everyone to stay connected, share what you think, and let me know if you need more technical examples. --- *This article is based on the video "Web3 login web3 ID vs Web5 DIDAuth ( DID authentication)" by Volodymyr Pavlyshyn. The video was uploaded on January 29, 2023, and has been viewed 89 times as of the time of writing.* ---