The Living “Breathing” White Paper

The industry standard is to publish a white paper. Assess the current centralized and decentralized landscape. Describe the proposed protocol from a very high level. Start buidling.

🚢hodl. buidl. sihp! 🏗

However, the uPort protocol specification is constantly improving and evolving, which is why we removed uPort’s original white paper from the website, in favor of a “living and breathing” specification document.

uPort is nimble and ready to mingle… with other decentralized protocols!

As a developer, if you want to understand how uPort utilizes the Ethereum blockchain and other decentralized solutions, like the InterPlanetary File System (IPFS) the best place to review is our regularly updated specifications.

Again, if you have questions, please join the uPort Community Channel or add an issue to the GitHub repo.

Decentralized Technology — The Foundation

To build decentralized identity requires building atop decentralized solutions. Below is the list of specifications, libraries and protocols built by the uPort team, utilizing decentralized technologies like the Ethereum blockchain and InterPlanetary File System (IPFS) to establish scalable decentralized identity.

Decentralized Identities (DIDs)

uPort Decentralized Identity — The “smart contract” Era

IdentityManager/Proxy Smart Contracts

https://github.com/uport-project/uport-identity

uPort Decentralized Identity — The “ethr-did” Era

At the time of this writing (June 2018) the underlying uPort decentralized identity protocol is undergoing a major update.

The recently published ethr-did specification and libraries forgo the requirement for smart contracts as the on-chain anchor used in our original decentralized identity protocol specification. Using the new ethr-did protocol, creating decentralized identities is an order of magnitudes cheaper.

Now any Ethereum account (public/private key-pair) can now be considered a valid decentralized identity using the new ethr-did decentralized identity protocol at outlined in the ERC 1056 specification. It’s a big deal. BIG!

Ethereum Decentralized Identity (ethr-did)

https://github.com/uport-project/ethr-did

Ethereum Decentralized Identity Registry

https://github.com/uport-project/ethr-did-registry

JSON Web Tokens (JWT) & Resolvers

uPort and DID compliant JWT

https://github.com/uport-project/did-jwt

Generic DID Resolver

https://github.com/uport-project/did-resolver

Decentralized Identity Resolver

https://github.com/uport-project/ethr-did-resolver

DID resolver for uPort identities

https://github.com/uport-project/uport-did-resolver

DID resolver for Ethereum Addresses

https://github.com/uport-project/eth-did-resolver

Javascript Libraries

Backend Library

https://github.com/uport-project/uport-js

Frontend Library

https://github.com/uport-project/uport-connect

Modular uPort Library

https://github.com/uport-project/uport-core-js

Minimal Javascript Implementation

https://github.com/uport-project/uport-js-client

Backend Services

Push Notification Service

https://github.com/uport-project/lambda-pututu

Private Network Support

https://github.com/uport-project/lambda-olorun

Event Hub Service

https://github.com/uport-project/lambda-caleuche

Creator of Identities

https://github.com/uport-project/lambda-unnu

Transaction Funding Service

https://github.com/uport-project/lambda-sensui

The Summary

I like to describe decentralized identity as a digital verification protocol that utilizes Web 3.0 technologies to provide sybil resistant mechanisms for decentralized Internet infrastructure, built atop cryptographic primitives.

The Decentralized Identity Foundation describes DIDs as “Decentralized identities are anchored by blockchain IDs linked to zero-trust datastores that are universally discoverable”, which is also a fantastic elevator pitch.

But no matter how you break it down, building a decentralized identity platform requires crafting and maintaining a lot different building blocks, across multiple technology stacks, both centralized and decentralized.

Whether you want to learn more, contribute to Open Source code, get help from seasoned developers or simply join the decentralized identity discussion please join us the uPort Community Channel 😃today!