bitshares / bsips

BitShares Improvement Proposals and Protocols. These technical documents describe the process of updating and improving the BitShares blockchain and technical ecosystem.
https://bitshares.github.io
63 stars 86 forks source link

New BSIP: Asset lending pools #294

Closed grctest closed 3 months ago

grctest commented 4 months ago
BSIP: ---
Title: Asset lending pools
Authors: R
Status: Draft
Type: Protocol
Created: 2024-02-29
Discussion: N/A

Abstract

Similar to a liquidity pool, a lending pool would be user created/configured with pre-defined borrow/lending asset and rates pre-defined, it would maintain a credit offer on behalf of the pool. Users could stake funds in the lending pool to build up the lending liquidity and passively earn at the predefined rate as credit deals are accepted.

Motivation

Creating a credit offer can be a complex task up front, and it requires occasional maintenance, offering an automated solution for lending your assets could encourage greater participation (and subsequent liquidity) in the on-chain lending system, as the complex setup phase is delegated to a 3rd party.

You're currently unable to monetize/tokenize a credit deal (as the lender, not the borrower), you're unable to sell your lender position, the closest you can get is to transfer ownership of an account.

The on-chain credit offer mechanism needs greater participation.

Rational

By enabling the tokenization of lender's deals we address a traditional aspect of finance - selling a loan agreement to another lender on the DEX. As mentioned in issue #293, it's normal for your car loan or mortgage to change hands many times once you've agreed to it with a lender.

The initially proposed method of transferring a credit deal's offer ownership (so as to trade the lending position, not the debt position) is too complex to implement https://github.com/bitshares/bsips/issues/293

A lending pool would issue lending pool share assets in return for contributed collateral, enabling you to effectively sell your lending position on the open DEX via a limit order, rather than transfer ownership of a credit offer + update its active credit deals.

Specifications

Would require creation of a lending pool share asset (UIA) similar to liquidity pools.

Would be limited to a single borrowable asset, and a single collateral asset to simplify the allocation of pool earnings to lending pool share asset holders when they close their pool position.

The pool would manage a credit offer, with lender pool owner configured rates/settings.

The lending pool evaluator would need to take into account the amount of lending collateral assets currently locked up in active credit deals before attempting to convert the pool share asset back into collateral, as there may be insufficient liquid collateral to do so.

Perhaps rules similar to smartcoins would be required in this circumstance? Where by a settlement is met by delay until sufficient liquidity is available, and until then new credit deals cannot be made (pool disables the credit offer). I wouldn't go as far as to force settle active credit deals to access liquid collateral, not unless it came with a significant penalty fee.

Discussion

What future strategies for multiple collateral assets are there?

Would illiquidity of lending pool collateral (locked in credit deals) severely effect the lending pool share asset value?

If you were to stake assets in the lending pool, you'd instantly receive the lending pool share asset, but the state of the funds you've staked in the pool (whether they're lent out or not) doesn't affect the share token directly, so it's technically tokenizing both the credit offer and the credit deal for the lender, its DEX value would fluctuate based on amount currently locked in accepted deals.

Summary for Shareholders

Would encourage additional asset creation.

New operations for collecting fees

Potential for greater participation in credit offer mechanisms on the DEX.

Large core code scope.

Copyright

N/A

grctest commented 4 months ago

Alternatively to an on-chain solution, parties interested in creating such an asset lending pool can already do so in a manual manner.

They could accept a transfer/deposit from 3rd parties and top up one of their actively maintained credit offers; it'd be the lender's responsibility to maintain these P2P lending contracts.

Further, we could just look into improving the DEX UX by enabling users to copy/paste existing credit offers for their own credit offer - handling some of the initial config for them, without requiring an on-chain solution.