Improve/Fix variable names

ZCProof was too general. pubKeyHash was actually the JoinSplit pubkey
itself.
This commit is contained in:
Ariel Gabizon
2018-06-09 20:27:07 -07:00
parent 847df81f09
commit e1a3461cc2
13 changed files with 82 additions and 81 deletions

View File

@@ -102,9 +102,9 @@ public:
}
bool verify(
const ZCProof& proof,
const PHGRProof& proof,
ProofVerifier& verifier,
const uint256& pubKeyHash,
const uint256& joinSplitPubKey,
const uint256& randomSeed,
const std::array<uint256, NumInputs>& macs,
const std::array<uint256, NumInputs>& nullifiers,
@@ -116,7 +116,7 @@ public:
try {
auto r1cs_proof = proof.to_libsnark_proof<r1cs_ppzksnark_proof<ppzksnark_ppT>>();
uint256 h_sig = this->h_sig(randomSeed, nullifiers, pubKeyHash);
uint256 h_sig = this->h_sig(randomSeed, nullifiers, joinSplitPubKey);
auto witness = joinsplit_gadget<FieldT, NumInputs, NumOutputs>::witness_map(
rt,
@@ -146,7 +146,7 @@ public:
std::array<SproutNote, NumOutputs>& out_notes,
std::array<ZCNoteEncryption::Ciphertext, NumOutputs>& out_ciphertexts,
uint256& out_ephemeralKey,
const uint256& pubKeyHash,
const uint256& joinSplitPubKey,
uint256& out_randomSeed,
std::array<uint256, NumInputs>& out_macs,
std::array<uint256, NumInputs>& out_nullifiers,
@@ -209,7 +209,7 @@ public:
out_randomSeed = random_uint256();
// Compute h_sig
uint256 h_sig = this->h_sig(out_randomSeed, out_nullifiers, pubKeyHash);
uint256 h_sig = this->h_sig(out_randomSeed, out_nullifiers, joinSplitPubKey);
// Sample phi
uint252 phi = random_uint252();
@@ -321,7 +321,7 @@ public:
}
if (!computeProof) {
return ZCProof();
return PHGRProof();
}
protoboard<FieldT> pb;
@@ -359,7 +359,7 @@ public:
throw std::runtime_error(strprintf("could not load param file at %s", pkPath));
}
return ZCProof(r1cs_ppzksnark_prover_streaming<ppzksnark_ppT>(
return PHGRProof(r1cs_ppzksnark_prover_streaming<ppzksnark_ppT>(
fh,
primary_input,
aux_input,
@@ -389,7 +389,7 @@ template<size_t NumInputs, size_t NumOutputs>
uint256 JoinSplit<NumInputs, NumOutputs>::h_sig(
const uint256& randomSeed,
const std::array<uint256, NumInputs>& nullifiers,
const uint256& pubKeyHash
const uint256& joinSplitPubKey
) {
const unsigned char personalization[crypto_generichash_blake2b_PERSONALBYTES]
= {'Z','c','a','s','h','C','o','m','p','u','t','e','h','S','i','g'};
@@ -400,7 +400,7 @@ uint256 JoinSplit<NumInputs, NumOutputs>::h_sig(
block.insert(block.end(), nullifiers[i].begin(), nullifiers[i].end());
}
block.insert(block.end(), pubKeyHash.begin(), pubKeyHash.end());
block.insert(block.end(), joinSplitPubKey.begin(), joinSplitPubKey.end());
uint256 output;

View File

@@ -21,7 +21,7 @@ static constexpr size_t GROTH_PROOF_SIZE = (
48); // π_C
typedef std::array<unsigned char, GROTH_PROOF_SIZE> GrothProof;
typedef boost::variant<ZCProof, GrothProof> SproutProof;
typedef boost::variant<PHGRProof, GrothProof> SproutProof;
class JSInput {
public:
@@ -64,9 +64,10 @@ public:
static uint256 h_sig(const uint256& randomSeed,
const std::array<uint256, NumInputs>& nullifiers,
const uint256& pubKeyHash
const uint256& joinSplitPubKey
);
// Compute nullifiers, macs, note commitments & encryptions, and SNARK proof
virtual SproutProof prove(
bool makeGrothProof,
const std::array<JSInput, NumInputs>& inputs,
@@ -74,7 +75,7 @@ public:
std::array<SproutNote, NumOutputs>& out_notes,
std::array<ZCNoteEncryption::Ciphertext, NumOutputs>& out_ciphertexts,
uint256& out_ephemeralKey,
const uint256& pubKeyHash,
const uint256& joinSplitPubKey,
uint256& out_randomSeed,
std::array<uint256, NumInputs>& out_hmacs,
std::array<uint256, NumInputs>& out_nullifiers,
@@ -90,9 +91,9 @@ public:
) = 0;
virtual bool verify(
const ZCProof& proof,
const PHGRProof& proof,
ProofVerifier& verifier,
const uint256& pubKeyHash,
const uint256& joinSplitPubKey,
const uint256& randomSeed,
const std::array<uint256, NumInputs>& hmacs,
const std::array<uint256, NumInputs>& nullifiers,

View File

@@ -171,7 +171,7 @@ curve_G2 CompressedG2::to_libsnark_g2() const
}
template<>
ZCProof::ZCProof(const r1cs_ppzksnark_proof<curve_pp> &proof)
PHGRProof::PHGRProof(const r1cs_ppzksnark_proof<curve_pp> &proof)
{
g_A = CompressedG1(proof.g_A.g);
g_A_prime = CompressedG1(proof.g_A.h);
@@ -184,7 +184,7 @@ ZCProof::ZCProof(const r1cs_ppzksnark_proof<curve_pp> &proof)
}
template<>
r1cs_ppzksnark_proof<curve_pp> ZCProof::to_libsnark_proof() const
r1cs_ppzksnark_proof<curve_pp> PHGRProof::to_libsnark_proof() const
{
r1cs_ppzksnark_proof<curve_pp> proof;
@@ -200,9 +200,9 @@ r1cs_ppzksnark_proof<curve_pp> ZCProof::to_libsnark_proof() const
return proof;
}
ZCProof ZCProof::random_invalid()
PHGRProof PHGRProof::random_invalid()
{
ZCProof p;
PHGRProof p;
p.g_A = curve_G1::random_element();
p.g_A_prime = curve_G1::random_element();
p.g_B = curve_G2::random_element();

View File

@@ -176,7 +176,7 @@ public:
};
// Compressed zkSNARK proof
class ZCProof {
class PHGRProof {
private:
CompressedG1 g_A;
CompressedG1 g_A_prime;
@@ -188,18 +188,18 @@ private:
CompressedG1 g_H;
public:
ZCProof() : g_A(), g_A_prime(), g_B(), g_B_prime(), g_C(), g_C_prime(), g_K(), g_H() { }
PHGRProof() : g_A(), g_A_prime(), g_B(), g_B_prime(), g_C(), g_C_prime(), g_K(), g_H() { }
// Produces a compressed proof using a libsnark zkSNARK proof
template<typename libsnark_proof>
ZCProof(const libsnark_proof& proof);
PHGRProof(const libsnark_proof& proof);
// Produces a libsnark zkSNARK proof out of this proof,
// or throws an exception if it is invalid.
template<typename libsnark_proof>
libsnark_proof to_libsnark_proof() const;
static ZCProof random_invalid();
static PHGRProof random_invalid();
ADD_SERIALIZE_METHODS;
@@ -215,7 +215,7 @@ public:
READWRITE(g_H);
}
friend bool operator==(const ZCProof& a, const ZCProof& b)
friend bool operator==(const PHGRProof& a, const PHGRProof& b)
{
return (
a.g_A == b.g_A &&
@@ -229,7 +229,7 @@ public:
);
}
friend bool operator!=(const ZCProof& a, const ZCProof& b)
friend bool operator!=(const PHGRProof& a, const PHGRProof& b)
{
return !(a == b);
}