From 7ad4d950a4e029be5adb0fb76f394c831e397f1e Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Tue, 22 May 2018 16:54:43 +0200 Subject: [PATCH] Reject issuances with explicit values but non-empty range proofs --- src/validation.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/validation.cpp b/src/validation.cpp index 55351d7365..cf871f7dc3 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -719,6 +719,10 @@ static bool VerifyIssuanceAmount(secp256k1_pedersen_commitment& commit, secp256k if (!MoneyRange(value.GetAmount()) || value.GetAmount() == 0) { return false; } + if (!vchRangeproof.empty()) { + return false; + } + ret = secp256k1_pedersen_commit(secp256k1_ctx_verify_amounts, &commit, explBlinds, value.GetAmount(), &gen); // The explBlinds are all 0, and the amount is not 0. So secp256k1_pedersen_commit does not fail.