framp / paillier-in-set-zkp

Generates a Zero Knowledge Proof that an encrypted value is in a set of known values
10 stars 6 forks source link

A more optimized set membership ZKP #2

Open pranavkirtani88 opened 5 years ago

pranavkirtani88 commented 5 years ago

Hi, The current approach is great, but if the set is large this is memory intensive. is it possible to modify this approach to be similar to ZKP in hyperledger indy, where instead of proving "a" is inside the set [a,b,c,d]. we prove that "a" is inside the accumalator a b c * d.

if you can help me with the math I can gladly contribute the code.

framp commented 5 years ago

I'm not sure that's possible with paillier and I've no idea how to do it with another :) Do you have some more info on what hyperledger indy is doing @pranavkirtani88 ? I couldn't find much about it.

My guess is that what you're trying to achieve will need a rewrite from scratch in any case

pranavkirtani88 commented 5 years ago

Yes, so I found out that Indy uses cryptographic accumulators to achieve the usecase I mentioned above. but they however still face the storage issue with something called a tails file. I have provided details on my stackexchange question here (https://crypto.stackexchange.com/questions/75716/is-it-possible-to-reduce-the-tails-file-of-accumulators-for-large-data-set) and here (https://crypto.stackexchange.com/questions/75862/zero-knowledge-proof-with-accumulators)

you are right I do need to write this from scratch, but if you are interested in collaborating, we can build one together.

framp commented 5 years ago

Very interesting stuff!

I don't have much time these days unfortunately but looking forward to see your research / proof of concept

You may want to implement range based proofs