Recently, digital civilians think that privacy is more important than before, especially blockchain users. However, when it comes to authentication, some sensitive information might be breached unavoidably. Therefore, we suggest a digital identity contract trying to solve the problem. With ChainLink's infrastructure, we can let developers to resolve DID and verify credentials in smart contracts on-chain, and users can approve the DID request off-chain.
What it does
The demo simply show we provide a ChainLINK node to run the jobs request from a sample ChainLinkClient request contract called, DIDrequest.sol. We can resolve any DID and parsing the DID documentation in return.
How we built it
We searched and analyzed providers of DID and build nodes and contracts to let users link their identities to the Ethereum. With ChainLINK's infrastructures, we can provide a secure and auditable way that combines existed services and blockchain's utility to protect users' privacy.
We did try to provide an external adapter to get DID resolved from a universal DID resolver through the bridge on our node. But HttpPost encounter a problem that we can POST with any payload. So we turn out to use Get API direct to call universal resolver directly from the smart contract via ChainLink protocol.
We also build a ChainLINK node to serve as a Oracle. we register our node to market.link and verified successfully.
During the hackathon period, we also provide our own universal DID resolver from open source.
What we learned
- Learn about what is the decentralized oracle and its architecture. Especially how to use ChainLINK protocol.
- Learn about developing solidity contracts with Rimex and how to develop a ChainLINK client request contract.
- Learn how to build an external adapter using serverless hosting on scaleway.com
- Learn what is DID and how to create DID account and how to issue a DID claim and verify credentials.
- and many many more...
What's next for DID resolver
Eventually, we want to provide a DID oracle service using ChainLINK protocol and hosting a complete DID solutions for auth and credentials on blockchain for smart contracts users.
We found 2 issues on ChainLINK. I had posted one on stackoverflow and the other is that we need more then 32 bytes of data to return a full DID documentation. So far, we can only get a DID id back from the oracle as in the demo on Youtube.
Hopefully we can keep this project on going after these 2 issues are resolved.