Submitted by Lambda, also found by Evo
The farm-manager contract has a static emergency unlock penalty (initialized to 2% in the deployment file deploy_mantra_dex.sh) regardless of the positions unlocking duration. However, longer unlocking durations provide significantly higher reward weight multipliers (up to 16x for 1 year lockups). This creates an economic imbalance where users are incentivized to:
This undermines the intended lockup mechanism since users can get much higher rewards while maintaining effective liquidity through emergency unlocks. The impact is that the protocols liquidity stability guarantees are weakened, as users are economically incentivized to game the system rather than maintain their intended lock periods.
Moreover, it can be profitable to open a huge position 1 second before an epoch ends and withdraw immediately (in the new epoch), which hurts real users of the system.
The key components of this issue are:
For example:
Consider this scenario:
This makes it economically optimal to always choose maximum duration and emergency unlock when needed, defeating the purpose of tiered lockup periods.
The emergency unlock penalty should scale with:
Suggested formula:
This would make emergency unlocks proportionally expensive for positions with higher weights and longer remaining durations, better aligning incentives with the protocols goals.
Alternative mitigations:
The key is ensuring the penalty properly counterbalances the increased rewards from longer lock periods.
jvr0x (MANTRA) confirmed and commented:
