HBD hard cap dynamic

in HiveDevs3 years ago (edited)

Last week I've described how HBD limits work as contribution to discussion about changing their values for Hardfork 26. If you didn't read it, the main points you should know are:

  • there are three limits to how much HBD is allowed to exist
  • two soft limits control HBD print rate for comment rewards
  • hard limit works differently by imposing artificial price of HIVE that is higher than market price (when hard limit kicks in)
  • HBD printing for proposal payouts and interest on savings is not stopped even if hard limit is hit
  • we currently have hard limit equal to upper soft limit (both at 10%)

@blocktrades proposed we raise all those limits and as I understand the reasons are related to HIVE market, like we need more liquidity etc. For me the only thing that is wrong with current limits is that hard and upper soft are on the same level. Simply lack of cushion before hard limit is hit feels uncomfortable. It is not a strong argument, since most prevalent force that can quickly push us towards hard limit is not the rate of HBD printing and conversions, but falling price of HIVE. Also hitting hard limit doesn't really change much, it only limits usefulness of internal HBD-to-HIVE conversion. However making light of it equals belittling importance of price feed - one of key responsibilities of witnesses.

I've made related changes to raise limits to the values proposed by @blocktrades - the code is now more flexible so we can adjust the values later. The last commit contains extra logging and can be cherry-picked in case someone wanted to try it on different branch without the rest of changes.

Before I describe what is in the log, a brief summary: my hypothesis/concern is that hard limit price has a strong tendency to grow over time and by increasing hard limit we are only kicking the can down the road, and not by much. We will hit hard cap again and over time we will be hitting it sooner rather than later. I've requested @gtg to make full run (he is going to publish results once they are available), but the limited replay I tried seems to confirm my speculation. The hard cap price can go down, but it does so in slow pace and in environment with zero interest rate on HBD and no inflation assigned for proposals (those started in HF21).

The log is printed from database::update_median_feed (routine run every hour that sets new price of HIVE) and contains the following:

  • GREP: or GREP24: tag (the latter once every 24 hours) to make filtering easier
  • block number
  • min/median/max HIVE price as reported by witnesses at the moment (median is the price that becomes new element of 3.5 day price window history)
  • min/median/max HIVE median price within 3.5 day price window history before hard limit is applied
  • hard limit HIVE price (current internal price - database_api.current_price_feed - is always bigger from the two: hard cap or median history price)
  • debt ratio in percentage points
  • current APR on HBD holdings in percentage points
  • total HIVE supply in HIVEsatoshi
  • total virtual supply in HIVEsatoshi

It was easier to just print that to log instead of f.e. making dedicated plugin, because all the data is already in place.

Once we get the log from full replay it should be easy to filter it into .csv and make nice looking charts :o)


Hard limit price is growing more or less when amount of HBD grows faster than amount of HIVE. Amount of HIVE grows as a result of:

  • inflation - steady and decreasing over time (for details see code of database::process_funds)
  • explicit conversions from HBD with use of convert_operation - problem with that operation is that it becomes inviable when hard limit is reached, it also always carries risk, since it is delayed by whole price feed history cycle (price can change completely between transaction and actual conversion)

Amount of HBD grows when it is:

  • converted from HIVE pool of rewards for comments - limited by lower soft limit, stopped by upper soft limit
  • converted from HIVE pool of proposal payouts - always active
  • converted from HIVE with explicit collateralized_convert_operation - stopped by upper soft limit
  • printed as interest for HBD savings - while above was either taken from existing pool of HIVE or from HIVE inflation, this one is extra source of inflation; also always active; note that up to HF25 also liquid HBD gave interest, now it is just savings, which reduced the pressure a little, so we can expect less actual new HBD after last hardfork

I'm excluding fees and sending funds to null as means of regulating amount of HIVE/HBD because in the long run they are negligible.

So... when HBD grows it comes from HIVE (decreasing its supply), plus it has its own source of inflation, therefore even though upper soft limit stops some growth there, as long as interest on HBD (dynamic_global_property_object::hbd_interest_rate) is bigger than inflation rate on HIVE (minus part for proposals that is always converted to HBD - dynamic_global_property_object::sps_fund_percent) the hard limit price will grow over time increasing the chance of reaching the cap (yeah, the actual relation is not that trivial, but the above reflects the truth to some extend).

I don't have any solution, I just noticed potential trend. But maybe someone has some proposition on what to add to Hive ecosystem to allow "paying the HBD debt" and/or can make convincing argument that this is not a problem (or maybe full data will show there is no permanent trend but just fluctuation).


Edit: data is ready thanks to @gtg

I've filtered out two .csv files, one containing just one record per day, second one with all records

charts.png
Full size chart here

Upper chart shows prices: median from current witness reports (market price), median of medians within 3.5 day price history window (internal price candidate) and the yellow line depicting hard cap price. When red line gets below yellow line, the latter price becomes internal price of HIVE. Sharp decline in hard cap price near the end is HF25 when we stopped accounting treasury balance during hard cap computation.

Middle chart shows debt ratio and HBD interest rate. Raising interest rate before HF25 is correlated with increase in hard cap price.

Last chart shows HIVE supply and virtual supply. The difference between the two comes from HBD and is also related to HIVE price. Virtual supply drops when HIVE price rises (existing HBD is worth less HIVE). Current supply only drops near the end which is probably the effect of people using HIVE-to-HBD conversion (virtual supply also drops a bit in the same fragment because it was also the time of rising price of HIVE).

Sort:  

Hard limit price is growing more or less when amount of HBD grows faster than amount of HIVE

It isn't the amount that is important, it is the value. The relationship is dynamic due to the price feed. If we were just looking at the ratio of token counts, then the analysis of inflation rates would be relevant, but that's not how it works. It is the value of Hive that needs to grow faster than the interest rate, not the supply of tokens. Of course, this should be obvious in that Hive is a high risk investment. If there weren't the prospect of large appreciation, no one would, or likely should, own it.

My view is that we hit or approach the cap frequently in large part because the cap is so low (i.e. too low). Yes there is demand for 10% of Hive's value in the form of HBD. Okay, is that an interesting observation, or is it basically obvious simply because 10% is almost nothing and there is at least some demand for HBD for obvious reasons.

Is there demand for 30%? Maybe yes, but overall the level of demand is not arbitrary. There wouldn't be demand for 99% IMO, so we could conceivably deal with the issue entirely by setting the cap at 99% (or removing it). Of course this is unrealistic, and likely unnecessary because demand would self-correct long before then.

Also, let's keep in mind that the current high interest rate is (almost) certainly "temporary". 10% won't be sustainable forever. It could persist for a while, but one way or another it will come down. So the idea that it isn't sustainable because it will outgrow Hive is likely true, but not for a long time.

The above ignores USD going hyperinflationary, which would also address the issue. Though I think we would likely switch to a different, reasonably value-retaining, peg target (which might make sense to do anyway)

Hard limit price is growing more or less when amount of HBD grows faster than amount of HIVE

It isn't the amount that is important, it is the value. The relationship is dynamic due to the price feed.

No no, price feed does not influence hard cap price, just the relation between HIVE and HBD amounts. Let's see how much exactly we need new HIVE to offset one new HBD for 10% hard cap price to stay the same.

Using h = HBD supply (corrected for treasury balance), v = HIVE supply we want to calculate x so new hard cap price with 1 new HBD and x new HIVE (left) equals old price (right):
9(h+1) / (v+x) = 9h / v 9(h+1)v = 9h(v+x) hv + v = hv + hx v = hx x = v/h
Let's see how it is for 30% hard cap.
7(h+1) / 3(v+x) = 7h / 3v 21(h+1)v = 21h(v+x) hv + v = hv + hx v = hx x = v/h
The same. But that's actually good argument for raising hard limit - when ratio of HBD to HIVE gets bigger, the x, which is its inverse, gets smaller, that is, we need to produce less new HIVE for each new HBD for hard limit price to stay stable.

No no, price feed does not influence hard cap price

Oh I agree, and wasn't suggesting otherwise. It affects whether the hard cap price matters.

I was referring to the feed price affecting the virtual supply, and therefore the "debt ratio" relative to the defined 10% cap. Of course these are two ways of viewing the same thing.

I feel like I'm still missing one important piece of the puzzle.

The chart near the end, around latest hardfork, shows that increasing interest on HBD has strong correlation with raising hard cap price - something withesses should be taking into account.

It also shows that explicit HIVE-to-HBD conversions are extremely effective in pushing supply of HBD to the limit - a good argument for making hard limit noticably higher than upper soft limit.

However there are two other places where hard cap price rises: near 13M mark (HF19) for a short time followed by period of steady price and later between 19M and 23M (all before HF20). Such rise of hard cap price can only be caused by either falling supply of HIVE (did not happen as we can see on bottom chart) or raising supply of HBD (not visible as spike in virtual supply because in the same period market price was very high). Since in that time interest on HBD was zero, proposals were still not a thing and there was no HIVE-to-HBD "on demand" conversion what process caused that effect?

The chart near the end, around latest hardfork, shows that increasing interest on HBD has strong correlation with raising hard cap price - something witnesses should be taking into account.

Correlation != causation likely applies in this case. I say this as someone who has observed in real-time many of the potential factors that could have caused previous rallies in HBD price.

But witnesses are well aware of the potential for the interest rate to influence the attractiveness of HBD, which tends to increase the price, which creates Hive->HBD conversions to profit from that price. But the Hive->HBD mechanism tends to also increase the price of Hive, which decreases the chance for Hive price to actually hit the hard cap price.

And pragmatically speaking, it is fairly obvious that most HBD is being bought and held by people who have little knowledge of the workings of HBD, interest rates included. In the future, of course, interest rates play a larger role in determining HBD supply, once more holders are aware that there is a potential to earn interest on HBD by keeping it in their wallet savings account.

I feel like I'm still missing one important piece of the puzzle.
However there are two other places where hard cap price rises: near 13M mark (HF19) for a short time followed by period of steady price and later between 19M and 23M (all before HF20). Such rise of hard cap price can only be caused by either falling supply of HIVE (did not happen as we can see on bottom chart) or raising supply of HBD (not visible as spike in virtual supply because in the same period market price was very high).

Pretty much every crossing of hard cap price for Steem occurred because 1) Steem price went up a lot and a lot of SBD was created as a result of increased inflation (which raised the hard cap price due to increased supply), followed by 2) Steem price dropped a lot.

All this gets back to @smooth 's point: hard cap price going up isn't a problem as long as Hive price goes up as well. From the blockchain's point of view, HBD acts a bit like a convertible, interest-paying debt. And it generates it for similar reasons: it expects to have a higher internal rate-of-return for Hive's price than it offers to HBD holders, at least over the long haul, so the blockchain pays for stuff in debt in many cases instead of Hive. So far, this bet has definitely paid off for the blockchain.

Full run is in progress, I should have the results in few hours.

By the way, weren't you supposed to add some fancy pictures to illustrate your post?
ProTip: use kittens if you don't have a better idea ;-)

No, no. I assume that once you have the data from full run you'll make a post with some fancy charts and I will link to it :o)

But kittens you want, kittens you have.
desktop_cat.jpg
Desktop cat is watching you.

Congratulations @andablackwidow! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You received more than 250 HP as payout for your posts and comments.
Your next payout target is 500 HP.
The unit is Hive Power equivalent because your rewards can be split into HP and HBD

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!