Governor’s solution to the Migrator Function
Many of those in the BSC & ETH defi community have expressed concern over the existence of a migrator function in our code. The migrator function is a notorious “back-door” that exists in the Masterchef contract that has resulted in numerous rug-pull in the past. For instance, the PopcornSwap rug-pull. This was a legacy feature that came from SushiSwap on Ethereum because they needed to forcibly “migrate” Uniswap LPs into their own SushiSwap LP.
Goose Finance was the first project to publicize this issue and removed the migrator backdoor. However, this requires modifying the contract. Alternatively, most other projects have reacted by implementing a Timelock solution instead of directly modifying the Masterchef’s code as it’s more straightforward to implement and provides the same effect.
A timelock is useful because it means that if a malicious developer chooses to rug-pull, the execution will at least be delayed. And if the timelock specified is long enough (say, 24 hours), it would provide sufficient time for LPs to withdraw their liquidity prior to the rug-pull happening.
In addressing this community concern, Governor is implementing a slightly different but still very similar solution to a timelock. We are transferring the Masterchef’s contract ownership to a “MasterchefProxy contract”, with the ability for us to reclaim the ownership after 14 days. The reason is that it provides us the option to migrate to a newer, potentially better, solution in the future (e.g., Gnosis multisig).
Of course, with this solution, theoretically it does allow us to reclaim ownership of the migrator function — but we will only implement this if we feel it is in the very best interest of our users and the project. Moreover any changes will of course be announced well in advance, and as an LP if you do not agree in the actions we take, you will have plenty of time and notice to remove your liquidity in an orderly manner.
In conclusion, we have heard the concerns of the BSC & ETH defi community loud and clear and have implemented a solution we feel addresses the well-known migrator function problem. Now we look forward to continuing our journey of making the best product possible for our users and working through our roadmap!