diff --git a/protocol/protocol.tex b/protocol/protocol.tex index b0337d13..4131a096 100644 --- a/protocol/protocol.tex +++ b/protocol/protocol.tex @@ -9159,6 +9159,8 @@ $\versionField \geq 4$ and $\nShieldedSpend + \nShieldedOutput > 0$. \item A \transaction{} \MUSTNOT spend a \transparent output of a \coinbaseTransaction from a \block less than 100 \blocks prior to the spend. Note that \transparent outputs of \coinbaseTransactions include \foundersReward outputs \canopy{and \transparent \fundingStream outputs}. + \item A \transaction{} \MUSTNOT spend an output of the \genesisBlock{} \coinbaseTransaction. (There is one + such zero-valued output, on each of \Testnet and \Mainnet.) \overwinteronwarditem{\nExpiryHeight{} \MUST be less than or equal to 499999999.} \overwinteronwarditem{If a \transaction is not a \coinbaseTransaction and its \nExpiryHeight{} field is nonzero, then it \MUSTNOT be mined at a \blockHeight greater than its \nExpiryHeight.} @@ -10881,6 +10883,8 @@ Peter Newell's illustration of the Jubjub bird, from \cite{Carroll1902}. \item Add a missing consensus rule that has always been implemented in \zcashd: there must be at least one \transparentOutput, \outputDescription, or \joinSplitDescription in a \transaction. + \item Add a consensus rule that the (zero-valued) \coinbaseTransaction output of the + \genesisBlock cannot be spent. \item Define \SproutChainValuePoolBalance\sapling{ and \SaplingChainValuePoolBalance,} and include consensus rules from \cite{ZIP-209}. \sapling{