2 * @file AccumulatorProofOfKnowledge.h
4 * @brief AccumulatorProofOfKnowledge class for the Zerocoin library.
6 * @author Ian Miers, Christina Garman and Matthew Green
9 * @copyright Copyright 2013 Ian Miers, Christina Garman and Matthew Green
10 * @license This project is released under the MIT license.
13 #ifndef ACCUMULATEPROOF_H_
14 #define ACCUMULATEPROOF_H_
16 namespace libzerocoin {
18 /**A prove that a value insde the commitment commitmentToCoin is in an accumulator a.
21 class AccumulatorProofOfKnowledge {
23 AccumulatorProofOfKnowledge(const AccumulatorAndProofParams* p);
25 /** Generates a proof that a commitment to a coin c was accumulated
26 * @param p Cryptographic parameters
27 * @param commitmentToCoin commitment containing the coin we want to prove is accumulated
28 * @param witness The witness to the accumulation of the coin
31 AccumulatorProofOfKnowledge(const AccumulatorAndProofParams* p, const Commitment& commitmentToCoin, const AccumulatorWitness& witness, Accumulator& a);
32 /** Verifies that a commitment c is accumulated in accumulated a
34 bool Verify(const Accumulator& a,const Bignum& valueOfCommitmentToCoin) const;
61 const AccumulatorAndProofParams* params;
63 /* Return values for proof */
90 } /* namespace libzerocoin */
91 #endif /* ACCUMULATEPROOF_H_ */