Specify coinbase constraints. fixes #81

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2018-02-08 22:24:14 +00:00
parent ce66c0e31b
commit a871fc52d3
1 changed files with 10 additions and 3 deletions

View File

@ -5099,8 +5099,8 @@ The encoding of $\joinSplitPubKey$ and the data to be signed are specified in
\sproutonlyitem{The \transactionVersionNumber{} \MUST be greater than or equal to $1$.}
\saplingonlyitem{The \transactionVersionNumber{} \MUST be \todo{}.}
\item If $\versionField = 1$ or $\nJoinSplit = 0$, then \txInCount{} \MUSTNOT be $0$.
\item A \transaction with one or more coinbase inputs \MUST have no \transparent outputs
(i.e.\ \txOutCount{} \MUST be $0$).
\item A \transaction with one or more inputs from \coinbaseTransactions{} \MUST have no
\transparent outputs (i.e.\ \txOutCount{} \MUST be $0$).
\item If $\nJoinSplit > 0$, then \joinSplitSig{} \MUST represent a valid signature
over $\dataToBeSigned$ as defined in \crossref{nonmalleability}.
\item If $\nJoinSplit > 0$, then \joinSplitPubKey{} \MUST represent a point of order $\ell$
@ -5109,7 +5109,11 @@ The encoding of $\joinSplitPubKey$ and the data to be signed are specified in
less than $2^{255}-19$.
\sproutonlyitem{The encoded size of the \transaction{} \MUST be less than or equal to
$100000$ bytes.}
\item \todo{Coinbase maturity rule.}
\item A \coinbaseTransaction{} \MUSTNOT have any
\joinSplitDescriptions\sapling{, \spendDescriptions, or \outputDescriptions}.
\item A \transaction{} \MUSTNOT spend an output of a \coinbaseTransaction
(necessarily a \transparent output) from a \block less than 100 \blocks prior
to the spend.
\item \todo{Other rules inherited from \Bitcoin.}
\end{consensusrules}
@ -6350,6 +6354,9 @@ Daira Hopwood, Sean Bowe, and Jack Grigg.
\subparagraph{2018.0-beta-9}
\begin{itemize}
\item Specify the coinbase maturity rule, and the rule that \coinbaseTransactions
cannot contain \joinSplitDescriptions\sapling{, \spendDescriptions, or
\outputDescriptions}.
\nuzero{
\item Delay lifting the 100000-byte \transaction size limit from \NUZero to
\Sapling.