Dr. Greg Bernstein
June 25th, 2024
* W3C “Invited Expert”, semi-retired, website: Grotto Networking
Every Breath You Take, The Police, 1983
Every breath you take and every move you make
Every bond you break, every step you take,
I’ll be watching you
Frequently mistaken for a love song, really about a stalker
Verifier-Verifier Collusion
Verifier-Issuer Collusion
Verifier - Third Party Collusion
See BBS VC Privacy Considerations
From Official Journal of the European Union, April 2024.
(a)
not allow providers of electronic attestations of
attributes or any other party, after the issuance of the attestation of
attributes, to obtain data that allows transactions or user behaviour to
be tracked, linked or correlated, or knowledge of transactions or user
behaviour to be otherwise obtained, unless explicitly authorised by the
user;From Official Journal of the European Union, April 2024.
(b)
enable privacy preserving techniques which ensure
unlikeability, where the attestation of attributes does not require the
identification of the user.Don’t You (Forget About Me) by Simple Minds 1985
Is this possible?
From Wikipedia: Pseudonym
One Approach
But what if website requires some type of “proof” about you? That is requires information issued and signed by some trusted issuer => a VC
From Official Journal of the European Union, April 2024.
European Digital Identity Wallets shall enable the user, in a manner that is user-friendly, transparent, and traceable by the user, to:
(b)
generate pseudonyms and store them encrypted and
locally within the European Digital Identity Wallet;Have an issuer issue a VC to the holder under each pseudonym that the holder wants. Problems:
Create a pseudonym based on holder secret and verifier public data
The BBS proof is extended to include a zero-knowledge proof of correctness of the pseudonym value, i.e., that is correctly calculated using the (undisclosed) id of the Prover (pid), and that is “bound” to the underlying BBS signature (i.e., that the pid value is signed by the Signer).
How can we prevent the issuer from knowing the pid and hence be able to track all the holders encounters with verifiers?
How could we have the same pid be used by different issuers without revealing it?
Have the holder generate the pid and keep it secret! Huh?
From Wikipedia: Commitment Scheme
A commitment scheme is a cryptographic primitive that allows one to commit to a chosen value while keeping it hidden to others, with the ability to reveal the committed value later. Commitment schemes are designed so that a party cannot change the value or statement after they have committed to it: that is, commitment schemes are binding.
A Graduate Course in Applied Cryptography, Dan Boneh and Victor Shoup, section 8.12
From A Graduate Course in Applied Cryptography section 19.5.1
See A Graduate Course in Applied Cryptography for special soundness and HVZK.
\[\begin{array}{rcl} g^{\alpha_z}h^{\beta_z} & = & g^{\alpha_t + \alpha c}h^{\beta_t + \beta c} \\ & = & g^{\alpha_t} h^{\beta_t} \cdot (g^\alpha h^\beta)^c \\ & = & u_t \cdot u^c \end{array}\]
From Wikipedia: Blind Signatures
In cryptography a blind signature is a form of digital signature in which the content of a message is disguised (blinded) before it is signed. The resulting blind signature can be publicly verified against the original, unblinded message in the manner of a regular digital signature.
From Wikipedia: Blind Signatures
Blind signatures are typically employed in privacy-related protocols where the signer and message author are different parties. Examples include cryptographic election systems and digital cash schemes.
From BBS Blind Signatures
The BBS digital signature scheme can be extended to support blind signatures functionality. In a blind signatures setting, the user (called the Prover in the context of the BBS scheme) will request a signature on a list of messages, without revealing those messages to the Signer (who can optionally also include messages of their choosing to the signature).
From BBS Blind Signatures
In the BBS scheme, knowledge of a valid signature allows generation of BBS proofs. As a result, a signature compromise can lead to impersonation of the Prover by malicious actors (especially in cases involving “long-lived” signatures, as in digital credentials applications etc.,).
Note: This is true of any currently secured VC
From BBS Blind Signatures
Using Blind BBS Signatures the Prover can commit to a secret message before issuance, guaranteeing that no one will be able to generate a valid proof without knowledge of their secret.
Note: This does not impact anonymity of holder hence Anonymous Holder Binding