Asking Witnesses: Debt Ownership Caps?

Untitled design (1).png

I have a question to someone knowledgeable about the block chain. Please forward if you know who can answer. This question is:

How does the blockchain's mechanism prevent SBD conversions when debt-to-ownership is high?

To quote the whitepaper on this:

A rapid change in the value of STEEM can dramatically change the debt-to-ownership ratio. The blockchain prevents the debt-to-ownership ratio from getting too high, by reducing the amount of STEEM awarded through SBD conversions if the debt level were to exceed 10%. If the amount of SBD debt ever exceeds 10% of the total STEEM market cap, the blockchain will automatically reduce the amount of STEEM generated through conversions to a maximum of 10% of the market cap. This ensures that the blockchain will never have higher than a 10% debt-to-ownership ratio.
The percentage floors used to compute STEEM creation are based on the supply including the STEEM value of all outstanding SBD and SP (as determined by the current rate / feed)

How does this mechanism work? Does it prevent conversions from taking place if this condition is violated? Do conversions simply not pay out? I would be very interested in these details.

My Picture of Debt-Ownership Ratios

Quoting the white paper again:

If a token is viewed as ownership in the whole supply of tokens, then a token-convertible-dollar can be viewed as debt.

Yes, this makes sense. 1 SBD is a token convertible for 1 USD worth of STEEM, as I've explored in my previous post.

(Update: conversion has been disabled in steemit UI so nobody will do the wrong option, which is good)

So then, how do we compute the ratio? The first question here is whether or not the market price of SBD matters. My answer is no. After all, debt conversion (SBD conversion) uses the price feed, and the market price of SBD is irrelevant for this.

Let's use an example. Suppose the market looks like this:

1000 SBD,  1000 STEEM,   STEEM price 10 USD/STEEM

(Hey, you know that price will happen.) Since 1 USD would get you 0.1 STEEM, 1000 SBD would convert to 100 STEEM. Thus 100 / 1000 yields a 10% debt-to-ownership ratio. According to the white paper, this is the maximum debt ownership ratio the blockchain tolerates.

Simple enough.

The Debt Ownership Conversion Cap

Let's say there's a price crash and the situation looks like this:

1000 SBD,  1000 STEEM,   STEEM price 5 USD/STEEM

The debt-ownership ratio is now 20%.

Here's the weird part: It would seem that by strict definition, any conversion action reduces the debt-ownership ratio, because conversions decrease the amount of SBD and increase the amount of STEEM. The paper warns about a mad dash to the exits, of everyone trying to convert out SBD and further crashing the STEEM price (which remember, would occur if SBD is below 1$ and the interest rate is not enough to entice holders). This is clearly not desirable.

Is my "debt-ownership" ratio computation correct? It seems the desire is to lower that ratio, but it doesn't match with the picture that we don't want too much debt to be converted at once.

So how does the cap work? My theory is that the blockchain keeps track of the total amount of STEEM ever converted, and makes sure to cap this amount at 10% of the STEEM market cap.

What does this mean in our example situation? Suppose nobody has ever converted before. The cap for conversions is then 100 STEEM. And suppose there is a mad dash and the blockchain restricts conversions so that only 100 STEEM gets created (500 SBD converted). Then the picture looks like

500 SBD,  1100 STEEM,  STEEM price 5 USD/STEEM

which is around 10% debt-ownership ratio. Mentally we (or rather, the blockchain) keep track that 100 of that STEEM is from converted debt. At this point, no further conversions are allowed. And the only way it would allow more conversions is if either:

  1. Supply of STEEM from payouts increases (which happens naturally).
  2. STEEM price increases.

In other words, the market cap has to increase before any further conversions are allowed.

Now the big question: Is this how it works?

And the second big question: If this is being capped, we have nothing to worry about if we print more SBD from raising the witness price feed. Is this accurate?


Updates

Code is quite easy to read, and it seems my guess is way off base.
database.cpp snapshot line 966 create_sbd shows how the cap works.

As mentioned in the comments by @themarkymark, SBD production is simply throttled, so that payouts stop giving out SBD.

Line 3007 shows how the cap is implemented in terms of what percentage will be converted to SBD.

Here is how we compute the percentage:

auto percent_sbd = uint16_t( ( ( fc::uint128_t( ( dgp.current_sbd_supply * get_feed_history().current_median_history ).amount.value ) * STEEMIT_100_PERCENT )
/ dgp.virtual_supply.amount.value ).to_uint64() );

This confirms my earlier ratio computation that the market value of SBD is not taken into account, which again makes sense.

My conclusion from here is that the witnesses really are quite limited in what they can do with SBD production / price feed setting. There's really no point in increasing the price feed to give out more SBD, because at some point this cap will prevent SBD from being rewarded at all, and that will be counter to what is desirable by Steemians.

That leaves negative interest rates, which has its own reasons for not being so desirable... But it really seems like the only tool available to stabilize the price! We'll see how the witnesses decide...

H2
H3
H4
3 columns
2 columns
1 column
22 Comments