Whenever a delegator votes for a validator, they immediately contribute to the modification of the total delegated amount. Effectively, they also modify the share distribution between all delegators. It makes share computation very complicated and requires dynamic re-calculation of the shares for each reward distribution. This may make the entire rewards distribution process very expensive. Since we are running the staking and reward distribution models fully on-chain, we aim to realize all the computations to be optimized in smart contracts. To reach this goal, we split the staking process into epochs so that gas consumption can be reduced significantly.