2023-11-13 AnonCreds Working Group Meeting

2023-11-13 AnonCreds Working Group Meeting

Summary

  • PRs to the AnonCreds specification – checklist for completion

  • Project Update/Discussion: AnonCreds v1.0 in the W3C Verifiable Credentials Data Model Standard format

  • Update on AnonCreds v2.0 Work

  • Open Discussion

Call Link: https://zoom.us/j/97954159540?pwd=WWk3WmQ3MVh1SXBYZGVreGl0QllGdz09

Recording: 

 

Notices: 

This specification creating group operates under the Linux Foundation Community Specification License v1.0.

Hyperledger is committed to creating a safe and welcoming

community for all. For more information

please visit the Hyperledger Code of Conduct.

Hyperledger is committed to creating a safe and welcoming

community for all. For more information

please visit the Hyperledger Code of Conduct.

Meeting Attendees

@Stephen Curran (BC Gov / Cloud Compass Computing Inc.) <swcurran@cloudcompass.ca>

@Steve McCown (Anonyome Labs) <smccown@anonyome.com>

@Artem Ivanov (DSR Corporation) <artem.ivanov@dsr-corporation.com>

 

 

Related Repositories:

Meeting Preliminaries:

  • Welcome and Introductions

  • Announcements:

    • anoncreds-clsignatures-rs 

  • Any updates to the Agenda?

Agenda

Open Issues

  • PRs to Review

  • Design and planning – AnonCreds v1.0 in the W3C Verifiable Credentials Data Model Standard format

    • The BC Gov Code With Us on AnonCreds Rust – https://marketplace.digital.gov.bc.ca/opportunities/code-with-us/d81f1bb4-4abb-4a4c-8b19-92904e0bd6a6

    • PR with a starting point for discussing the design: https://github.com/hyperledger/anoncreds-rs/pull/266

      • Questions Raised:

        • JSON-LD processing on the contexts?

          • No

        • Identifier within the CredentialSubject ?

          • No

        • Nested JSON and Arrays in AnonCreds credentials.

          • Not supported

        • Encoding scheme – move into AnonCreds or leave for the issuer?

          • Leave

        • Time of Day for the `IssuanceDate` field - random? Zeroed?

        • Use of the term "Data Integrity Proof" to differentiate AnonCreds and non-AnonCreds Data Integrity Proofs.

        • Simple vs. complex/size efficient encoding of the proof data into a single "proof" JSON item?

          • TBD – start simple

        • "mapping" of source VC attributes/predicates to the presentation request.

        • Using other than the AnonCreds presentation request model

          • No

        • Support in the AnonCreds library for signing W3C VC/VP Format Data Integrity Proofs with other Proof Types.

          • No

          • There might be some "devil in the details" in this. Do we have to add extra values (notably issuer ) to have a second signature?

        • Altering the format/Data Model of the Credential Offer and Request format.

          • No

        • Proposed AnonCreds library API changes.

          • For others to review

        • Using AnonCreds W3C format with OpenID4VCs.  Can OpenID4VCs support the necessary Offer-Request-Issuer flow?

          • TBD

    • Downstream Code With Us opportunities for Aries Cloud Agent Python and Aries Framework JavaScript

  • Update on AnonCreds v2.0 Work

    • Updated README - PR

    • List of "To Do" Issues

    • ALLOSAUR

      • Question: Can someone that sees the data sent to the Revocation Manager learn anything about the sender? Is the data a correlatable identifier?

        • For example, if the holder passes the request to the Revocation Manager for an update uses a proxy?

      • Answer: The proxy would not learn anything about the holder – would not get a correlatable (linkable) identifer for the holder.

      • Potential Use Case:

        • Verifier requests proof from a holder.

        • Holder requests revocation updates from the verifier, who proxies the request to a revocation manager.

        • Verifier returns the response to the holder.

        • Holder uses the response in the presentation generation process to create the non-revocation proof.

  • Open discussion

Future Calls

To Dos:

  • Issue to talking about what AnonCreds verifies and what is left to the issuer to verify.

  • Revocation Interval

    • Approach to determine if the holder used an acceptable RevRegistry – see this Issue comment

    • Who calls the AnonCreds method to get the Revocation Registry from the ledger for verification

      • Verifier or AnonCreds?

    • To set "validation" to true/false based on the RevRegEntry timestamp in relation to the revocation interval?  Presentation 

    • Key points:

      • 1. an RevRegEntry is “current” from the time it is written, to the time of the next RevRegEntry

      • 2. “within the interval” is based on when a RevRegEntry is “current” (see 1.), not its timestamp.

      • 3. AnonCreds or the Verifier (calling AnonCreds) should calculate “within interval” (using 2.) and mark verification true if the RevRegEntry used by the Prover is within the interval, else false.

        • Dangers:

          • False-Negatives: If a strict "timestamp used is between from, to" and not based on when a RevReg is "current" (per 2.), we will get "not verified" incorrectly.

          • False-Positives: If we don't do any checking of the timestamp and the interval, the holder could incorrectly use an old RevRegEntry.

      • 4. General point: AnonCreds should return both a summary (true/false) and if false, additional data about why it was false.

    • Decision – add an optional `at_from_ts` set of entries, one per NRP, that AnonCreds can use for determining if the holder_ts is within the Presentation Request interval.

Action items