Switch to gYFI time weighted voting power distribution

Could you speak to why you feel this way? I don’t get the decaying weight argument– in my mind, it makes sense that if you’re committing to lock up your YFI the weight of your vote should stay the same throughout the whole period.

We are still evaluating the technical feasibility before moving to YIP phase.

7 Likes

The idea behind this proposal for me is to deter vote buying. While not impossible, it can become increasingly expensive to buy meaningful votes by enforcing a time weighted solution.

That being said, 365 days is just an arbitrary length of time. There is no evidence that 180 days would not allow the same level of protection. We don’t know. At some unknown point in time we are no longer thwarting evil vote buyers and just mostly rewarding long standing governance pool participants.

I don’t believe in rewarding longer term governance pool participants unless it’s to deter vote buying. Therefore a log curve to reward time makes sense and is a yes vote for me while a linear line is a no.

2 Likes

Would using a log curve encourage higher token velocity though? YFI out of gov and into misc staking pools / YFI vault and back into gov to refresh the rate they’d receive gYFI

We should not be debating if we should use a log curve but how steep of one to use. The correct formula finds the balance between protection against vote buying and protection against vote camping. This will also help get enough votes for the proposal to pass as many current no voters share my concern.

A logarithmic curve is a compromise that will make the most people happy.

2 Likes

You could still use a linear formula but add a cap on voting power.

Don’t like this. I am ok with rewards to those who lock longer but YFI should still be allowed to be used. Going from YFI to gYFI is most likely a taxable transaction.

*EDIT - if this works like veCRV I think it’s ok. “Lock” your YFI and receive gYFI which isn’t transferrable and decays.

2 Likes

You could issue gYFI to existing YFI holders. Would that help with the tax situation you are concerned about?

If it was an “actual” 0 value token that couldn’t be transferred then I think it would be ok. As long as you’re just depositing your YFI but still technically owning it, and the gYFI is more just used as a record keeper and cannot be moved/traded on secondary markets. I guess this would be similar to veCRV?

1 Like

Yes, a 0 value token used exclusively as a tracker (like veCRV) would work on the tax concerns. There are probably other ways to eliminate or reduce tax obligations. For example, consider if a gYFI token were distributed to holders of YFI; gYFI were designed for governance (and potentially a small reward); and YFI continued to be designed for obtaining a share of the system fees.

This would effectively split governance from fee collection, which seems odd. But: if distributed to existing YFI holders, would not have any affect on those holders’ governance or share of fees unless and until those holders decided to sell one or the other of the tokens. Over time, this would leave those with interest in governance with gYFI tokens and those with interest in collecting fees with YFI tokens (there is nothing preventing someone from holding both). Then YFI tokens could be used as collateral without putting governance at risk (since only gYFI tokens would vote). I wonder whether gYFI holders would have any reason to in govern in the interest of YFI holders. Those that owned both might, but we would have to consider whether we could build in incentives for gYFI holders to do that.

Again, these are just ideas for further discussion.

3 Likes

I don’t think I made this clear earlier, but I think we can get most of the benefits by changing governance so that tokens which have been staked for longer get a stronger vote.

I think creating a new token for governance only is not necessarily the right move.

I guess it depends what we are really trying to do or prevent. Are we worried about a controlling amount of YFI being stolen from a staking contract? Are we worried about someone borrowing YFI and voting? Are we trying to encourage governance participation? Are we trying to keep YFI off the market? Something else?

Providing additional voting power and fee share for additional time staked in the governance contract (up to a cap) would provide incremental reason to keep YFI in governance. For example, we could give a weight of 1 for 1 week staked, 2 for 2 weeks, up to 10 for 10 weeks.

But if farming YFI on another platform or using YFI as collateral leads to greater yield, we should expect that at least some YFI will migrate away from governance.

We need to identify the problem before we know if the solution is likely to work. Increasing vote power based on staking time does not address all these problems. Splitting governance from economic rewards may address other problems.

4 Likes

Thanks for pointing at the issue more clearly. Yes, I agree that we need to better pinpoint the issue first; I was too hasty earlier.

I think that the immediate concern right now is people borrowing YFI to vote in ways that are harmful to the platform. I would personally also like governance staking to be the most attractive option for YFI stakers because it keeps governance strong and removes the chance of YFI being stolen from a staking contract.

I think you brought up a good point earlier in that gYFI (if minted) could lead to governance voting in a way that doesn’t necessarily benefit YFI holders. It seems a little convoluted if we split the token into governance and fee rewards, and then have to find another way to motivate the governance people to vote to also help the fee rewards people.

1 Like

Yes, I am not sure where the biggest risk is. You mention two goals that seem important – (a) preventing someone from borrowing to vote in ways that hurt the platform and (b) reducing the risk of governance being stolen from a staking contract. Those goals seem reasonable and unless others have thoughts about other goals, let’s consider ideas to address these two.

A - preventing someone from borrowing to vote in ways that hurt the platform: we cannot know all the platforms that will make borrowing YFI possible or the terms for that borrowing. We also do not know why someone would do this. Financial gain? Just to disrupt things? I suppose with greater voting power over time, it would be costly to borrow for long enough to significantly influence a vote. But if borrowing rates are low enough, maybe it is not cost prohibitive. Also, if the vote reduces the value of YFI, that would further reduce the cost to the borrower. In fact, the more harmful the vote, the lower the financial barrier to doing this.

B - reducing the risk of governance being stolen from a staking contract: if YFI is stolen from a staking contract, presumably the thief may consider selling the stolen YFI on the market. I suppose the same reasons that drive borrowing to disrupt could drive a YFI thief who was not interested in financial gain.

1 Like

Here are my analysis and some suggestions about the specification.

tl;dr

  • “Remaining lock period” at the time of casting the vote would be good for calculating the weight.

  • Weighting function is related to product strategy/vision. So hard to find an optimal solution without considering several issues around YFI.

    • Using a function like y=log(x) or y=x^(1/2) would be good for the weighting function, if there’s no cap for the weight. Linear function without a cap would be dangerous.
  • Transferrable gYFI will make vote buying a lot easier so making it untransferable seems preferable.

1. Why should we give long-term minded decision makers more power?

  • It seems unarguable. You can skip to the next part if you think so too.

  • There are a lot of ways to make a short-term profit while harming the long-term profit, especially in governance for a financial system. So, short-term guys can make selfish decisions without thinking about the whole ecosystem when they have power. But pursuing long-term profit would be beneficial for short-term profit too in many cases, though the scale could be different.

2. How can we facilitate long-term minded decisions?

  • We should make short-term profit making abusing the governance system difficult. Andre’s original idea would be the same.

  • I interpreted the suggested specification like (A), the voting power is the same within the period YFI is locked.

  • In (A), the locker can make a short-term profit by making a proposal at the end of the lock period that is profitable for them.

    • This result came from the unbalance between the “remaining lock period” and the voting power. When the voter’s YFI gets unlocked soon and they have high voting power, they can attack the system.
  • So, we should use the “remaining lock period” as a weight like (B) (let’s use a linear function for now).

    • And the voting power should be calculated at the time of the vote is cast. Then the people who stay with YFI longer have higher voting power.

3. Why 365 days? Is it capped for 1?

  • Deciding the weight function is related to yearn.finance’s product strategy. There are so many things to consider.

    • Making a cap is easy to understand, and many lockers will be saturated around the cap.
    • But the longer people stay with the ecosystem, the better decisions will be made (hopefully).
    • But the long lock period would make UX worse.
    • But… :weary:
  • So we need many suggestions from community and decision makings.

  • My suggestion is, if we don’t put a cap, using y=log(x) or y=x^(1/2) like function - which gives a bigger coefficient for a shorter period but the coefficient gets smaller as the period extends.

    • Linear weight function may give a potential attack vector, as some holders can lock a certain amount of YFI for a very long period and control the system.
    • A higher coefficient for a relatively short period motivates people to attend governance more, even though they are not planning to hold YFI for a long time.
    • This might work like quadratic voting.
  • Or, we may use an exponential function with a cap. This will make people lock YFI for the cap, and it will sound like “Hold for this period if you want to participate/a reward”.

  • Just using a linear function with a short cap also seems okay :slight_smile:

4. Should gYFI be transferable?

  • Avoiding taxable events will be better for the participation ratio.

  • Putting aside the tax part, transferable gYFI will make vote buying a lot easier with DEXs.

  • Though vote buying can be done even it is untransferable, but making friction will be necessary.

Any feedback/suggestions are welcome :+1:

8 Likes

Might be a stupid idea, but something that came to me just now: what would happen if voting power were distributed on a bell curve, one tail starting at day 0, end tail ending at day 365, the highest voting power being at day 182. Essentially voting power would start small, 1 YFI / 365, then increase up to the middle of the curve, and then decrease past the middle.

That said, for me:

  • gYFI should be non-transferable, otherwise what’s the point
  • A cap is needed
  • Early voters and those locking for a longer period should be rewarded due to the inherent risk in the protocol and for their long term faith in the protocol.
2 Likes

Great ideas from @VaultResearch @Patrick_Jane and @boatonagoat over the past several hours.

I prefer a linear weight with a cap. Maybe x/60 or x/100 with a cap at 1. It is easier to understand, incentivizes locking, but prevents vote camping and therefore allows new participants, which we likely want. I understand the log function does much of the same, but is not as straightforward. Also, linear with a cap says: spend x days here and you are just like the rest of us.

Just a side note about “locking.” We do not necessarily need to have people lock tokens, we could instead measure how long it has been staked and measure voting power from that (but allow withdrawal at any time). This seems more in line with crypto ethos as the individual has more autonomy and can always choose what to do with the token (rather than being locked into a choise that is no longer preferred).

That ties into a second point – should gYFI be transferable. If it is simply a measure of how long YFI has been locked (similar to Curve’s veCRV) then likely not. As long as YFI remains expensive, vote buying would be difficult. But if gYFI is a token, perhaps given 1:1 to all YFI holders with the intent that it be used as a voting token and YFI be used as the fee collecting token, then tranferability would be desirable. We would want new participants in governance.

Vote buying, however, could be minimized because the vote power on tranfer would be significantly less than all the other gYFI that had not been recently transferred.

A bad actor who is willing to wait for their voting power to increase can, under each of these alternatives, obtain a strong voting position even if gYFI cannot be transferred, for example by borrowing YFI, waiting for vote power to increase, prevailing on a damaging vote, and returning the YFI to the lender. The financial damage to the bad actor is small when the token can be borrowed.

1 Like

Could we also implement proof of personhood at some point to avoid bots?

See: https://twitter.com/santisiri/status/1296521018836692997?s=20

This would ensure 1 voter = 1 human identity

IDENA is one of the protocol that has this kind of implementation.

@DCinvestor @Dark @jimsox @ETH_Maximalist @dudesahn @Leo and @kazuya are having a similar conversation related to potential problems that could occur if a bad actor borrows YFI. We should consider consolidating the discussion to include everyone’s ideas.

Their discussion can be found at http://gov.yearn.fi/t/yfi-can-now-be-borrowed-to-participate-in-yearn-governance-via-aave/

Lots of interesting ideas here. I want to bring up one that I haven’t seen mentioned. What would happen if the rewards unlocked from voting were the inverse of the voting power curve. So locking your YFI for a year would give you x*365 voting power that decays linearly to prevent attacks, but your rewards would also vest linearly, starting with x*1 and ending at the max amount x*365. My math may not be working out but hopefully you get the idea.

If a big vote were to occur and voters near the end of their staking time wanted more voting weight, they could restake for a year and start their rewards vesting over from the lowest point. There may be some edge cases that would need to be considered, like if someone could unstake and then stake for a shorter time to get their rewards faster, but I assume that kind of thing could be designed for.

2 Likes