Skip to content

DCQL - can a verifier request selectively disclosable fields that may or may not be present in the VC #688

@MattiasLass

Description

@MattiasLass

Can a DCQL query be constructed for the following scenario?

  • An mdoc document type with around 50-ish data elements out of which around 40 are optional (issuers may or may not include them in the VC).
  • This document type is used by tens of different issuers. Each issuer could use a different combination of optional fields.
  • Furthermore, even within one issuer different combinations could be used depending on what data on the holder of the document the issuer has available. This is all to say that there are essentially unlimited amount of combinations - a combinatorial blowout.
  • The verifiers need to request all the data that the holder has available.

Based on section 6.4.1 the answer seems to be no. Am I correct or have I overlooked something?

  • If the verifier provides no claims query, then the wallet must not present any data as all data elements in mdoc format seem to be selectively disclosable. Specification states: "The Wallet MUST return only the claims that are mandatory to present"
  • If verifier adds all data elements to the claims query the wallet can only respond if it has all the claims available: "If the Wallet cannot deliver all claims requested by the Verifier according to these rules, it MUST NOT return the respective Credential."
  • One idea on how to solve this would be to add different combinations of claims_sets to the query ordering them by the amount of information requested. However, this idea is not workable due to the combinatorial blowout

While the scenario I've described here is quite specific, if my assumptions are correct, it seems to point to larger issue that DCQL does not work well with optional data if those fields are selectively disclosable. In previous drafts, I believe, it was possible to request credentials solely by doctype/namespace.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions