I guess by off-network txes you mean things like 'gox redeemable codes?
I was thinking more along the lines of a banking system layered on top of the currency. Or if people figure out how to make secure transactions with a physical medium.
What happens if there's an intermediate run on DCR? If your money supply algo is not 99% perfect, there might be deflationary times and a bubble might rise. Transaction volume goes up for a limited amount of time. Your all-time GDP goes up. The bubble bursts and transaction volume is back on a fraction. So in addition to the bursting bubble you're making it worse by inflating money supply.
By "an intermediate run" do you mean people start buying in heavily? Transaction volume can't rise too sharply with the same amount of coins. The very deflation caused will cause transactions to be for smaller amounts. Don't forget that people will be well aware of the properties of the system, and buying when coins are priced too high is not a good idea unless the alternatives are very poor, in which case those alternatives are unlikely to fix themselves any time soon, and the result will likely be a permanent increase in the decrits economy.
Any bubble that occurs knowing the properties of the system would be real demand, not speculative demand. There isn't much incentive to hoard to increase the price when minters can just start creating money. Although there is definitely some incentive to cause initial hoarding/speculation when the mint block awards 5-10x during the bootstrap, but I think this is a necessary part of the bootstrap process.
If real demand outpaces the ability of the decrits network to create it, then there will be periods of deflation. But at the same time, money is being given freely away. The key is to make sure that the process of absorbing the world's economy does not create monolithic empires or cause economic catastrophes. Even if coin production overshoots, the vast majority of that money was given away freely and at random. What does it matter if bread that cost 1.00 yesterday costs 1.02 today if you got a free decrit for buying it? Maybe a bread maker who didn't sell bread for decrits yesterday will start today because he knows that decrits will probably go slightly up in value soon because no more can be profitably created for some time.
It is impossible to create a totally stable system that can rapidly adapt to whatever the world economy wants to throw at it. There are billions of variables to account for. There are, however, two major goals we can try to achieve:
1) Make the process of switching the world over to a new currency as painless as possible. It will not be completely pain-free.
2) Make the system perform as stably as possible when whatever portion of the world that adopts it is going to adopt it (at least for now).
That is the viewpoint from which I see the design of the system.
alright, this might calm things. But it also slows adaption to changing circumstances.
Yes, this is a caveat of the system. Quick adaptation is much more likely to result in mistakes. Slow adaptation with the knowledge that
it will adapt could create quite a lot of interest. Temporary deflation is just what the doctor ordered for this scenario, especially as all people using the system will be rewarded, not just those that "got in early" or are direct beneficiaries of corrupted governments. Free decrits are being given away and the guy down the street is taking decrits and getting free coins, and you're sitting there with a devaluing fiat currency? I think this could be a powerful motivator. There is never a bad time to start taking decrits.
Price high? Free coins are being given away. Price low? You're getting decrits for less than their (mostly) verifiable cost to produce.
I need some naming guidance. AcctFreeMoney?
What is GetConsecutiveMBlocks()?
I have mostly focused on the transaction side of the free money, but I have always proposed giving free money away to accounts too, 5x to transactions, 5x to accounts. This is sort of a crutch to prevent EvilCorp from inflating away savings by minting at big losses. I guess it's not really a crutch, it's just a massive disincentive to manipulating the supply. And unless the network has transacted many multiples of the total money supply in the last 30 CDs, the transaction money will still be much more significant in terms of % of volume, so hoarding will not be as relevant as participating in the economy.
GetConsecutiveMBlocks would be a function that determines how many mint blocks have been created "in a row" to determine the additional multipliers above 5x. "In a row" might mean that if MB 2 starts within 10 CDs of MB 1, it is considered a consecutive block. Maybe 30 CDs. It requires a lot of discussion. I do believe that the multiplier should be capped, but at what point is a big decision because it has big implications on how the currency can react to something like doubling within a year, or ultimately taking over as the world's currency. But if tx volume keeps increasing, the MB awards will get bigger without the multipliers having to be bigger because NGDP is increasing.
I don't think it is a good idea to bet on constant growth.
I have told you that the system does not rely on it. When minting is unprofitable, minting will stop. The currency does not lose value or utility because new value is not entering the system. It might lose some speculative fervor, but you must remember that it will be competing with currencies that have terrible foundations, and that includes bitcoin. Cycles will happen in those currencies, and value will be drawn to the decrits system. Whereas bitcoin kicks out a large portion of its adopters after they lose the house, decrits will make sure they never want to leave or feel as if they have been defrauded, even if the value does dip (they made coins along the way).
The principle of the system is a sound, fair way to both upset the current monetary infrastructure and empower the people. There is no need for a multitude of clones to draw back the power of the heavily manipulated bitcoin. Everyone who creates, sends, accepts, and stores decrits benefits from the system during expansion. There is no one group that benefits vastly more than the others. I think it is going to be hard to get people to run away from that system once they're in and they get it. And if the wealthy start manipulating the supply way down the road, the people are always free to create more to diminish that power that is being misused or abused, and no government will be able to intervene. In the case of bitcoin, people would create a clone. In the case of decrits, they will just make more money. You will not stop the people, you can only make it more difficult or more easy for them. Decrits chooses to make it more easy.
You have more than one of these "one-way" assumptions in your design. GDP(MAX_CONSENSUS_YEAR) is only one of them. Monotonically increasing money supply is another.
I'm not sure what assumption you're under of how the system works. What is it do you think would be a better way? Max_consensus_year does not have to keep increasing, it just won't go down. Why would it need to go down? That would imply that money needs to be created in a system with a declining transaction volume, on or off chain. Off chain transactions will still have an effect on the valuation of the currency, so if tx volume is declining due to that, new money will still be in sufficient demand to be created by the system.
I'm just not sure I see what problem you have with a monotonically increasing money supply. The price does not have to be rock hard ridiculously stable at one point. Destroying currency only reduces the impact of price stickiness. But remember, if the currency is undervalued, it is an opportunity for new people to accept it. And undervalued is not some vague notion as it is with bitcoin, it is something that people will have a lot of real information on.
As soon as the volatility caused by the crisis calms down, so does transaction volume.
I think you might be overly concerned with the very early stages of the network. The solution is to have an economic bootstrap design that makes sense to protect the network from ridiculous swings early on. One of the easiest ways to do that is to ramp up some variables (like max_gdp) ahead of their time. Paypal is a good starting point to think about how to design the economic bootstrap so that the currency can grow into itself a bit. I just haven't gone much into this side because I'm trying to make the bigger picture clearer first before delving into the minutiae.