Closed stronk-dev closed 11 months ago
Damn @stronk-dev that was fast! :)
I would also add the delegators would not be at the mercy of an Orchestrator to call reward. They can ensure they get all their daily LPT rewards by making the reward call on behalf of the O.
I think the spirit behind the suggestion has merit and is certainly worth discussion. A couple comments:
rewardWithHint
function is not desirable, and probably a non-starter. Any existing tool, app, smart contract composition built against it would break. Instead you'd probably want to maintain the same interface, and refactor out the functionality to a helper that was called by both reward functions. Separately, I'll share some comments on the merit of O's not calling reward for themselves.
As for O's not calling reward using their own keys...
Just a couple thoughts for the longer debate.
Yeah, I agree there might be a better solution. The issue is that the original Orchestrator keystore is vulnerable for calling reward or withdrawing/unbonding/etc. Lots of orchestrators have it connected through MetaMask and permanently stored on one or multiple servers. Once the key is compromised, it's basically game over unless you're lucky enough to have Delegators switch with you to a new wallet. Luckily hacks do not happen that often, but it would be good to find a way to keep the Orchestrator keystore as cold as possible
Maybe we can take it a step further than just assigning signing power, but also having rewards accrue at a set 'primary address'. This way the original keystore would only have to be used during initial activation and setting this primary address
Yes, completely agree that addressing the security of the O key is a top priority here, rather than aiming to allow others to call reward on behalf of an O. It also seems highly achievable via some of the suggested means.
- I think it would definitely be a positive if O's could delegate signing power to another specified key within the protocol. That way the O key could be kept in cold storage offline, and it could be used only to grant and revoke power for a throwaway hot key.
This seems to be the way to go. Basically allowing an O to set a "worker" that has the same capabilities as the O itself (reward call, withdraw, adjust fees etc.) - apart from setting the worker address. This wouldn't weaken the O-Protocol bond and solve the most pressing issue: Having your O identity and delegators locked to a hot wallet.
Any estimates on how difficult that would be to implement? I feel like it shouldn't be too complex but I could be totally wrong...
Adds the function to call reward for a given orch eth address. This is useful, since a throwaway wallet could then be used to call reward, keeping the main wallet more secure
Todo: