Open pereira opened 7 years ago
1) Could you really link the first proof to the second? When you make the proof, you will query the commitments in the Path ORAM and, when you store them back, you will modify/rerandomize them. So you won't see the same c_A twice right?
2) There may be an issue with using several commitments (edges list) to represent edges of one node. You will have edges lists of different sizes. So when you need to check the edges of a node, even if you use Path ORAM, you will need different number of queries for each node. This may reveal the degree of the nodes.
Hi, Edouard, With respect to 1.: yes, this is not the same c_A, but the only thing that changes is the randomness (the exponent of g). So, this is not an issue for the attack, since the answers to the two queries ("has A called B" and "are E and F withing 2-hop distance of A") both will need to show that we are talking about c_A (or its re-randomization). And the receivers knows that the only change we make is on the exponent of g. Of course, the rerandomization step could also shuffle the bases in the commitment, but then we need to prove that this shuffle happens correctly, which sounds considerably more challenging and costly to do.
With respect to 2: Well, we seem t.o have that problem anyway: we need to at least offer a bound on the number of generators that we use in a multi-commitment, and this will potentially leak information, right? We would solve this by choosing an upper bound on the number of generators and include dummy exponents (maybe just "0") for those we do not use. So, if we have "basic" commitments (each including a single neighbor), we will just have the same issue, which we can solve in the same way: add dummy commitments. Does that sound right?
Hello,
I agree we have dummy commitments in both cases, but in the first one, we only have to store one group element, in the second one we need to store d group elements where d is the max degree admitted. Thus, for the path ORAM query, we will need to retrieve d.Z.log(n) blocks. I know this is just multiplying by a constant d and that it will not affect the efficiency asymptotically but still... I wonder if we compare it to the proof of shuffle of (c_A,c'_A) where the bases are re-randomized : I mean we do not need to re-randomize the base for each commitment retrieved during the Path ORAM query, but just for those on which we performed some proof.
Your remarks make perfect sense. It is true that we will have a relatively high cost coming from the extra ORAM accesses. We should check how to prove that generators are getting rerandomized for a Pedersen multi-commitment. Not sure of how that would work, and if we can gain anything in terms of efficiency by knowing that we just switch to randomly chosen generators. Maybe a better way to proceed would be to encode all the neighbors in a cryptographic accumulator (which has the advantage of being commutative) rather than as an ordered list in a multi-commitment.
Hi, One possibly good solution to this problem of neighbors that we want to keep unordered (so that the ordering does not leak information between proofs) would be based on the commitments to polynomials of Kate, Zaverucha and Goldberg http://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf. Roughly speaking, the idea would be: Given a set of neighbors {a_1, ..., a_n}, commit on the polynomial (x - a_1)...(x - a_n). Observe that this is order independent. The Kate et al. paper shows how to do this in such a way that the commitment is a single group element, and so that we can efficiently prove in ZK whether a value a is actually a root of the polynomial or not. The "or not" is particularly nice, because it makes it possible to prove that two numbers are not neighbors. I did not flesh everything out yet, so do not know whether it really works, but that looks promising to me.
BTW, non working solutions included:
Hi, To my understanding, the solution of Kate, Zaverucha and Goldberg works nicely and also get us rid of the dummy commitments... so let's go for it :-)
Hi all,
Has anyone read this one: http://eprint.iacr.org/2015/404.pdf Looks like it has set membership and non-membership, but I have no idea whether it's efficient or not. Cheers, Vanessa.
Hi all, Just realised that the Kate et al paper is really good anyway, so probably no great need to look at that new one I just sent. Possibly useful for intersections etc though.
Cheers, Vanessa.
Our current approach to committing on list of neighbors is something like this:
Three possible solutions to this issue:
My intuition would be to go for the simple solution that leaves us with a good flexibility in what we express, that is, the first one.