Clarify the consensus rule preventing double-spends.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2017-03-04 23:25:28 +00:00
parent b34edb5e40
commit 5fe9d6d525
1 changed files with 15 additions and 3 deletions

View File

@ -280,6 +280,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg
\newcommand{\treestates}{\term{treestates}} \newcommand{\treestates}{\term{treestates}}
\newcommand{\nullifier}{\term{nullifier}} \newcommand{\nullifier}{\term{nullifier}}
\newcommand{\nullifiers}{\term{nullifiers}} \newcommand{\nullifiers}{\term{nullifiers}}
\newcommand{\xNullifiers}{\term{Nullifiers}}
\newcommand{\Nullifier}{\titleterm{Nullifier}} \newcommand{\Nullifier}{\titleterm{Nullifier}}
\newcommand{\Nullifiers}{\titleterm{Nullifiers}} \newcommand{\Nullifiers}{\titleterm{Nullifiers}}
\newcommand{\nullifierSet}{\term{nullifier set}} \newcommand{\nullifierSet}{\term{nullifier set}}
@ -1268,9 +1269,13 @@ Each \fullnode maintains a \nullifierSet logically associated with each \treesta
As valid \transactions containing \joinSplitTransfers are processed, the \nullifiers As valid \transactions containing \joinSplitTransfers are processed, the \nullifiers
revealed in \joinSplitDescriptions are inserted into this \nullifierSet. revealed in \joinSplitDescriptions are inserted into this \nullifierSet.
If a \joinSplitDescription reveals a \nullifier that already exists in the \xNullifiers are enforced to be unique within a valid \blockchain, in order to
\blockchain at the associated \treestate, the containing \transaction will be prevent double-spends.
rejected, since it would otherwise result in a double-spend.
\consensusrule{
A \nullifier{} \MUSTNOT repeat either within a \transaction, or across
\transactions in a valid \blockchain.
}
\nsubsection{Block Subsidy and Founders' Reward} \label{subsidyconcepts} \nsubsection{Block Subsidy and Founders' Reward} \label{subsidyconcepts}
@ -4118,6 +4123,13 @@ The errors in the proof of Ledger Indistinguishability mentioned in
\introlist \introlist
\nsection{Change history} \nsection{Change history}
\subparagraph{2017.0-beta-2.5}
\begin{itemize}
\item Clarify the consensus rule preventing double-spends.
\end{itemize}
\introlist
\subparagraph{2017.0-beta-2.4} \subparagraph{2017.0-beta-2.4}
\begin{itemize} \begin{itemize}