Go to file
Daira Hopwood e381ded490 \crossref{coinbasetransactions} effectively defined a coinbase transaction as the first
transaction in a block. This wording was copied from the Bitcoin Developer Reference
(https://developer.bitcoin.org/reference/transactions.html#coinbase-input-the-input-of-the-first-transaction-in-a-block),
but it does not match the implementation in zcashd that was inherited from Bitcoin Core.

Instead, a coinbase transaction should be, and now is, defined as a transaction with a
single null prevout. The specifications of consensus rules have been clarified and adjusted
(without any actual consensus change) to take this into account, as follows:

 * a block MUST have at least one transaction;
 * the first transaction in a block MUST be a coinbase transaction, and subsequent
   transactions MUST NOT be coinbase transactions;
 * a transparent input in a non-coinbase transaction MUST NOT have a null prevout;
 * every non-null prevout MUST point to a unique UTXO in either a preceding block, or a
   *previous* transaction in the same block (this rule was previously not given explicitly
   because it was assumed to be inherited from Bitcoin);
 * the rule that "A coinbase transaction MUST NOT have any transparent inputs with non-null
   prevout fields" is removed as an explicit consensus rule because it is implied by the
   corrected definition of coinbase transaction.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 01:51:33 +00:00
.github Bump actions/checkout from 2 to 3 2022-03-02 16:29:17 -05:00
assets
css [Dark mode] Remove unimportant "!important" annotation in section anchor style. 2022-01-11 13:24:24 +00:00
historical
protocol \crossref{coinbasetransactions} effectively defined a coinbase transaction as the first 2022-03-18 01:51:33 +00:00
.gitignore Add GitHub Actions workflow that renders and commits spec pdfs (#579) 2022-02-09 16:34:55 -05:00
CNAME
COPYING.html
COPYING.rst
Dockerfile
Makefile
README.rst Fix typo in README.rst 2022-02-16 15:19:23 -05:00
README.template Fix typo in README.template (which generates README.rst and index.html). 2022-02-16 21:07:06 +00:00
_config.yml
edithtml.sh [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
index.html Fix typo in README.template (which generates README.rst and index.html). 2022-02-16 21:07:06 +00:00
links_and_dests.py
makeindex.sh
render-via-docker.sh
zip-0000.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0000.rst
zip-0001.html
zip-0001.rst
zip-0002.html
zip-0002.rst
zip-0022.html
zip-0032-orchard-internal-key-derivation.png ZIP 32: Simplify Orchard internal key derivation diagram. 2022-01-19 19:00:51 +00:00
zip-0032-orchard-internal-key-derivation.svg ZIP 32: Simplify Orchard internal key derivation diagram. 2022-01-19 19:00:51 +00:00
zip-0032-sapling-internal-key-derivation.png ZIP 32: add internal key derivation for Sapling and Orchard. 2022-01-19 19:00:51 +00:00
zip-0032-sapling-internal-key-derivation.svg ZIP 32: add internal key derivation for Sapling and Orchard. 2022-01-19 19:00:51 +00:00
zip-0032.html ZIP 32: Fix an error in #588; "ZcashIP32_Sprout" was a personalization for BLAKE2b-512, not BLAKE2b-256. 2022-01-28 18:33:31 +00:00
zip-0032.rst ZIP 32: Fix an error in #588; "ZcashIP32_Sprout" was a personalization for BLAKE2b-512, not BLAKE2b-256. 2022-01-28 18:33:31 +00:00
zip-0076.html
zip-0076.rst
zip-0143.html ZIPs 143 and 243: fix links to zcash-test-vectors code. 2022-01-29 22:27:56 +00:00
zip-0143.rst ZIPs 143 and 243: fix links to zcash-test-vectors code. 2022-01-29 22:27:56 +00:00
zip-0155.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0155.rst
zip-0173.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0173.rst
zip-0200.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0200.rst
zip-0201.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0201.rst
zip-0202.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0202.rst
zip-0203.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0203.rst
zip-0204.html
zip-0204.rst
zip-0205.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0205.rst
zip-0206.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0206.rst
zip-0207.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0207.rst
zip-0208.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0208.rst
zip-0209.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0209.rst
zip-0210.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0210.rst
zip-0211.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0211.rst
zip-0212.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0212.rst
zip-0213.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0213.rst
zip-0214.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0214.rst
zip-0215.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0215.rst
zip-0216.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0216.rst
zip-0217.html
zip-0217.rst
zip-0219.html
zip-0219.rst
zip-0220.html
zip-0220.rst
zip-0221.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0221.rst
zip-0222.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0222.rst
zip-0224.html ZIP 224: fix a broken link. 2022-01-29 21:02:24 +00:00
zip-0224.rst ZIP 224: fix a broken link. 2022-01-29 21:02:24 +00:00
zip-0225.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0225.rst
zip-0239.html ZIP 239: regenerate HTML. 2022-02-23 21:26:59 +00:00
zip-0239.rst ZIP 239: Clarify the behaviour of zcashd and the intended behaviour for unrecognized inventory types (#545) 2022-02-23 16:21:28 -05:00
zip-0243.html ZIPs 143 and 243: fix links to zcash-test-vectors code. 2022-01-29 22:27:56 +00:00
zip-0243.rst ZIPs 143 and 243: fix links to zcash-test-vectors code. 2022-01-29 22:27:56 +00:00
zip-0244.html ZIP 244: Fix ill-defined commitments for shielded coinbase 2022-01-24 22:46:41 +00:00
zip-0244.rst ZIP 244: Fix ill-defined commitments for shielded coinbase 2022-01-24 22:46:41 +00:00
zip-0245.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0245.rst
zip-0250.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0250.rst
zip-0251.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0251.rst
zip-0252.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0252.rst
zip-0300.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0300.rst
zip-0301.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0301.rst
zip-0302.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0302.rst
zip-0303.html
zip-0303.rst
zip-0304.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0304.rst
zip-0305.html
zip-0305.rst
zip-0306.html
zip-0306.rst
zip-0307-arch.png
zip-0307.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0307.rst
zip-0308.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0308.rst
zip-0309.html
zip-0309.rst
zip-0310.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0310.rst
zip-0311.html
zip-0311.rst
zip-0312.html
zip-0312.rst
zip-0313.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0313.rst
zip-0314.html
zip-0314.rst
zip-0315.html
zip-0315.rst
zip-0316-f3.png ZIP 316: update Feistel diagrams to include border (needed for dark mode), and add source SVG files. 2021-12-31 16:24:58 +00:00
zip-0316-f3.svg ZIP 316: update Feistel diagrams to include border (needed for dark mode), and add source SVG files. 2021-12-31 16:24:58 +00:00
zip-0316-f4.png ZIP 316: update Feistel diagrams to include border (needed for dark mode), and add source SVG files. 2021-12-31 16:24:58 +00:00
zip-0316-f4.svg ZIP 316: update Feistel diagrams to include border (needed for dark mode), and add source SVG files. 2021-12-31 16:24:58 +00:00
zip-0316.html ZIP 316: further clarify which OVK is to be used when the sending Account is undetermined. 2022-02-07 14:51:53 +00:00
zip-0316.rst ZIP 316: further clarify which OVK is to be used when the sending Account is undetermined. 2022-02-07 14:51:53 +00:00
zip-0321.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0321.rst
zip-0322.html
zip-0322.rst
zip-0323.html
zip-0323.rst
zip-0339.html
zip-0339.rst
zip-0400.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0400.rst
zip-0401.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-0401.rst
zip-0402.html
zip-0402.rst
zip-0403.html
zip-0403.rst
zip-0416.html
zip-0416.rst
zip-1001.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1001.rst
zip-1002.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1002.rst
zip-1003.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1003.rst
zip-1004.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1004.rst
zip-1005.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1005.rst
zip-1006.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1006.rst
zip-1007.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1007.rst
zip-1008.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1008.rst
zip-1009.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1009.rst Fix stale links, and correct the accenting of [MÁEÁ2010]. 2022-01-03 22:15:14 +00:00
zip-1010.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1010.rst
zip-1011.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1011.rst
zip-1012.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1012.rst
zip-1013.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1013.rst
zip-1014.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-1014.rst
zip-guide.html [Dark mode] Fix the background colour of the section anchor image. 2022-01-11 13:19:12 +00:00
zip-guide.rst

README.template

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. Title: Specifications and Zcash Improvement Proposals


What are ZIPs?
--------------

Zcash Improvement Proposals (ZIPs) are the way to:

* propose new features for the `Zcash cryptocurrency <https://z.cash/>`__ and their rationale,
* specify the implementation details of the feature,
* collect community input on the proposal, and
* document design decisions.


Contributing
------------

The authors of a ZIP are responsible for building consensus within the community
and documenting / addressing dissenting opinions.

Anyone can write a ZIP! We encourage community contributions and decentralization
of work on the Zcash protocol. If youd like to bounce ideas off people before formally
writing a ZIP, we encourage it! Visit the `ZcashCommunity Discord chat <https://discord.gg/kdjfvps>`__
to talk about your idea.

Participation in the Zcash project is subject to a `Code of
Conduct <https://github.com/zcash/zcash/blob/master/code_of_conduct.md>`__.

The Zcash protocol is documented in its `Protocol Specification <protocol/protocol.pdf>`__.

To start contributing, first read `ZIP 0 <zip-0000.rst>`__ which documents the ZIP process.
Then clone `this repo <https://github.com/zcash/zips>`__ from GitHub, and start adding
your draft ZIP, formatted either as reStructuredText or as Markdown.

For example, if using reStructuredText, use a filename matching ``draft-*.rst``.
Use ``make`` to check that you are using correct
`reStructuredText <https://docutils.sourceforge.io/rst.html>`__ or
`Markdown <https://pandoc.org/MANUAL.html#pandocs-markdown>`__ syntax,
and double-check the generated ``draft-*.html`` file before filing a Pull Request.


NU5 ZIPs
--------

This is the list of ZIPs relevant to the proposed NU5 Upgrade, which
is planned to activate on Mainnet in January 2022:

- `ZIP 32: Shielded Hierarchical Deterministic Wallets <zip-0032.rst>`__ (updated)
- `ZIP 203: Transaction Expiry <zip-0203.rst>`__ (updated)
- `ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances <zip-0209.rst>`__ (updated)
- `ZIP 212: Allow Recipient to Derive Ephemeral Secret from Note Plaintext <zip-0212.rst>`__ (updated)
- `ZIP 213: Shielded Coinbase <zip-0213.rst>`__ (updated)
- `ZIP 216: Require Canonical Jubjub Point Encodings <zip-0216.rst>`__
- `ZIP 221: FlyClient - Consensus-Layer Changes <zip-0221.rst>`__ (updated)
- `ZIP 224: Orchard Shielded Protocol <zip-0224.rst>`__
- `ZIP 225: Version 5 Transaction Format <zip-0225.rst>`__
- `ZIP 239: Relay of Version 5 Transactions <zip-0239.rst>`__
- `ZIP 244: Transaction Identifier Non-Malleability <zip-0244.rst>`__
- `ZIP 252: Deployment of the NU5 Network Upgrade <zip-0252.rst>`__
- `ZIP 316: Unified Addresses and Unified Viewing Keys <zip-0316.rst>`__
- `ZIP 401: Addressing Mempool Denial-of-Service <zip-0401.rst>`__ (clarified)


License
-------

Unless otherwise stated in this repositorys individual files, the
contents of this repository are released under the terms of the MIT
license. See `COPYING <COPYING.rst>`__ for more information or see
https://opensource.org/licenses/MIT .