[Edit 18 May: After I wrote this OP, I have continued to work on it toward an improved approach. I hope to write that up also in the next few days.]
Here is a yield approach that could be applied to just about any type of bitAsset, so is largely independent of the exact form bitAssets ultimately take. This yield mechanism could also be added at any time, if it were desired to test with a no-yield option first. However despite the added complexity, I would prefer to incorporate yield from the outset to better manage supply and demand.
Basic Approach
- all shorts must specify and maintain a maximum interest rate they are willing to pay to longs (the "max rates")
- at any time, there is a single floating rate paid from all shorts to all longs ("the market rate")
- by construction the market rate is always equal to (or lower - see below) than the lowest of the max rates
- forced short covers other than margin calls, aimed at mitigating bitAsset discounts, are prioritised from lowest max rate to highest max rate
- shorts are able to change their max rates at any time, and new shorts created, subject to not being less than a rate determined by the market rate
The result of this is that bitAsset discounts are always removed through a combination of reduced supply and higher rates. This moderates supply changes compared to relying on the supply adjustment alone.
Managing yield fluctuation
Ultimately, if markets were very liquid, and bond market yields were available to provide a comparison to the (zero-term) market rate, then yield fluctuation would be fairly smooth. In immature markets however, the rate that perfectly calibrates supply and demand is likely to gap up or down and add to yield uncertainty. It may be best initially to find a happy medium even if it takes longer to reach parity, as long as that parity is still assured. These restrictions could be gradually loosened over time as markets get more liquid:
- set a daily lower bound and upper bound on the market rate, being the prior days' rate +/- X% (for example 0.25%, or higher rate to be determined)
- when forced short covers occur, the market rate would effectively rise X% per day until reaching the lowest max rate
- changes to max rates, and max rates on new shorts, cannot be less than the lower bound
- its also possible to lower the market rate X% per day while there is a bitAsset premium (though this may not be necessary if shorts follow down the lower bound)
- the X% limit could be expanded if the bitAsset is a long way from the peg
Dealing with Negative Yields (Payments Longs to Shorts)
In situations where external interest rates in the underlying currency are very low, and supply falls short of demand (both of which we have currently for USD), the natural market rate is likely to be negative. A negative rate would then be necessary to remove bitAsset premiums and guarantee a return to parity. Assuming we wished to incorporate negative yields (an open question), below are a couple of possible ways to deal with this, though developer input would be required on what's feasible:
1. Use a variable transaction fee on bitAsset movements that reflects accrued negative interest paid to the shorts
2. Establish a DEPOSIT token that represents a varying number of bitAsset units as interest accrues in either direction, and create a checking facility denominated in bitAssets that settles as a transfer of DEPOSIT tokens between the parties
Integration with the Bond Market
BitAssets with a yield can be thought of as units being held on deposit. When they are switched to the bond market, they give up the at-call yield in return for the yield offered on the bonds.