Skip to content
This repository has been archived by the owner on Aug 30, 2020. It is now read-only.

[PoC] Decentralized Identity SideTree protocol implementation on Substrate #27

Open
2 tasks
stiiifff opened this issue Sep 25, 2019 · 1 comment
Open
2 tasks
Labels
t-proof-of-concept Building a proof of concept w5-intense probably more than a week of work to complete x-integration integration or adaption work x-runtime About the runtime

Comments

@stiiifff
Copy link

stiiifff commented Sep 25, 2019

The SideTree protocol, developed by the Decentralized Identity Foundation, is a layer-2 protocol for anchoring and tracking DID Documents across a blockchain, a system also know as decentralized PKI network. Identifiers and PKI metadata in the protocol are expressed via the emerging Decentralized Identifiers standard, and implementations of the protocol can be codified as their own distinct DID Methods.

The central design idea involves batching multiple DID Document operations into a single blockchain transaction. This allows SideTree to inherit the immutability and verifiability guarantees of blockchain without being limited by its transaction rate.

As of today, there exist two standard implementations that anchor DID operations onto the Bitcoin (project ION) or Ethereum Blockchain (project Element).
This task involves creating an implementation of the SideTree protocol using Substrate.

Several alternative designs could be envisaged:

  • Follow the original design as a layer-2 protocol, with transaction aggregating a batch of DID operations, and mostly leveraging Substrate as an alternate chain to Ethereum. Most of the work would revolve around creating a Ledger adapter component for Substrate, to record SideTree-encoded transactions. This design could be battle-tested using Polkadot’s canary testnet, Kusama.
  • Deviate from the original design, and implement the protocol as layer-1 by leveraging Substrate’s unique features such as Runtime Modules, Offchain Workers & storage, and tuning the node for fast block time. The Substrate node would therefore act as DID resolver & DID cache, beyond simply recording DID operations on-chain.

For mentoring this issue please contact: me, @stiiifff

Happy Decentralized Identity hacking !

Proof of done

These following tasks must have been completed in order for this to be considered done:

  • Raise a PR against this Repository, adding your profile info under participants
  • Raise a PR containing fixes #27 with your submission under /submissions against this repository - this can also be a git submodule to a different open github repo.
@stiiifff stiiifff added t-proof-of-concept Building a proof of concept w5-intense probably more than a week of work to complete labels Sep 25, 2019
@cboscolo
Copy link

This is awesome! Thanks for adding this, @stiiifff!

What would be really awesome is if we could support both ION-style DIDs with its IPFS transaction approach as well as a substrate-native DID. I will help with the design.

@gnunicorn gnunicorn added x-integration integration or adaption work x-runtime About the runtime labels Sep 26, 2019
@gnunicorn gnunicorn removed their assignment Sep 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
t-proof-of-concept Building a proof of concept w5-intense probably more than a week of work to complete x-integration integration or adaption work x-runtime About the runtime
Projects
None yet
Development

No branches or pull requests

3 participants