message: [Consensus] Reject old message versions for CMasternodePaymentWinner
  Switch to new signatures when nBlockHeight (chainTip+10) is 20 blocks
  after enforcement. Reject old messages 6000 blocks after enforcement
  (winners are out of range after `mnodeman.CountEnabled() * 1.25`
  blocks).
diff: @@ -415,6 +415,12 @@ void CMasternodePayments::ProcessMessageMasternodePayments(CNode* pfrom, std::st
  return;
  }
  + // reject old signatures 6000 blocks after hard-fork
  + if (winner.nMessVersion != MessageVersion::MESS_VER_HASH && Params().NewSigsActive(winner.nBlockHeight - 6000)) {
  + LogPrintf("%s : nMessVersion=%d not accepted anymore at block %d", __func__, winner.nMessVersion, nHeight);
  + return;
  + }
  +
  std::string strError = "";
  if (!winner.IsValid(pfrom, strError)) {
  // if(strError != "") LogPrint("masternode","mnw - invalid message - %s\n", strError);
  @@ -465,15 +471,9 @@ std::string CMasternodePaymentWinner::GetStrMessage() const
  bool CMasternodePaymentWinner::Sign(CKey& keyMasternode, CPubKey& pubKeyMasternode)
  {
  - int nHeight;
  - {
  - LOCK(cs_main);
  - nHeight = chainActive.Height();
  - }
  -
  std::string strError = "";
  - if (Params().NewSigsActive(nHeight)) {
  + if (Params().NewSigsActive(nBlockHeight - 20)) {
  nMessVersion = MessageVersion::MESS_VER_HASH;
  uint256 hash = GetSignatureHash();
  