Web of Trust

You will learn here how to develop an app that interacts with the web of trust.

Table of contents

  1. Use-case "Become a member"
    1. Main scenario
    2. Detailed calls and storage items
      1. Identity creation
      2. Identity confirmation
      3. Other certifications (before entry)
      4. Identity validation
        1. Targeted distance evaluation request
  2. Staying member
    1. Renewing certs
    2. Renewing membership

Use-case "Become a member"

For more general public documentation, see become member. You will find below a technical description of what to implement in a client.

Main scenario

Eve wants to become a member. Her first certifier is Alice.

image

download UML source for this scheme

Detailed calls and storage items

Some expression used everywhere:

Identity creation

Identity creation is a sensitive step for the web of trust and the apps must make sure that the user is aware of the rules.

Identity confirmation

Confirming the identity by choosing a name is a critical part of user's life as he will never be able to change it and the name will be reserved for a long period.

Other certifications (before entry)

Identity validation

Identity is "validated" on the first time it acquires membership. Joining the web of trust requires evaluation of distance criteria and is done automatically after a positive evaluation. Since this computation is costly, it is done offchain in the distance oracle. Results are reported by validators through an inherent.

When the last certifier knows the distance rule will be ok, he can trigger distance rule evaluation in a batch call with its certification. He risks slashing of constants.distance.evaluationPrice() if the distance is actually evaluated negatively. Alternatively Eve can request distance evaluation for herself.

Targeted distance evaluation request

Staying member

As an app developer, if you manage identities, you should make sure that the user is aware of membership expiration and renews his membership in time.

Renewing certs

Certifications expire after constants.certification.validityPeriod() (number of blocks). They can be re-created after expiration, or renewed while active. There is no need to renew certification too long before expiry as it trigger the certPeriod delay.

Renewing membership

If Eve is still "alive", she has to renew her membership to stay member of the web of trust. There is no need to renew membership too long before expiry.