Quasi-commutative accumulators have the following property:
h(h(acc, x), y) = h(h(acc, y), x)
where acc is the accumulated value. In general, these can be used to build zero-knowledge sets (rather than zero-knowledge ordered sets like Merkle Trees).
One possible idea for a ZKP-friendly quasi-commutative accumulator is just elliptic-curve scalar multiplication:
x * (y * G) = y * (x * G)
where G is the accumulated value. The proof protocol for this accumulator is the following:
In order to generate the proof for a given item, someone with access to all the items multiplies all the items except the one they want to prove into one (secret) witness.
Quasi-commutative accumulators have the following property:
where
acc
is the accumulated value. In general, these can be used to build zero-knowledge sets (rather than zero-knowledge ordered sets like Merkle Trees).One possible idea for a ZKP-friendly quasi-commutative accumulator is just elliptic-curve scalar multiplication:
where
G
is the accumulated value. The proof protocol for this accumulator is the following:In order to generate the proof for a given item, someone with access to all the items multiplies all the items except the one they want to prove into one (secret) witness.