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
- reputable creates a wallet on KILT using sporran
- reputable creates a DID in sporran
- 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.
- personhood oracle attests the claim on KILT blockchain
- reputable authenticates vs. service with its VC and DID, without linkability to their Encointer account(s)
- service verifies the reputable's claim (verifiable credential) and authorizes access
Implementation
- 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>"
}
- create request / create a credential
- attest claim, sign the credential
- optional: regularly revoke outdated credentials
- demo credential verification (offchain. credential payload should never be onchain)