Add a consensus rule that the (zero-valued) coinbase transaction output of the genesis block cannot be spent.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2020-11-06 00:31:52 +00:00
parent 917dbf5c46
commit 9257be1d1f
1 changed files with 4 additions and 0 deletions

View File

@ -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{