diff --git a/protocol/protocol.tex b/protocol/protocol.tex index 27f55038..ee8e720b 100644 --- a/protocol/protocol.tex +++ b/protocol/protocol.tex @@ -663,6 +663,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\Mimblewimble}{\termbf{Mimblewimble}} \newcommand{\Bulletproofs}{\termbf{Bulletproofs}} \newcommand{\ZEC}{\termbf{ZEC}} +\newcommand{\TAZ}{\termbf{TAZ}} \newcommand{\zatoshi}{\term{zatoshi}} \newcommand{\zcashd}{\termsf{zcashd}} \newcommand{\Makefile}{\texttt{Makefile}\xspace} @@ -834,10 +835,16 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\fullValidators}{\terms{full validator}} \newcommand{\consensusRuleChange}{\term{consensus rule change}} \newcommand{\networkUpgrade}{\term{network upgrade}} +\newcommand{\networkUpgrades}{\terms{network upgrade}} +\newcommand{\Mainnet}{\term{Mainnet}} +\newcommand{\Testnet}{\term{Testnet}} +\newcommand{\rpcByteOrder}{\term{RPC byte order}} \newcommand{\anchor}{\term{anchor}} \newcommand{\anchors}{\terms{anchor}} \newcommand{\block}{\term{block}} \newcommand{\blocks}{\terms{block}} +\newcommand{\blockHash}{\term{block hash}} +\newcommand{\blockHashes}{\termes{block hash}} \newcommand{\header}{\termandindex{header}{block header}} \newcommand{\headers}{\termandindex{headers}{block header}} \newcommand{\blockHeader}{\term{block header}} @@ -850,6 +857,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\blockTimestamp}{\term{block timestamp}} \newcommand{\blockHeight}{\term{block height}} \newcommand{\blockHeights}{\terms{block height}} +\newcommand{\activationBlock}{\term{activation block}} \newcommand{\activationHeight}{\term{activation block height}} \newcommand{\activationHeights}{\terms{activation block height}} \newcommand{\genesisBlock}{\term{genesis block}} @@ -3122,6 +3130,36 @@ included in this \block. The \coinbaseTransaction{} \MUST also pay the \founders as described in \crossref{foundersreward}. +\lsubsection{Mainnet and Testnet}{networks} + +The production \Zcash network, which supports the \ZEC token, is called \Mainnet. Governance of its +protocol is by agreement between the Electric Coin Company and the Zcash Foundation \cite{ECCZF2019}. +Subject to errors and omissions, each version of this document intends to describe some version +(or planned version) of that agreed protocol. + +\defining{All \blockHashes given in this section are in \rpcByteOrder \cite{Bitcoin-Order}.} + +\Mainnet \genesisBlock: $\mathtt{00040fe8ec8471911baa1db1266ea15dd06b4a8a5c453883c000b031973dce08}$ + +\Mainnet \Blossom \activationBlock: $\mathtt{00000000020bebb33c1b34b67a982a328ab212a206dacbe561a7cc94aab3e9bb}$ + +There is also a public test network called \Testnet. It supports a \TAZ token which is intended to +have no monetary value. By convention, \Testnet activates \networkUpgrades (as described in +\crossref{networkupgrades}) before \Mainnet, in order to allow for errors or ambiguities in +their specification and implementation to be discovered. The \Testnet \blockChain is subject to +being rolled back to a prior \block at any time. + +\Testnet \genesisBlock: $\mathtt{05a60a92d99d85997cce3b87616c089f6124d7342af37106edc76126334a2c38}$ + +\Testnet \Heartwood \activationBlock: $\mathtt{05688d8a0e9ff7c04f6f05e6d695dc5ab43b9c4803342d77ae360b2b27d2468e}$ + +We call the smallest units of currency (on either network) \zatoshi. + +On \Mainnet, $1$ \ZEC = $10^8$ \zatoshi. On \Testnet, $1$ \TAZ = $10^8$ \zatoshi. + +Other networks using variants of the \Zcash protocol may exist, but are not described by this specification. + + \intropart \lsection{Abstract Protocol}{abstractprotocol} @@ -8725,7 +8763,7 @@ and in the multi-party computation to obtain the \Sapling parameters given in It is derived as described in \cite{Bowe2018}: \begin{itemize} - \item Take the hash of the \Bitcoin \block at height $514200$ in RPC byte order \cite{Bitcoin-Order}, + \item Take the hash of the \Bitcoin \block at height $514200$ in \rpcByteOrder \cite{Bitcoin-Order}, i.e.\ the big-endian $32$-byte representation of $\hexint{00000000000000000034b33e842ac1c50456abe5fa92b60f6b3dfc5d247f7b58}$. \item Apply \shaHash $2^{42}$ times. \item Convert to a US-ASCII lowercase hexadecimal string. @@ -8736,7 +8774,6 @@ It is derived as described in \cite{Bowe2018}: } %sapling -\notsprout{ \intropart \lsection{Network Upgrades}{networkupgrades} @@ -8811,7 +8848,6 @@ validated according to the pre-upgrade rules, and upgrade-supporting nodes \MUST allow for this. %\todo{how upgrade-dependent rules are described in this specification.} -} %notsprout \intropart @@ -10522,8 +10558,9 @@ Peter Newell's illustration of the Jubjub bird, from \cite{Carroll1902}. \intropart \lsection{Change History}{changehistory} -\historyentry{2020.1.9}{} +\historyentry{2020.1.9}{2020-07-05} \begin{itemize} + \item Add \crossref{networks}. \item Acknowledge Jane Lusby and Teor. \sapling{ \item Correct an error introduced in 2020.1.8; ``$-\ZeroJ$'' was incorrectly used when diff --git a/protocol/zcash.bib b/protocol/zcash.bib index a6de69a6..11cdafeb 100644 --- a/protocol/zcash.bib +++ b/protocol/zcash.bib @@ -1416,3 +1416,12 @@ Proceedings of the 19th Annual International Cryptology Conference url={https://electriccoin.co/blog/zcash-counterfeiting-vulnerability-successfully-remediated/}, urldate={2019-08-27} } + +@misc{ECCZF2019, + presort={ECCZF2019}, + author={Electric Coin Company and Zcash Foundation}, + title={Zcash {T}rademark {D}onation and {L}icense {A}greement}, + date={2019-11-06}, + url={https://www.zfnd.org/about/contracts/2019_ECC_ZFND_TM_agreement.pdf}, + urldate={2020-07-05} +}