encointer/personhood-oracle

integrate with KILT

Opened this issue · 0 comments

brenzi commented

Stakeholders

in KILT's vocab

  • claimer: Reputable on Encointer who wants to add a personhood credential to their DID to use a service
  • verifier Service in need for sybil-resilience
  • attester personhood oracle which bridges reputation on Encointer to a verifiable credential for your DID

Story

  1. reputable creates a wallet on KILT using sporran
  2. reputable creates a DID in sporran
  3. reputable sends a claim with reputation proofs to the personhood oracle and specifies the claimer DID on KILT to which the VC should be linked.
  4. personhood oracle attests the claim on KILT blockchain
  5. reputable authenticates vs. service with its VC and DID, without linkability to their Encointer account(s)
  6. service verifies the reputable's claim (verifiable credential) and authorizes access

Implementation

How to attest a claim on KILT

  • register new reputation commitment purpose on Encointer mainnet
  • create a CType more or less like this (the goal of the salt is to break linkability by guessing content because he hash of the CType will be committed onchain upon attesting
{
  "$schema": "http://kilt-protocol.org/draft-01/ctype#",
  "properties": {
    "uniqueness_confidence": {
      "type": "number"
    },
    "valid_until": {
      "type": "string"
      "format": "date"
    },
    "salt": {
      "type": "string"
    }
  },
  "title": "Unique Personhood",
  "type": "object",
  "$id": "kilt:ctype:<hashknownwhenregistered>"
}