mirror of https://github.com/zcash/zips.git
Clarify Founders' Reward consensus rule. fixes #63
refs https://github.com/zcash/zcash/issues/1460 Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
parent
795674b954
commit
e66abc29e0
|
@ -467,7 +467,7 @@
|
||||||
\newcommand{\FounderAddress}{\mathsf{FounderAddress}}
|
\newcommand{\FounderAddress}{\mathsf{FounderAddress}}
|
||||||
\newcommand{\FounderAddressList}{\mathsf{FounderAddressList}}
|
\newcommand{\FounderAddressList}{\mathsf{FounderAddressList}}
|
||||||
\newcommand{\FounderAddressIndex}{\mathsf{FounderAddressIndex}}
|
\newcommand{\FounderAddressIndex}{\mathsf{FounderAddressIndex}}
|
||||||
\newcommand{\ScriptHash}{\mathsf{ScriptHash}}
|
\newcommand{\RedeemScriptHash}{\mathsf{RedeemScriptHash}}
|
||||||
|
|
||||||
\newcommand{\blockSubsidy}{\term{block subsidy}}
|
\newcommand{\blockSubsidy}{\term{block subsidy}}
|
||||||
\newcommand{\minerSubsidy}{\term{miner subsidy}}
|
\newcommand{\minerSubsidy}{\term{miner subsidy}}
|
||||||
|
@ -542,6 +542,7 @@
|
||||||
\newcommand{\sighashTypes}{\term{SIGHASH types}}
|
\newcommand{\sighashTypes}{\term{SIGHASH types}}
|
||||||
\newcommand{\SIGHASHALL}{\mathsf{SIGHASH\_ALL}}
|
\newcommand{\SIGHASHALL}{\mathsf{SIGHASH\_ALL}}
|
||||||
\newcommand{\scriptSig}{\mathtt{scriptSig}}
|
\newcommand{\scriptSig}{\mathtt{scriptSig}}
|
||||||
|
\newcommand{\scriptPubKey}{\mathtt{scriptPubKey}}
|
||||||
\newcommand{\ScriptOP}[1]{\texttt{OP\_{#1}}}
|
\newcommand{\ScriptOP}[1]{\texttt{OP\_{#1}}}
|
||||||
|
|
||||||
% Equihash and block headers
|
% Equihash and block headers
|
||||||
|
@ -3124,18 +3125,30 @@ Define:
|
||||||
\item[] $\FounderAddressIndex(\BlockHeight) := 1 + \floor{\hfrac{\BlockHeight}{\FounderAddressChangeInterval}}$.
|
\item[] $\FounderAddressIndex(\BlockHeight) := 1 + \floor{\hfrac{\BlockHeight}{\FounderAddressChangeInterval}}$.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Then the \foundersReward for \blockHeight $\BlockHeight$ \MUST be paid to
|
|
||||||
the address with Base58Check representation given by
|
|
||||||
$\FounderAddressList_{\,\FounderAddressIndex(\BlockHeight)}$, provided that
|
|
||||||
$\BlockHeight < \SlowStartShift + \HalvingInterval$. No \foundersReward is required
|
|
||||||
to be paid for $\BlockHeight \geq \SlowStartShift + \HalvingInterval$ (i.e. after
|
|
||||||
the first halving).
|
|
||||||
|
|
||||||
Each address representation in $\FounderAddressList$ denotes a \transparent
|
Each address representation in $\FounderAddressList$ denotes a \transparent
|
||||||
P2SH multisig address. The payment \MUST be performed using a P2SH script
|
P2SH multisig address.
|
||||||
of the form \ScriptOP{HASH160} \;$\ScriptHash$\; \ScriptOP{EQUAL},
|
|
||||||
where $\ScriptHash$ is the standard redeem script hash for the given
|
Let $\RedeemScriptHash(\BlockHeight)$ be the standard redeem script hash, as defined in
|
||||||
P2SH multisig address \cite{Bitcoin-Multisig}.
|
\cite{Bitcoin-Multisig}, for the P2SH multisig address with Base58Check representation
|
||||||
|
given by $\FounderAddressList_{\,\FounderAddressIndex(\BlockHeight)}$
|
||||||
|
|
||||||
|
\consensusrule{
|
||||||
|
A \coinbaseTransaction for \blockHeight $\BlockHeight \in \range{1}{\SlowStartShift + \HalvingInterval - 1}$
|
||||||
|
\MUST include at least one output that pays exactly $\FoundersReward(\BlockHeight)$ \zatoshi
|
||||||
|
with a standard P2SH script of the form \ScriptOP{HASH160} \;$\RedeemScriptHash(\BlockHeight)$\; \ScriptOP{EQUAL}
|
||||||
|
as its $\scriptPubKey$.
|
||||||
|
}
|
||||||
|
|
||||||
|
\begin{pnotes}
|
||||||
|
\item No \foundersReward is required to be paid for $\BlockHeight \geq \SlowStartShift + \HalvingInterval$
|
||||||
|
(i.e.\ after the first halving), or for $\BlockHeight = 0$ (i.e.\ the genesis block).
|
||||||
|
\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}{\SlowStartShift + \HalvingInterval - 1}$ 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.
|
||||||
|
\end{pnotes}
|
||||||
|
|
||||||
|
|
||||||
\nsection{Differences from the Zerocash paper} \label{differences}
|
\nsection{Differences from the Zerocash paper} \label{differences}
|
||||||
|
@ -3561,6 +3574,13 @@ The errors in the proof of Ledger Indistinguishability mentioned in
|
||||||
|
|
||||||
\nsection{Change history}
|
\nsection{Change history}
|
||||||
|
|
||||||
|
\subparagraph{2016.0-beta-1.7}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Clarify the consensus rule for payment of the \foundersReward, in
|
||||||
|
response to an issue raised by the NCC audit.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\subparagraph{2016.0-beta-1.6}
|
\subparagraph{2016.0-beta-1.6}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|
Loading…
Reference in New Issue