Last updated a year ago
Although we need to encourage moving computation to L2s to scale, currently doing so will cause you to lose your staking rewards making it hard to convince users to migrate
We will design & implement a standard for Milkomeda to allow its users to keep earning staking rewards. We will share the approach publicly so other L2s / sidechains can implement their own variation
This is the total amount allocated to Liquid staking for Milkomeda / L2s. 4 out of 4 milestones are completed.
1/4
Writing the solidity smartcontract
Cost: ₳ 25,000
Delivery: Month 1 - Dec 2022
2/4
Audit Solidity contract
Cost: ₳ 25,000
Delivery: Month 3 - Feb 2023
3/4
Milkomeda Bridge & Validator Update
Cost: ₳ 25,000
Delivery: Month 4 - Mar 2023
4/4
Web interface
Cost: ₳ 25,000
Delivery: Month 6 - May 2023
It's clear that it's not possible to have a single chain process all the computation in the world. Although people still attempt this (Solana, BNB, EOS, Tron, etc.), most recent projects are trying to optimize for safely splitting computation off of the L1 (Cosmos, Polkadot, Ethereum, Avalanche, Cardano). This concept was even part of the initial Cardano roadmap in 2017.
Cardano itself has multiple work stream that are tackling this: Mamba (IOG sidechain), Milkomeda, Orbis and Hydra to name a few.
However, even though Cardano needs move computation out of the base layer to scale, current users are hesitant to due this as it will cause them to lose their staking rewards on mainnet (so unless the L2 can provide them more than 4% APY, they will be losing money). Additionally, the fact that this ADA is unstaked has a negative impact on the total % of ADA staked in the network which is a crucial metric for the safety of Cardano
Although Cardano provides liquid staking in the protocol itself, it is by itself not powerful enough for use-cases where ownership of tokens is tracked by some off-chain state (sidechains, CeFi, L2s, etc). However, our solution leverages the built-in liquid staking in Cardano to providing staking rewards for users of these protocols
The general proposed solution works as follows:
So now stMilkADA holders are getting their staking rewards while still being able to use Milkomeda
One key issue with this is who should the ADA on Cardano be delegated to? If you have a single pool (which is okay if you have <64M ADA), then it's simple. However, if you want to delegate to multiple pools or you have 64M+ ADA, you have to split it up to multiple pools. I think the easiest way to do it is instead of constantly rebalancing the UTXO set maintained by the bridge (which would be a nightmare) is to abuse the fact that staking snapshots are only taken on epoch boundaries. Every time an epoch boundary approaches, you rebalance your bridge to make sure the delegation is split correctly, and then re-adjust back to your old configuration (if needed) after the boundary has passed. The problem with this approach is Cardano has no fee market so there is no guarantee your rebalancing will happen before the epoch boundary (but the lack of a fee market makes many use-cases in Cardano including L2 and DeFi in general very unreliable so we are hoping a solution like the tiered fees proposal by IOG will be introduced)
Notably, we see three steps towards fully implementing this system:
Liquid staking is a hot topic at the moment because for a lot of protocols that drive adoption, it is hard to get the necessary adoption without liquid staking options. A reference implementation of liquid staking for Cardano will not only be useful in itself, but also inspire other protocol and business models that would not have been possible without this construction
The lack of tiered fees or fee markets in Cardano makes it hard to ensure that rebalancing the stake pool delegation happens in an orderly fashion. During times of congestion (such as in 2021 where txs could take over an hour to appear on-chain), this may cause protocols to miss rebalancing (causing users to lose their staking rewards) and may cause downtimes in L2 onboarding as it may have to pause during the rebalancing. If a solution isn't implemented for Cardano, liquid staking may be too unreliable for protocols to adopt (but can be enabled without any additional modifications once the issue is resolved in Cardano itself)
Q2: come up with design for how liquid staking will work (see protocol description above)
Q3: implement v1 with a single stake pool
Q4: implement v2 with multiple stake pools
v3 is a stretch goal. It will definitely happen eventually, but may not be doable with the funding requested in this proposal
The Milkomeda developer team will build the implementation detailed in the budget breakdown. We will use a 3rd party auditors and the Plutus contract itself may be sub-contracted.
There may be a follow-up proposal for v3 or to implement additional functionality required by other projects who also need to use liquid staking
v2/v3 may have some additional metrics for growth in total % of ADA stake and how much ADA is being staked to single-pool operators
Milkomeda users (or users of similar projects like Orbis, Mamba, etc) can continue receiving staking rewards while using L2s to scale Cardano without lowering the total % of ADA staked
New proposal, however parts of Milkomeda have previously been funded by Catalyst
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
The team has built Milkomeda which launched as a sidechain for Cardano in early 2022 and is the largest sidechain on Cardano with a TVL of ~30M