15C/ BBS + predicate proofs. / Dan Y.

From IIW

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.