Improvement Proposal: Multi-Sig Protection Mechanism for All Staked Assets on the Platform
A few days ago, several of my wallets were compromised and drained (turnout my seed phrase was leaked and I still dont know how).
I managed to rescue my GMX assets, but it came at an unpleasant price. With this message, I would like to initiate a discussion regarding potential changes and improvements to the staking mechanism on the GMX platform, so that anyone finding themselves in a similar situation in the future would feel significantly better than what I had to go through.
I have a specific proposal for such an improvement, though others might have interesting alternative ideas as well.
My proposal is to implement an optional multi-sig protection mechanism for GMX staking positions. This would apply to both regular GMX staking and LP positions.
I will skip the granular details for now, as they can be finalized closer to implementation and do not alter the core concept. The essence of the idea is this: upon activating the multi-sig protection mode, the user is prompted to add several of their additional addresses—similar to how Gnosis Safe works—and select a security configuration, for instance, 2-out-of-3 or 3-out-of-4, etc.
Obviously, all of these secondary addresses MUST be generated under completely different seed phrases (otherwise, the entire purpose of the mechanism is defeated). Consequently, when this protection mode is active (and again, it would be entirely optional), you cannot unstake your position or transfer your account until 2 out of 3 wallets confirm your intent by signing the withdrawal or transfer transaction.
Therefore, even if your main wallet is hacked, you won’t have to panic about your GMX position because the hacker won’t be able to do anything with it, except perhaps claim the staking rewards.
However, I would also propose discussing an option for that part as well—for example, introducing a feature where all claimed rewards are automatically routed to a different designated harvester-address specified in the parameters of this new mechanism.
That is the core idea. I hope the community supports it. I haven’t encountered such a mechanism in DeFi protocols yet, though it honestly feels like it should be standard practice for any protocol that respects its users and their security.