BTSX has shown there are two problems with traditional testnets:
- Usage of testnet is very light, problems often don't surface until features hit mainnet
- Testnet can test mechanics, but can't test economics
Both of these are due to the fact that testnet coins have no value. I'm thinking of fixing this as follows:
- Create a new DAC called DevShares. DevShares have permanent value; every two months there is a scheduled hardfork that adds new features.
- Create another new DAC called NewShares. A NewShares network includes bleeding-edge features and may be frequently hardforked (like BTSX shortly after BitUSD release).
NewShares is a "tempnet": It has a finite lifetime like a testnet. But unlike a testnet, NewShares shutdown time is hard coded from launch. Honest NewShares clients will stop accepting blocks after the hardcoded shutdown time, which will be approximately a week before the next DevShares hardfork. NewShares is snapshotted at the last block, and (inflationary) DevShares are issued to all NewShares holders. Thus, another difference between NewShares and a testnet is that NewShares are intended to have a nonzero value (because NewShares represent the right to receive DevShares in the near future, which will have nonzero value provided DevShares themselves have nonzero value).
After a NewShares shutdown, a new genesis block for a new NewShares network may be issued. (The new genesis block's height field will continue after the previous NewShares net's final block field, which may make certain implementation issues easier.)
So basically features go from testnet -> NewShares -> DevShares -> stable DAC's, where "stable DAC's" are BTSX, DNS, Music, etc.
Even though the NewShares network is temporary like a testnet, the economics of NewShares will hopefully be realistic because NewShares will be converted into DevShares which have permanent value. DevShares must be a new DAC because its inflationary model is different, and existing DAC's have already made promises to investors about their inflation model.
DevShares will themselves have substantial value because their feature set will be updated much faster than BTSX. With the DAC "business delegate" model, some of DevShares' value can be siphoned off to support development. Also we can airdrop genesis block NewShares on each NewShares tempnet to holders of other DAC's that support the business delegate model. This encourages wide participation in NewShares and DevShares, and (quite indirectly) funds development: The regular airdrops to DAC's that support the business delegate model may increase the price of those DAC's.
Basically the purpose of NewShares is to allow trying out features and economic experiments without having to commit to supporting them forever, or risking the entire market cap of BTSX on some unproven concept for e.g. different shorting mechanics. And alleviate the pain of hard forking by scheduling them (in the case of DevShares) and separating out people who are willing to keep up with hardforks into their own network (in the case of NewShares). Of course critical security issues may still require an unscheduled hard fork.
There's an analogy to the typical organization of software projects: You can think of NewShares as the "development branch" (very new features, sometimes compat-breaking), DevShares as the "master branch" (pretty new features that the devs regard as final but have not received as much real-world testing from users as the stable branch), and BTSX as the "stable branch" (receives bug fixes and security fixes, and new features when they have been thoroughly tested by more adventurous users).
Also, the NewShares model alleviates the problem of requiring many different versions of the validation logic / market engine: After NewShares shutdown, the next NewShares net starts from a "clean slate" and doesn't need the obsolete validation logic because it's not required to be backward compatible with the old net which has been shut down. The details of NewShares mechanics never make it into DevShares code. DevShares only knows about the shutdown block distribution of NewShares, it doesn't need to know anything about the semantics of the NewShares transactions that caused the transitions from the genesis block to the shutdown state.