Coder Social home page Coder Social logo

specs's Introduction

title index category type source
Uport Specs
3
specs
reference

uPort Specs

uPort is a platform for user centric identity and communication. The platform currently consists of our mobile app, Ethereum smart contracts and number of open protocols for signed messages and message flow.

Identities

An identity in uPort is really just someone or something that can sign data or transactions and also receive signed data about itself.

An identity has:

An identity can:

Identities created using the uPort Mobile App

Currently most uPort users manage their identities through our mobile app. Identities created today consist of an instance of the Proxy smart contract deployed on a supported Ethereum-compatible blockchain.

Request Flows

A request will typically be signed by a client app and sent to mobile app using this generic request flow:

Generic uPort Request Flow

We currently support the following flows:

Request and Response Transports

There are various ways that requests can be sent to the uPort app and how responses can be returned.

Off-chain Messages

Most request and responses are performed privately off-chain between the different parties to a flow.

Most off-chain messages consist of signed JWTs (JSON Web Tokens) as defined in RFC 7519. Signatures are verified using our simple uPort PKI (see later in this document).

On-chain Transactions

The user can sign Ethereum transactions using the mobile app.

uPort PKI

uPort implements a simple yet general purpose decentralized PKI system making it easy to create and verify off-chain JWT messages.

specs's People

Contributors

bdresser avatar c-castillo avatar coder5876 avatar friedger avatar krzysztof-jurkowski-roche avatar localredhead avatar martynasjakucionis avatar mi-xu avatar mirceanis avatar oed avatar pelle avatar rmw2 avatar simonas-notcat avatar tusurta avatar vinimartinson avatar zachferland avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

specs's Issues

Interaction with an application for the first time

The workflow of the first interaction of a user using the uport mobile app with an application like the uportlandia demo is different from the workflow of the login example
Can anyone give me the workflow for the first interaction of a user using the uport mobile app with an application

Array of either `String` or `Object` is difficult to implement in typed languages

The verified claims spec is difficult to implement in typed languages.

The verified claims requested from a user. Array of claim types or Claims Specs for self signed claims eg: ["name", {type: "email", essential: true, iss: [{did: 'did:web:uport.claims'}]}]

Having an array of either String or Object is fine in JS but is a nightmare to serialize/deserialize in typed languages.
Not only that, but the logic needed to parse the request gets more complicated and is not necessarily backwards compatible.

Since this is not widespread it may be worth using a different field for the verified claim query in the request instead of complicating the logic of existing fields and breaking current implementations.

Create ENS DID method ERC

Create a new ERC for ENS DIDs.

DID method: ens

Eg. did:ens:gnosis

Resolve the ethereum address for gnosis.eth
Treat it as an ethr did for that address

Uport for Quorum blokchain

I'm developing a donation platform based on the blockchain. I need to identify the beneficiary that can be an institution, an association, a hospital, a retirement home, a person, etc.
I study the possibility to integrate the Uport in my platform to identify the beneficiary.
So I have some questions :

1/ My platform is based on the Quorum private blockchain. So, I wonder if I can integrate Uport as an identity management solution in the Quorum network and how?

2/ In Uport, the mobile app holds the user’s keys. When a beneficiary is a person it may be logic. But When it is an organization, I cannot imagine how an organization holds its identity with a mobile. Is there any exception for an organization that replaces the use of mobile?

Clarify IPFS storage

According to the specs, when somebody whishes to resolve my uport DID, he checks the ETHR where he finds an IPFS CID, and then he is able to retreive the DID DOC that contains my public key.

However, I see everywhere in the documentation how IPFS is treated like a magic server where data is stored for free, when in fact, in order to retrieve something from IPFS, somebody has to be hosting that document.

My question is, WHO is hosting the document containing my public key?

Clarify relation between target system and DID for https method

In the current specification of the https/web method, the target system is described as the host of the domain. This means that there is a different target system for each domain.

This makes sense because the spec of DIDs does not specify anything specific about the target system. The discussion about centralized DNS is taken out of the spec of the DID method.

However, for the target system w3c-ccg.github.io

  • the method name should be something like https-w3c-ccg.github.io
  • a DID on this target system should be something like
    • did:https-w3c-ccg.github.io:0xb9c5714089478a327f09197987f16f9e5d936e8a or even
    • did:https-w3c-ccg.github.io:eth:0xb9c5714089478a327f09197987f16f9e5d936e8a

The current spec for the https method needs to be updated to clarify the relation between target system and the DID. In the current spec, there is only one single DID for each target system.

Can I integrate Uport to quorum based Dapp

I'm developing a dapp based on the Quorum blockchain.
I wonder if I can integrate Uport as an identity management solution in my private blockchain and how it can be processed

Where are the verified claims stored

I'm confused about where are the verified claims stored in the uPort solution.
According to some documents that I have read, they can be integrated into the DID Document.
Is it the case for the uPort solution? If not where is the location of these claims?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.