Hi all,
I’m glad to see this proposal and how it is thought out. There is one issue I don’t see addressed in this thread, though I haven’t reviewed the ZIP yet, and I’d feel more comfortable if it was analyzed better and there was a widespread consensus about how to address it prior to shipping. Also, to be fair, I think this exact same issue applied with the earlier block target time reduction, and I don’t recall if this issue was analyzed. I still think it’s worth doing better than last time if we can!
If we assume a fixed mining capacity + difficulty, then one analysis of security against PoW rollbacks is the opportunity cost of the time / energy / money spent on an attack. Lowering or raising the block target time doesn’t affect this cost (time / energy / money).
The implication of this is that for any users who follow a heuristic of waiting for K block confirmations to have some security guarantee against rollbacks, if those users do not adjust their heuristic when this change activates, they will be receiving confirmations faster on average for less security against rollbacks.
So ideally, each user would (a) know about this impact, then (b) decide if they want faster confirmations with less protection against rollbacks, or to maintain their previous (approximated) level of protection against rollbacks (which would take approximately the same wall clock time, and would require adjusting a K-block threshold heuristic, probably by around 3x).
Since real users aren’t the ideal, we should also decide, as a dev community, how to address this issue. My first stab at next steps would be: (a) educate wallet devs, exchanges, etc… of the trade-off, since all of them implement some kind of UI around confirmations, and some of them use “depth K” security heuristics. (b) I haven’t thought about the impact of variable mining capacity and Zcash’s quickly responding DAA. I also haven’t yet read this post, which looks promising. Hopefully there’s overlapping analysis. (c) I think we should avoid, as a community, saying this change simply “lowers confirmation times” without also including the fact that it’s trading off confirmation time with rollback protection level.
I haven’t seen this issue mentioned explicitly anywhere in this thread, although I did see that section about wall-clock time economic parameters. We might consider rollback security an example of a wall-clock time economic parameter (but even so, I think it deserves explicit mention).
FWIW, I’m a fan and supporter, of this change for NU7, and I think we can and should address this to make this change even more solid for NU7. I also expect that for many users / use-cases the quicker single-block confirmation may be a helpful option that doesn’t currently exist. Thanks for your effort on this!