IPDID

Scaling Ethereum Hackathon 2021

 

Speed Up DID Resolution with IPFS and SKALE network

 

 

Team Members:

Frank Wang,

Eason Chen,

Ming-Der Wang

Taipei, Taiwan 🇹🇼

Accomplishment

  • To Complete a MVP of a W3C DID compliance Identification System
  • To Implement a IPDID Node CLI (inspired by IPFS)
  • To Provide both iOS and Android Demo Apps for a DID Wallet
  • To Demo a Verifiable Credential (VC) Issuer with QR codes
  • To Deploy Our Smart Contract to SKALE network
  • To Register DID Document on IPFS (block)
  • To Provide a RESTful API server for DID resolvers
  • To Have Our IPDID Method Driver on the DIF Universal Resolver
  • and so on ...

< # in 3 weeks #>

Why It Calls IPDID?

It stands for

a IPFS-based Decentralized Identifier

IPDID Follows the W3C DID Standards

did:ipdid:Qm...dbM

the DID method

a IPFS block CID v0

DID

did:ipdid:QmQy...CewXEVdbM

{
  "@context": "https://w3id.org/did/v1",
  "id": "did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM",
  "publicKey": [
    {
      "id": "did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM",
      "type": "Ed25519VerificationKey2020",
      "controller":   
        "did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM",
      "publicKeyMultibase": "zBW6drJM5ErsqLZQkZL7XAcKFaJhVK1C4bB5GviSFftuD"
    }
  ]
}

Can be resolved to a DID document for more detailed information. So that ...

So, we need some way to store and retrieve our DIDs/DID Documents

decentralized and FAST !!!

low cost, or even FREE???

IPFS

* libp2p (p2p stack)

* multiformat

* IPLD (Linked Data)

* CID v0, v1(multihashing)

* Good Documents

* Open Source

* Community

* Prizes...

SKALE

* EVM compatible

* Solidity - Smart Contract

* Fast (up to 2,000 tps per chain)

* Low Cost (0 Gas?)

* Works with Hardhat and Metamask

* Many Prizes ...

We choiced IPFS + SKALE 🔥

What We Have Done!

(during these 3 weeks)

* IPDID cli

* Universal Resolver Driver

* IPDID Wallet (iOS/Android)

* IPDID Resolver Gateway

   - DID/CID/DID documents

 distributed storages

   - a RESTful API Server

1. DID Wallet

(mobile demo App)

It can scan DID QR codes, retrieve and display detailed information of the IDs or the claims.

Develop and Deploy via  EXPO (react native)

2. IPDID CLI

Which you can use IPDID CLI to issue claims or create DIDs with QR codes.

ipdid Command

➜  ipdid --help
IPDID cli - Need to run with a ipfs node. (http://ipfs.io)

VERSION
      ipdid/0.1.1 darwin-arm64 node-v16.0.0

USAGE
      $ ipdid [COMMAND]

COMMANDS
      did    register a DID to SKALE network and IPFS (IPLD) - use pipe only
      help    display help for ipdid
      init    create a new IPDID ipfs (deprecated)
      mydid   return your current DID
      qrcode  to generate a QR-code from your context or stdin
      signer create a singer's key pair and save on ~/.ipdid_keystore.json
      vc      create a verifiable claim for a DID document

mydid sub-Command

ipdid mydid -q
did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM

click to see the how a DID is actually  resolved

A basic DID

To show on the DID Wallet

vc sub-Command

ipdid vc --who='did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM' --school='😀 Stanford University'  | ipdid did

click to see the how a DID is actually  resolved

A sample VC DID

To show on the DID Wallet

3. Distributed Storages

(IPFS blocks, a Smart Contract on SKALE network, and a RESTful API server for data sharing)

The RESTful API Server

4. DIF Universal Resolver Driver

(for IPDID DID method)

DIF Universal Resolver

  • fully support it with our IPDID DID Method: did:ipdid

To query with a DID:

did:ipdid:QmQy3t3odW3wUmJdCwbMAQTRCVjX5VrcSegNkCewXEVdbM

Result with a respective DID Document:

(as follows)

demo

demo

To issue a VC

Resolve the VC

click to install

link to API server

Q & A

Q & A

 

Team Members: Frank Wang, Eason Chen, Ming-Der Wang

Taipei, Taiwan 🇹🇼

IPDID

By Ming-der Wang

IPDID

  • 1,213