|
|
@ -724,10 +724,11 @@ and produces `z' as the Base58Check leading character.} |
|
|
|
Transmitted coins are stored on the blockchain in encrypted form, together with |
|
|
|
a \coinCommitment $\cm$. |
|
|
|
|
|
|
|
A \coinsCiphertext is an encryption of a \coinPlaintext to a |
|
|
|
\transmitPublicAlgorithm key $\TransmitPublic$. |
|
|
|
The \coinPlaintexts associated with a \PourDescription are encrypted to the |
|
|
|
respective \transmitPublicAlgorithm keys $\TransmitPublicNew{1..\NNew}$, and the |
|
|
|
result forms a \coinsCiphertext. |
|
|
|
|
|
|
|
A \coinPlaintext consists of $(\Value, \CoinAddressRand, \CoinCommitRand, \Memo)$, |
|
|
|
Each \coinPlaintext consists of $(\Value, \CoinAddressRand, \CoinCommitRand, \Memo)$, |
|
|
|
where: |
|
|
|
|
|
|
|
\begin{itemize} |
|
|
@ -755,11 +756,12 @@ does not use it. |
|
|
|
The raw encoding of a \coinPlaintext consists of, in order: |
|
|
|
|
|
|
|
\begin{equation*} |
|
|
|
\begin{bytefield}[bitwidth=0.05em]{712} |
|
|
|
\bitbox{64}{$\TransmitPlaintextVersionByte$} & |
|
|
|
\bitbox{120}{$\Value$ (8 bytes)} & |
|
|
|
\begin{bytefield}[bitwidth=0.035em]{1224} |
|
|
|
\bitbox{80}{$\TransmitPlaintextVersionByte$} & |
|
|
|
\bitbox{144}{$\Value$ (8 bytes)} & |
|
|
|
\bitbox{256}{$\CoinAddressRand$ (32 bytes)} & |
|
|
|
\bitbox{384}{$\CoinCommitRand$ (48 bytes)} & |
|
|
|
\bitbox{512}{$\Memo$ (64 bytes)} |
|
|
|
\end{bytefield} |
|
|
|
\end{equation*} |
|
|
|
|
|
|
@ -769,6 +771,7 @@ encoding of a \coinPlaintext. |
|
|
|
\item 8 bytes specifying a big-endian encoding of $\Value$. |
|
|
|
\item 32 bytes specifying $\CoinAddressRand$. |
|
|
|
\item 48 bytes specifying $\CoinCommitRand$. |
|
|
|
\item 64 bytes specifying $\Memo$. |
|
|
|
\end{itemize} |
|
|
|
|
|
|
|
\section{Pours (within a transaction on the blockchain)} |
|
|
|