Refactoring the Web

Decentralized Web Platform

a new layer for the Web that enables decentralized apps and protocols

Angie Jones | Head of Developer Relations, TBD | @techgirl1908

@techgirl1908

the web was meant to be decentralized

@techgirl1908

we're missing an identity layer

@techgirl1908

Decentralized

Web Platform

Web2 🤝 Web3 = Web5

a new layer for the Web that enables decentralized apps and protocols

@techgirl1908

Pillars

Decentralized Identifiers

Verifiable Credentials

Decentralized Web Nodes

self-owned IDs

verification of claims

personal data stores

@techgirl1908

self-owned identifiers that enable

decentralized authorization

Decentralized Identifiers

Pillar

@techgirl1908

W3C standard

DIDs

did:example:123456789abcdefghijk

DID Method

DID Method Specific String

Scheme

@techgirl1908

string stored on a blockchain

DIDs

did:ens:some.eth

did:btcr:xyv2-xzpq-q9wa-p7t

did:web:example.com

*

@techgirl1908

DID -> DID Document

DIDs

did:ion:EiClkZMDxPKqC9c-umQfTkR8...

DID

resolves to

ipfs://.../alice/did.json

@techgirl1908

did.json

DID Document

{
  "@context": "https://www.w3.org/ns/did/v1",
  "id": "did:ion:EiClkZMDxPKqC9c-umQfTkR8",
  "verificationMethod": [
    {
      "id": "did:ion:EiClkZMDxPKqC9c-umQfTkR8",
      "type": "Secp256k1VerificationKey2018",
      "controller": "did:ion:EiClkZMDxPKqC9c-umQfTkR8"
    }
  ],
  "authentication": ["did:ion:EiClkZMDxPKqC9c-umQfTkR8"]
}

@techgirl1908

tamper-evident credentials that cryptographically verify a claim

Verifiable Credentials

Pillar

@techgirl1908

issuer: did:example:acme
subject: did:example:alice
claims:
    name: Alice Smith

    salary: $120,000
+ issuer’s digital signature

Verifiable Credential

Acme

issues

to

Alice

Alice applies for a loan

issuer: did:example:acme
subject: did:example:alice
claims:
    name: Alice Smith

    salary: $120,000
+ issuer’s digital signature

Acme

to

Alice

issuer: did:example:acme
subject: did:example:alice
claims:
    name: Alice Smith

    salary: $120,000
+ issuer’s digital signature

issues

Verifiable Credential

Alice applies for a loan

@techgirl1908

issuer: did:example:acme
subject: did:example:alice
claims:
    name: Alice Smith

    salary: $120,000
+ issuer’s digital signature

Acme

to

Alice

Alice

provides

issuer: did:example:acme
subject: did:example:alice
claims:
    name: Alice Smith

    salary: $120,000

+ issuer’s digital signature

+ subject’s digital signature

Verifiable Credential

to

Lender

issues

Verifiable Credential

Alice applies for a loan

@techgirl1908

@techgirl1908

personal data stores for public and encrypted data

Decentralized Web Nodes

Pillar

@techgirl1908

Decentralized Social Media Applications

@techgirl1908

Decentralized Web Nodes

public

encrypted

@techgirl1908

data

Web App

Alice's DWN Instance

local

remote

@techgirl1908

DWA

PWA

@techgirl1908

https://example.com/u/alice/did.json

DID Document

{
  "@context": "https://www.w3.org/ns/did/v1",
  "id": "did:web:example.com:u:alice",
  "service": [{
    "id":"#dwn",
    "type": "DecentralizedWebNode",
    "serviceEndpoint": {
      "nodes": ["https://dwn.example.com", 
                "00:11:22:33:FF:EE"]
    }
  }],
  "verificationMethod": [{
     "id": "did:web:example.com:u:alice",
     "type": "Secp256k1VerificationKey2018",
     "controller": "did:web:example.com:u:alice",
     "ethereumAddress": "0xb9c5714089478a327f09197987f16f9e5d936e8a"
  }],
  "authentication": [
     "did:web:example.com:u:alice"
  ]
}

@techgirl1908

HTTP requests

Request data

POST https://dwn.example.com/
BODY {
  "requestId": "c5784162-84af-4aab-aff5-f1f8438dfc3d",
  "target": "did:example:123",
  "messages": [
    {
      "descriptor": {
        "method": "CollectionsQuery",
        "schema": "https://schema.org/SocialMediaPosting"
      }
    },
    {...}
  ]
}

@techgirl1908

structured JSON objects

Response

{
  "requestId": "c5784162-84af-4aab-aff5-f1f8438dfc3d",
  "replies": [
    {
      "messageId": "bm4vvfvsdfovsj...",
      "status": { "code": 200, "text": "OK" },
      "entries": [...]
    }
  ]
}

@techgirl1908

Provide UI and functionality to manage credentials and other data stored in DWNs

Identity Wallet

Data Management

DID Functions

Support create, update, and recovery of DIDs

Context Management

Maintain and enforce which DIDs are used with a given contact, app, or context

Credential Functions

Sign, verify, discover, and present credentials to verifying parties

DID Authorization

Perform authentication and manage authorizations

@techgirl1908

Decentralized

Web Nodes

WEB5

DWA

Verifiable Credentials

Decentralized

Identifiers

Your

App

The Stack

@techgirl1908

What's the benefit?

@techgirl1908

@techgirl1908

@techgirl1908

...but why would companies give this up?

@techgirl1908

Data is a liability

@techgirl1908

Data is a liability

@techgirl1908

You hold the world's data in your hand

@techgirl1908

GDPR Fines

2021 Amazon $823.9M
2021 WhatsApp $247M
2021 Google $165M
2021 Facebook $66M
2020 H&M $39M
2020 British Airways $26M
2020 Marriott $24.3M
2019 Google $55M

@techgirl1908

user onboarding becomes easier

@techgirl1908

Alice's DWN

Music to my ears

Tidal

Spotify

navigator.did.request({
  schema: “schema.org/MusicPlaylist”,
  data: { ... }
})
navigator.did.request({
  schema: “schema.org/MusicPlaylist”
})

@techgirl1908

Alice's DWN

Hotell me your travel plans

navigator.did.store({
  schema: “schema.org/Trip”,
  data: { ... }
})

@techgirl1908

Alice's DWN

Wholistic health

navigator.did.store({
  schema: “schema.org/Patient”,
  data: { ... }
})

Alice's PCP

Alice's GYN

Alice's FAAD

@techgirl1908

but what about...

@techgirl1908

self custody is hard

Key Management

@techgirl1908

how do we prevent abuse?

Data Usage

@techgirl1908

apps need to speak the same language

Interoperability

@techgirl1908

tbd.website

It's still TBD