message: Reject non proof transaction that have empty transaction output
diff: @@ -521,6 +521,8 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, bool fChe
  CAmount nValueOut = 0;
  for (const auto& txout : tx.vout)
  {
  + if (txout.IsEmpty() && !tx.IsCoinBase() && !tx.IsCoinStake())
  + return state.DoS(100, false, REJECT_INVALID, "bad-txns-vout-empty");
  if (txout.nValue < 0)
  return state.DoS(100, false, REJECT_INVALID, "bad-txns-vout-negative");
  if (txout.nValue > MAX_MONEY)
  