Hi Philbert,
 
Thanks for the inspiring observation that fresh coins are analogous to zero bonds. The observation that a new coin maturity policy would make the issuance mechanism similar to that of traditional currencies having mature and self contained financial systems, but remain fully deterministic, is thought provoking.
 
It would allow us to bootstrap a self contained financial instruments universe (not only cash), if the interest rate of those zero bonds were observable on-chain.
 
BUT, observing implied chain intrinsic interest rate is impossible without on-chain transfer of ownership of those zero bonds. Transfer of ownership is however prohibited until maturity, at which point the zero bond becomes cash. If a transfer before maturity was possible, then those new zero bond outputs would have to remain unfungible with cash and with zero bonds of different maturity. Supporting different classes of outputs that are only fungible within their own kind is not in grin's current design.
 
In absence of above capabilities the impact of the idea of using a maturity rule is reduced to a present value tuning of miner reward, where the discount factor remains external to the system.
 
Thereby I am not ruling out the idea of having long and deterministic coin maturity, but think that to reach its full benefit we need to work on the idea of output fungibility classes and their implementation. Which sounds to me a major feature worth considering.
 
Garrick Ollivander
 
Sent: Sunday, October 01, 2017 at 8:31 AM
From: "Philbert Wallace" <philbertwalla...@gmail.com>
To: "Casey Rodarmor" <ca...@rodarmor.com>
Cc: mimblewimble@lists.launchpad.net
Subject: Re: [Mimblewimble] On block rewards
TLDR: While bitcoin issues miner bonds (rewards) where the nominal value of the bond is a function of network age (50 btc, then 25, now 12) but the term length of the bond is fixed (100 blocks), I propose that we simply do the reverse for MW: issue bonds where the nominal value is fixed but the term length is a simple growing function of network age, thereby preserving the feeling of finite-supply (due to natural time preference discounting by economic/market participants).
 
Hi all,
For what it is worth, and on the topic of block rewards, I think it is important to remember that these self-monetizing p2p networks actually finance/perpetuate their existence, somewhat ironically, like a government does -- namely by, in exchange for receiving something valuable in the present (acceptable block), issuing an instrument (effectively, a bond) that is backed by the "full faith and credit" of the network. The bond is worthless if the issuing entity/network ceases to exist before the maturity date (also known as a default), otherwise the bond is redeemed for cash (ie made spendable) by the issuer.
 
Governments do this by issuing treasury bonds (a promise to pay in the future) in exchange for something valuable in the present.  Bitcoin/MW and others are no different in this respect. Taking Bitcoin as an example, the network simply pays for acceptable blocks (the thing of value in the present) by allowing the finder to embed in the block a bond issued by the network which will only become spendable, in bitcoin's case, in 100 block's time. Before that 100th confirmation the miner is effectively holding a future-dated cheque written to her by the network with some stipulations as to when (or if) it can be cashed.
 
So, while the US government essentially finances itself via issuance of a variety of treasury bonds of various maturities and nominal values, bitcoin finances itself via the issuance of (approximately) 17-hour bonds, the nominal value of which depends on the network's age at the time of issuance.
 
Bitcoin, and presumably MW too, go a step further: by committing to, at genesis, the issuance schedule of its bonds. Committing to an issuance schedule removes a massive element of uncertainty for current/future economic/market participants and is one of the reasons why (so far at least) bitcoin and some others seem to be decent stores of value. One other reason, however, is that, at least in bitcoin's case, there is a finite cap on supply due to the "nominal/par value" of its 17-hour bonds dividing in half every 4 years (first 50 btc, then 25, now 12.5). This latter reason is the one I fear MW might be losing if we are not careful with how we do MW's bond/block issuance. That being said, I understand and appreciate the simplicity (and possible technical necessity?) of a fixed nominal value for MW's block reward. Therefore, I would like to propose a slightly different (and perhaps unique) way that we can recover the "feeling" of finite supply without sacrificing the benefits of the simplicity of a fixed nominal reward.
 
While bitcoin issues bonds where the nominal value of the bond is a function of network age (ie block number) but the term length of the bond is fixed (100 blocks), I propose that we simply do the reverse for MW: issue bonds where the nominal value is fixed but the term length is a function of network age at time of issuance.
 
Any simple monotonically increasing function of network age would do. For example, maturity = height + max(k, ceiling(3*height/2)) where k is a security parameter that sets the minimum maturity term. 
 
Using this example, when the network is 10 years old, it would be funding itself by issuing 15 year bonds. Now that is an amazing thing! Here's why: there would almost surely be active markets/exchanges (or a decentralized mechanism that achieves the same end) for these bonds. Since the supply would be known in advance by all participants due to the issuance schedule, then, unlike government treasury bonds (which lack the "known supply schedule" quality), it's reasonable that the prices of our MW crypto bonds would impute much more valuable information about the true state of affairs with regard to this "lowest-risk" asset class. If you're contemplating some capital-intensive project/investment that has a long time horizon (wind farm, colonizing mars, etc) what you and your fellow investors really need to know is "what's the lowest-risk opportunity that this investment I'm contemplating must beat" (a hurdle rate of sorts). To be able to look at the markets and see what "the 10-yr mimblewimbles are trading at" is immensely valuable in informing decisions like that. Similarly, it is no surprise that global finance right now uses the best approximation it can find, which, sadly, for the moment at least, is long term US treasuries. We can surely do better :-)
 
Therefore, I predict that the cryptocurrency network that proves to the world that it is truly "thinking" on a timescale longer than governments by moving towards funding itself via bonds of a maturity length longer than most government bonds will not only find itself in high demand as a store of value but will also be providing the world with a more true aggregated measure of time preference, a valuable and much needed service.
 
Note: as far as I can tell, this doesn't really change miner incentives. It's still in a miner's best interest to join as soon as possible and to mine honestly. However, one benefit to the network is that, once the term length of the issued bonds exceeds the duration of the cash flow cycle for the miner, then the miner will likely unload it to a market participant with a longer time horizon rather than hold it to maturity. The process of unloading it would likely emit a valuable piece of time-preference data to the world.
 
Sorry for the long email about this, perhaps, non-standard way of thinking about network rewards. Regardless of whether it is adopted by MW, I am very much looking forward to MW! However, I do hope it will at least be considered :-)
 
P.S. another possible issuance schedule:
maturity = height + max(k, ceiling(c*log(height)) where c is a constant chosen at genesis
 
On Sep 30, 2017 8:36 PM, "Casey Rodarmor" <ca...@rodarmor.com> wrote:
The code that checks the block reward of the initial blocks will always need to be part of the grin codebase (and any other implementations of grin, should there ever be any).
 
Because it will always have to be part of the codebase, it seems like extra complexity for limited benefit.
 
Interested miners can already mine on testnet to make things are working.
 
In order to make it easy to switch over, we could add a flag to the client which takes the genesis and starts mining it on mainnet. This way, miners can flip their miners over to mainnet once they get the hash of the genesis block just by adding a flag. This flag could be removed eventually, after a few releases, since it won't be needed in the long term.
 
On Sat, Sep 30, 2017 at 7:29 PM Seamus Finnigan <seamus.finni...@protonmail.com> wrote:
Hi John,
 
In retrospect that seems overly complicated. The simplest
possible schedule, namely a fixed constant block reward,
probably works well enough. It"s also what Ethereum uses,
except they started out with about 7 years worth of rewards
 
The 7 years of rewards, plus the many hints at eventually switching to Proof of Stake and reducing rewards, make Ethereum an altogether bad point of comparison. Around 72 million coins were distributed via the crowdfunding sale and to the foundation/developers. Then another 12 million or so per year in their flat emission. That meant in inflation rate for that first year was less than 17%, and fell below 15% in the second year.
 
If a flat block reward is being considered, a better analogy to consider would be Bitcoin, Litecoin, or Zcash, each of which had/have flat emissions for 4 years. Without Ethereum's premine, they would fit the same scenario. Now imagine if after those 4 years (and again 4 years later) there had not been block halvings (I will use #s for Bitcoin but the same could be done for the others I mentioned). That would mean that today there would be around 24.4 million coins available today with an additional 2.6 million or so mined each year (10-11% inflation after nearly 9 years), rather than the approximately 16.6 million coins and 660k or so new coins per year we actually have (~4% inflation today).
 
Perhaps at the 9-year mark, that's not so bad... 11 percent drops to single digits in another year, drops below 5% in another 10 years. But those first 9 years are brutal to anyone using the coin as a store of value, **unless user and transaction growth match the emission growth**. That is what needs to be considered here... the ramifications of a flat reward on users of Grin during the nascent years of it's chain. If the primary use is pegged confidential assets of other coins, than it's perhaps not a big deal. If the primary use is as a currency itself, then it's everything. It might be okay, but it deserves discussing.
 
Of course, if a fee system is implemented that burns fees a la Peercoin (as has been suggested by some), then the inflation in the system is effectively decreased.
 
The only deviation I"d like to make from that is a slow start, where
block rewards are initially zero. This allows everyone to setup and
test their miners and pools in a relaxed manner, no matter their
timezone, and offers a unique opportunity to advertise an already
up-and-running coin where people can still get ready to mine the first
reward.
 
Testing setups can be just as easily done via a testnet, and it is highly unlikely any large miner will test for any prolonged period.
 
 
The question is how long the slow start should last. To cover all
timezones, it should be at least one day. Preferably a few. A week is
probably more than enough. I propose two options:
 
1) At a fixed block height, [rest omitted for brevity...]
 
2) As soon as difficulty stabilizes [rest omitted for brevity...]
 
In either case I propose that we try to overestimate the initial
difficulty
 
 
A prolonged period of 0-reward blocks would be a mistake. First off, there would literally be 0 coins. What do you do with a chain with 0 coins? Second, no reasonable miner would spend any longer mining than she has to in order to make sure she is set up correctly. Minutes, maybe hours at most. If the worry is that she might not have time on day 1, but will on day 2, then again - that's a reason for a test net before launch that completely mimics the real chain.
 
The problem here is that the first days or weeks would have basically no work behind them, which basically means that come day 1 of the block rewards, the chain is still basically 0% secure. But even more problematic, any reasonable miner will just wait until the rewards start and then start mining, which will accidentally turn the whole thing into a small instamine because the difficulty will be too low.
 
Setting the difficulty overly high is an interesting idea, but only under scenario 1, and only if the difficulty adjustment algorithm would not allow the difficulty to adjust down to lower-than-expected-demand levels. Amending scenario 2, you would want to set the difficulty low, and then have some threshold of "X blocks over Y difficulty" as your activation. Going high-to-low (depending on the difficulty adjustment algorithm) would just further play into the hands of anyone waiting on the sidelines, as not mining is the best way to drop the difficulty.
 
Realistically, if you want to have 0-reward blocks as a startup, the best option is probably to set a constant difficulty for that period that is based off a best-estimate of the expected hashrate on Day 0, and then a target block height that will be the first block with rewards. As initial demand is very difficult to estimate (would requiring looking at recent launches of other coins), a mechanism could be put in place that will adjust the initial difficulty up but not down during that 0-reward period... as more miners ramp up to join, if it turns out there are more than expected the difficulty can adjust before rewards happen, avoiding an instamine.
 
But I don't really think a 0-reward start is a good idea... there's too much guesswork involved, and I'm not sure that it actually achieves any tangible benefit. Something on the order of 1 day might be acceptable, but any longer is just missing the point. The simplest model for avoiding an instamine and allowing people to ramp up has already been played out in a number of cryptocurrencies: slowly increase rewards over a 1-2 week period, allowing block rewards to somewhat scale with mining demand, and have a good testnet available before launch for miners to test out if they would like.
 
Besides, if block rewards are constant in perpetuity, whether a miner joins in hour 1 or hour 18 is pretty much a moot point. We're talking well under 1% of the first year's coin supply, and under 0.1% of the supply after 3 years. Being a few hours late to a slowly and fairly launched coin isn't an issue. If someone sees reason to be there from the start, then they will make sure they are available and ready to go.
 
Mischief Managed,
Seamus Finnigan
 
Sent with ProtonMail Secure Email.
 
--
Mailing list: https://launchpad.net/~mimblewimble
Post to     : mimblewimble@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mimblewimble
More help   : https://help.launchpad.net/ListHelp

--
Mailing list: https://launchpad.net/~mimblewimble
Post to     : mimblewimble@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mimblewimble
More help   : https://help.launchpad.net/ListHelp
 
-- Mailing list: https://launchpad.net/~mimblewimble Post to : mimblewimble@lists.launchpad.net Unsubscribe : https://launchpad.net/~mimblewimble More help : https://help.launchpad.net/ListHelp
-- 
Mailing list: https://launchpad.net/~mimblewimble
Post to     : mimblewimble@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mimblewimble
More help   : https://help.launchpad.net/ListHelp

Reply via email to