2024-02-19 AnonCreds Working Group Meeting -- Cancelled

Summary

  • Meeting Cancelled – Holidays in the US and Canada

Time: 7:00 Pacific / 16:00 Central Europe
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.

cifi

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>


Related Specifications and Repositories:

Meeting Preliminaries:

Agenda

  • AnonCreds in W3C Format - Status/Updates
  • Recent updates to AnonCreds RS – 0.2.0 release
    • When AnonCreds v1.0 1.0.0?
  • AnonCreds V2 ZKP Capabilities
    • Adding BBS+ to the library?
      • Extraction layer – abstracting other signatures, once done, adding BBS+ available.
    • Missing Object – revocation registry
      • Verifying key (96) and accumulator (48) – VK could be the identifier.
      • Definition - not needed
      • State - published on every accumulator update
    • How does Verifiable Encryption work?
      • Can be done by any party – need a BLS key pair - issuer, auditor, etc.
      • Issuer setup – anything? Encoding types?
        • Public key has to be published somewhere – most likely the CredDef,
        • A "message_generator" - point on the curve, like the public key – could use this to tie it down to a specific field.
      • Issue process
        • Nothing is done with VE at issuance time
        • Can be used with any claim
          • Could be used for specific values, e.g., Credit Card Number
          • But not defined apriori
          • Could use for a unique value – e.g. the revocation key
      • Verifier presentation request
        • Please give me a VE about a certain claim – reference to the two public data items (generator, pubkey), reference to attribute
      • Holder
        • Generates the encrypted value (verifiable cyphertext). Will be unique because of the nonce from the verifier.
      • Decryption process
        • Pass cyphertext (nonce, generator is embedded in cyphertext) to someone that knows the private key – decrypt to get the claim
    • Equality proofs – claims across two source verifiable credentials
      • Could be in the same credential 
      • Statement ID, List/Map of statement ID, claim ID.
      • Holder:
        • Creates a proof statement based on input of the claims
      • Verifier:
        • Verification of the proof and data
      • AnonCreds v1 aggregate – called "challenge" right now.
        • All of the proofs were generated by one holder
        • A signature over all of the proofs knew the raw data.
        • Not associated with the link secret in v1
          • In v1, there was an equality proof
        • Proofs that the data was fresh – e.g. used the same nonce in all of the proofs
          • In example – proof request ID is the nonce – everything is included in the aggregate proof signature.
    • Domain proofs (called a Commitment in V2) – consistent identifiers for a verifier – different across different verifiers
      • Issuer setup?
        • None
      • Issue process?
        • None
      • Verifier presentation request?
        • Creates two values – message and blinder generators - passed in the presentation request applied to a specific claim
        • Always use the same generators
      • Holder presentation process
        • Same as verifiable encryption – no decryption key
      • Verifier gets a consistent value from the holder
  • Question – call home for revocation
    • Does the issuer know who is calling home? No... (smile)
    • Trade-off – massive list, holder tells verifier which entry they are
    • Mitigate:
      • Get the latest state somehow.
      • Anonymous Revocation Handle Update - Call home – get me an update so I can proof a proof.
        • I have a credential.
        • Verifier to holder: Prove revoked as of this accumulator.
        • Holder to issuer: Give me an up to date witness for the accumulator – issuer does not know who is asking.
          • Holder – passes signature proof (I have a valid credential) – optional, accumulator, N shares of their element.
            • Issuer returns shares of the result. 
          • If revoked – not useful.
          • If never issued a credential – not useful.
  • Claim Schema format
    • Default encoding if no other information?  E.g. if just the name is given.
      • Dynamic encoding using AnonCreds v1 rules?  Notably: "If integer or integerString, then integer, else stringified and hashed"
    • link_secret automatically added as in AnonCreds v1?
    • Externalized set for list of set members
    • Date as ISO Date and encoded as Integer Date
    • DateTime as ISO Date and encoded as Unix Time
    • Research – what can be derived from JSON-LD information?
  • Open Discussion

To Dos:

Action items