Skip to content

Latest commit

 

History

History
56 lines (45 loc) · 5.42 KB

identiteit.md

File metadata and controls

56 lines (45 loc) · 5.42 KB

Identiteit

Services die met identiteit te maken hebben zijn gebaseerd op de SSI Infrastructuur. We hebben het dan vooral over de Houder van de wallet, die zijn identiteit ontleent aan de attributen of Verifiable Credentials (VCs) die in zijn wallet zitten. Maar die VCs zijn wel eerst uitgereikt door een bepaalde uitgever in het vertrouwensnetwerk. Er is dus een aantal services nodig om de uitwisseling en verificatie van VCs tot stand te brengen:

  • schemaservice (het bepalen van het formaat VC voor een bepaald gegeven)
  • uitreikservice (het uitgeven van een VC)
  • ontvangservice (QR-code scannen, communicatie tot stand brengen)
  • verificatieservice (controleren of de VC geldig is)
  • revocatieservice (VC intrekken vanuit de uitgever als er iets mis is met de VC)

Dit noemen we de verzameling SSI services en zijn via live.ledgr.nl te benaderen, in feite een API voor het doen van transacties op de (private) blockchain van Dock. De code van de SSI services staat hier.

Private blockchain

Voor de pilots van IGS hebben we een private blockchain opgezet met 3 nodes, zoals in het plaatje van het technisch ontwerp is getoond. Deze 3 nodes repliceren de transacties en data en acteren dus als een distributed ledger. Om deze op te zetten is het dus nodig om 3 (virtuele) machines in te richten conform de handleiding van Dock. De technologie is gebaseerd op Polkadot Substrate. De API van de SSI Services is in feite een wrapper om de Dock SDK, die goed is beschreven.

Schema

Het formaat van een VC kan je controleren aan de hand van een schema, een sjabloon waarbinnen een VC moet zijn opgesteld, meestal in een JSON-formaat. Hier is een voorbeeld van een email adres schema:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Email",
  "type": "object",
  "properties": {
    "credentialSubject": {
      "type": "object",
      "properties": {
        "emailAddress": {
          "type": "string",
          "format": "email"
        }
      },
      "required": [
        "emailAddress"
      ]
    }
  }
}

Voor IGS zijn verschillende schema's gedefinieerd, die in een productiefase naar de ontologie van GBI moeten worden gestandaardiseerd of via het open-regels initiatief.

Services

component (CI) Endpoint Invoer Uitvoer Doel
DID service https://live.ledgr.nl/docs#/ DID om toe te wijzen DID registratie een decentrale identiteit aanmaken via de wallet
VC uitgeefservice https://live.ledgr.nl/docs#/ ruwe opbouwwaarden van een VC VC om op te slaan in de wallet attributen verzamelen en aan een DID hangen
VC verificatieservice https://live.ledgr.nl/docs#/ een VC verificatie van een VC check of VC geldig is
VP service https://live.ledgr.nl/docs#/ een lijst VC om in de VP op te nemen een VP een selectie van VCs maken om uit te wisselen
Revocatie service https://live.ledgr.nl/docs#/ een geldig VC een ongeldig verklaard VC geldigeheid van VCs muteren door uitgever
Schema service https://live.ledgr.nl/docs#/ waarden die een W3C schema bepalen een schema waar VCs aan moeten voldoen vertrouwen krijgen in correctheid van VCs
Methode service https://live.ledgr.nl/docs#/ Aanpassen van DID met methodes zodat service endpoints gedefinieerd kunnen worden
Wallet download vanuit appstore een app op de telefoon een opslagmedium voor VCs om uit te wisselen