While there is no doubt that Luna offers staking returns that are significantly higher than what is offered by comparable proof of stake networks (10+% today vs 8% for Cosmos and 5.81% for Tezos), its price volatility leaves many investors wary of staking the asset. Despite Luna’s higher staking returns, the percentage of Luna supply currently staked lags significantly below the staking market average. This proves that the staking decisions for a significant proportion of investors is dominated by price volatility of the staking token rather than the expected yield. The solution is to create a principal protected staking product for Luna , such that investors may participate in staking without having to speculate on Luna’s price movement.
Algorithm overview
The system consists of three components:
- Smart contract layer: WASM module added to Terra Core
- bLuna: a derivative token representing bonded Luna minus bonding costs
-
Minting : A delegator may mint a bLuna token by “locking” a part or all of their bonded Luna position. The number of bonded bLuna created is
# of Luna bonded * (1 - commission rate)
. - Burning : A delegator may burn a bLuna token and regain control over their bonded Luna position. The number of bLuna tokens that must be burned is equal to the number of tokens originally minted from the position.
- Bonding changes: There exists a number of changes that can impact the economics of the underlying bonded Luna position, such as changes in the validator’s commission or slashing. Such changes are simply absorbed by the global pool of bLuna - we may add a minting or burning tax later to compensate for this risk.
- Staking rewards : Staking rewards for the underlying Luna position propagate to the bLuna token in cash flows.
-
Minting : A delegator may mint a bLuna token by “locking” a part or all of their bonded Luna position. The number of bonded bLuna created is
- liquid money market: replication of the compound protocol over bLuna. bLuna can be used as collateral to borrow Terra (inspired by compound)
-
Parameter : The protocol defines a
borrow_capacity
, which is the Loan to Value (LTV) ratio between 0 and 1 at the time of the issuance of the loan. The parameter can be changed by governance of Luna stakeholders. Given that liquidation does not need to happen in the open market, the borrow capacity can be high. -
Borrower dynamics : The borrower can open a debt position by collateralizing bLuna and borrow up to
oracle_value(collateral) * borrow_capacity
in any Terra stablecoin. When the position falls below the borrow capacity, the position is margin called and the collateral bLuna is swapped to Terra to cover the loan. -
Lender dynamics : The lender can deposit Terra into a global lending pool and earn an interest pro-rata to his contribution divided by the size of the lending pool. For example, for period t, his interest is
R_t * C_u / P_t
where C_u is the total contribution of the user to the lending pool and P_t is the size of lending pool at time t, and R_t is the staking rewards from the bLuna currently held as collateral.
-
Parameter : The protocol defines a
Overall, this system captured by a smart contract layer, a Luna staking derivative and a compound money market facilitates a use case where users can get exposure to Luna staking on Terra deposits in a way that protects the deposit principal.