Henlo frens,
I already put this on the governance proposals channel in Discord, but I just thought I would post it here as well for better visibility & discussion.
As we now start to use our treasury funds in a more active manner ("meta yield farming", see AIP-17), I think we also need to consider how we can organize this in the best way possible. Currently the treasury is on a 5/8 multisig with timelock which is great for security, but less great for active investing, harvesting & compounding. Every transaction requires quite a bit of cat herding and every action we want to perform will have high transactions costs. But, in order to boost the treasury funds, we will need to do regular harvesting & compounding.
An alternative to this would be to set up an allocator/proxy contract that bridges the general treasury multisig and the farming protocol. Essentially this would work as follows: the treasury allocates funds to the proxy contract, and the proxy contract deposits these funds in the farming protocol. The proxy contract also has a harvest/compounding function that anyone can call, which would basically take the funds from the farming protocol and either compound them or send them back to the treasury multisig. Obviously this needs to be set up securely and properly so that funds can only ever be compounded or returned to the treasury, but not send to third party addresses. This way the devs or active community members can call this function whenever we reach an optimal compounding point (gas will have to be paid by the user calling the function though).
I took this idea from OlympusDAO who use these proxy contracts for all their treasury farming/investments (Sushi, Aave, Convex). For inspiration you can see the contract they use for Convex here.
The only downside I see to setting things up this way is that it would require a bit of dev time which would take away from ongoing v2 work. But, on the other hand, I think it's also essential that we think about the optimal path for investing treasury funds.