When a client generates a presentation proof 3 values can be optionally included, but I can't find intuitive documentation on how or why to use them. The values are:
I examined the sourcecode and infer that the
pseudonym is used by a hardware device, and not sure if this usage is exclusive to the prover's device, or if the usage can be expanded to more creative scenarios. I simply don't understand the value this provides.
scope is a string generated by the verifier (a.k.a. authorization target), but am unclear on how frequently it must be updated (per token or presentation) or what it should contain.
commitments attribute is very interesting since part of the source code says it's for protocol extensions, but I haven't seen any extensions take advantage of this, let alone understand how or why the protocol can be expanded. It does seem to be related to
FieldZqElements and the
This is what I found in the source code describing these variables:
committed: An ordered array of committed attribute indices.
pseudonymAttribIndex: Index of the attribute used to create a scope-exclusive pseudonym, or 0 if no pseudonym is to be presented. The index must not be part of the disclosed attributes.
gs: The pseudonym scope element, or null if no pseudonym is to be presented.
Can anyone elaborate on these 3 (and any other related variable), and how they would be used in a to-be-invented security protocol? (e-voting, limited use, x "greater than" y, etc)