Proposed hardfork change to stabilize Hive Dollar’s tracking of USD value

Goal: Hive Dollar = one dollar worth of Hive

Hive dollars (HBD) rarely go very far below the value of a dollar for long, because HBD can normally be converted to the value of 1 USD worth of Hive in the space of 3 days. So if HBD starts to trade for less than a dollar, knowledgeable traders can buy up any HBD that is trading for less than a dollar and convert it profitably with a reasonable risk level.

Hive’s haircut rule: when there too much HBD, HBD < one dollar worth of Hive

There is a protective mechanism built-in to the blockchain rules called the haircut rule that breaks this lower side peg when the supply of HBD exceeds 10% of the marketcap of Hive itself, and in this case the value of HBD does tend drop below the value of one dollar.

But most of the larger holders of HBD are aware of this mechanism, and they will often start converting their HBD to Hive when the supply of HBD begins to approach the haircut ratio, reducing the supply of HBD so as to keep the HBD supply out of the haircut range. And the blockchain will also reduce and even stop printing HBD entirely once the haircut limit is reached. So the haircut rule mostly only becomes a problem when the price of Hive drops very rapidly and there’s simultaneously a large existing supply of HBD.

What about converting Hive to HBD?

So, the ability to convert HBD to one dollar worth of Hive enables HBD to maintain a value of about one dollar, without most people ever needing to do an actual conversion to Hive.

But there’s no corresponding mechanism for a user to convert one dollar worth of Hive to HBD, so there’s currently no built-in mechanism to prevent HBD price from going above one dollar. For example, at the time of this post, HBD is trading for around $1.20 USD.

If there was a safe mechanism for converting one dollar worth of Hive to HBD, then whenever HBD began to be traded for more than one dollar, Hive holders would be incentivized to convert their Hive to HBD, and then sell it for more than one dollar, use that to buy more Hive, and keep repeating the process until the price of HBD was forced down to one dollar.

Why propose this change now?

Note that this isn’t a particularly new idea: using a Hive → HBD conversion as a means of stabilizing the HBD peg has been discussed many times in the past.

There’s been two issues that have stopped it from being implemented: 1) concerns about potential unintended consequences of such a conversion mechanism and 2) some devs willing and available to invest effort into implementing a Hive to HBD conversion operation.

Over the past year, I’ve read several posts with proposed mechanisms for stabilizing the peg for Hive dollars. While many of them had good ideas, most mechanisms would require a lot of coding effort, and I believe that an implementation of a relatively safe form of Hive → HBD conversion is the simplest mechanism for stabilizing the peg.

I’m not even saying that some of the other proposals shouldn’t be implemented in the future, since some of the proposed ideas (such as using collateral to create HBD) could allow for more HBD to be safely created than is possible with a simple conversion mechanism. But as a first step, I think none of the proposed ideas matches the simplicity of a Hive to HBD conversion operation.

Proposed rules for HBD → Hive conversion operation

Similar to the current convert_hbd(hbd quantity) operation, I’m proposing a new operation:

convert_hive(hive quantity)

Pricing Hive → HBD conversions

This function would immediately convert the specified amount of Hive to HBD in the transacting account, using the following formula:

min(3 day price average, worst case price in last hour) + a 5% fee.

The motivation for this operation to maintain the HBD peg at around $1USD against price pump attempts. If the price of HBD begins to exceed $1.05 USD, it becomes profitable to convert Hive to HBD, and then sell the HBD for Hive on the market where HBD's price has exceeded $1.05 (assuming that the 3 day median price of Hive hasn't been dropping, but in practice we rarely see HBD price increasing while Hive price is actively dropping).

The 5% fee on this operation is to encourage the use of normal HBD market trading. Normal market trading is in fact needed by this mechanism, in order to have the price discovery it requires. So there needs to be an inherent bias towards use of the internal exchange built into Hive (or Hive markets on external exchanges) versus using the conversion operation.

The 3 day price average term is included in the pricing formula to prevent a whale trader from temporarily manipulating the price of Hive to get an unfair amount of HBD via the Hive conversion operation.

The worst case price in the last hour term is included in the price formula to prevent someone from benefiting from using the average price rather than the current price.

Preventing oversupply of HBD

To prevent a risky increase in HBD supply to the point where it could create a price death spiral, the proposed conversion operation would be programmed to fail whenever a user attempts to create an amount of HBD that would violate the global haircut limit. This means that users won’t be able to use this conversion operation whenever the haircut rule is in effect.

Looking for feedback

After evaluating our current workload, I believe we could implement and test the above mechanism in time to include it the upcoming hardfork (hardfork 25).

But first we need to establish if the majority of stakeholders support adding this mechanism and address any possible economic concerns related to the proposed implementation. So if you have an opinion on the subject, please make a comment below.