diff --git a/protocol/protocol.tex b/protocol/protocol.tex index 4e11b216..30b7e057 100644 --- a/protocol/protocol.tex +++ b/protocol/protocol.tex @@ -160,17 +160,20 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \RequirePackage[usenames,dvipsnames]{xcolor} % https://en.wikibooks.org/wiki/LaTeX/Colors#The_68_standard_colors_known_to_dvips \newcommand{\todo}[1]{{\color{Sepia}\sf{TODO: #1}}} +\definecolor{green}{RGB}{0,120,0} \newcommand{\changedcolor}{magenta} \newcommand{\setchanged}{\color{\changedcolor}} \newcommand{\changed}[1]{\texorpdfstring{{\setchanged{#1}}}{#1}} -\newcommand{\saplingcolor}{ForestGreen} +\newcommand{\saplingcolor}{green} \iftoggle{issapling}{ \newcommand{\sprout}[1]{} + \newcommand{\notsprout}[1]{#1} \newcommand{\setsapling}{\color{\saplingcolor}} \newcommand{\sapling}[1]{\texorpdfstring{{\setsapling{#1}}}{#1}} } { \newcommand{\sprout}[1]{#1} + \newcommand{\notsprout}[1]{} \newcommand{\setsapling}{} \newcommand{\sapling}[1]{} } @@ -185,6 +188,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\Zcash}{\termbf{Zcash}} \newcommand{\Zerocash}{\termbf{Zerocash}} +\newcommand{\Sprout}{\notsprout{\termbf{Sprout}}} +\newcommand{\Sapling}{\termbf{Sapling}} \newcommand{\Bitcoin}{\termbf{Bitcoin}} \newcommand{\CryptoNote}{\termbf{CryptoNote}} \newcommand{\ZEC}{\termbf{ZEC}} @@ -745,6 +750,9 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\consensusrule}[1]{\needspace{3ex}\subparagraph{Consensus rule:}{#1}} \newenvironment{consensusrules}{\introlist\subparagraph{Consensus rules:}\begin{itemize}}{\end{itemize}} +\newcommand{\sproutonlyitem}[1]{\sprout{\item {#1}}\notsprout{\item {[\Sprout only]}\, {#1}}} +\newcommand{\saplingonlyitem}[1]{\sprout{}\sapling{\item {[\Sapling only]}\, {#1}}} + \newcommand{\securityrequirement}[1]{\needspace{3ex}\subparagraph{Security requirement:}{#1}} \newenvironment{securityrequirements}{\introlist\subparagraph{Security requirements:}\begin{itemize}}{\end{itemize}} \newcommand{\pnote}[1]{\subparagraph{Note:}{#1}} @@ -779,7 +787,7 @@ memory-hard proof-of-work algorithm. \sprout{\noindent This specification defines the \Zcash consensus protocol and explains its differences from \Zerocash and \Bitcoin.} \sapling{\noindent This \em{draft} specification defines the next major -version of the \Zcash consensus protocol, codenamed Sapling. It is +version of the \Zcash consensus protocol, codenamed \Sapling. It is a work in progress and should not be used as a reference for the current protocol.} @@ -810,6 +818,11 @@ non-interactive arguments of knowledge (\zkSNARKs). Changes from the original \Zerocash are explained in \crossref{differences}, and highlighted in \changed{\changedcolor} throughout the document. +\sapling{ +Changes specific to the \Sapling upgrade (which are also changes from +\Zerocash) are highlighted in green. The name \Sprout is used for the +\Zcash protocol prior to \Sapling. +} Technical terms for concepts that play an important role in \Zcash are written in \term{slanted text}. \emph{Italics} are used for emphasis and