Add a clarification in \crossref{txnconsensus} that after Heartwood and before Canopy activation,

Sapling outputs of a coinbase transaction MUST have note plaintext lead byte equal to 0x01.
This was implied by the existing rule that such outputs MUST decrypt successfully with an
all-zero outgoing viewing key.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2021-07-01 19:52:12 +01:00
parent 172573e686
commit 4821afe9ba
1 changed files with 10 additions and 2 deletions

View File

@ -12532,8 +12532,10 @@ in \cite{ZIP-239}.
\nufiveonwarditem{\valueBalance{Orchard} \MUST be in the range $\range{-\MAXMONEY}{\MAXMONEY}$ for version \nufiveonwarditem{\valueBalance{Orchard} \MUST be in the range $\range{-\MAXMONEY}{\MAXMONEY}$ for version
5 \transactions.} 5 \transactions.}
\heartwoodonwarditem{All \SaplingAndOrchard outputs in \coinbaseTransactions \MUST decrypt to a \heartwoodonwarditem{All \SaplingAndOrchard outputs in \coinbaseTransactions \MUST decrypt to a
\notePlaintext, i.e.\ the procedure in \crossref{decryptovk} does not return $\bot$, \notePlaintext, i.e.\ the procedure in \crossref{decryptovk} does not return $\bot$, using
using a sequence of $32$ zero bytes as the \outgoingViewingKey.} a sequence of $32$ zero bytes as the \outgoingViewingKey. (This implies that\canopy{ before
\Canopy activation,} \Sapling outputs of a \coinbaseTransaction \MUST have \notePlaintextLeadByte
equal to $\hexint{01}$.)}
\canopyonwarditem{Any \SaplingOrOrchard output of a \coinbaseTransaction decrypted to a \notePlaintext according \canopyonwarditem{Any \SaplingOrOrchard output of a \coinbaseTransaction decrypted to a \notePlaintext according
to the preceding rule \MUST have \notePlaintextLeadByte equal to $\hexint{02}$. (This applies even to the preceding rule \MUST have \notePlaintextLeadByte equal to $\hexint{02}$. (This applies even
during the ``grace period'' specified in \cite{ZIP-212}.)} during the ``grace period'' specified in \cite{ZIP-212}.)}
@ -14461,6 +14463,12 @@ Peter Newell's illustration of the Jubjub bird, from \cite{Carroll1902}.
bits, not $6 + 2 \mult \MerkleHashLength{Orchard}$ bits. bits, not $6 + 2 \mult \MerkleHashLength{Orchard}$ bits.
\item Replace ``must'' with ``\MUST'' in two consensus rules specified in \crossref{txnencoding}. \item Replace ``must'' with ``\MUST'' in two consensus rules specified in \crossref{txnencoding}.
} % nufive } % nufive
\heartwood{
\item Add a clarification in \crossref{txnconsensus} that after \Heartwood and before
\Canopy activation, \Sapling outputs of a \coinbaseTransaction \MUST have
\notePlaintextLeadByte equal to $\hexint{01}$. This was implied by the existing
rule that such outputs \MUST decrypt successfully with an all-zero \outgoingViewingKey.
} %heartwood
\sapling{ \sapling{
\item Correct $l$ to $\layerRepr$ in two places in \crossref{saplingmerklecrh}. \item Correct $l$ to $\layerRepr$ in two places in \crossref{saplingmerklecrh}.
} %sapling } %sapling