Add a section on which BIPs apply to Zcash. fixes #87

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2016-10-02 22:26:28 +01:00
parent 61aa04e01b
commit 891f21bac9
2 changed files with 144 additions and 5 deletions

View File

@ -2395,7 +2395,7 @@ $\SHAName$ outputs are always represented as sequences of 32 bytes.
The language consisting of the following encoding possibilities is prefix-free.
\nsubsubsection{\Transparent{} Payment Addresses}
\nsubsubsection{\Transparent{} Payment Addresses} \label{transparentaddrencoding}
\xTransparent payment addresses are either P2SH (Pay to Script Hash) \cite{BIP-13}
or P2PKH (Pay to Public Key Hash) \cite{Bitcoin-P2PKH} addresses.
@ -2452,12 +2452,12 @@ The raw encoding of a P2PKH address consists of:
addresses \cite{BIP-32}.
\end{pnotes}
\nsubsubsection{\Transparent{} Private Keys}
\nsubsubsection{\Transparent{} Private Keys} \label{transparentkeyencoding}
These are encoded in the same way as in \Bitcoin \cite{Bitcoin-Base58},
for both the production and test networks. \todo{confirm this.}
\nsubsubsection{\Protected{} Payment Addresses}
\nsubsubsection{\Protected{} Payment Addresses} \label{paymentaddrencoding}
A \paymentAddress consists of $\AuthPublic$ and $\TransmitPublic$.
$\AuthPublic$ is a $\SHAName$ output.
@ -2489,7 +2489,7 @@ The raw encoding of a \paymentAddress consists of:
normal encoding of a Curve25519 public key \cite{Bern2006}}.
\end{itemize}
\nsubsubsection{Spending Keys}
\nsubsubsection{Spending Keys} \label{spendingkeyencoding}
A \spendingKey consists of $\AuthPrivate$, which is a sequence of \changed{252} bits.
@ -3151,6 +3151,56 @@ as its $\scriptPubKey$.
\end{pnotes}
\nsubsection{Bitcoin Improvement Proposals} \label{bips}
In general, Bitcoin Improvement Proposals (BIPs) do not apply to \Zcash unless
otherwise specified in this section.
All of the BIPs referenced below should be interpreted by replacing
``BTC'', or ``bitcoin'' used as a currency unit, with ``ZEC''; and
``satoshi'' with ``zatoshi''.
The following BIPs apply, otherwise unchanged, to \Zcash:
\cite{BIP-11},
\cite{BIP-14},
\cite{BIP-31},
\cite{BIP-35},
\cite{BIP-37},
\cite{BIP-61}.
The following BIPs apply starting from the \genesisBlock, i.e.\ any activation
rules or exceptions for particular \blocks in the \Bitcoin \blockchain are to
be ignored:
\cite{BIP-16},
\cite{BIP-30},
\cite{BIP-34},
\cite{BIP-65},
\cite{BIP-66}.
\cite{BIP-13} applies with the changes to address version bytes described
in \crossref{transparentaddrencoding}.
\begin{comment}
\cite{BIP-22} and \cite{BIP-23} apply with some protocol changes, which are
to be specified in a Zcash Improvement Proposal.
The following BIPs can be used unchanged, but do not define consensus rules:
\cite{BIP-69},
\cite{BIP-126}.
The following BIPs can be used by replacing the URI scheme \ascii{bitcoin:}
with \ascii{zcash:}, and the MIME types starting with \ascii{bitcoin-} with
corresponding types starting with \ascii{zcash-}:
\cite{BIP-21},
\cite{BIP-70},
\cite{BIP-71},
\cite{BIP-72},
\cite{BIP-73}.
(Note that this URI scheme and these MIME types are not formally allocated,
and would require an RFC in order to do so.)
\end{comment}
\nsection{Differences from the Zerocash paper} \label{differences}
\nsubsection{Transaction Structure} \label{trstructure}
@ -3577,6 +3627,7 @@ The errors in the proof of Ledger Indistinguishability mentioned in
\subparagraph{2016.0-beta-1.8}
\begin{itemize}
\item Add a section on which BIPs apply to \Zcash.
\item Change the representation type of $\vpubOldField$ and $\vpubNewField$
to \type{uint64\_t}. (This is not a consensus change because the type of
$\vpubOld$ and $\vpubNew$ was already specified to be $\range{0}{\MAXMONEY}$;

View File

@ -292,14 +292,54 @@ Received \mbox{April 13,} 2011.}
urldate={2016-08-24}
}
@misc{BIP-11,
author={Gavin Andresen},
title={M-of-{N} {S}tandard {T}ransactions},
howpublished={Bitcoin Improvement Proposal 11. Created October 18, 2011},
url={https://github.com/bitcoin/bips/blob/master/bip-0011.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-13,
author={Gavin Andresen},
title={Address Format for pay-to-script-hash},
title={Address {F}ormat for pay-to-script-hash},
howpublished={Bitcoin Improvement Proposal 13. Created October 18, 2011},
url={https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki},
urldate={2016-09-24}
}
@misc{BIP-14,
author={Amir Taaki and Patrick Strateman},
title={Protocol {V}ersion and {U}ser {A}gent},
howpublished={Bitcoin Improvement Proposal 14. Created November 10, 2011},
url={https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-16,
author={Gavin Andresen},
title={Pay to {S}cript {H}ash},
howpublished={Bitcoin Improvement Proposal 16. Created January 3, 2012},
url={https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-30,
author={Pieter Wuille},
title={Duplicate transactions},
howpublished={Bitcoin Improvement Proposal 30. Created February 22, 2012},
url={https://github.com/bitcoin/bips/blob/master/bip-0030.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-31,
author={Mike Hearn},
title={Pong message},
howpublished={Bitcoin Improvement Proposal 31. Created April 11, 2012},
url={https://github.com/bitcoin/bips/blob/master/bip-0031.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-32,
author={Pieter Wuille},
title={Hierarchical {D}eterministic {W}allets},
@ -308,6 +348,38 @@ Received \mbox{April 13,} 2011.}
urldate={2016-09-24}
}
@misc{BIP-34,
author={Gavin Andresen},
title={Block v2, {H}eight in {C}oinbase},
howpublished={Bitcoin Improvement Proposal 34. Created July 6, 2012},
url={https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-35,
author={Jeff Garzik},
title={mempool message},
howpublished={Bitcoin Improvement Proposal 35. Created August 16, 2012},
url={https://github.com/bitcoin/bips/blob/master/bip-0035.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-37,
author={Mike Hearn and Matt Corallo},
title={Connection Bloom filtering},
howpublished={Bitcoin Improvement Proposal 37. Created October 24, 2012},
url={https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-61,
author={Gavin Andresen},
title={Reject P2P message},
howpublished={Bitcoin Improvement Proposal 61. Created June 18, 2014},
url={https://github.com/bitcoin/bips/blob/master/bip-0061.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-62,
author={Pieter Wuille},
title={Dealing with malleability},
@ -316,6 +388,22 @@ Received \mbox{April 13,} 2011.}
urldate={2016-09-05}
}
@misc{BIP-65,
author={Peter Todd},
title={\ScriptOP{CHECKLOCKTIMEVERIFY}},
howpublished={Bitcoin Improvement Proposal 65. Created October 10, 2014},
url={https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-66,
author={Pieter Wuille},
title={Strict {DER} signatures},
howpublished={Bitcoin Improvement Proposal 66. Created January 10, 2015},
url={https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki},
urldate={2016-10-02}
}
@misc{BIP-68,
author={Mark Friedenbach and BtcDrak and Nicolas Dorier and kinoshitajona},
title={Relative lock-time using con\-sensus-enforced sequence numbers},