Cosmetics (vertical spacing for the non-NU5 spec).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2021-05-14 13:28:47 +01:00
parent 79d1a477db
commit c5589648c1
1 changed files with 20 additions and 6 deletions

View File

@ -7515,7 +7515,7 @@ from $\TransmitPlaintext{}$
\item A previous version of this specification did not have the requirement for the decoded point
$\DiversifiedTransmitPublic$ of a \Sapling \note to be in the subgroup
\smash{$\SubgroupJ$ (i.e.\ ``if ... $\DiversifiedTransmitPublic \not\in \SubgroupJ$}, return $\bot$'').
That did not match the implementation in \zcashd\rlap{.}\introlist\vspace{-0.5ex}
That did not match the implementation in \zcashd.\!\introlist\vspace{-0.5ex}
\item As explained in the note in \crossref{jubjub}, $\abstJ$ accepts \nonCanonicalPoint
compressed encodings of \jubjubCurve points. Therefore, an implementation \MUST use the original
$\ephemeralKey$ field as encoded in the \transaction as input to $\PRFock{}{}$ and $\KDF{Sapling}$,
@ -13214,6 +13214,7 @@ fully defined in the Bitcoin documentation \cite{Bitcoin-nBits}, and so we defin
\end{formulae}
\introlist
\vspace{-2ex}
\lsubsubsection{Definition of Work}{workdef}
As explained in \crossref{blockchain}, a node chooses the ``best'' \blockChain
@ -13226,6 +13227,7 @@ in its \blockHeader is defined as $\floor{\hfrac{2^{256}}{\ToTarget(\nBits) + 1}
\introlist
\vspace{-2ex}
\lsubsection{Calculation of Block Subsidy\notbeforecanopy{, Funding Streams,} and Founders' Reward}{subsidies}
\crossref{subsidyconcepts} defines the \blockSubsidy, \minerSubsidy,\notcanopy{ and} \foundersReward\canopy{, and \fundingStreams}.
@ -13256,12 +13258,12 @@ and $\FoundersFraction$ be as defined in \crossref{constants}.
\end{cases}$
\vspace{1ex}
\item $\BlockSubsidy(\BlockHeight \typecolon \Nat) := \begin{cases}
\SlowStartRate \mult \BlockHeight,&\caseif \BlockHeight < \SlowStartShift \\[1.4ex]
\SlowStartRate \mult \BlockHeight,&\caseif \BlockHeight < \SlowStartShift \\[1.2ex]
\SlowStartRate \mult (\BlockHeight + 1),&\caseif \SlowStartShift \leq \BlockHeight \\[-0.8ex]
&\text{ and } \BlockHeight < \SlowStartInterval \\[1.4ex]
&\text{ and } \BlockHeight < \SlowStartInterval \\[1.2ex]
\floor{\hfrac{\MaxBlockSubsidy}{2^{\Halving(\BlockHeight)}}}\kern-0.25em,&\notblossom{\caseotherwise}\notbeforeblossom{\caseif \SlowStartInterval \leq \BlockHeight} \\[-1.4ex]
\notbeforeblossom {
&\blossom{\text{ and not } \IsBlossomActivated(\BlockHeight)}\! \\[1.4ex]
&\blossom{\text{ and not } \IsBlossomActivated(\BlockHeight)}\! \\[1.2ex]
\blossom{\floor{\hfrac{\MaxBlockSubsidy}{\BlossomPoWTargetSpacingRatio \mult 2^{\Halving(\BlockHeight)}}}\kern-0.25em,}&\blossom{\caseotherwise}
} %notbeforeblossom
\end{cases}$
@ -13398,7 +13400,7 @@ Let $\FounderRedeemScriptHash(\BlockHeight \typecolon \Nat)$ be the standard red
\cite{Bitcoin-Multisig}, for the P2SH multisig address with \BaseFiftyEightCheck form
given by $\FounderAddressList_{\,\FounderAddressIndex(\BlockHeight)}$.
\vspace{-1ex}
\vspace{-1.5ex}
\consensusrule{\precanopy{
A \coinbaseTransaction at $\BlockHeight \in \range{1}{\FoundersRewardLastBlockHeight}$
\MUST include at least one output that pays exactly $\FoundersReward(\BlockHeight)$ \zatoshi
@ -13406,32 +13408,40 @@ with a standard P2SH script of the form \ScriptOP{HASH160} \;$\FounderRedeemScri
as its $\scriptPubKey$.
}}
\vspace{1ex}
\vspace{0.5ex}
\begin{pnotes}
\vspace{-0.25ex}
\item No \foundersReward is required to be paid for $\BlockHeight > \FoundersRewardLastBlockHeight$
(i.e.\ after the first \halving), or for $\BlockHeight = 0$ (i.e.\ the \genesisBlock)\canopy{, or after \Canopy activation}.
\vspace{-0.25ex}
\item The \foundersReward addresses are not treated specially in any other way, and
there can be other outputs to them, in \coinbaseTransactions or otherwise.
In particular, it is valid for a \coinbaseTransaction with
$\BlockHeight \in \range{1}{\FoundersRewardLastBlockHeight}$ to have
other outputs, possibly to the same address, that do not meet the criterion
in the above consensus rule, as long as at least one output meets it.
\vspace{-0.25ex}
\item The assertion $\FounderAddressIndex(\FoundersRewardLastBlockHeight) \leq \NumFounderAddresses$
holds, ensuring that the \foundersReward address index remains in range for the
whole period in which the \foundersReward is paid.
\end{pnotes}
\blossom{
\vspace{-0.75ex}
\begin{nnotes}
\vspace{-0.25ex}
\blossomonwarditem{$\FoundersRewardLastBlockHeight = 1046399$.}
\vspace{-0.25ex}
\item \Blossom is not intended to change the total \foundersReward or the effective period over which
it is paid.
\end{nnotes}
} %blossom
\canopy{
\vspace{-2ex}
\lsubsection{Payment of Funding Streams}{fundingstreams}
\vspace{-1ex}
The \defining{\fundingStreams} are paid by outputs in the \coinbaseTransaction, to one of a pre-defined
set of addresses, depending on the \blockHeight.
@ -13439,9 +13449,12 @@ A \fundingStream $\fs$ is defined by a \blockSubsidy fraction (represented as a
denominator), a start \blockHeight (inclusive), an end \blockHeight (exclusive), and a sequence
of address representations:
\introlist
\begin{formulae}
\item $\fsNumerator \typecolon \PosInt$
\vspace{-0.25ex}
\item $\fsDenominator \typecolon \PosInt$
\vspace{-0.25ex}
\item $\fsStartHeight \typecolon \Nat$
\item $\fsEndHeight \typecolon \Nat$
\vspace{-1ex}
@ -13472,6 +13485,7 @@ or a \Sapling \shieldedPaymentAddress as specified in \crossref{saplingpaymentad
Recall from \crossref{subsidies} the definition of $\fsValue$. A \fundingStream $\fs$ is
``active'' at \blockHeight $\BlockHeight$ when $\fsValue(\BlockHeight) > 0$.
\introlist
\consensusrule{
\canopyonward{
The \coinbaseTransaction at \blockHeight $\BlockHeight$ \MUST contain at least