-
Notifications
You must be signed in to change notification settings - Fork 37
Description
I propose introducing a new term, Proven Key, and using it throughout the text. It would be defined as follows:
Cryptographic public key referenced to or contained within a proof (see (#proof-types)) in the Credential Request. A Proven Key is bound to a Credential.
The current text refers to the public keys within proof(s) in quite ambiguous and sometimes in incorrect ways. Having a defined term would clarify which key or cryptographic key material is specifically meant in each case.
One example of an incorrect statement, I believe, is the following definition of the batch_size parameter:
Integer value specifying the maximum array size for the proofs parameter in a Credential Request.
This definition seems to presume that one proof = one key bound to one credential. I think this presumption is invalid because one attestation-type proof and one jwt-type proof with an embedded key attestation can contain many keys and thus the presumption one proof can equal multiple keys bound to multiple credentials seems to be more correct. As a credential issuer, I want to communicate to the wallet the maximum number of credentials I am willing to issue in one go. To issue multiple credentials I need a certain number of distinct public keys; I am not interested in the number of proofs, per se, but the number of distinct public keys I get within or referenced by those proofs. To fix the problem in the definition of batch_size I propose the following Proven Key-based reformulation:
Integer value specifying the maximum number of Proven Keys in the proofs parameter in a Credential Request.
The pull request #640 is a proposal that contains the above two definitions as well as other reformulations to the text in order to fix the aforementioned ambiguity regarding the public keys within proof(s).