From 9257be1d1f95cfff68ead67ae02cf17bcd6d9cea Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Fri, 6 Nov 2020 00:31:52 +0000 Subject: [PATCH] Add a consensus rule that the (zero-valued) coinbase transaction output of the genesis block cannot be spent. Signed-off-by: Daira Hopwood --- protocol/protocol.tex | 4 ++++ 1 file changed, 4 insertions(+) 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{