uPort approach to Ethereum Identity

andres.junge@consensys.net

team@uport.me

What is identity?

Government: TAX

Corporations: Employees and Customers

Web 2.0 companies: email, Facebook Connect, Login with Google

Fintech companies: KYC

Ethereum dApps: Ethereum Address

NGOs: Valid form of verification (refugees)

uport

Identity Standards

Claims

Attestations

Credentials

Certificates

Directories

Registry

Identifiers

uport

Identity Standards

ITU X.500 family -> X.509

OpenID & OAuth

Decentralized Identity Foundation

http://identity.foundation/

uport

Identity Concepts

Identifiers -> DIDs

Claims

Source --[ claim ]--> Target

uport

How to ask for an Identity?

How to ask for / verify a Claim?

uPort

an open Identity platform built on Ethereum

uport

open uPort platform

Identity is an MNID

uport

Optional Proxy Contract

Shared registry for public claims (ERC-780)

Decentralized Public Key Infrastructure (PKI)

JWT-based messaging system

Standard flow for requesting private data

Standard format for off-chain claims

DIF compliant DID implementation

Decentralized Identity Foundation

DID: Decentralized Identifier

uport

did:[method]:[method specific identifier]

uPort DID

did:uport:2nQtiQG6Cgm1GYTBaaKAgr76uY7iSexUkqX

DID document

Public claims, Public keys, endpoints for more identity info

Resolver

uPort DID resolver

uport

contract UportRegistry {

  mapping(bytes32 => mapping(address => mapping(address => bytes32))) public registry;

  //create or update
  function set(bytes32 registrationIdentifier, address subject, bytes32 value){

      registry[registrationIdentifier][msg.sender][subject] = value;
  }
  
  function get(bytes32 registrationIdentifier, address issuer, address subject) 
                                                             constant returns(bytes32){

      return registry[registrationIdentifier][issuer][subject];

  }
  
}
did:uport:2nQtiQG6Cgm1GYTBaaKAgr76uY7iSexUkqX
resolve(did): UportRegistry.get('uPortProfileIPFS1220',mnid,mnid) -> ipfsHash

uport

uPort Layered Approach

Ethereum

Access Control Layer*

uPort Proxy (Identity)*

MNID

On-chain registry (ERC-780)

DID Document Storage (IPFS)

uPort DID Resolver

uPort PKI

Off-chain Claims

Selective Disclosure Flow

more info

uport

team@uport.me

https://github.com/uport-project

https://github.com/ethereum/EIPs/issues/780

https://developers.uport.me

one last thing...

uport

 uPort approach to Ethereum Identity

andres.junge@consensys.net

team@uport.me

uPort EthCC 2018

By Andres Junge

uPort EthCC 2018

  • 501