Proposal to move locked TORN from governance to a separate vault

Currently governance contracts stores user’s locked TORN together with everything else (like governance treasury) on its contract address. It’s pretty easy to make a mistake in some future proposal and accidentally spend some of those locked TORN, leading to governance being temporarily insolvent.

I think there should be a separate Vault smart contract where governance keeps all TORN locked for voting. This will also allow more flexibility, like governance being able to approve() TORN that it doesn’t yet received from vesting.

The proposal is mostly technical so I’m not sure how can we improve its chances to get quorum in voting, I expect that most users will not be interested enough to vote on it, even though they may agree that it’s the right thing to do.

4 Likes

The proposal is mostly technical so I’m not sure how can we improve its chances to get quorum in voting

It’s pretty easy to make a mistake in some future proposal and accidentally spend some of those locked TORN, leading to governance being temporarily insolvent

This potential issue seems sufficient enough to motivate active governance participants

Great Idea! :star_struck:

How about putting the TORN Governance on an Optimistic Rollup?

  • monetary values remain liquid on mainnet.
  • locked TORN governance power is on a cheap & fast coordination layer
  • ORU exit period (7 days) is similar to TORN Voting periods :cool:
  • cheap voting on a trustless infrastructure, raising community engagement.

Feeling ready to draft a full proposal to put TORN Gov on Layer-2 :+1:

2 Likes

I like this idea, optimistic rollups are quite advanced and production-ready, see SNX. Other L2’s seem quite distant (zk-rollup EVM compatibility issue, Polygon (Matic) and xDAI - too centralized IMHO).

Once governance is on a rollup, we can put the entire protocol + anonymity mining on it :wink:

1 Like

The question is how to reliably forward governance decisions from L2 to mainnet

1 Like

Good question. How about “watchtowers”? They are so light people can run it in the background of the browser (even mobile). They could check if my tx/vote has been included, if not, open a challenge on mainnet. If correct, get rewarded and the operator slashed. It’s a question of design I’d say. Been experimenting with governance on L2 for the last year now.

1 Like

Not sure I understand.

Balances of the governance contract IS the governance treasury. I don’t see the problem with that. Locked tokens (non-vested) TORN should not be spent ahead. Governance contract balance increases overtime with the unlocking. The community should write proposals accordingly. It would be a bit cleaner to have a separated contract to receive the funds but not big differences.

TORN that users lock for voting are not supposed to be “spendable”. So the proposal is to keep those funds separately from spendable funds.

1 Like

Seems like a fucking good idea and I’m gonna vote on it.

I had forgot about locked tokens from voting. Good point, this will be needed.

I would suggest making the proposal that will setup the separated vault together with the first proposal that spends DAO treasury funds.

From an implementation perspective, this vault would have a non-authed function that would pull DAOVesting.vestedAMount() - alreadyPulled TORN from the governance contract and a govOnly function that just do a ERC20 send.
I see that the beneficiary of the vesting contract can’t be changed.