diff --git a/src/evo/specialtx_validation.cpp b/src/evo/specialtx_validation.cpp index 0c3f1ee6fbb2db..6491fbb37dbf10 100644 --- a/src/evo/specialtx_validation.cpp +++ b/src/evo/specialtx_validation.cpp @@ -244,6 +244,9 @@ static bool CheckProRegTx(const CTransaction& tx, const CBlockIndex* pindexPrev, if (pl.shieldCollateral.bindingSig.size() != (*txMut.sapData).bindingSig.size()) { return state.DoS(100, false, REJECT_INVALID, "bad-protx-bindingSig-len"); } + if (pl.shieldCollateral.output.nValue != Params().GetConsensus().nMNCollateralAmt) { + return state.DoS(100, false, REJECT_INVALID, "bad-protx-proofCollateralOutput-amt"); + } std::copy(pl.shieldCollateral.bindingSig.begin(), pl.shieldCollateral.bindingSig.end(), (*txMut.sapData).bindingSig.begin()); // Check that the proof is valid