diff --git a/protocol/protocol.tex b/protocol/protocol.tex index 879e275c..f3bac03d 100644 --- a/protocol/protocol.tex +++ b/protocol/protocol.tex @@ -1574,13 +1574,13 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\consensusrule}[1]{\needspace{3ex}\subparagraph{Consensus rule:}{#1}} \newenvironment{consensusrules}{\vspace{-4ex}\introlist\subparagraph{Consensus rules:}\begin{itemize}}{\end{itemize}} \newcommand{\sproutspecificitem}[1]{\item \sproutspecific{#1}} -\newcommand{\sproutonlyitem}[1]{\item \sproutonly{#1}} +\newcommand{\presaplingitem}[1]{\item \presapling{#1}} \newcommand{\saplingonwarditem}[1]{\sapling{\item {[\Sapling onward]}\, {#1}}} \newcommand{\prenuzeroitem}[1]{\item \prenuzero{#1}} \newcommand{\nuzeroonlyitem}[1]{\nuzero{\item {[\NUZero only, pre-\Sapling\!]}\, {#1}}} \newcommand{\nuzeroonwarditem}[1]{\nuzero{\item {[\NUZero onward]}\, {#1}}} \newcommand{\sproutspecific}[1]{\notsprout{[\Sprout\!]\,} {#1}} -\newcommand{\sproutonly}[1]{\notsprout{[\Sprout only]\,} {#1}} +\newcommand{\presapling}[1]{\notsprout{[Pre-\Sapling\!]\,} {#1}} \newcommand{\saplingonward}[1]{\sapling{[\Sapling onward]\, {#1}}} \newcommand{\prenuzero}[1]{\notsprout{[Pre-\NUZero\!]\,} {#1}} \newcommand{\nuzeroonly}[1]{\nuzero{[\NUZero only, pre-\Sapling\!]\, {#1}}} @@ -1591,7 +1591,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\pnote}[1]{\subparagraph{Note:}{#1}} \newenvironment{pnotes}{\introlist\subparagraph{Notes:}\begin{itemize}}{\end{itemize}} \newcommand{\sproutspecificpnote}[1]{\notsprout{[\Sprout\!]\,\,} \textbf{Note:\,} {#1}} -\newcommand{\sproutonlypnote}[1]{\notsprout{[\Sprout only]\,\,} \textbf{Note:\,} {#1}} +\newcommand{\presaplingpnote}[1]{\notsprout{[Pre-\Sapling\!]\,\,} \textbf{Note:\,} {#1}} \newcommand{\prenuzeropnote}[1]{\notsprout{[Pre-\NUZero\!]\,\,} \textbf{Note:\,} {#1}} \newcommand{\nuzeroonlypnote}[1]{\nuzero{[\NUZero only, pre-\Sapling\!]\,\,} \textbf{Note:\,} {#1}} \newcommand{\nuzeroonwardpnote}[1]{\nuzero{[\NUZero onward]\,\,} \textbf{Note:\,} {#1}} @@ -7358,16 +7358,16 @@ $\versionField \geq 4$ and $\nShieldedSpend + \nShieldedOutput > 0$. \begin{consensusrules} \item The \transactionVersionNumber{} \MUST be greater than or equal to $1$. - \sproutonlyitem{The \fOverwintered{} flag \MUSTNOT be set.} + \presaplingitem{The \fOverwintered{} flag \MUSTNOT be set\sprout{ in the protocol version described by this document}.} \nuzeroonwarditem{The \fOverwintered{} flag \MUST be set.} \nuzeroonwarditem{The \versionGroupID{} \MUST be recognized.} \nuzeroonlyitem{The \transactionVersionNumber{} \MUST be $3$ and the \versionGroupID{} \MUST be $\hexint{03C48270}$.} - \sproutonlyitem{If $\versionField = 1$ or $\nJoinSplit = 0$, then \txInCount{} \MUSTNOT be $0$.} \saplingonwarditem{The \transactionVersionNumber{} \MUST be $4$ and the \versionGroupID{} \MUST be $\hexint{892F2085}$.} \presaplingitem{The encoded size of the \transaction{} \MUST be less than or equal to $100000$ bytes.} + \presaplingitem{If $\versionField = 1$ or $\nJoinSplit = 0$, then \txInCount{} \MUSTNOT be $0$.} \saplingonwarditem{At least one of \txInCount, \nShieldedSpend, and \nJoinSplit{} \MUST be nonzero.} \item A \transaction with one or more inputs from \coinbaseTransactions{} \MUST have no \transparent outputs (i.e.\ \txOutCount{} \MUST be $0$). @@ -7446,7 +7446,7 @@ The changes relative to \Bitcoin version $1$ \transactions as described in \cite a corresponding standard rule but no consensus rule. \end{itemize} -\sproutonly{ +\presapling{ Software that creates \transactions{} \SHOULD use version $1$ for \transactions with no \joinSplitDescriptions. } @@ -7629,7 +7629,7 @@ ensuring that none of those \transactions can be modified without modifying the $32$ & \sprout{$\hashReserved$} \notsprout{\Longunderstack[l]{$\hashReserved$ /\\ \sapling{$\hashFinalSaplingRoot$}}} & \type{char[32]} & -\sproutonly{A reserved field which should be ignored.} +\presapling{A reserved field which should be ignored.} \saplingonward{A \merkleRoot (\todo{specify bit sequence to byte sequence conversion}) of the \Sapling{} \noteCommitmentTree corresponding to the final \Sapling{} \treestate of this \block.} \\ \hline @@ -8237,7 +8237,7 @@ as input, and produces up to $\NNew$ \shieldedNotes and a Only ``Pour'' transactions included a \zkSNARK proof. -\sproutonly{ +\presapling{ In \Zcash, the sequence of operations added to a \transaction (see \crossref{trstructure}) consists only of \joinSplitTransfers. A \joinSplitTransfer is a Pour operation generalized to take a \transparent