IPDID
Scaling Ethereum Hackathon 2021
Speed Up DID Resolution with IPFS and SKALE network
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