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

Hi Celo community!

My name is Ying Chan, and along with Dr. John Fletcher, we were recent participants in Celo’s DeFi for the people hackathon, winning the 2nd place prize for the DeFi track with our Proof-of-Deposit project.

Since then, the support we have received from key people in the community has been amazing, and we really are thankful to all those who have taken the time to help us.

The key stepping stone we have been advised to take to get this project launched is to make this governance proposal. We are keen to get your feedback.

Executive Summary

cUSD going mainstream will unarguably require appealing to those with little appetite for risk. We observe that DeFi yield farming trends have mostly catered to investors/speculators, with many of these yields being unsustainable in the long-term.

Looking to wider finance industry for inspiration, we find there exists a well established strategy for attracting liquidity:

Simply offer regular monetary rewards with no strings attached

For proof-of-stake blockchains, we can leverage the variable but sustainable staking rewards to enable this perpetual monetary reward for stablecoin holders

This is fundamentally different from DeFi yield farming as earning the monetary rewards requires no additional risk

At the core, we are replicating in DeFi what a central bank does for the real economy

Proof-of-Deposit is our proposal to create this missing piece in DeFi - perpetually sharing a portion of Celo’s epoch rewards with cUSD depositors in such a way that incentives are enhanced for everyone.

Background

At the time of writing, the daily traded volume of the top stablecoins are as follows:

  • Tether (USDT) $64B
  • USD Coin (USDC) $4.1B
  • Terra USD (UST) $0.57B
  • Dai (DAI) $0.4B

As for Celo, our biggest stablecoin Celo Dollar (CUSD) is currently sitting at a relatively tiny $0.0012B daily traded volume, 53,000 times smaller than Tether.

It goes without saying that if cUSD is ever to be widely used by communities in their day to day transactions, we will need to take existing and new market share from Tether and other stablecoins. To do this, we must offer something that the market wants, and is also sufficiently differentiated from its competitors:

  • USDT - has the network effect.
  • USDC - is better regulated than Tether.
  • UST - has Anchor, a DeFi lending protocol which pays 20% interest rate.
  • DAI - is the first decentralised stablecoin and most widely used in DeFi.

The question we asked is… what should our unique selling point for cUSD be? The harsh reality of the world is that ideological vision must be aligned with monetary incentives.

Our Vision

Up until now, the established strategy for decentralised stablecoins has been to offer high rates of return from DeFi yield farming. But is this the sole strategy we want to rely on for cUSD?

We argue that this can lead to some adoption, but to a limited degree, as it specifically appeals to a small market segment of investors/speculators. After all, to anyone observing, DeFi yield farming is obviously requiring users to take on additional risk on top of the core product (the stablecoin), which is already riskier than their centralised counterparts.

Looking to wider finance industry for inspiration, we find there exists a well established strategy for attracting liquidity:

Simply offer regular monetary rewards with no strings attached

For proof-of-stake blockchains, we can leverage the variable but sustainable staking rewards to enable this perpetual monetary reward for stablecoin holders

This is fundamentally different from DeFi yield farming as earning the monetary rewards requires no additional risk

At the core, we are replicating in DeFi what a central bank does for the real economy

Herein lies our vision with Proof-of-Deposit and Celo:

(Foundational) We implement Proof-of-Deposit on Celo

  • This creates an entirely unique product in DeFi: a perpetual deposit rewards rate on cUSD that comes from epoch rewards, as opposed to relying upon a large treasury of reserves

  • Crucially, although Proof-of-Deposit will likely be described as “low risk / low yield” compared to most other DeFi, it is in no way incompatible with the high returns which many current DeFi investors are seeking.

    On the contrary, by replicating the primitive that a central bank provides for the real economy, but has not existed in DeFi before now, we open the doors to the largest pools of capital in the world to be deployed on Celo. This of course will be massively beneficial to investors in our native token CELO and our ecosystem.

(Short term) We aggressively run liquidity initiatives to get cUSD adopted by crypto exchanges

  • Our value proposition is that crypto exchanges can benefit from the deposit rewards rate or pass it onto their existing/new customers

  • Our deposit rewards rate will be significantly more attractive than interest rates from DeFi lending, as financial institutions are quite sensitive to the fact that lending protocols are particularly at risk of a cascading liquidation event during market downturns. Proof-of-Deposit is not exposed to this risk, because the deposited stablecoin is not being lent out.

  • When crypto markets are dipping, people liquidate their volatile crypto assets for USD. By establishing cUSD as an attractive safe haven on exchanges, we can buffer the price of CELO. This is because during such times, people will have high demand for cUSD, leading to demand for CELO.

    If we are successful enough, we may even see the price of CELO go up when everything else falls!

  • Perhaps most importantly, we are building momentum for adoption of CELO and cUSD by differentiating ourselves from the rest of crypto with an appreciable brand of credibility, reliability, and accessibility.

(Short to Medium term) we build a critical mass of users that will use cUSD for their day to day transactions

  • Currently, the greatest challenge is that DeFi is exclusively catering to investors/speculators that can afford to lose their money. DeFi can only become mainstream when people have an incentive to use it as payment rails without being exposed to undue risks.

  • Proof-of-Deposit can attract such users as we can offer them a deposit rewards rate; that is, we are saying:

    “Use cUSD for your day to day transactions as any money sitting in your wallet can earn rewards!.”

(Medium to Long term) we get cUSD integrated into traditional financial products

  • Realistically, DeFi going mainstream will involve financial institutions to onboard the masses. This is because for most people, they will not be comfortable interacting directly with crypto themselves, and will want to offload that responsibility to trusted intermediaries.

  • Although there are many financial institutions which are already comfortable with holding stablecoins, they currently have little reason to integrate it into their products for customers. This is because any attractiveness of interest rates from DeFi is effectively offset by the high and/or complex to analyse risks.

  • Proof-of-Deposit can give such financial institutions a reason to integrate cUSD into their products as they can either benefit from, or pass onto their existing/new customers, the deposit rewards rate on cUSD. They are much more likely to do this over existing DeFi products, as the risks are substantially lower and more analysable in Proof-of-Deposit.

Technical proposal

Proof-of-Deposit is a proposal to extend Celo’s governance smart contracts to allow locking of and voting with ERC20 stablecoins.

Whilst this can ultimately allow all of Celo’s native stablecoins to earn block/epoch rewards alongside CELO, for this initial proposal, we are putting forward:

  1. Currently, only CELO can be locked and voted with

    a. We are proposing that both CELO and cUSD can be locked and voted with

  2. Currently, a validator group’s share of the epoch rewards of is effectively equal to the percentage of CELO active votes they receive

    a. We are proposing that a validator group’s share of the epoch rewards is the minimum of:
    i. the percentage of CELO active votes they receive
    ii. the percentage of cUSD active votes they receive

    b. By taking the minimum, we incentivise validator groups to receive an equal percentage of CELO and cUSD active votes

  3. Currently, ~13M CELO are distributed per year as epoch rewards amongst staked CELO

    a. We are proposing that a proportion of epoch rewards per year (e.g. 50%), are distributed amongst deposited cUSD as a deposit reward, and the remaining amongst staked CELO.

    b. We propose that the proportion can be chosen by validator groups on an individual basis, similar to their commission rates. This will allow the market to discover the appropriate proportion as a result of balancing incentives to maximise their APY, with the incentive to maximise the value of their CELO by sharing a higher proportion of epoch rewards with cUSD depositors.

Code Changes Required

As we demonstrated in our hackathon submission, Proof-of-Deposit can be realised on Celo with a small set of core changes:

  1. LockedGold is the governance smart contract that users interact with to stake and unstake their CELO. To generalise LockedGold to LockedToken (works with any ERC20) we propose to modify 3 functions:

    a. initialize – add an extra address parameter to allow LockedToken to be associated with a specific ERC20 contract

    b. lock & unlock – use ERC20 functions instead of msg.value (the message’s non-ERC20 CELO)

  2. Election is the governance smart contract that users interact with to vote for validator groups and receive epoch rewards in the form of active votes. We propose to modify:

    a. initialize - add an extra address[] parameter to allow Election to be associated with specific LockedToken contracts

    b. Add an extra address parameter to functions and maps. This will allow users to vote from a specific LockedToken contract

    c. Add utility functions that:

    • Normalises votes from each LockedToken contract. Our proposed way to do this is to divide by total votes from a LockedToken contract.

    • Calculates share of epoch rewards for validator groups from normalised votes. We propose to implement the min(a,b,…) function to incentivise a balance of all tokens.

    d. distributeEpochRewards – will be modified to distribute rewards as active votes amongst the LockedToken contracts

We propose to maintain backwards compatibility by implementing these modifications as overloaded functions.

Q&A

Q: How does Proof-of-Deposit compare to other DeFi?

A: The defining feature of Proof-of-Deposit is that we are enabling a deposit rewards rate, not an interest rate! The distinction is that the latter requires loaning out users’ money!

Q: How is the deposit rewards rate determined?

A: It will be market determined as the deposit rewards rate is free floating; that is, the rate will increase/decrease with less/more cUSD deposits and with higher/lower proportion of epoch rewards shared by validators. Users will simply deposit more cUSD if the rate is high enough, and withdraw cUSD if it’s too low.

We predict that the deposit rewards rate will fluctuate around an estimated mean of 5%. A rate of 5% implies that users will deposit 20x more cUSD than what Proof-of-Deposit pays out in rewards.

Q: Won’t this be taking part of the epoch rewards away from validators? How do you ensure validators’ incentive to stake CELO is not reduced?

A: Yes, it will take a proportion of the epoch rewards away. That being said, the exact proportion will be decided by validator groups on an individual basis.

We believe that validator groups will naturally balance their incentive to maximise their APY in dollar terms, with their incentive to maximise the value of their CELO by sharing a higher proportion of epoch rewards with cUSD depositors.

Q: Can you give an estimate of how much this will boost the marketcap of CELO?

A: Sure.

  • At time of writing:

    • Price of CELO is $2.7
    • Marketcap of CELO is ~$1.16B
    • Marketcap of cUSD is ~$90M
  • Assuming that validator groups decide to share 50% of epoch rewards, 6.5M CELO, as deposit rewards on cUSD:

    • USD value of these rewards at current prices is 6.5M x $2.7 = $17.55M
  • Proof-of-Deposit’s deposit rewards rate is free floating, and depends on the amount of cUSD that users deposit. Given a deposit rewards rate of 5%:

    • Marketcap of cUSD will rise to a minimum of:

      • deposit rewards rate = amount of rewards / amount of deposit
      • amount of deposit = amount of rewards / deposit rewards rate
      • amount of deposit = $17.55M / 5% = $351M
    • Current marketcap of cUSD is boosted by $351M / $90M = 3.9 times

  • If marketcap of CELO and cUSD maintains their current ratio (which has been the case historically), then we can expect:

    • Price of CELO to rise to $2.7 x 3.9 = $10.53
    • Marketcap of CELO to rise to $1.16B x 3.9 = $4.52B

Note that this is already a conversative estimate! This is because the rise in the price of CELO will lead to a rise in the USD value of deposit rewards… leading to more cUSD being deposited, and so on.

Q: If this is built, will it displace other DeFi on Celo?

A: In short, no. As Proof-of-Deposit’s deposit rewards rate is free floating (increases/decreases with less/more cUSD deposits), users will naturally move cUSD between Proof-of-Deposit and the rest of DeFi whenever the risk/return opportunity means it makes sense to do so.

Furthermore, the buffering effect that Proof-of-Deposit will bring to the price of CELO will reduce volatility of the rest of DeFi on Celo, making it more accessible! This does mean that the APY on staked CELO will be lower, but will have much higher USD value.

Q: How did Proof-of-Deposit come about?

A: Dr. John Fletcher and myself have collaborated on blockchain research for many years. Our key research interest lies at the intersection of public blockchains and CBDCs: “can decentralisation be beneficial to Central Bank monetary policy?”

Specifically, the problem that exists today for countries such as Venezuela, Zimbabwe, etc is that their central banks, which don’t have a credible reputation, have full discretion over their monetary policy. For international creditors, this poses a huge risk of inflation, and as such, very high interest rates are demanded on loans to these nations (e.g. Zimbabwe’s is 60%). This stifles economic growth in those nations. Up until now, many of these nations have resorted to dollarisation but this is a brittle state of affairs which frequently implodes when these nations have domestic crises (e.g. Lebanon liquidity crisis).

As exemplified by Bitcoin’s 21 million BTC cap, public blockchains can be a means of committing to certain monetary policies such as inflation of base money supply. Proof-of-Deposit was the solution we arrived at to address the question of how public blockchains can help with the other major tool of monetary policy: setting the base rate.

If you want to learn more, here are some links to our ongoing research here and here.

What next?

We are posting this to ask for feedback with the aim of maturing the proposal with your questions and suggestions. We will also love to chat on discord and on future governance calls.

Last but not least, we are preparing to give a talk for Celo Connect and we hope to see you all there in person!

Thanks

Special thanks to @nraghuveera , Ezechiel Copic, @TomerBa, and @marek for your support and advice!

14 Likes

Hi Ying. Thank you for this ambitious proposal.

Could Proof-of-Deposit enable any new / novel types of DeFi products to be built on Celo?

1 Like

A lot to think about here and I definitely welcome new ideas on this.

Thoughts on incentives to date:

  • Valora have provided supercharge 50% interest for a period, now down to 25%. What were the results of that? Why did that not drive adoption like Anchor?
  • Moola provides about 2-2.5% interest as I’m writing this. So the assumption here is that a higher 5% rate instead (and because the cUSD is not being loaned out) are significant benefits? I suppose that seems reasonable.

I need to reflect on this more, but this seems like a more explicit (and much larger in extent) form of subsidising the stable coin adoption - rather than the indirect (and probably inefficient) way of doing DeFi4ThePeople. That could make sense. I also think it’s more explicit than what Anchor is doing (where they use Anchor tokens to incentivise borrowing, and then use staking rewards from staked assets to pay yield on UST = very complicated and will fall apart imo because the interest rate they pay is not free-floating).

Security Questions:

  1. I’m not clear whether the cUSD would be locked or not. If it’s locked, obviously users can’t withdraw for 3 days.
  2. Why involve cUSD in validation (i.e. have validator stakes be proportional to the minimum of Celo and cUSD)? I guess this is a supporting mechanism for i) demand for cUSD and ii) maintaining the price of Celo.
  3. What kind of security would this type of approach have compared to the more pure proof of stake system that is currently in place? How do the vulnerabilities to 1/3rd or 2/3rds attacks differ?
  4. Would it be a simpler, but equally effective proposal to just run the system as it runs now, but take 50% of epoch rewards and divert them to paying a deposit rate on Celo stables?
6 Likes

An interesting and ambitious proposal @ying_chan ! Great to see it being posted on the forum. Thanks also for the detailed writeup, this already answered some of the questions that I had in our earlier exchange.

I have two questions that are somewhat related to @Pinotio.com’s points:

  1. Part of the Celo that is currently staked would probably be replaced with deposited cUSD. This increases the circulating/non-staked supply of Celo and should have a negative effect on Celo marketcap. Is this reflected in your calculations? Can it be included?

  2. Under “traditional” PoS, the cost of a network attack increases proportionally with the price of the staked asset. If Celo price doubles, the cost of an attack doubles. If this is changed to stake + deposit, the cost no longer grows 1:1 but e.g. 1:0.5 if e.g. 50% of locked assets are stable. Wouldn’t this be a significant decrease security? (see also Pinotio’s points 3+4)

6 Likes

Thanks for reading and for your questions @Lebesgue @Pinotio.com @Slobodan !

> Why does XXX DeFi product get more adoption over YYY DeFi product?

When talking about adoption, we have to distinguish between the 3 key market segments:

  1. Retail investors
  2. Smart money (e.g. financial institutions)
  3. Mass market

Whilst we’re beginning to see smart money adoption of broader crypto-assets such as BTC, ETH, etc, when it comes to DeFi products, adoption is still largely limited to retail investors. For retail investors, we believe the differentiator is all about marketing (brand awareness, brand reputation, etc) and some luck. As anecdotal evidence, we would point to the fact that the exact same DeFi protocols get cloned all the time, but only a handful rise to the top.

> Why will Proof-of-Deposit be different from other DeFi products for stablecoins in attracting smart money?

We believe the reason why existing DeFi products on stablecoins haven’t attracted smart money yet is quite intuitive:

The first thing smart money will ask about any new financial product is “what are the returns?”, and second “what are the risks?”.

As DeFi products on stablecoins are directly competing with broader USD financial products, they simply are not getting traction as they are not offering anything better in terms of risk + returns.

This is where Proof-of-Deposit comes in. Our battle plan for cUSD is as follows:

Get traction with smart money with our novel financial product; deposit rewards rate on cUSD

  1. Perceived risk is similar to the highest grade bonds

    a. deposit rewards rate has no complex credit risk

    b. stablecoins are not lent out to a pool of pseudo-anonymous borrowers

    c. Validators are usually public KYCed commercial entities

    d. De-pegging risk, smart contract risk, etc can be controlled for

  2. Returns will be higher than financial products with similar level of perceived risk for a long time to come

    a. This is due to the feedback loop: higher adoption of cUSD → higher price of CELO → higher deposit rewards rate → loops back

    b. This is unique to native stablecoins

Smart money adoption will help build Celo and cUSD’s brand, helping us to take the next step of attracting retail investors and the mass market

> Security concerns of cUSD lockup period

The locking period for cUSD is less of a security concern than for CELO (see my answer to staking below). For this reason, we should have a lot more flexibility with this parameter (e.g. maybe even a withdrawal period of 1 day is fine)

> What is the involvement of cUSD in validation?

To be clear cUSD is not involved in validator election:

  • A validator group’s probability being elected is solely a function of active CELO votes

    • @Pinotio.com @Slobodan it’s important to emphasise that our proposal only requires a validator to stake CELO. For the validator, holding a deposit of cUSD is optional.

    • The way we see this working is that a validator will offer to divert a portion of their epoch rewards to a cUSD depositor in return for their votes. Any reduction in nominal (CELO denominated) staking rewards, received by the staker, will (by our calculations) be more-than-compensated for by appreciation of CELO in dollar terms, which results from increased demand for cUSD.

  • A validator group’s share of epoch rewards is a function of active CELO and cUSD votes

> Why not just divert a proportion of epoch rewards without involving validators?

The answer is incentive alignment. There are 2 incentives for validators:

  1. Maximising long-term value of their staked CELO

    a. This is affected by proportion of epoch rewards paid to cUSD depositors (we will refer to this as “the parameter”), because higher deposit rewards drives demand for cUSD which causes the CELO price to rise in dollar terms.

  2. Maximising short-term APY on their staked CELO.

If the parameter is not involved in determining a validator’s APY, there is a misalignment of incentives:

The way to resolve this conflict is to involve the parameter in determining a validator’s APY:

  • Validators select the parameter on an individual basis

    • The higher the parameter, the more cUSD votes a validator will attract

    • The more cUSD votes a validator attracts, the higher their share of epoch rewards (APY)

  • Validators, as a market, will converge towards an equilibrium value for the parameter that balances their incentives

    • This equilibrium can change over time

> Would Proof-of-Deposit (at least initially) cause a downwards pressure on the price of CELO?

@Slobodan, can you confirm whether this is the question you are asking?

I wasn’t quite sure as it seems you were saying validators will unstake CELO to exchange for cUSD to deposit, but you were also saying more CELO will be in circulation (despite them already changing it for cUSD)?

If my interpretation as above is indeed what you’re asking, I would break it down into 2 sub-questions:

1. Would validators unstake their CELO to exchange for cUSD to deposit?

It is possible. If validators are concerned about maintaining their current amount of epoch rewards, then they may deposit cUSD to compensate. That being said, the current APY on CELO according to here is ~2.5%, which is small compared to the potential price swings of CELO on any single given day.

This seems to me to imply that people who stake CELO are overwhelmingly in it for the long-term capital appreciation which they hope to be many multiples of the current price. If this is the case, then they have little incentive to convert their CELO for cUSD just for a bit more APY, as it diminishes their long-term returns from appreciation of CELO.

2. Does exchanging CELO for cUSD in general cause a downwards pressure on the price of CELO?

This is one back to you. It is not clear to me that exchanging CELO for cUSD causes downward pressure (at least not a significant amount), as more demand for cUSD causes it to move above its peg… leading to an arbitrage opportunity… which leads to more demand for CELO?

2 Likes

Could you kindly expand on the above point? There is de-pegging risk if the reserve becomes (or risks becoming) undercollateralised. How might this be controlled for?

I’m not sure if the above is the right way to do it, but I think this dynamic is missing from the current system. Right now, Celo Foundation has required validators to have at least 150k CELO votes in order for the foundation to assign them votes. It would probably make more sense if this was formally done by validators actually incentivising others to vote for them. If this is the case, providing an incentive on cUSD rather than CELO would provide a more intuitive way for “smart money” (or even retail) to get involved. So, broadly, I can see some logic for doing this overall.

I’m sure @Slobodan will expand, but - as I see it - the new system splits what was previously only going to locked CELO to both locked Celo and cUSD. So, the percentage rewards paid on Celo will be lower in the new system (although, you may feel Celo itself may appreciate more in the new system). If the percentage rewards paid on Celo falls, then one might expect the incentive to lock one’s Celo will fall. With less Celo locked, there is more that can be sold without a time-lock = downward pressure on CELO price.

Rephrasing the security question/answer
In the current system, security is based on the Celo tokens locked by each validator (10,000 minimum each) . These are subject to slashing. This would remain unchanged in the new system.

To attack the current system, in theory one would need to control a significant fraction of the validators. In theory, this could be as low as NUMBER_OF_VALIDATORS X 10,000 CELO. However, in practise, to get elected as a validator, one needs 1,000,000+ votes. And this is the very minimum. So, to attack the system, one would need much more than NUMBER_OF_VALIDATORS X 1,000,000 CELO X 33%.

In the new system, the following comes into play:

So now validators will be incentivised to have cUSD (and cEUR and cREAL etc.) vote for them in order to get elected (to a point where the amount of CELO, cUSD, cEUR and cREAL voting for them is roughly equal).

  1. Does this, at least initially, reduce security - because the lowest currency in circulation (cUSD… or cREAL if that were allowed as an option) would be the driver of the min (a,b) function? [I guess there is a second order effect here that will result in a pretty high initial deposit rate for cUSD that would then drive lots of cUSD minting].
  2. How does this system naturally lead to an equilibrium amount of cUSD versus cEUR versus cREAL that makes sense?

Side note: once cUSD (and cEUR and cREAL) is incentivised to vote for validators, I don’t see why anyone would freely vote their CELO for validators either. I guess validators in that case would probably decide to incentivise CELO votes too - at least to the point where they have as much CELO voting for them as cUSD (and cEUR etc.)

Added Question 1 - what are your biggest concerns/risks with the Proof-of-Deposit system

Added Question 2 - can you walk through the steps (including consideration of reserve collateralisation levels) when there is a crash in CELO price (say, due to crypto markets crashing).

3 Likes

Thank you for the detailed proposal and taking the time to set it out and answer questions! Personally, I definitely love the focus on increasing the circulating supply of Celo stablecoins and boosting their liquidity, and think this is an interesting scheme, but one with some caveats.

As a community we have experimented with other yield mechanisms before and I know several others are in the works. I wonder if you could set out why this one would enable the foundation you describe, rather than any of the other previous ones, or other possible designs?

For instance, last year the Celo Community Fund (essentially epoch rewards) was used to fund rewards to all cUSD holders up to a certain cap. This was done via an out-of-band Merkle distributor contract, which has the nice properties that you can experiment with different flavors of rewards (verified users only, must have made transactions recently, must have phone number verified, etc). It also has the significant benefit that the funds are not locked up – so you can use them for payments use cases and therefore they contribute to liquidity. (Minor point: also remember that protocol inflation is not free or perpetual: there is a decay curve for epoch rewards, and a target rate designed to ensure they last for some years yet).

I also want to highlight a few implementation challenges you may have already thought about. First, in general, modifying the core LockedGold-Elections-Governance nexus of smart contracts carries with it a bunch of risk and a potentially long audit cycle. There may be simpler ways of achieving a similar goal. Second, the Election mechanism relies on a sorted list of votes that only changes when a new vote is activated or removed, hence O(1). As the price of cUSD and each stable coin fluctuates at each epoch, parallel structures would need to be maintained for each and the votes combined (IIUC what you’re suggesting?), significantly increasing gas of the election itself that grows linearly with tokens supported. Also, IIRC those contracts are already at the limit of the maximum size of contracts supported, which is an issue we’ve run into previously.

Would love to hear from @m-chrzan and @asa who have thought more than me about this :slight_smile:

Overall, I totally agree with the objective of using yield to stimulate demand for stablecoins. I would love to work together to figure out work we can do to make that happen.

4 Likes

This is a highly desireable innovation. It would attract many users from the TradFi world to Celo. But can´t why can´t we offer the 20% yield that Anchor offers? Can´t we use the same strategy?

1 Like

Hi @Pinotio.com

This is John Fletcher from Cambridge Cryptographic. I am co-author of this proposal with @ying_chan.

I would not have said “controlled for” here (to me, this means something like “allowed for”). I think just “controlled” is a better choice. De-pegging risk can be controlled in the sense that this risk will fall over time. Some reasons include:

  1. The stability mechanism employed by Celo is robust. For example, Maker DAO, (which has a related but, I would say, less robust stability mechanism than Celo) weathered a 95% drawdown in the ETH price after the 2017 crypto bubble (ETH being its only collateral at that time), while Dai maintained its peg pretty well. The problems experienced by Dai in the 2020 crash were in fact due to congestion on the Ethereum network, rather than a flaw in Maker’s design.
  2. As mentioned, Celo’s stability mechanism is fundamentally more robust than that of Maker. One reason is Celo’s ability to access the protocol level—for example—Celo can divert epoch rewards to reserves if required.
  3. Proof-of-Deposit provides an incentive to liquidate CELO (and indeed other cryptos) into Celo-native stablecoins, such as cUSD, in times of market turbulence. This is due to the return that PoD provides on cUSD, but also because of the nature of this return: it does not require the cUSD deposit holder bear credit risk. Credit risk is elevated in market downturns, so rational agents will seek to avoid it. In contrast, placing stablecoin denominated proceeds of liquidation in (for example) the Anchor protocol, does not qualify as a flight-to-safety / risk-off trade, because the yield on Anchor is compensation for credit risk. Liquidating to cUSD, with PoD in place, is designed to be attractive under such circumstances.

(We emphasise that we do not mean to imply that Anchor (for example) is inferior to PoD, it is just different. It “shines” under different circumstances. PoD is perfectly compatible and complementary to Anchor and other DeFi.)

This is all to say that, assuming the CELO price become less volatile over time, and the network continues to scale, then the de-pegging risk will be reduced, and Proof-of-Deposit will accelerate this.

We welcome any suggestions for alternative configurations.

The arguments in the min function are percentages (or fractions) of the total number of tokens of each type which are in play. Not absolute quantities. So we have something like min(%CELO, %cUSD, %cEUR,… ). This means that smaller deposits are required when the currency has a lower circulation.

For validators n=1,2,…, equilibrium is reached for min(%CELO(n), %cUSD(n), %cEUR(n),… ) when %CELO(n) = %cUSD(n) = %cEUR(n) = … .

Consider that, for validator n=1, %CELO(1) = %cUSD(1) = %cEUR(1) = … . In that case, the validator should not be willing to offer a share of the block rewords to a holder of (say) uEUR deposit who would might otherwise send their vote to validator 1. This is because validator 1 would not profit from these additional votes. In contrast, a validator n=2 who has a “deficit” of cEUR, (such that %cEUR(2) < %CELO(2), %cUSD(2),…) should be willing to offer a reward to a cEUR deposit holder who is willing to send their votes.

The result of these considerations is that the market will allocate resources (in this case votes) so as to drive the system towards equilibrium.

I will respond to these separately.

2 Likes

Thanks John for your responses. Just a few added notes:

Safety of the Celo Reserve

  • I like comparing Celo with Dai/Maker, as you do.
  • As I see it, Celo centralises the collateralisation of cStables, whereas Maker decentralises it into vaults (just because one vault is hit, that doesn’t mean all other vaults are hit).
  • Having centralised control of collateralisation type comes with pros and cons, and I don’t necessarily see cStables as being safer or less safe than DAI. Obviously the Celo reserve is quite reliant on the price of Celo, although now has a decent BTC/ETH component.
  • So, I don’t see the point on credit risk. By holding cStables, one is trusting the Celo reserve - and the Celo reserve has cStables as a liability on its balance sheet and mostly volatile crypto as assets, so ultimately I think there is effectively a credit risk (even if one doesn’t call it that).

Big picture on this proposal

  • I think Celo’s current system would - over time - move towards validators incentivising locked Celo holders to vote for them. This is already happening implicitly (though not explicitly) with people voting their Celo for validators they know - and I think it’s impossible to avoid the monetisation aspect of this.
  • What I like about this proposal is that it provides a direct way for validators to incentivise with cStables (and not just Celo). I think this is better because retail/smart money is more likely to want to deposit cStables than Celo. It allows people to “invest” in cStables (which is a more straightforward offering than investing in Celo).

So, overall I like this and want to support more thinking on this topic to get a proposal out soon that incorporates points like @tim 's above.

2 Likes

I really like the proof of deposit idea. I believe the two biggest impediments to mass adoption are fear and complexity. This proposal seems to address both of these concerns nicely and it would seem to me that the proof of deposit idea would make the whole pie a lot bigger for all concerned.

1 Like

Thank you for expressing your support.

1 Like

Hi @tim, Thank you for your feedback. This is just in response to your first question. I’ll address the others in a follow up, since my reply to this one is quite long.

Issue is how the deposit rewards rate is determined. We believe that our proposal is the simplest way to provide a market determined deposit rewards rate.

To understand why this is important, it is helpful recall the original meaning of, and motivation for, decentralisation in the economic context: This term was made famous by Hayek in his 1947 paper The Use of Knowledge in Society. Hayek’s definition of decentralisation is close to what would often today be called “self-organising” (this phrase would not be invented until 1949). It describes order (e.g. values of parameters) emerging from local (peer-to-peer) interactions between agents—this is a defining property of the market mechanism.

The definition of decentralised decision making specifically excludes collective decision making , which includes decisions taken by popular vote (which may or may not be weighted, such as in the case of a stockholder vote). Collective decision making also includes the case where the parameter is centrally determined by an entity which reflects popular sentiment to a significant degree.

The distinction between decentralised and centralised decision making is critical and often misunderstood. See for example, James Buchanan’s paper Individual Choice in Voting and the Market (1954).

One important difference is that parameters decided by a collective decision making process are subject to time inconsistency —also called dynamic inconsistency — this is the subject of Kydland and Prescott’s seminal 1977 paper Rules Rather Than Discretion: The Inconsistency of Optimal Plans. (Work for which they were awarded the 2004 Nobel prize!)

The reason why this matters to us is that, for certain types of parameters such as interest rates, time inconsistency means that agents prefer ever lower values, leading to economic instability. This is the reason why the Dai Savings Rate was voted down to zero, where it has stayed for the past two years. It is also the reason why central bank interest rates trend downwards. (See for example Ray Dalio’s Principles for Navigating Big Debt Crises.) A rate which is market determined can avoid the effect of time inconsistency.

In our proposal, validators decide the deposit rewards rate they will pay for each unit of cStable deposit (for each vote from a cStable deposit holder). In other words, the decision is made on an individual “peer-to-peer” basis. No validator or depositor is compelled to transact or accept any particular price. This is the market mechanism–again, see e.g. Buchanan (1954).

Note that the problem we are solving is not only a problem in crypto, but an outstanding problem in macro economics in general. It has been known for centuries that economic stability normally requires a positive credit risk free rate of return to be available (fixing a lower bound for commercial lending rates), but no one has ever figured out a market mechanism which can provide this. Public (non-permissioned) blockchain technology combined with PoD solves this problem. We are also working with Ezechiel Copic from Celo’s CBDC team on formulating our proposal for a (non-permissioned) CBDC which takes advantage of this discovery.

1 Like

Just adding a tiny bit more to the response from @John.Fletcher:

Another way to view the difference between Proof-of-Deposit vs other yield designs (as mentioned by @Pinotio.com and @tim) in creating a deposit rewards rate on cUSD is as follows:

With Proof-of-Deposit, a validator’s share of epoch rewards is an increasing function of the %cUSD deposits that they attract

This creates an unique competitive dynamic that hasn’t existed before! With Proof-of-Deposit, validators will be incentivised to offer a deposit rewards rate such that their marginal revenue equals their marginal cost.

2 Likes

Great Idea! it’s helpful to increase cUSD Money multiplier in Celo ecosystem.

1 Like

Thanks for your support. I agree!

Thank you for your support.

As I mention in my post here, Proof-of-Deposit is compatible with and complimentary to other DeFi including Anchor and Anchor-like products. So we can implement your suggestion as well :slight_smile:

Hi @Pinotio.com

The reason why I use the term “credit risk” is that, in PoD, the cStables are earning a return without being lent out by the deposit holder (to a borrower). The ability to earn yield on stablecoin without lending the stablecoin is unique in DeFi, to the best of my knowledge (Maker briefly offered this, but the rate was soon set to zero); it is certainly unique (and essential) for the rewards rate to be market-determined.

I think I see what you are getting at re the cStable being a liability of the Celo reserve. However, it is important that the Celo reserve (unlike a central bank in an analogous scenario) cannot decide not to honour the redemption of cStable. Naturally, if the reserve were to become undercollateralised, then it would be impossible to redeem, but it’s not clear to me that this is technically possible in Celo due to the demurrage mechanism. (My understanding is that, as a last resort, Celo is configured to appropriate cStables from holders, so that the remaining cStables remain backed?)

That demurrage could happen is of course a risk, but I would not call it credit risk, but rather “risk of confiscation” or perhaps “taxation risk” (as it is like taxation by a government who needs money to service its debts).

At the end of the day, although this is a matter of definitions, the way I use the term credit risk is (I claim!):

  1. Consistent with the wider literature
  2. Useful in the current context, since it refers specifically to the additional risk which deposit holders bear if they earn yield on their stablecoin by any means other than PoD.

Thanks @John.Fletcher .

  • Some docs here on Celo stability: Celo Tobin Tax | Celo Docs

  • There is a Tobin tax that can be turned on (currently disabled) to levy a fee on transactions that take CELO from the reserve.

  • I don’t believe the reserve can confiscate cStables.

  • The reserve cannot mint more Celo to try and improve collateralization - although this is the subject of another forum post here: Last Resort Minting Mechanism

  • In short, I believe it is technically possible that it would be impossible to redeem. In practise, whether this happens would depend a lot on how many cStable wallets decide to try and redeem in the case of the reserve being undercollateralised, and how that number compares to what remains - albeit undercollateralised - in the reserve.

1 Like

I re-read the proposal and I think I understand it a little better now. Some more questions:

How do you address the challenge that offering a 100% rate to depositors is a great attack vector for a malicious validator?

One important piece of the mechanism right now which has a considerable security benefit but means that this does not look like a “market” is the group vote cap, which even with sybil groups imposes a cap on the effective funds that a single validator can receive. Interested how your proposal interacts with this?

Thanks for indulging my questions!
Tim

1 Like