TLDR
This proposal is about the upgrade of bLuna — the main bAsset of Anchor protocol.
The main points of upgrade:
- The user can not delegate to a specific validator. A new contract is added, the Validators Registry, that keeps the list of approved validators and picks the next most suitable validator to delegate to. This aims to distribute the stake evenly across all validators. (see Section 1)
- The new token is added: stLuna. It is interchangeable with bLuna (see Section 5) and corresponding rewards are re-staked. This token is made for better integrations across the ecosystem. (Sections 2—4)
- The possibility for contracts administrator to re-delegate Luna across validators so it could be fixed the current distribution imbalance in an artificial way rather than waiting for it to be fixed in a natural way. (see Section 1)
- The possibility to take the Lido fee (initially set to 0%) from the rewards.
All these points are aimed to increase the decentralization of the protocol and its utilization in the ecosystem.
bLuna is maintained by Lido and is, strictly speaking, not under Anchor governance. Given that:
- Wast majority of bLuna (9x%) is in Anchor protocol
- The majority of Anchor protocol collateral (88%) is bLuna
- The changes to the bLuna smart contracts code are pretty significant
We decided to have a double governance vote on this upgrade, as both protocols are co-dependent at this point in time. Double governance is not a tenable solution for all the future decisions around bLuna/stLuna contracts and other bAssets, hence this proposal will be followed in the near future by the one that will discuss and set the terms on which bLuna is integrated with Anchor and clean demarkation of governance power between Anchor and various bAssets maintainers.
Section 0. The proposal
The bLuna is the main bAsset in Anchor protocol:
- It has a ~88% of Total Collateral Value (the other 12% is bEth).
- bLuna TVL is ~2.8B USD (~68M Luna).
- ~20% of staked Luna is staked with bLuna.
While it is quite useful in Anchor protocol, it has a bunch of peculiarities such as uneven distribution and design decisions making it unwieldy to integrate with other DeFi protocols. To solve those peculiarities we propose the upgrade of the protocol. The main points of the upgrade are present above.
The code of contracts implementing all of the features is already written and the audit is made by Oak Security.
The current proposal consists of two parts:
- Transfer contracts ownership to multisig of 7 participants (with the threshold of 4) which include the representatives of:
- Anchor Protocol
- Delphi Digital
- Chorus One
- P2P Validator
- DSRV
- Staking Fund
- Everstake
- Upgrade contracts code to the new version.
The benefits of the upgrade are described below.
Section 1. Stake flattening
The new version of protocol keeps delegations to be distributed evenly between all the validators in the whitelist (point 1 in the list above). The user won’t have the ability to choose a validator. Such behavior should make both the protocol and Terra ecosystem become more decentralized.
Because of the huge delegation distribution imbalance (~60% of overall Luna staked with bLuna delegated on top-2 validators), it’s hard to fix it in a “natural” way (only with new delegations). So it made the possibility to make an artificial stake flattening (point 3 in the list above). All current delegations could be distributed between the validators evenly after the new version of protocol deployment. The details of the process are going to be put on the governance decision in the nearest future. The main idea here is to make the process not instant but prolonged in time so it would be more comfortable for validators.
The main question one could ask is that users choose a validator while minting bLuna and now their decision of choosing a validator will be ignored. The answer is that:
- Generally, bLuna minter and holder are different (because the purpose of the protocol is to make staking liquid).
- Minted bLuna tokens aren’t tied to the selected validator and all bLuna holders share risks together anyway.
Section 2. stLuna is more usable for DeFi protocols
The bLuna’s rewards have to be claimed by the users manually while interacting with the special smart contract. Any DeFi protocol which wishes to have an integration with bLuna (i.e. for landing) needs to deal with claiming rewards mechanism. It makes the integration process more complex and opaque.
Making the rewards being automatically re-staked (instead of claiming it manually) makes the stLuna token more usable in DeFi protocols. Integration became much easier because any other protocol doesn’t have to deal with rewards: stLuna underlying Luna amount just increasing with time (in case there are no slashing events).
Section 3. stLuna is good for liquidity pools
The rewards claiming mechanics also cause liquidity pools to be not so pretty for users. While bLuna is locked in the liquidity pool, rewards are distributed to the pair’s smart contract. That means that users are losing their rewards while staking pair to LP.
Because of that, the LP for bLuna is thin. That leads to a possible losing peg between bLuna and Luna. An example is liquidations on Anchor protocol that lead to a lot of bLuna-Luna exchanges made on TerraSwap. Because the cap was too small for such an amount of deals, bLuna price dropped to 0.88 Lunas for 1 bLuna.
Anchor protocol made actions to prevent such a situation, but other DeFi protocols could skip it and keep bLuna/Luna peg brittle.
With stLuna, such a problem doesn’t exist because of the same reason described for DeFi protocols integrations. While stLuna and bLuna are interchangeable, it makes bLuna liquidity better (see Section 5 for details).
Section 4. stLuna works well with bridges
While bLuna token is passed through the bridge, the actual bLuna token is locked on Terra’s side of a bridge, while a wrapped version of bLuna is minted on the other’s chain side of a bridge. While bLuna is locked on the bridge smart contract, rewards are distributed to the bridge’s smart contract address. So rewards are not passed through the bridge automatically and the additional code should be written to support such a functionality implicitly. With stLuna, no rewards need to be passed through the bridge. One can easily get the stLuna/Luna exchange rate and understand how many Lunas he or she can get for the amount of wrapped stLunas he or she has.
Section 5. Instant bLuna-stLuna conversion
Because bLuna and stLuna are ruled by a joint set of smart contracts, it is possible to convert bLuna to stLuna and vise-versa with one smart contract call. It means that bLuna holders don’t need to unbond their Luna or sell bLuna through a market to get stLuna: they can make the exchange directly with the smart contract with no commission (except transaction fees). Same for holders of stLuna that want to get bLuna.
The big thing is that because stLuna and bLuna are interchangeable, there is no need to keep LP for both tokens: the LP for stLuna is enough to have to provide liquidity for both tokens. Even if there are no pairs for bLuna/Luna is present, the bLuna could be instantly swapped to Luna in two possible ways:
- With two separate transactions: the first one converts bLuna to stLuna (user pays for gas only) and the second one swaps stLuna to Luna on DEX.
- With one transaction made with helper contract, which makes two swaps in a row.
The webapp with the necessary functionality to make bLuna-Luna swap handy is to be released.