Proof-of-Deposit – initial proposal and request for feedback

Morning Ying,

Thanks for the recipe. Now, where are the cookies? :wink:

I guess I should have more clear. Where can the results of the modeling be found?

What, I’m looking for is are the projections of what will happen in the best, expected, and worst case scenarios, for example: how the changes Proof of Deposit makes will affect the revenue available to Validators.

What I would also hope for is some kind of market study that might show how these changes work. Looking for the basis of why you would expect a certain number to be the best case and another number to be the worst.

1 Like

Thanks @ying_chan . Some high level additional thoughts here.

Celo Emissions
If anything, Celo’s token supply schedule is a bit more like Bitcoin’s then Ethereum. Like Bitcoin, there is i) a somewhat arbitrary schedule over which there are decreasing rates of Celo emissions, and ii) there is a fixed cap of Celo tokens.

The contrasts with Ethereum, where i) the rate of emissions (on the PoS chain) is determined by a curve that sets emissions (i.e. staking rewards). This curve is set in order to ensure there is a minimum number of validators (i.e. there are more Ether emissions if there aren’t enough validators). [By contrast, the rate of rewards on locked Celo is set to incentivise a high percentage of Celo being locked, which is a different goal that reduces the amount of Celo that is liquid on a short (<3 day) timeframe.]

In Celo (vs Ethereum) a lot of epoch rewards go to the on-chain community fund, a tiny portion goes to carbon offsets, and a significant portion goes to validator and locked Celo rewards. Quite simply:

  • With about 100 validators getting 60k cUSD each per year, this is about 6M cUSD per year in cost.
  • With 1B Celo and, very roughly, 50% locked receiving 5% rewards, that is 25M CELO annually in rewards going to locked Celo. With Celo at 3 cUSD per CELO, you can see that locked Celo rewards are much greater than validator rewards.

Note that validators do also earn a portion of transaction fees, but since network usage is low, this isn’t worth much right now (although we should be aiming for it to be!).

I’m not very expert on this, but security comes from not being able to control a significant portion of validators. (I think controlling 1/3rd of validators allows someone to stall the network.) . So I guess the logic is that by incentivising a high locking rate, that means a lot of CELO is voting, and that makes it expensive to buy the CELO needed to get a large amount of validators elected.

Celo owner behaviour
I think, as a locked Celo holder, that I’m incentivised to vote for a validator with high uptime and that is honest - because otherwise my rewards (although not my stake) can be hit.

This wouldn’t change in your proposal @ying_chan and @John.Fletcher , as I understand.

cUSD owner behaviour
In your new system, I now have an incentive to “deposit” my cUSD with one or more validators because they may pay me interest.
My incentive is to pick the validators paying the highest interest. (There doesn’t seem to be any downside to picking a bad or dishonest validator).

Validator Behaviour with Proof of Deposit
Now, the validator rewards (i.e. the ~65k cUSD paid per year) are apportioned, not evenly per validator, but according to min (Celo they have deposited with them as a percentage of the total outstanding CELO, cUSD deposited with them as a percentage of the outstanding cUSD)

In this case, I assume it makes sense for validators to start offering interest/rewards both in Celo to those who “deposit” (or would it just be the locked and voting amount that counts? I don’t understand this point yet) and also in cUSD.

In equilibrium, one would imagine that validators will pay interest up to a point where the rewards they earn, less the interest rate paid is equal to their operating costs.

Overall, this system will solve for some equilibrium interest rate for a given level of validator rewards (currently set at 65k per validator). So, one question we might ask is whether - in this new system - the rewards per validator should be increased (at the expense of either targeting a lower % of locked Celo [to reduce rewards for locked CELO] or at the expense of smaller flows to the community fund).

Right now, assuming all validator rewards went as interest to cUSD (which would not be the case), then the interest rate would be 6M / 100 M cUSD outstanding = 6%. Note that upwards pressure on CELO price wouldn’t increase these interest rates because validator rewards are denominated in cUSD at present (not in CELO).

2 Likes

Hi @Pinotio.com

It seems there is some confusion over definitions here:

This might help.

1 Like

I don’t understand how that definition addresses the concern pinotio has.

There still seems to be a perverse incentive.

Hi All, here are some notes from a call I just had with Ying and John.

cc @sep @MarkusBerlin @roman @tim @marek @rene_celo @thezviad

Broadly, I think this is the single highest leverage thing Celo could do right now to gain awareness+adaption - and I’m leaning more strongly towards recommending we implement this soon, and across all cStables from the start so we best support our mission.

What this proposal doesn’t change = Celo locking and voting

  • As a Celo holder, I’m still incentivised to lock my Celo with validators that have high uptime and that are honest. (Additionally, more on this later, there will be an incentive to lock with validators that pay the highest interest rate on Celo).
  • Locked Celo rewards would still be subject to slashing and downtime penalties as is currently the case.
  • In the new system, Celo is still the only token used for the election of validators. No change.
  • Nothing changes about voting in of validators or about consensus.

What this proposal does change = how rewards are distributed

  • Today, locked Celo rewards flow through validators (and are reduced by slashing or downtime penalties), but validators don’t earn any of these rewards. Validators just earn transaction fees and also the ~65k cUSD per validator.
  • In the proof of deposit system, validators as a whole would directly earn i) validator rewards (the 65k cUSD X # of validators) + ii) transaction rewards + iii) the rewards that currently go to locked Celo (to be clear, validators would now earn this directly, they are no longer just passing these through to locked Celo holders).
  • In the proof of deposit system, cStable holders can deposit (think of it like assigning) their cStables to validators in order to earn interest from validators. There will likely be no required locking period for these deposits (because they don’t contribute to security) so the cStables remain a currency and not a security. Depositors are incentivised to deposit with validators that pay the most interest on a given cStable. (Most likely, wallets will automatically assign deposits to validators paying the highest rates, and all validators will move to an equilibrium market interest rate for each token).
  • Validators use their (now substantially increased) earnings (as per above) to pay interest on Celo and cStables, to pay for their costs and for profits.

This pool of rewards (i - iii above) would be distributed among validators proportional to their min (% of Celo , % of cUSD, % of cEUR …). Here:

  • % Celo is how much locked Celo they have voting for them as a % of total locked;
  • % cUSD is how much cUSD they have assigned to them as a % of total deposited;
  • % cEUR is how much cEUR they have assigned to them as a % of total deposited.
  • etc. for cREAL and other cStables.

This is what incentivises validators to pay interest on cStables. This also incentivises validators to have equal amounts of each token (as a percentage of total locked/deposited across the community) locked/deposited with them.

Why this could significantly increase cUSD and other cStables outstanding
Consider cUSD, of which there is about $100M outstanding today.

Now, consider epoch rewards today of about 13M CELO per year.

If even 3M of these epoch awards ended up going towards interest on cUSD, that would be 3M x $3 per Celo = $9M in annual interest on cUSD, which would be an interest rate of about 9%.

That rate - over time - would get competed down as volume comes in. Let’s say it got competed down to 2%. That implies the outstanding volume of cUSD deposited would be about $9M / 2% = $450M. So, cUSD outstanding would go up 4.5X .

However, as people buy in to cUSD, this requires CELO, so there should be upwards pressure on CELO. This increases the value of epoch rewards, which increases the rate of interest paid. So the increase in cUSD demand could be greater. Of course, this logic applies in reverse as well, so if CELO price drops, there is less money to pay interest - more on that later in the “Crypto Crash” section.

A thought on the efficiency of staking rewards
Lots of protocols pay staking rewards (Ethereum PoS, Cardano etc.). Rates are around 5-7% - like Celo. To a large degree, the rate doesn’t matter much though. You own Celo or Ethereum because you think it will 10X or 100X, not because of the 5% yield. So, one can argue that Celo spending lots of epoch rewards to incentivise locking is not very efficient. In other words, locking is - particularly for a smaller protocol - quite inelastic. People lock if the rate is positive but they don’t change behaviour much if the rate is 3% versus 8% on Celo.

Rather than direct all rewards towards locking of Celo, it’s interesting to think about having a portion directed towards establishing risk free interest rates on cStables (as this proposal does). If we think about financial inclusion and emerging markets, it seems a lot more practical to offer people a “risk-free” savings rate on cStables then to have them understand the complexities of owning Celo and locking that.

Crypto Crash
A key scenario to think about is what happens when there is a crypto market crash in which Celo price crashes too. Obviously this reduces the interest that can be paid (under this new system) to cStables.

However, we know that in a crypto market crash, money moves into stables. In TradFi, when stocks crash, the money moves to bonds. In crypto, when prices crash, money largely moves out into fiat (and some moves into Tether) - which is crushing for protocols. To the extent we can have solid cStables that offer some yield (even if that yield declines in a crypto crash), we can keep funds within the Celo ecosystem rather than have it leave during a crash.

I hope there can be some deep consideration and action on this during Celo Connect to either find a fatal flaw or to push this through a CGP.

5 Likes

This penalty remains, yes?

From a user perspective, researching and ‘voting’ for a validator seems very, very, problematic to me on a currency that I’m hopefully going to be using to buy groceries and pay rent with, that I’m holding as dry powder ready to invest with.

It puts the user of cUSD in the position of having to regularly and constantly keep up with the reward rates available, the go through the process of choosing that validator in Valora and doing the Valora approval or maybe even having to switch wallets…

Seriously, would anyone here really do that work once a week or even once a month for your interest bearing checking account at the bank where you keep your fiat money?

If I, as a retail user, was expected to do that much work I’d probably be looking for a new bank.

Do you really think that work-a-day person in Columbia or the Phillipeans or Eastern Utah has the time or will or understanding to vote on this stuff.

Complexity is a bane and this looks like it’s going to be complex to use for non-nerds.

I really do see this as a fatal flaw.

I fully agree that if Celo’s stable coins paid interest there would be much greater demand. This is a truly worthwhile goal.

I do think though that the use case must be truly simple to be marketable and gain acceptance.

It should not take investment research and maintenance to run an electronic interest bearing checking account.

So, where’s the supporting data for this?

To me it seems like a fair number of assumptions and suppositions are being made without much testing/piloting of the idea.

I asked above for the results of any modeling and that hasn’t been put forward.

I’m going to quote from the other thread where I’ve been conversing with John and Ying.

I’d like to see this go 14 or 40 years.

There are other ways to provide interest to the stable coin holders.

2 Likes

Thanks @markbarendt

Slashing
Slashing and downtime penalties remain in place on Celo rewards. Yes.

Easy for Users
You are right that this needs to be simple for the user, and this is allowed for by the proposal. Wallets will automatically be able to assign cStables to the validators paying the highest interest rate. From the user’s perspective, this will be like a checking/savings account. They just deposit funds to their wallet, earn interest, and spend when needed. They don’t need to think about voting. This automation does not pose a security risk because cStables assignments/deposits have no impact on validator election.

Efficiency of staking
My wording was perhaps too strong, but I think it’s worth questioning the efficiency of how rewards currently go primarily to locked Celo instead of to cStables. And, I see an opportunity from this consideration.

One piece of empirical data you can look at is how the percentage of locked celo has changed (or not changed much) since we had a CGP that tied the rewards rate to the percentage locked.

Modelling
I disagree with the need for detailled modelling here. When it comes to complex systems, having complex models often leads to overconfidence in the results.

Rather, I advocate simple analysis on a scenario basis (e.g. what happens in a crypto crash OR what happens if 3M Celo goes to cUSD OR what happens if someone tries to attack by doing X).

If you have some further scenarios, please do suggest them and we can think about them. This is an excellent way to think about robustness.

Prosperity for All
I think we are aiming to evolve protocol incentives so that we have the right short term incentives to drive adoption, while also having a system that will be sustainable in the long run.

Other ways to provide interest
The other ways I can think of are:

  1. Valora supercharge - this has the drawback that it’s not credible it can be sustained.
  2. Directly assigning epoch rewards to cStables (e.g. let’s direct 3M Celo to stables each year). The problem here is that there isn’t a good market mechanism for setting interest rates. We would be manually guessing what the right equilibrium rates should be for cUSD, cEUR, cREAL etc. It’s very hard to see how we could get this right.

Proof of Deposit provides a market based mechanism for providing interest, and it should be sustainable because the interest rate comes from validators via what currently are validator + locked Celo + transaction fees . Epoch rewards will continue for quite a while, and after that, if the network is successful, transaction fees should be meaningful.

It’s worth noting that right now we are “guessing” what the market rate for paying validators should be (65k cUSD). Proof of Deposit also solves this problem because it turns being a validator into being market based where Validator profit = Rewards minus operating costs minus interest payments.

Could you lay out some other ways that we could pay interest on cStables along with their pros and cons? I’m open to finding better ways because I agree with you that having a deposit rate (with easy user experience) could help us achieve community goals. Cheers.

2 Likes

I still see the interest rate considerations as a perverse incentive, that risk may be worth taking but I’m not truly sold on that.

As to simplicity from a user perspective I would hope for absolutely no interaction needed at the users end.

On my way to work so my responses will filter in.

How is the staking rate set, is it somehow more or less discretionary also?

In my case, if the staking rewards decline, I will naturally adapt and that change will incentivize me to stake less and trade more. Put differently, bluntly, I would be less loyal and chase the 50x more.

As to adoption, yes having interest paid to all stable holders would be a great hook.

That’s not the big problem with adoption though, truly easy on and off ramps are. As seen with supercharge at Valora, reward rates aren’t a magic bullet that fixes the platform access problem.

My thought here is that if Celo wants to replace banks, it needs to act more like people expect banks to act.

Another option for providing interest to stable holders is using the Celo reserves to generate income that allows interest to be paid. That’s the essence of how banks make money.

It not as easy as a software change but with real world assets creating income in the reserve it adds to the strength of the reserve and disconnects Celo more and more from the crypto crash risk.

This more conventional fix could be implemented with infinitesimal risk by comparison.

2 Likes

In the new approach, validators will decide what rate to pay on locked Celo that votes for them. Of course, they are limited in what they can pay by the amount of block rewards.

The equilibrium rate paid to locked Celo would be market determined. It may be higher, lower or the same as at present.

1 Like

So staking should rise and fall based on how well it pays.

For me this adds yet another wildcard to the mix and this one could significantly impact the security of the whole system.

The lack of data provides me great pause too.

Given the intent described in the other thread, where the hope is to prove that interest can be generate in this manner to develop a product to serve as a CBDC I worry the deeper I get here that the Celo main net could be being used as an acedemic test bed.

The other thing that bothers me is the rush to get this done.

I am unconvinced that Proof of deposit is the Best choice going forward.I think there’s a fair amount of work that needs to be done before that decision gets made.

2 Likes

This is a really interesting and well thought out proposal. What I agree with the most is the identification of the hurdles in the way of cUSD mass adoption. An approach to offer the conventional risks/rewards as present in the FIAT world could potentially bring more adoption. I think it could be an interesting experiment at the least.

Also as attractive as the yield offered on Anchor is, I too agree it is unsustainable and investors will be looking for alternatives in the near future. That would be a large chunk of potential users to be targeted.

3 Likes

hey Proof-of-Deposit team, great to see your proposal on the forum :slight_smile: as you know at cLabs we are also working on new primitives to enable the use of yield on Celo - I will give a talk on that at celo connect next week. if you’re around would love to catch up there! @ying_chan @John.Fletcher

2 Likes

@edlovecrypto at cLabs we are actually working on a new product primitive to enable something similar to what you describe! stay tuned for a first insight at celo connect

4 Likes

Great! Looking forward to hearing all about it!

1 Like

…and to catching up!

1 Like

For the initial implementation, is it really necessary to include all cStables? If a single validator decided they wanted to reduce rewards for other validators by minting and staking a less popular cStable like cREAL, they could do so and then other validators (or users) would have to mint cREAL as well to equalize on rewards. At a steady state, wouldn’t this incentivize the outstanding balances of cStables to equalize (33.3% cUSD, 33.3% cEUR, 33.3% cREAL as of now).

I worry that this sort of equal weighting among cStables will create a non-natural distribution (as certain fiat currencies are more popular that others).

1 Like

Hey Andrew, it’s not that the balances of each locked/deposited token will equalize, it’s that validators are incentivized to hold the same % of each token’s outstanding supply.

For example, if a validator has 2M Celo voting for them (about 1% of total locked supply), they will be incentivized to incentivize deposits of 1% of outstanding cUSD supply (about $1M cUSD) with them and 1% of cREAL supply etc.

So yes, they could mint cREAL (although that would be more expensive that incentivizing deposits) but once they have 1% of outstanding cREAL there isn’t an incentive to mint (or incentivize) more.

1 Like

If a validator was to hold 100% of outstanding cREAL, wouldn’t that 0 out rewards for all other validators unless they minted more cREAL? I’m not assuming that every validator will only seek for their gain. They could also seek to lower the rewards of others.