Right now, I can liquid stake, but I lose my vote. Why? Why not handle both, on chain, delegating and voting? I don’t want, say, Lido to vote for me without my input, for sure. And they aren’t doing that, so far. But I also would like to have input if I wanted to on governance. Simplest solution is to have a bunch of wallets for staking that are subdivided into parts, these get captured via a snapshot prior to the vote. Then proxy votes will determine how each subdivision votes. E.g. TOKEN gets staked for the Token Protocol, and there are governance votes occasionally, determined by stakers. STOKEN is the liquid-staked version of TOKEN provided by Liquid Staking Protocol (LSP). Every time someone wants to liquid stake 1 TOKEN, you get 1 STOKEN. Now, LSP subdivides all its intake wallet TOKEN into 100 subwallets. Someone deposits 1 TOKEN, and the contract sends 0.01 TOKEN to each subwallet. Once there are 500 TOKEN staked, each wallet has 5 TOKEN. Someone with 50 STOKEN goes to LSP, and decides to vote with his/her STOKEN. Goes to the governance page, which is basically just a page with all open votes, the vote title, Yes/No (or whatever the options are), and a link to the proposal from which one would normally directly vote. He/she says “Yes” to a proposal. Well, by the time the proposal was snapshot there were again 500 TOKEN staked (the amount that day could be more). LSP then determines (very important) exactly how much has stayed in his/her wallet since snapshot to now–the answer is all 50 STOKEN. This check of course prevents gaming the system and double dipping, but means not all STOKEN can vote (better than no voting). LSP thus determines this person has 1/10th the total staked, so it votes “Yes” with exactly 10 subwallets. Similar functionality for someone to delegate.
What do you all think?