Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 43 additions & 4 deletions protocol/protocol.tex
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,7 @@
\newcommand{\HeartwoodSpec}{Overwinter+Sapling+Blossom+Heartwood}
\newcommand{\CanopySpec}{Overwinter+Sapling+Blossom+Heartwood+Canopy}
\newcommand{\NUFiveSpec}{NU5}
\newcommand{\NUSixSpec}{NU6}
\newtoggle{issapling}
\togglefalse{issapling}
\newtoggle{isblossom}
Expand All @@ -531,6 +532,8 @@
\togglefalse{iscanopy}
\newtoggle{isnufive}
\togglefalse{isnufive}
\newtoggle{isnusix}
\togglefalse{isnusix}
\InputIfFileExists{protocol.ver}{}{}

\newcommand{\doctitle}{Zcash Protocol Specification}
Expand Down Expand Up @@ -563,8 +566,24 @@
\newcommand{\canopycolorname}{purple}
\newcommand{\nufivecolor}{black!25!blue!65!green!65}
\newcommand{\nufivecolorname}{slate blue}
\newcommand{\nusixcolor}{red!92!green!54}
\newcommand{\nusixcolorname}{magenta}
\newcommand{\labelcolor}{yellow!20}

\iftoggle{isnusix}{
\providecommand{\baseurl}{https://zips.z.cash/protocol/nu6.pdf}
\toggletrue{isnusix}
\newcommand{\setnusix}{\color{\nusixcolor}}
\newcommand{\nusix}[1]{\texorpdfstring{{\setnusix{#1}}}{#1}}
\newcommand{\notnusix}[1]{}
\newcommand{\notbeforenusix}[1]{#1}
} {
\newcommand{\setnusix}{}
\newcommand{\nusix}[1]{}
\newcommand{\notnusix}[1]{#1}
\newcommand{\notbeforenusix}[1]{}
}

\iftoggle{isnufive}{
\providecommand{\baseurl}{https://zips.z.cash/protocol/protocol.pdf}
\toggletrue{iscanopy}
Expand Down Expand Up @@ -705,6 +724,8 @@
\newcommand{\CanopyText}{\textbf{Canopy}}
\newcommand{\NUFive}{\termbf{NU5}}
\newcommand{\NUFiveText}{\textbf{NU5}}
\newcommand{\NUSix}{\termbf{NU6}}
\newcommand{\NUSixText}{\textbf{NU6}}
\newcommand{\Orchard}{\termbf{Orchard}}
\newcommand{\OrchardText}{\textbf{Orchard}}
\newcommand{\SaplingOrOrchard}{\Sapling{}\nufive{ or \Orchard{}}\xspace}
Expand Down Expand Up @@ -2377,6 +2398,8 @@
\newcommand{\consensusrule}[1]{\needspace{4ex}\vspace{2ex}\callout{}{Consensus rule:}{#1}}
\newenvironment{consensusrules}{\introlist\callout{}{Consensus rules:}\begin{itemize}}{\end{itemize}}

\newcommand{\prenusixitem}[1]{\item \prenusix{#1}}
\newcommand{\nusixonwarditem}[1]{\nusix{\item {[\NUSix onward]}\, {#1}}}
\newcommand{\prenufiveitem}[1]{\item \prenufive{#1}}
\newcommand{\nufiveonwarditem}[1]{\nufive{\item {[\NUFive onward]}\, {#1}}}
\newcommand{\precanopyitem}[1]{\item \precanopy{#1}}
Expand All @@ -2396,6 +2419,8 @@
\newcommand{\overwinterprenufiveitem}[1]{\overwinter{\item \overwinterprenufive{#1}}}
\newcommand{\sproutspecificitem}[1]{\item \sproutspecific{#1}}

\newcommand{\prenusix}[1]{\notbeforenusix{\nusix{[Pre-\NUSix\!]\,}} {#1}}
\newcommand{\nusixonward}[1]{\nusix{[\NUSix onward]\, {#1}}}
\newcommand{\prenufive}[1]{\notbeforenufive{\nufive{[Pre-\NUFive\!]\,}} {#1}}
\newcommand{\nufiveonward}[1]{\nufive{[\NUFive onward]\, {#1}}}
\newcommand{\precanopy}[1]{\notbeforecanopy{\canopy{[Pre-\Canopy\!]\,}} {#1}}
Expand Down Expand Up @@ -2423,6 +2448,8 @@
\newcommand{\nnote}[1]{\needspace{4ex}\vspace{2ex}\callout{}{Non-normative note:}{#1}}
\newenvironment{nnotes}{\introlist\callout{}{Non-normative notes:}\begin{itemize}}{\end{itemize}}

\newcommand{\nusixonwardnnote}[1]{\nusix{\callout{[\NUSix onward]\,\,}{Non-normative note:}{#1}}}
\newcommand{\nusixonwardpnote}[1]{\nusix{\callout{[\NUSix onward]\,\,}{Note:}{#1}}}
\newcommand{\nufiveonwardnnote}[1]{\nufive{\callout{[\NUFive onward]\,\,}{Non-normative note:}{#1}}}
\newcommand{\nufiveonwardpnote}[1]{\nufive{\callout{[\NUFive onward]\,\,}{Note:}{#1}}}
\newcommand{\canopyonwardnnote}[1]{\canopy{\callout{[\Canopy onward]\,\,}{Non-normative note:}{#1}}}
Expand Down Expand Up @@ -2487,10 +2514,14 @@
at launch, and after each of the upgrades codenamed \Overwinter, \Sapling, \Blossom,
\Heartwood, and \Canopy. It is a work in progress. Protocol differences from \Zerocash and
\Bitcoin are also explained.}}
\nufive{\noindent This draft specification defines the \Zcash consensus protocol
\notnusix{\nufive{\noindent This specification defines the \Zcash consensus protocol
at launch; after each of the upgrades codenamed \Overwinter, \Sapling, \Blossom,
\Heartwood, and \Canopy; and proposed changes for \NUFive. It is a work in progress.
Protocol differences from \Zerocash and \Bitcoin are also explained.}
\Heartwood, \Canopy, and \NUFive. It is a work in progress. Protocol
differences from \Zerocash and \Bitcoin are also explained.}}
\nusix{\noindent This draft specification defines the \Zcash consensus protocol
at launch; after each of the upgrades codenamed \Overwinter, \Sapling, \Blossom,
\Heartwood, \Canopy, and \NUFive; and proposed changes for \NUSix. It is a work
in progress. Protocol differences from \Zerocash and \Bitcoin are also explained.}

\vspace{2.5ex}
\noindent \textbf{Keywords:}~ \StrSubstitute[0]{\keywords}{,}{, }.
Expand Down Expand Up @@ -2560,6 +2591,9 @@
\notbeforenufive{Changes specific to the \NUFive upgrade following \Canopy
are highlighted in \nufive{\nufivecolorname}.}

\notbeforenusix{Changes specific to the \NUSix upgrade following \NUFive
are highlighted in \nusix{\nusixcolorname}.}

All of these are also changes from \Zerocash.
The name \Sprout is used for the \Zcash protocol prior to \Sapling
(both before and after \Overwinter), and in particular its shielded protocol.
Expand Down Expand Up @@ -12281,10 +12315,15 @@
\cite{ZIP-212}, \cite{ZIP-213}, and \cite{ZIP-221}.
Additional information and rationale is given in \cite{Zcash-Orchard} and \cite{Zcash-halo2}.}

\nusix{
This draft specification describes the set of changes proposed for the \NUSix \networkUpgrade
(for which activation heights have not yet been set).
} %nusix

\introlist
\vspace{1ex}
This section summarizes the strategy for upgrading from \Sprout to subsequent versions
of the protocol (\Overwinter, \Sapling, \Blossom, \Heartwood, \Canopy, and \NUFive),
of the protocol (\Overwinter, \Sapling, \Blossom, \Heartwood, \Canopy, \NUFive, and \NUSix),
and for future upgrades.

\defining{The \networkUpgrade mechanism is described in \cite{ZIP-200}.}
Expand Down