857
« on: February 23, 2014, 07:28:33 pm »
I strongly support limiting the number of assets in the first chain to BitUSD, BitGLD, and BitBTC. Since it's a "test" chain, and we're testing things like "does this idea even work," it makes sense to limit the things that can go wrong - and more assets should lead to a higher chance of chaotic instability.
For the SIDS attack, N=14 makes sense (the exact number probably doesn't matter), but I'm leery about a hard-coded value for D: the problem is that we don't really know how many XTS holders will be participating in the market. D needs to be high enough to prevent attacks, but if it's too high, the market will never function.
It seems like the main issue in market manipulation attacks is simply that someone can come to the market, hit it with a big hammer (i.e., by buying large volumes to incite a short squeeze), and profit from the ensuing chaos. We don't need to (and can't really) make hammers illegal; we just need to soften the hammer blow.
A simple way to implement this in the market could be to limit the total volume of orders that can execute per block by a percentage of the total market depth.
For example, if the percentage is 10%: if there are only 1,000 XTS of orders outstanding in the market, and at a given moment 200 XTS worth of orders are overlapping (I mean they could result in valid trades), only execute 100 XTS of those orders. Then next block, (assuming for simplicity that there are no new orders placed), there will be 900 XTS of orders, and 90 of the remaining 100 overlapping orders will execute, and then on the 3rd block finally they will all execute.
The effect of this is that when the market is new and shallow, it should have similar stability characteristics to a bigger and deeper market, and it will gradually and gently allow the market to grow into its full size. When the market is big (100,000 XTS of orders outstanding), normal order volumes can execute without ever hitting the limit.
My guess is that 10% is way too high; something more like 1% could work.