Based on feedback from various calls and discussions, the TRQP requires an abstract data model to progress the spec and provide consistent representations throughout the specification.
This was highlighted as a core area of improvement with the specification. Last week, the conversation left off with the following high level bullets:
- The abstract data model needs to express a simple and clear way to traverse trust networks ( inter-trust ecosystem resolution )
- It was discussed that context was important, with various mentions of tuples.
- Authorization data model was an area of request of focus.
- Trust Anchors are chosen out of band
- While all trust ecosystems have intra-trust frameworks for expression, it is possible to align most ecosystems on a inter-trust expression framework.
To improve the data model, we need to understand clearly two things:
- What are the questions that need to be asked across trust registries?
- What are the responses that need to be returned across registries?
The question Does Entity X have Authorization Y, in the context of Ecosystem Governance Framework Z? is only part of the requirements for a TR.
- We also have support for a few other questions:
- https://trustoverip.github.io/tswg-trust-registry-protocol/#configuration-queries-cq-
- What is your authorizations?
- What is the EGF’s you operate under?
- What are your assurance levels?
- https://trustoverip.github.io/tswg-trust-registry-protocol/#metadata-queries-mq-
- What is your participating EGF's?
- What other registries do you recognize under what capacity?
- https://trustoverip.github.io/tswg-trust-registry-protocol/#configuration-queries-cq-
To improve our understanding, I think we need two cases. The Simple, layer case, and the more complicated multi-layer case.
Simple structure is a single trust registry with a shallow network. In this case, the Trust Registry provides an authorization to issuer to a basic credential, which the verifier looks up the authorization over the Trust Registry API endpoints via TRQP.
graph TD
TrustRegistry -->|authorizes basic credential issuance| Issuer
Issuer -->|issues credential A| Holder
Holder <-->|requests credential A| Verifier
Verifier -.->|trusts| TrustRegistry
Verifier -.->|query issuer status| TrustRegistry
In the single hop case, the verifier simply queries the trust registry and gets a response back.
sequenceDiagram
actor verifier
participant TrustRegistry
verifier -->> TrustRegistry : request
TrustRegistry -->> verifier : response
The Multi-Layer Structure involves a federation with leafs and a single anchor. The trust resolution process involves a verifier to hop N times to reach the anchor and finalize the trust decision. During this process, they will want to query the intermediate actors to determine if they can trust them. At each intermediate trust registry, the verifier will check recognized registries and finally the verifier will check the leaf structure to verifier the entry.
graph TD
Anchor -->|gives authorization to namespace| Leaf1
Anchor -->|gives sub-authorization to leaf| Leaf2
Leaf2 -->|authorizes basic credential issuance| Issuer
Issuer -->|issues credential A| Holder
Holder <-->|requests credential A| Verifier
Verifier -.->|trusts as an anchor for A credential| Anchor
Verifier -.->|query issuer status| Leaf2
Leaf2 -.->|next hop on trust query| Anchor
In the multi-hop case, the initial query then leads to n registries, to the final registry in the chain.
sequenceDiagram
autonumber
actor verifier
participant Leaf2
participant Anchor
verifier -->> Leaf2 : request entity auth and context for why Leaf2 is trustworthy
Leaf2 -->> verifier : response entity auth and egf this is operating under.
verifier -->> Anchor : request registry recognized
Anchor -->> verifier : response registry recognized


is the thing you received the thing you authorized?