I’ve reviewed the NSM ZIPs (not to my usual security audit standards, but enough to understand them) and I fully support something like the NSM being added to Zcash at some point. That said, I’m not sure about including it in NU7 specifically.
Aside (on taxes)
First of all, I don’t see this as a tax. It’s a fair cost for the functionality Zcash provides. When I pay my ISP for internet access, or I pay a cloud provider to serve my website to its visitors, or I pay for a VPN to protect my privacy, I’m paying for the functionality they’re providing me. I don’t see that as a tax. It’s totally different from having to pay a 5% tax whenever I buy some eggs from the convenience store. There, the government is taking money from me and the store despite having done little to help facilitate that transaction, compared to my ISP needing to maintain cable lines running to my house, or the VPN needing to provide me with bandwidth.
Paying for a Zcash transaction is more like paying for Internet access and less like having money forcibly taken away from me when I buy eggs. Selfishly, I want to pay for access to the Zcash network (because that can make Zcash better), but I don’t want to pay taxes on eggs (because that doesn’t make it any easier for me to buy eggs).
In other words, my definition of whether something is a tax or is the fair cost of a service is: if the money goes to support that service, it’s a fair cost; if the money goes somewhere else and does not support that service, it’s a tax. So, as long as NSM funds improve Zcash, it’s not a tax, it’s a fair cost of using the network. It’s the same as how mining is not a tax, I’m paying for the security of the network.
NSM in NU7?
I like that:
- We are thinking ahead about how Zcash will sustain itself, since without something like the NSM, block rewards lessen, and the whole project becomes unsustainable without unrealistic assumptions about increases in the ZEC price (same as for Bitcoin).
- The sustainability of Zcash becomes related to the value that Zcash is providing for its users, as determined by how much its users are willing to pay to use it (in the form of transaction fees). This is ultimately the only way that Zcash can be sustained.
However, I dislike that:
- There’s minimal benefit to doing this now compared to opportunity costs. We won’t gain much ZEC to fund future development by implementing this now rather than later. Zcash is in a critical period where we need to focus all of our efforts on adoption and bringing the stuff we’ve built to real people. Adding complexity to an NU (which incurs a cost on ECC, ZF, and security auditors) is a distraction, despite how much I think it’s a good idea. I understand that one of the rationales for doing it now is being in a better position to negotiate for a higher fraction of transaction fees, but that assumes that, as transaction fees grow, miners will have a bias towards the status quo and won’t re-negotiate for a larger fraction. That may end up being the case, but it’s a questionable assumption.
- This is an example of the kind of protocol change that I’ve spoke against a lot; I’ll admit the ZIPs are simple, they’re probably relatively easy to implement in full nodes, but it just doesn’t have any positive impact at all for the Zcash end-user; it’s adding protocol complexity, it’s making wallets harder to build; it’s good in the long term, but it’s a distraction from what’s important right now.
In the context of voting whether or not to include the NSM in NU7, I think an important question to ask is: what would Shielded Labs focus on if the community’s answer were no? If the answer were “nothing”, then obviously it makes sense to vote yes, because working on something is always better than working on nothing. But what are we potentially giving up by voting “yes”?
I would really like to see a mechanism where the incentive is for entrepreneurs—who see a way to create value by building on top of Zcash—can profit from building their thing, and some of that value also comes back to support Zcash.
One way to do that is to establish a social norm that some fraction of the transaction fee goes to the developer of the software that generated it, but if that project is open source it can always be forked to send that fee back to the user. I don’t think that will be an issue in practice, since for example I pay my ISP more so that I can watch YouTube videos in 4K, even though YouTube is taking advantage of the free and open platform of the Internet. My ISP is able to capture some of the value they’re providing by giving me fast-enough Internet to watch 4K videos; Zcash needs to do the same. Zcash needs to eventually profit from for-profit businesses building things on its infrastructure, the same way as my ISP does. The NSM gets us a step closer to that, but I don’t know if it’s the right time.
edit: grammar