Add a consensus rule for version 5 or later transactions, that if `nActionsOrchard` > 0 then

at least one of `enableSpendsOrchard` and `enableOutputsOrchard` MUST be 1.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2021-07-01 19:01:49 +01:00
parent 3f9ede243b
commit 55052e4e54
1 changed files with 5 additions and 0 deletions

View File

@ -12456,6 +12456,8 @@ in \cite{ZIP-239}.
$(\nActionsOrchard > 0$ and $\enableSpendsOrchard = 1)$.}
\nufiveonwarditem{If $\effectiveVersion \geq 5$ then this condition \MUST hold: $\txOutCount > 0$ or \mbox{$\nOutputsSapling > 0$} or
$(\nActionsOrchard > 0$ and $\enableOutputsOrchard = 1)$.}
\nufiveonwarditem{If $\effectiveVersion \geq 5$ and $\nActionsOrchard > 0$, then at least one of
$\enableSpendsOrchard$ and $\enableOutputsOrchard$ \MUST be $1$.}
\item A \transaction with one or more \transparent inputs from \coinbaseTransactions \MUST have no
\transparent outputs (i.e.\ \txOutCount{} \MUST be $0$). Inputs from
\coinbaseTransactions include \foundersReward outputs\canopy{ and \fundingStream outputs}.
@ -14436,6 +14438,9 @@ Peter Newell's illustration of the Jubjub bird, from \cite{Carroll1902}.
\historyentry{2021.2.9}{}
\begin{itemize}
\nufive{
\item Add a consensus rule for version 5 or later \transactions, that if
$\nActionsOrchard > 0$ then at least one of $\enableSpendsOrchard$ and
$\enableOutputsOrchard$ \MUST be $1$.
\item Delete the consensus rule in \crossref{transactions} that required checking
that each intermediate \merkleRoot of the \noteCommitmentTree is not $\bot$.
Checking this rule would have imposed a significant performance penalty,