-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add at-risk marker and enable passing in pid
and verifier ID
for pseudonym support from BBS spec
#127
Comments
Hi folks (@dlongley, @msporny, @brentzundel, @BasileiosKal, @RockstaYT, @dwaite, @filip26, @TallTed ), there is some additional functionality that BBS based cryptosystems could provide that is being considered for standardization in two currently individual draft documents aimed at the CFRG/IETF: I'm going to try, in what follows, to put together some scenarios for verifiable credentials that would use these to provide additional functionality and show what "hooks" would be needed to support them in the specification. Would like feedback on the desirability of any of these feature sets. Some additional helpfull references are:
Application Scenarios and FlowsThese are primarily explained using verifiable credential terminology of issuer, holder, verifier which correspond to BBS terminology of signer, prover, verifier respectively. The main question is what is the level of interest in each of these scenarios? In addition, please correct me if I got any of these wrong! I would say in general that the additional computation burden over that for regular BBS signatures is minor, i.e., the extended algorithms are very similar to what is already done in BBS. Anonymous Holder BindingThis "locks" a BBS signature to a secret value known only to the holder. This prevents an adversary that may have obtained the VC with base proof (BBS signature) from creating a VC with derived proof (BBS proof) that can verify without knowing the secret value. The holder needs to send a Blind BBS commitment with proof to the issuer. After verifying the commitment from the holder the issuer uses the Blind BBS extension to BBS to produce a signature over an unsigned document which is sent to the holder (no other information is needed if the signer_blind can be omitted). The holder with its information about the commitment, and the signature can use the BlindProofGen algorithm to generate the revealed document with derived proof. The verifier uses the regular BBS proof verification procedure without modification to verify the derived document.
Pseudonym with pid known to issuerThis allows a verifier to know that a holder it has seen before is returning via a unique pseudonym value, different verifiers cannot link a holder to its pseudonym. In this pseudonym scenario the issuer generates a secret value known as a pid (prover id) and uses it as the last BBS message when computing a BBS signature over a document. In addition to the BBS signature, the pid value must be conveyed to the holder. The holder calculates a pseudonym value based on the pid and a verifier_id. This pseudonym is used in a variant of the BBS proof generation procedure to generate a proof, i.e., a revealed document with derived proof. The pseudonym must be sent to the verifier and used when verifying the proof.
Pseudonym with hidden pidThis allows a verifier to know that a holder it has seen before is returning via a unique pseudonym, different verifiers cannot link a holder to its pseudonym, nor can the issuer track the holder across verifiers. In this pseudonym scenario the holder generates a secret value known as a pid (prover id) and generates a commitment with proof on that value which is sent to the issuer. The issuer uses a procedure similar to that for Blind signing to produce a signature (document with base proof). The holder then calculates a pseudonym value based on the pid and a verifier_id. This pseudonym is used in a variant of the BBS proof generation procedure to generate a proof, i.e., a revealed document with derived proof. The pseudonym must be sent to the verifier and used when verifying the proof.
|
I'd say we definitely want the last one which implies support for the middle one and maybe even the first. It sounds like we need a PR to the spec that will:
I don't think we need a normative statement on what the |
Here's a rough outline of what I'm planning on putting into a PR VC BBS Flows/API enhancements
Procedure Updates
|
Yes, the above looks great, let's get that PR in and we can iterate there on the minor details, but all of the high-levels look right to me. |
PR #145 has been merged, closing. |
No description provided.
The text was updated successfully, but these errors were encountered: