Skip to content

Commit

Permalink
Add reserved field in commitment.
Browse files Browse the repository at this point in the history
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
  • Loading branch information
daira committed Apr 11, 2016
1 parent 859059f commit 12e43aa
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 22 deletions.
Binary file modified protocol/protocol.pdf
Binary file not shown.
47 changes: 25 additions & 22 deletions protocol/protocol.tex
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@
\newcommand{\SpendingKey}{\mathsf{addr_{sk}}}
\newcommand{\PaymentAddressLeadByte}{\hexint{92}}
\newcommand{\SpendingKeyLeadByte}{\hexint{??}}
\newcommand{\NotePlaintextLeadByte}{\hexint{00}}
\newcommand{\AuthPublic}{\mathsf{a_{pk}}}
\newcommand{\AuthPrivate}{\mathsf{a_{sk}}}
\newcommand{\AuthPublicOld}[1]{\mathsf{a^{old}_{pk,\mathnormal{#1}}}}
Expand Down Expand Up @@ -629,7 +628,9 @@ \subsection{\Notes}

$\NoteCommitRand$ is randomly generated by the sender. \changed{$\NoteAddressRand$
is generated from a random seed $\NoteAddressPreRand$ using
$\PRFrho{\NoteAddressPreRand}$.} Only a commitment to these values is disclosed
$\PRFrho{\NoteAddressPreRand}$.}

Only a commitment to the contents of the \note is disclosed
publicly, which allows the tokens $\NoteCommitRand$ and $\NoteAddressRand$ to blind
the value and recipient \emph{except} to those who possess these tokens.

Expand All @@ -642,27 +643,29 @@ \subsubsection{\NoteCommitments} \label{comm}
\newsavebox{\cmbox}
\begin{lrbox}{\cmbox}
\setchanged
\begin{bytefield}[bitwidth=0.036em]{840}
\bitbox{24}{1} &
\bitbox{24}{0} &
\bitbox{24}{1} &
\bitbox{24}{1} &
\bitbox{24}{0} &
\bitbox{24}{0} &
\bitbox{24}{0} &
\bitbox{24}{0} &
\begin{bytefield}[bitwidth=0.03em]{952}
\bitbox{28}{1} &
\bitbox{28}{0} &
\bitbox{28}{1} &
\bitbox{28}{1} &
\bitbox{28}{0} &
\bitbox{28}{0} &
\bitbox{28}{0} &
\bitbox{28}{0} &
\bitbox{112}{$\zeros{112}$} &
\bitbox{256}{256 bit $\AuthPublic$} &
\bitbox{128}{64 bit $\Value$} &
\bitbox{256}{256 bit $\NoteAddressRand$}
\bitbox{256}{256 bit $\NoteCommitRand$} &
\bitbox{256}{256 bit $\NoteAddressRand$} &
\bitbox{256}{256 bit $\NoteCommitRand$}
\end{bytefield}
\end{lrbox}

\changed{
\hskip 1em $\cm := \FullHashbox{\cmbox}$

\subparagraph{Note:}
The leading byte of the $\FullHash$ input is $\hexint{B0}$.
The leading bytes of the $\FullHash$ input are $\hexint{B0}$, followed by 14 zero bytes.
The zero bytes are reserved for use in a future version of the \Zcash protocol.
}

\subsubsection{\Nullifiers}
Expand Down Expand Up @@ -709,20 +712,20 @@ \subsubsection{\NotePlaintexts{} and \Memos} \label{notept}

The encoding of a \notePlaintext consists of, in order:
\begin{equation*}
\begin{bytefield}[bitwidth=0.029em]{1608}
\begin{bytefield}[bitwidth=0.03em]{1608}
\changed{
\bitbox{192}{8 bit $\NotePlaintextLeadByte$}
\bitbox{256}{$\zeros{112}$ (14 bytes)}
&}\bitbox{192}{$\Value$ (8 bytes)} &
\bitbox{256}{$\NoteAddressRand$ (32 bytes)} &
\bitbox{256}{$\NoteAddressRand$ (32 bytes)}
\bitbox{256}{$\NoteCommitRand$ (\changed{32} bytes)} &
\changed{\bitbox{800}{$\Memo$ (128 bytes)}}
\changed{\bitbox{632}{$\Memo$ (128 bytes)}}
\end{bytefield}
\end{equation*}

\begin{itemize}
\changed{
\item A byte, $\NotePlaintextLeadByte$, indicating this version of the
encoding of a \notePlaintext.
\item 14 zero bytes, which are reserved for use in a future version of the
\Zcash protocol.
}
\item 8 bytes specifying $\Value$.
\item 32 bytes specifying $\NoteAddressRand$.
Expand Down Expand Up @@ -879,7 +882,7 @@ \section{\JoinSplitTransfers{} and Descriptions} \label{pourdesc}
\Varies & $\nJoinSplit$ & \type{compactSize uint} & The number of \joinSplitDescriptions
in $\vJoinSplit$. \\ \hline

$1026 \times \nJoinSplit$ & $\vJoinSplit$ &
$1052 \times \nJoinSplit$ & $\vJoinSplit$ &
\type{JoinSplitDescription} \type{[$\nJoinSplit$]} &
The \sequenceOfJoinSplitDescriptions in this \transaction. \\ \hline

Expand Down Expand Up @@ -926,7 +929,7 @@ \section{\JoinSplitTransfers{} and Descriptions} \label{pourdesc}
\setchanged 32 &\setchanged $\ephemeralKey$ &\setchanged \type{char[32]} &\mbox{}\setchanged
A Curve25519 public key $\EphemeralPublic$. \\ \hline

434 & $\encCiphertexts$ & \type{char[217][$\NNew$]} & A sequence of ciphertext
460 & $\encCiphertexts$ & \type{char[230][$\NNew$]} & A sequence of ciphertext
components for the encrypted output \notes, $\TransmitCiphertext{\allNew}$. \\ \hline

\setchanged 32 &\setchanged $\randomSeed$ &\setchanged \type{char[32]} &\mbox{}\setchanged
Expand Down

0 comments on commit 12e43aa

Please sign in to comment.