ZIP 213 added the ability for coinbase outputs to be shielded. An unfortunate side effect of this was to make consensus dependent on the details of note encryption, because these outputs are required to be validly encrypted with the zero key. From discussion with other Zcash protocol developers, I believe the consensus (no pun intended) is that this was a design mistake that has unnecessarily complicated the specification and implementation of consensus rules.
I intend to write a ZIP that disentangles note encryption from consensus, by instead requiring coinbase outputs for v6 and later transaction versions to be unencrypted. The disentanglement will only be complete once earlier transaction versions are no longer allowed on the network, but that is likely to happen in some later upgrade.
ZIP 213 added the ability for coinbase outputs to be shielded. An unfortunate side effect of this was to make consensus dependent on the details of note encryption, because these outputs are required to be validly encrypted with the zero key. From discussion with other Zcash protocol developers, I believe the consensus (no pun intended) is that this was a design mistake that has unnecessarily complicated the specification and implementation of consensus rules.
I intend to write a ZIP that disentangles note encryption from consensus, by instead requiring coinbase outputs for v6 and later transaction versions to be unencrypted. The disentanglement will only be complete once earlier transaction versions are no longer allowed on the network, but that is likely to happen in some later upgrade.