From 5fe9d6d525b017c6d44599a216d7853dc1ca14e0 Mon Sep 17 00:00:00 2001 From: Daira Hopwood Date: Sat, 4 Mar 2017 23:25:28 +0000 Subject: [PATCH] Clarify the consensus rule preventing double-spends. Signed-off-by: Daira Hopwood --- protocol/protocol.tex | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/protocol/protocol.tex b/protocol/protocol.tex index 22ad8969..a99dbdae 100644 --- a/protocol/protocol.tex +++ b/protocol/protocol.tex @@ -280,6 +280,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\treestates}{\term{treestates}} \newcommand{\nullifier}{\term{nullifier}} \newcommand{\nullifiers}{\term{nullifiers}} +\newcommand{\xNullifiers}{\term{Nullifiers}} \newcommand{\Nullifier}{\titleterm{Nullifier}} \newcommand{\Nullifiers}{\titleterm{Nullifiers}} \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 revealed in \joinSplitDescriptions are inserted into this \nullifierSet. -If a \joinSplitDescription reveals a \nullifier that already exists in the -\blockchain at the associated \treestate, the containing \transaction will be -rejected, since it would otherwise result in a double-spend. +\xNullifiers are enforced to be unique within a valid \blockchain, in order to +prevent double-spends. + +\consensusrule{ +A \nullifier{} \MUSTNOT repeat either within a \transaction, or across +\transactions in a valid \blockchain. +} \nsubsection{Block Subsidy and Founders' Reward} \label{subsidyconcepts} @@ -4118,6 +4123,13 @@ The errors in the proof of Ledger Indistinguishability mentioned in \introlist \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} \begin{itemize}