[Proposal] Add more validators to the committee during election #2023-01-A-001

Due to the incorrect on-chain voting setup last time, the on-chain voting for #2022-12-A-003 did not pass successfully. Thus, we are raising ta new proposal to Add more validators to the committee during election. Please take a closer look and vote on chain.

Overview

The Validator Committee is responsible for block proposing during each epoch. The current number of validators in the Committee is 30 at the moment.

Motivation

The previous MGP-0003 suggested adding 10 more spots for new validators to join which was later dequeued because of inadequate votes. The suggested spots in MGP-0003 needs to be reduced to satisfy MAPO security standard. The new MGP-0004 is going to add 5 spots for new validators to join the consensus process.

Specification

The parameter involved with the change is

   struct ElectableValidators {
        uint256 min;
        uint256 max;
    }

The function that set the change is

    function setElectableValidators(uint256 min, uint256 max) public onlyOwner returns (bool) {
        require(0 < min, "Minimum electable validators cannot be zero");
        require(min <= max, "Maximum electable validators cannot be smaller than minimum");
        require(
            min != electableValidators.min || max != electableValidators.max,
            "Electable validators not changed"
        );
        electableValidators = ElectableValidators(min, max);
        emit ElectableValidatorsSet(min, max);
        return true;
    }

The proposed change to the function is

min = 1;
max = 35;

which means that there are 45 validators elected during an epoch.

Implementation

The modification of the validator committee number will be in

Election.sol

Security Considerations

None.