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 use-case for decentralized identity #6082

Merged
merged 18 commits into from
Jun 13, 2022

Conversation

emmanuel-awosika
Copy link
Contributor

@emmanuel-awosika emmanuel-awosika commented Apr 21, 2022

I suggest adding a page for decentralized identity to the use-cases section. Ethereum is playing a key role in decentralized identity and self-sovereign identity (SSI) through projects like Proof of Humanity. I think it'll be a great resource, both for developers and anyone learning about the applications of Ethereum.

Description

The page explains decentralized identity in detail and the flaws of current identity management. It also highlights the building blocks of decentralized identity frameworks and the applications of Ethereum-based ID management.

Preview deploy:
https://ethereumorgwebsitedev01-emmanuelawosikaethereumor23827.gtsb.io/en/decentralized-identity/

I suggest adding a page for decentralized identity to the use-cases section. Ethereum is playing a key role in decentralized identity and self-sovereign identity (SSI) through projects like Proof of Humanity. I think it'll be a great resource, both for developers and anyone learning about the applications of Ethereum.
@gatsby-cloud
Copy link

gatsby-cloud bot commented Apr 21, 2022

Gatsby Cloud Build Report

ethereum-org-website-dev

🎉 Your build was successful! See the Deploy preview here.

Build Details

View the build logs here.

🕐 Build time: 33m

Performance

Lighthouse report

Metric Score
Performance 🔶 19
Accessibility 💚 91
Best Practices 💚 100
SEO 💚 92

🔗 View full report

@wackerow
Copy link
Member

Hey @emmanuel-awosika, thanks for suggesting this and putting it together! Sorry it took some time to get back to this. I agree this is a topic worth having a page for, and I think using the use-case template will be fine here, but I wanna discuss the content/layout first.

I think it would first be helpful to lay the foundation with an explainer of what identity is, or more importantly, the subtle differences between "identity", "identifiers", and "attestations" (and also to a lesser extent, "roles").

These terms are often used interchangeably, but have distinct differences that help to understand the concepts surrounding identity, both in the existing identity systems as well as in decentralized identity systems. I think distinguishing the difference here is important, and could really help better frame the remainder of the content.

(Great video explainer by Andreas Antonopolous: Decentralized Identity - Bonus Livestream Session)

High level descriptions/examples:

  • "Identity" is the "I" in "I think, therefore I am." It is you as a human entity, your own existence.
  • "Identifiers" are things that help identify which identity is being referred to, such as a name, email, tax ID number, Facebook or Twitter account name. These are not your identity, but identifiers. A drivers license is also not an identity, but contains multiple identifiers on it, such as name and date of birth.
  • "Attestations" are statements made by someone (sometimes an authority) that an identifier has certain rights/privileges, licensure, or particular attribute, i.e. Your drivers license is an attestation that you're competent enough and licensed to drive a motor vehicle attested to your name and DOB identifiers by the Department of Motor Vehicles (DMV).
  • "Roles" are implied by the attestation, such as "motor vehicle driver" in the above example. Roles are less misunderstood, but just noting these are not the same as your identity.

I generally like the header structure here, going through the what, why, how, then use cases, but to the above points I think we need to work on the introduction content first, and then go back through and make sure the terms are being used as accurately as possible.

I see what you did with the header structure here (what/why/how/uses) is a good start, but I think we could improve the overall story-telling skeleton of this page by reconsidering these h2s. Some thoughts I had for how we could structure this:

What are identity, identifiers and attestations?

Explain difference between these, mentioning examples from existing systems that most people will understand.
Emphasis the point about how third-parties issue, hold and control your identifiers in the existing identity systems. This is one of the key differentiators compared to decentralized identity systems to be discussed next.

What are decentralized identifiers?

Now that identifiers have been explained, we can build off that to explain that a decentralized identifier is one that is issued, held and controlled by you. An easy example is an Ethereum wallet.

What makes this possible?

Discuss dependence on PKI, and nobody cared to protect private keys until cryptocurrency came around. Now we've seen the world's largest civilian deployment of public key infrastructure, and people are learning how to secure them properly because they protect money. Now that people are learning how to protect private keys to protect their money, a byproduct of that is those same keys can also be used to securely protect their own identifiers.
Also, we can discuss smart contracts here, along with decentralized data stores, and the W3C efforts.

After these I agree with a section about how DIDs are being used in the industry so far, and areas where these concepts could offer potential in the future.

tl;dr on my thoughts: Great start! Let's try to do an "explain it like I'm 5" intro where we explain some fundamentals that help in understanding identity in general. We can then extend this to tell the story of how decentralized identifiers are different (focusing on sovereignty over ability to issue/hold/control your own identifiers without a central registry), why this is possible now, what already exists and where we're heading.

cc: @minimalsm

@emmanuel-awosika
Copy link
Contributor Author

emmanuel-awosika commented May 17, 2022

Thanks for the detailed feedback, @wackerow! It'll take some time to rework the content, but I should be able to get an updated version across to you soon.

Reworked the proposed page to incorporate feedback on structure and use of terms related to decentralized identity.
@emmanuel-awosika
Copy link
Contributor Author

Hey @emmanuel-awosika, thanks for suggesting this and putting it together! Sorry it took some time to get back to this. I agree this is a topic worth having a page for, and I think using the use-case template will be fine here, but I wanna discuss the content/layout first.

I think it would first be helpful to lay the foundation with an explainer of what identity is, or more importantly, the subtle differences between "identity", "identifiers", and "attestations" (and also to a lesser extent, "roles").

These terms are often used interchangeably, but have distinct differences that help to understand the concepts surrounding identity, both in the existing identity systems as well as in decentralized identity systems. I think distinguishing the difference here is important, and could really help better frame the remainder of the content.

(Great video explainer by Andreas Antonopolous: Decentralized Identity - Bonus Livestream Session)

High level descriptions/examples:

  • "Identity" is the "I" in "I think, therefore I am." It is you as a human entity, your own existence.
  • "Identifiers" are things that help identify which identity is being referred to, such as a name, email, tax ID number, Facebook or Twitter account name. These are not your identity, but identifiers. A drivers license is also not an identity, but contains multiple identifiers on it, such as name and date of birth.
  • "Attestations" are statements made by someone (sometimes an authority) that an identifier has certain rights/privileges, licensure, or particular attribute, i.e. Your drivers license is an attestation that you're competent enough and licensed to drive a motor vehicle attested to your name and DOB identifiers by the Department of Motor Vehicles (DMV).
  • "Roles" are implied by the attestation, such as "motor vehicle driver" in the above example. Roles are less misunderstood, but just noting these are not the same as your identity.

I generally like the header structure here, going through the what, why, how, then use cases, but to the above points I think we need to work on the introduction content first, and then go back through and make sure the terms are being used as accurately as possible.

I see what you did with the header structure here (what/why/how/uses) is a good start, but I think we could improve the overall story-telling skeleton of this page by reconsidering these h2s. Some thoughts I had for how we could structure this:

What are identity, identifiers and attestations?

Explain difference between these, mentioning examples from existing systems that most people will understand.
Emphasis the point about how third-parties issue, hold and control your identifiers in the existing identity systems. This is one of the key differentiators compared to decentralized identity systems to be discussed next.

What are decentralized identifiers?

Now that identifiers have been explained, we can build off that to explain that a decentralized identifier is one that is issued, held and controlled by you. An easy example is an Ethereum wallet.

What makes this possible?

Discuss dependence on PKI, and nobody cared to protect private keys until cryptocurrency came around. Now we've seen the world's largest civilian deployment of public key infrastructure, and people are learning how to secure them properly because they protect money. Now that people are learning how to protect private keys to protect their money, a byproduct of that is those same keys can also be used to securely protect their own identifiers.
Also, we can discuss smart contracts here, along with decentralized data stores, and the W3C efforts.

After these I agree with a section about how DIDs are being used in the industry so far, and areas where these concepts could offer potential in the future.

tl;dr on my thoughts: Great start! Let's try to do an "explain it like I'm 5" intro where we explain some fundamentals that help in understanding identity in general. We can then extend this to tell the story of how decentralized identifiers are different (focusing on sovereignty over ability to issue/hold/control your own identifiers without a central registry), why this is possible now, what already exists and where we're heading.

cc: @minimalsm

Hi @wackerow. I just pushed a new commit to incorporate your suggestions into the document. The new document looks very different from the original (owing to extensive research), but I'm happy to hear your thoughts on it.

Copy link
Member

@wackerow wackerow left a comment

Choose a reason for hiding this comment

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

Hey @emmanuel-awosika! Like the updates so far overall... don't have time to finish this all right now, but reviewed the first section again and left some suggestions.


Also, some structural cleanup... We'll need to adjust the header levels a bit since we don't need to include an h1 header (#). The title frontmatter property will render as an h1 and should be the only one on the page.

I would increase the header level of everything up through "What are attestations" by one for this reason. ie:
# What are .... -> ## What are ....
## What is identity -> ### What is identity? (add question mark here too)
## What are identifiers? -> ### What are identifiers?
## What are attestations? -> ### What are attestations?
Then I would leave the DID section at header level 2 (##) and the rest should be fine.

Also, would try to avoid sections without any copy before going into a sub-section.
ie:

## What are identity, identifiers and attestations? {#what-are-identity-identifiers-attestations}

<!-- Add a quick intro sentence here -->

### What is identity {#what-is-identity}

Identity means an individual's sense of self, def...

Will come back to finish the rest =)

src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
Co-authored-by: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Copy link
Contributor

@minimalsm minimalsm left a comment

Choose a reason for hiding this comment

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

@emmanuel-awosika this is looking great 😍

I'm not so familiar with the all of the terminology used here so reviewing it was good for me to learn it as a beginner. Mostly red-inking with suggestions around simplifying language. I'l leave it to @wackerow whether he thinks the substance itself is what he meant by his comment (But I think it is, great job 😎!)

src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
Comment on lines 153 to 156
- [Blockchain Use Cases: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) by ConsenSys
- [What is Ethereum ERC725? Self-Sovereign Identity Management on the Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) by Sam Town
- [How Blockchain Could Solve the Problem of Digital Identity](https://time.com/6142810/proof-of-humanity/) by Andrew R. Chow
- [What Is Decentralized Identity And Why Should You Care?](https://web3.hashnode.com/what-is-decentralized-identity) by Emmanuel Awosika
Copy link
Contributor

Choose a reason for hiding this comment

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

This should follow the same convention as our other use case pages. e.g. see our DeFi page

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Alright. I'll check for some resources I can add here.

Copy link
Member

Choose a reason for hiding this comment

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

Agree, but wouldn't call this a blocker personally. If we can find a few more things that would be great.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I got some resources that could be useful and added them. LMK if they are good to go.

emmanuel-awosika and others added 2 commits May 29, 2022 08:01
Co-authored-by: Joshua <62268199+minimalsm@users.noreply.github.com>
Co-authored-by: Joshua <62268199+minimalsm@users.noreply.github.com>
Copy link
Member

@wackerow wackerow left a comment

Choose a reason for hiding this comment

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

@emmanuel-awosika This is looking great!! Left another round of comments, but think we're super close to getting this in.

Couple other comments that didn't fit elsewhere:

  • We should mention explicitly somewhere that 1 identity can have an infinite number of identifiers. I think it's fairly intuitive based on how it's explained now, but I think it wouldn't hurt to mention this concept directly.
  • @minimalsm Currently our use-case pages are /nft, /dao, /defi... I think /did makes the most sense here tbh, for simplicity and consistency. If we don't rename the file, I think we should at least set up a redirect.
  • Also, we need to link out to this page before we publish. We planning on adding to the "Use Ethereum" menu I assume, with the other use cases? If so, footer as well, and should be added to the menu on the other "use case" pages.

💪 Almost there!

summaryPoint3: Decentralized identity projects can revolutionize identity management.
---


Copy link
Member

Choose a reason for hiding this comment

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

We should have an intro here before getting into the content, quickly laying out what to expect with the content to come.
Currently we're diving into "What is/are ___" x3, and we should intro this to explain that there are some terms that sound similar, but have differences, that you need to understand first to make the most out of the rest.
Within this, we can mention these three terms (identity/identifier/attestation), so the next three sections are known to be a bundle, and sets the stage for getting into the decentralized identifier content to follow.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, so I figured we could start with a "What is decentralized identity?" section to broach the idea and use that to lead into the next section explaining identifiers, identity, and attestations. I changed the structure, so the identity/identifier/attestation section are now H3s. I felt it made sense to put them under the preceding section.

I also structured the intro that way to help with SEO. It might be good to have a paragraph that answers "What is decentralized identity" at the beginning. LMK what you think about it.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think @wackerow means something similar to the NFT page intro. Something akin to an abstract to entice users to read further.

  • Outline problem (reliance on centralized third parties) at a high level
  • Provide some context
  • Suggest the solution (decentralized identity) at a high level

Other than that, this looks good to go to me @emmanuel-awosika.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I just added a new intro. LMK if it works.


Identity means an individual's sense of self, defined by a set of unique characteristics. Identity refers to the fact of being an _individual_, i.e., a distinct human entity. Identity could also refer to other non-human entities, such as an organization or authority.

## What are identifiers? {#what-are-identifiers}
Copy link
Member

Choose a reason for hiding this comment

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

Yeah agree, I posted above about adding an introduction for the page which could help explain how these sections fit together (helping with the transition here)

src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved

An attestation is a claim made by one entity about another entity. If you live in the United States, the driver's license issued to you by the Department of Motor Vehicles (one entity) attests that you (another entity) are legally allowed to drive a car.

Attestations are different from identifiers. An attestation _contains_ identifiers to reference a particular identity, and makes a claim about an attribute related to this identity. So, your driver's license has identifiers (name, date of birth, address) but is also the attestation about your legal right to drive.
Copy link
Member

Choose a reason for hiding this comment

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

👍

src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
src/content/decentralized-identity.md Outdated Show resolved Hide resolved
Comment on lines 153 to 156
- [Blockchain Use Cases: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) by ConsenSys
- [What is Ethereum ERC725? Self-Sovereign Identity Management on the Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) by Sam Town
- [How Blockchain Could Solve the Problem of Digital Identity](https://time.com/6142810/proof-of-humanity/) by Andrew R. Chow
- [What Is Decentralized Identity And Why Should You Care?](https://web3.hashnode.com/what-is-decentralized-identity) by Emmanuel Awosika
Copy link
Member

Choose a reason for hiding this comment

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

Agree, but wouldn't call this a blocker personally. If we can find a few more things that would be great.

emoji: ":id:"
sidebar: true
sidebarDepth: 2
summaryPoint1: Centralized identity systems are fragmented, poorly secured, and offer minimal privacy protection.
Copy link
Member

Choose a reason for hiding this comment

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

The rest of the page is looking really good... I think we could strengthen these summary points now based on the latest the page has to offer.

Would consider along the lines of

  1. Traditionally identity systems have centralized the issuance, maintenance and control of your identifiers.
  2. Decentralized identity solutions give the power back to the individual, further decreasing reliance on centralized third-parties
  3. Thanks to crypto, users now have the tools to issue, hold and control their own identifiers and attestations once again

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Just added this now.

emmanuel-awosika and others added 2 commits May 31, 2022 10:27
Co-authored-by: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Co-authored-by: Joshua <62268199+minimalsm@users.noreply.github.com>
Edits to incorporate feedback.
@emmanuel-awosika
Copy link
Contributor Author

Hey @minimalsm, I fixed the issue with the universal logins section by replacing "dapps" with "service providers." Also, I included a brief sentence to explain how decentralized identity replaces password-based logins with decentralized authentication. @samajammin previously opened an issue on that topic, so I thought to add the information there

Co-authored-by: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
sidebarDepth: 2
summaryPoint1: Traditional identity systems have centralized the issuance, maintenance and control of your identifiers.
summaryPoint2: Decentralized identity solutions give the power back to the individual, further decreasing reliance on centralized third-parties.
summaryPoint3: Thanks to crypto, users now have the tools to issue, hold and control their own identifiers and attestations once again.
Copy link
Contributor

Choose a reason for hiding this comment

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

Users can't issue their attestations (well they can, but self-issued attestations in theory should be meaningless)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh, I think the "issue" part only has to do with decentralized identifiers. A possible suggestion would be to rework the sentence to read: "Thanks to crypto, users can now issue identifiers, and hold and control attestations." Does this work?

Copy link
Member

@wackerow wackerow left a comment

Choose a reason for hiding this comment

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

🎉

@wackerow wackerow requested a review from minimalsm June 13, 2022 20:19
@minimalsm minimalsm merged commit 5531daa into ethereum:dev Jun 13, 2022
@minimalsm minimalsm mentioned this pull request Jun 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content 🖋️ This involves copy additions or edits
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants