mirror of https://github.com/zcash/zips.git
71cee89a18
* ephemeralKey is kept as a byte sequence rather than immediately converted to a curve point; this matters because of non-canonical encoding. * The representation of pk_d in a note plaintext may also be non-canonical and need not be in the prime subgroup. * Move checking of cm_u in decryption with ivk to the end of the algorithm, to more closely match the implementation. * The note about decryption of outputs in mempool transactions should have been normative. Also change ZIP 212 to say that it is aligned with this version of the protocol spec. Signed-off-by: Daira Hopwood <daira@jacaranda.org> |
||
---|---|---|
.. | ||
Makefile | ||
README.rst | ||
blossom.pdf | ||
canopy.pdf | ||
heartwood.pdf | ||
incremental_merkle.odg | ||
incremental_merkle.png | ||
incremental_merkle.svg | ||
jubjub.png | ||
key_components.png | ||
key_components.svg | ||
key_components_sapling.png | ||
key_components_sapling.svg | ||
latexmkrc | ||
mymakeindex.sh | ||
protocol.pdf | ||
protocol.tex | ||
sapling.pdf | ||
sprout.pdf | ||
zcash.bib |
README.rst
============================== Zcash Protocol Specification ============================== Build dependencies on Debian-based systems include, at least: .. code:: apt-get install texlive texlive-science texlive-fonts-extra \ texlive-generic-recommended texlive-bibtex-extra biber latexmk perl awk Building -------- Use: * ``make nufour`` to make the draft specification for NU4 (``nufour.pdf``); * ``make heartwood`` to make the specification for Heartwood (``protocol.pdf``); * ``make blossom`` to make the specification for the Blossom upgrade (``blossom.pdf``); * ``make sapling`` to make the specification for the Overwinter and Sapling upgrades (``sapling.pdf``); * ``make sprout`` to make a version of the specification that does not include Overwinter or Sapling (``sprout.pdf``). ``make all`` is equivalent to ``make nufour heartwood blossom sapling sprout``. By default these use ``latexmk``. If you have trouble getting ``latexmk`` to work, you can instead use ``make nolatexmk-sapling``, etc. That is not the preferred way of building because it may not run ``pdflatex`` enough times. It is also possible to use the incremental (``-pvc``) mode of ``latexmk`` to automatically rebuild when changes in the source files are detected, by adding ``EXTRAOPT=-pvc`` to the ``make`` command line. In this case the updated PDF files will be in the ``aux/`` directory. Manual intervention is still needed when there are LaTeX errors. Alternative TeX engines ----------------------- There is experimental support for building the specification using LuaTeX or XeTeX; see the comments at the top of the `Makefile`. However, this will `currently produce poor output <https://github.com/zcash/zips/issues/249>`_. A warning is included below the Abstract to indicate this.