15C/ BBS + predicate proofs. / Dan Y.
Session 15C
BBS+ + Predicate Proofs
Session Convener: Dan Yamamoto
Notes-taker(s):
Tags / links to resources / technology discussed, related to this session:
Verifiable credentials
BBS+ signatures
Predicate proofs
Range proofs
JSON-LD
Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps:
Quick demonstration of JSON-LD BBS+ signatures with selective disclosure and predicate proofs, https://playground.zkp-ld.org/
We can generate a range proof to indicate `“maximumAttendeeCapacity”: { “range”: [ 100, 30000 ] }` for example, to prove the maximum attendee capacity is in a range of 100-30000.
The key point is “termwise encoding” from JSON-LD data to a 1-dimensional array of integers (input of BBS+ core algorithms) for realizing predicate proofs with LDP-BBS .
Currently, range proofs only support a integer range proof; do not support split range proofs, decimal or float number range proofs at the moment
Related GitHub repositories are:
- zkp-ld/zkp-ld-playground
- zkp-ld/jsonld-bbs-signatures
- zkp-ld/bbs-signatures
- zkp-ld/bls12381-key-pair
- zkp-ld/bbs
- zkp-ld/bulletproofs_amcl
Three of them are forked from @mattrglobal, and two of them are forked from Hyperleder ursa.
There are not sufficient documentation at the moment, but a conference paper might be useful to get the idea: https://sako-lab.jp/download.php?article=ssr2022_proceedings_dan.pdf / https://ssr2022.com/slides/FormalisingLinkedDataBasedVerifiableCredentials.pdf
“Holder-binding” feature has not been implemented yet.
Are there any alternatives to BBS+?
-> possibly includes Pointcheval-Sanders signatures and Sanders redactable signatures. Sanders also published Lattice-based signatures with ZKP that might be used to implement post-quantum VCs in the future.