I was working through the math of MWixnet with payjoins and coinswaps and am excited about what the future holds for MW/grin. I do have a concern to discuss regarding a possible mining centralization pressure this could produce.
Before mining centralization… a discussion about some user-side MWixnet centralization pressures:
- Mix Quantity
- Mix Reliability
- Security
- Price/Speed
Mix Quantity: This one is obvious but the MWixnet benefit is maximized as the number of included transactions is maximized. It therefore seems that users will gravitate to whichever MWixnet is producing reliable high transaction count outputs. This is a self-reinforcing loop and may be hard to combat (assuming a reason is presented that it needs to be combated).
Mix Reliability: As I understand it, MWixnet requires all the nodes be defined at the start. All nodes must be online at the time of mix. Failure of one Mixnode brings the entire mix down. It is not clear to me yet how users are to decide on a start, middle set, and end Mix Node, but somehow I suspect a reliable DOS proof set of nodes will become known to the community and the risk of using any other set would include a risk of a failed MWixnet (which is admittedly not catastrophic but could cost the user a day before mixing). I think human nature is to keep using what works and this will therefore increase centralization.
Security: For MWixnet to work as intended, one of the nodes needs to be honest. I could envision several ways that a particular MWixnet would start to build trust within the community but when such node sets start to develop it could be hard to startup a new WMixnet from scratch and get any level of transaction volume. This adds to the centralization pressure.
Price/speed If a particular MWixnet started to have 1000+ transactions a day/half day/hour…, it could lower its price. When it starts to fill up there isn’t really a pressure to find new reliable nodes, because the net can always just start to publish more frequently. Quicker maxed out mixing is actually a further benefit in some cases so this is even further enforcing. Cheaper/faster is actually a good thing for the user (provided its not so cheap there is a spam/bloat attack) but would be another source of centralization pressure.
None of the above is really a problem, it’s just economics. However, it does seem to provide some potential for miner-side centralization pressure which would be bad.
Miner-side centralization pressure?
High fee block: There is already a reality that pools tend to consolidate and get big and grin mining pools are no different. Given the 1 minute block time of grin, there is pretty reasonable assumption that a sufficiently large pool would mine a block within any given 10 min window. This is already true of a big pool like 2miners.com. Given that MWixnet is, by definition, not time critical, it seems reasonable that a WMixnet associated with such a pool could hold onto the high fee/1000+transaction block (not transmit it to other nodes) such that it would be sure to include it in whichever block it mined close to the associated time. This is particularly true if they start filling up a block such that they publish more than once a day. Who is to know (or care) that they waited 10 extra minutes to control the block. Statistic would start to show that the associated pool was more profitable and, history shows, miners would flock to the pool. No privitization harm done… except the blockchain becomes more centralized. While user centralization in MWixnet’s might not be bad, miner centralization is recognized to be bad.
Truthfully, mining pools running trustworthy WMixnodes is not so far-fetched. Miners have incentive to keep a network healthy and pools likely have servers/infrastructure most ready to resist DOS attacks (and thus reliable mixes). It seems reasonable future trusted WMixnets could include pool operated WMixnodes as trustworthy.
Conclusion
Anyway, I am not saying the sky is falling but I wonder what people think about this. Am I wrong to suggest that the final WMixnet could control who knew about their valuable block (that would be great and a little embarrassing)? Certainty hording fees is not a new problem for blockchains so maybe it is already solved. However, normally non-private chain users just broadcast their transactions into the system so the difference here is that WMixnet incentivises the users to give a particular node some control of timing. Is this a valid concern?