The mathematics on the yield fund are simple... it will grow for 1 year and will always contain about 1 years worth of fees.
I think in order to make this assertion, you have to assume that fee income is constant and yield claims are randomly distributed. Obviously, in the real world fee growth is likely when we're in a growth stage, and there may big lumps of claims from big price movements or news events. Agent86 also pointed out that claiming yield is non-commutative...if everyone tries to claim their yield on the same day, then the last guy who claims will see a much lower yield than the first guy who claims. (I realized this independently, but he beat me to publicly describing the phenomenon, so I give him the credit for this one.)
Why must it grow for a year rather than "pay out now"? Because we reward people for holding USD
You can reward them more by paying out now.
and you cannot "pay out now" to every that would be untenable.
As I've said before multiple times -- just have a "distribution event" whenever the yield fund grows big enough to pay 0.01% to everybody. You don't actually go through every balance in the distribution event, rather you just record the block number of the event. Then when a balance moves you can easily check how many distribution events happened since the last time it moved, and determine yield as 0.01% * balance_amount * number_of_distribution_events.
If some sort of yield curve is desirable that pays older BitUSD more than newer BitUSD, that's fairly simple too [1].
How big must the "reserve fund be" for black swan protection... it doesn't matter...
It does matter. If it's too small, then it doesn't actually protect against what it claims to protect against. If it's too large, then we have better uses for the extra BitUSD: Increasing yield, auctioning it off as interest in a BitBond market to tie up much larger amounts of investor capital, or buying and burning BTSX.
"Too small" or "too large" is a judgment that can only be made by adopting some risk model that places a probability distribution on black swan movements of various sizes. We need some "policy model" that determines how much we keep on hand.
But if BitUSD investors have transparency about the amount of funds that would be immediately available to make them whole in a black swan event, they are free to apply their own risk models, decide whether the black swan reserve policy is adequate, and invest accordingly.
assuming the average rate paid by shorts is 10% APR then the reserve fund will be 10%+ of BitUSD out there.
I'd like to see a more careful analysis of why this would be the case.
Considering shorts constantly cover every 30 days.... in the event of a black swan even a large percentage of the USD will be covered by collateral...
Which is why I think a year's worth of income, especially if shorts are being charged interest, will grossly overcapitalize the FDIC fund. A black swan event doesn't mean every BitUSD in existence will suddenly be totally unbacked and need bought up; the majority of them will still be backed by collateral.
thus 10% left over simply means yields on BitUSD get reset to 0 for a while.
With immediate yield payouts, this reset can be made to last exactly as long as it needs to last to cover any shortfall in the FDIC fund. Then we can just put 50% brakes on yield growth to recapitalize the FDIC fund. I think the current yield computation would require at least a year for yield to get fully up to steam after a reset, but again, any model would require assumptions about the rate of fee income and distribution of claim dates.
The funds don't disappear into a black hole..
The funds do "disappear," at least temporarily. If all of the longs and shorts got together and decided to unwind their positions, they'd be unable to do so because:
- Some of the BitUSD in the yield fund would be unclaimable
- The first claims on the yield fund would reduce later claims' yield
- Short interest accrued but not paid into the yield fund would be untouchable
but I can easily see some benefit for tracking income vs expenses each block.
I'm glad we agree that transparent accounting of the network's use of investor funds is important.
I also think there is great value in being able to explicitly control the amount of network income devoted to various purposes.
[1] Conceptually divide funds into 365 "buckets" based on age in days. Keep track of how many BitUSD are in each bucket. When BitUSD balance moves, reset it to bucket 0; at midnight UTC, increase every bucket
, add a new empty 0 bucket, and dump the contents of bucket #365 into bucket #364. Then each bucket has its own yield fund that pays out at 0.01%. Each bucket's fund gets a share of yield proportional to its contents times a multiplier based on its bucket ID (the multipliers determine the yield curve). If dividing every fee into 365 buckets as it comes in would be too much work or introduce too much rounding error, you could just buffer a day's worth of income and then distribute it when you rotate the buckets.