ZIP 252: add reference to ZIP 32.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2021-06-05 15:03:43 +01:00
parent 72d37b803c
commit 5b5dd20516
2 changed files with 37 additions and 27 deletions

View File

@ -18,7 +18,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/440">https://g
Pull-Request: &lt;<a href="https://github.com/zcash/zips/pull/446">https://github.com/zcash/zips/pull/446</a>&gt;</pre> Pull-Request: &lt;<a href="https://github.com/zcash/zips/pull/446">https://github.com/zcash/zips/pull/446</a>&gt;</pre>
<section id="terminology"><h2><span class="section-heading">Terminology</span><span class="section-anchor"> <a rel="bookmark" href="#terminology"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2> <section id="terminology"><h2><span class="section-heading">Terminology</span><span class="section-anchor"> <a rel="bookmark" href="#terminology"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2>
<p>The key words "MUST" and "SHOULD" in this document are to be interpreted as described in RFC 2119. <a id="id1" class="footnote_reference" href="#rfc2119">1</a></p> <p>The key words "MUST" and "SHOULD" in this document are to be interpreted as described in RFC 2119. <a id="id1" class="footnote_reference" href="#rfc2119">1</a></p>
<p>The term "network upgrade" in this document is to be interpreted as described in ZIP 200. <a id="id2" class="footnote_reference" href="#zip-0200">5</a></p> <p>The term "network upgrade" in this document is to be interpreted as described in ZIP 200. <a id="id2" class="footnote_reference" href="#zip-0200">6</a></p>
<p>The terms "Testnet" and "Mainnet" are to be interpreted as described in section 3.11 of the Zcash Protocol Specification <a id="id3" class="footnote_reference" href="#protocol-networks">3</a>.</p> <p>The terms "Testnet" and "Mainnet" are to be interpreted as described in section 3.11 of the Zcash Protocol Specification <a id="id3" class="footnote_reference" href="#protocol-networks">3</a>.</p>
</section> </section>
<section id="abstract"><h2><span class="section-heading">Abstract</span><span class="section-anchor"> <a rel="bookmark" href="#abstract"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2> <section id="abstract"><h2><span class="section-heading">Abstract</span><span class="section-anchor"> <a rel="bookmark" href="#abstract"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2>
@ -29,18 +29,18 @@ Pull-Request: &lt;<a href="https://github.com/zcash/zips/pull/446">https://githu
<p>The primary sources of information about NU5 consensus and peer-to-peer protocol changes are:</p> <p>The primary sources of information about NU5 consensus and peer-to-peer protocol changes are:</p>
<ul> <ul>
<li>The Zcash Protocol Specification <a id="id4" class="footnote_reference" href="#protocol">2</a></li> <li>The Zcash Protocol Specification <a id="id4" class="footnote_reference" href="#protocol">2</a></li>
<li>ZIP 200: Network Upgrade Mechanism <a id="id5" class="footnote_reference" href="#zip-0200">5</a></li> <li>ZIP 200: Network Upgrade Mechanism <a id="id5" class="footnote_reference" href="#zip-0200">6</a></li>
<li>ZIP 216: Require Canonical Point Encodings <a id="id6" class="footnote_reference" href="#zip-0216">7</a></li> <li>ZIP 216: Require Canonical Point Encodings <a id="id6" class="footnote_reference" href="#zip-0216">8</a></li>
<li>ZIP 221: FlyClient - Consensus-Layer Changes <a id="id7" class="footnote_reference" href="#zip-0221">8</a> (amended)</li> <li>ZIP 221: FlyClient - Consensus-Layer Changes <a id="id7" class="footnote_reference" href="#zip-0221">9</a> (amended)</li>
<li>ZIP 224: Orchard Shielded Protocol <a id="id8" class="footnote_reference" href="#zip-0224">9</a></li> <li>ZIP 224: Orchard Shielded Protocol <a id="id8" class="footnote_reference" href="#zip-0224">10</a></li>
<li>ZIP 225: Version 5 Transaction Format <a id="id9" class="footnote_reference" href="#zip-0225">10</a></li> <li>ZIP 225: Version 5 Transaction Format <a id="id9" class="footnote_reference" href="#zip-0225">11</a></li>
<li>ZIP 239: Relay of Version 5 Transactions <a id="id10" class="footnote_reference" href="#zip-0239">11</a></li> <li>ZIP 239: Relay of Version 5 Transactions <a id="id10" class="footnote_reference" href="#zip-0239">12</a></li>
<li>ZIP 244: Transaction Identifier Non-Malleability <a id="id11" class="footnote_reference" href="#zip-0244">12</a></li> <li>ZIP 244: Transaction Identifier Non-Malleability <a id="id11" class="footnote_reference" href="#zip-0244">13</a></li>
<li>The Orchard Book <a id="id12" class="footnote_reference" href="#orchard-book">14</a></li> <li>The Orchard Book <a id="id12" class="footnote_reference" href="#orchard-book">15</a></li>
<li>The halo2 Book <a id="id13" class="footnote_reference" href="#halo2-book">15</a></li> <li>The halo2 Book <a id="id13" class="footnote_reference" href="#halo2-book">16</a></li>
</ul> </ul>
<p>The network handshake and peer management mechanisms defined in ZIP 201 <a id="id14" class="footnote_reference" href="#zip-0201">6</a> also apply to this upgrade. Unified addresses and viewing keys are described in ZIP 316 <a id="id15" class="footnote_reference" href="#zip-0316">13</a>.</p> <p>The network handshake and peer management mechanisms defined in ZIP 201 <a id="id14" class="footnote_reference" href="#zip-0201">7</a> also apply to this upgrade. Unified addresses and viewing keys are described in ZIP 316 <a id="id15" class="footnote_reference" href="#zip-0316">14</a>. ZIP 32 <a id="id16" class="footnote_reference" href="#zip-0032">5</a> has been amended to include hierarchical key derivation for Orchard.</p>
<p>The following network upgrade constants <a id="id16" class="footnote_reference" href="#zip-0200">5</a> are defined for the NU5 upgrade:</p> <p>The following network upgrade constants <a id="id17" class="footnote_reference" href="#zip-0200">6</a> are defined for the NU5 upgrade:</p>
<dl> <dl>
<dt>CONSENSUS_BRANCH_ID</dt> <dt>CONSENSUS_BRANCH_ID</dt>
<dd><code>0xF919A198</code></dd> <dd><code>0xF919A198</code></dd>
@ -62,13 +62,13 @@ Pull-Request: &lt;<a href="https://github.com/zcash/zips/pull/446">https://githu
<li>reject new connections from pre-NU5 nodes on that network;</li> <li>reject new connections from pre-NU5 nodes on that network;</li>
<li>disconnect any existing connections to pre-NU5 nodes on that network.</li> <li>disconnect any existing connections to pre-NU5 nodes on that network.</li>
</ul> </ul>
<p>The change to the peer-to-peer protocol described in ZIP 239 takes effect from peer protocol version 170014 onward, on both Testnet and Mainnet. <a id="id17" class="footnote_reference" href="#zip-0239">11</a></p> <p>The change to the peer-to-peer protocol described in ZIP 239 takes effect from peer protocol version 170014 onward, on both Testnet and Mainnet. <a id="id18" class="footnote_reference" href="#zip-0239">12</a></p>
</section> </section>
</section> </section>
<section id="backward-compatibility"><h2><span class="section-heading">Backward compatibility</span><span class="section-anchor"> <a rel="bookmark" href="#backward-compatibility"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2> <section id="backward-compatibility"><h2><span class="section-heading">Backward compatibility</span><span class="section-anchor"> <a rel="bookmark" href="#backward-compatibility"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2>
<p>Prior to the network upgrade activating on each network, NU5 and pre-NU5 nodes are compatible and can connect to each other.</p> <p>Prior to the network upgrade activating on each network, NU5 and pre-NU5 nodes are compatible and can connect to each other.</p>
<p>Once the network upgrades, even though pre-NU5 nodes can still accept the numerically larger protocol version used by NU5 as being valid, NU5 nodes will always disconnect peers using lower protocol versions.</p> <p>Once the network upgrades, even though pre-NU5 nodes can still accept the numerically larger protocol version used by NU5 as being valid, NU5 nodes will always disconnect peers using lower protocol versions.</p>
<p>Unlike Blossom, Heartwood, and Canopy, and like Overwinter and Sapling, NU5 defines a new transaction version. Therefore, NU5 transactions MAY be in the new v5 format specified by <a id="id18" class="footnote_reference" href="#zip-0225">10</a>. Unlike previous transaction version updates, the existing v4 transaction format remains valid after NU5 activation. Both transaction formats MUST be accepted by NU5 nodes.</p> <p>Unlike Blossom, Heartwood, and Canopy, and like Overwinter and Sapling, NU5 defines a new transaction version. Therefore, NU5 transactions MAY be in the new v5 format specified by <a id="id19" class="footnote_reference" href="#zip-0225">11</a>. Unlike previous transaction version updates, the existing v4 transaction format remains valid after NU5 activation. Both transaction formats MUST be accepted by NU5 nodes.</p>
</section> </section>
<section id="support-in-zcashd"><h2><span class="section-heading">Support in zcashd</span><span class="section-anchor"> <a rel="bookmark" href="#support-in-zcashd"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2> <section id="support-in-zcashd"><h2><span class="section-heading">Support in zcashd</span><span class="section-anchor"> <a rel="bookmark" href="#support-in-zcashd"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2>
<p><strong>TODO: Update as needed</strong></p> <p><strong>TODO: Update as needed</strong></p>
@ -83,7 +83,7 @@ Pull-Request: &lt;<a href="https://github.com/zcash/zips/pull/446">https://githu
* This was three days for upgrades up to and including Blossom, and is 1.5 days from Heartwood onward. * This was three days for upgrades up to and including Blossom, and is 1.5 days from Heartwood onward.
*/ */
static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre> static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<p>The implementation is similar to that for Overwinter which was described in <a id="id19" class="footnote_reference" href="#zip-0201">6</a>.</p> <p>The implementation is similar to that for Overwinter which was described in <a id="id20" class="footnote_reference" href="#zip-0201">7</a>.</p>
<p>However, NU5 nodes will have a preference for connecting to other NU5 nodes, so pre-NU5 nodes will gradually be disconnected in the run up to activation.</p> <p>However, NU5 nodes will have a preference for connecting to other NU5 nodes, so pre-NU5 nodes will gradually be disconnected in the run up to activation.</p>
</section> </section>
</section> </section>
@ -135,10 +135,18 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<table id="zip-0200" class="footnote"> <table id="zip-0032" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>5</th> <th>5</th>
<td><a href="zip-0032">ZIP 32: Shielded Hierarchical Deterministic Wallets</a></td>
</tr>
</tbody>
</table>
<table id="zip-0200" class="footnote">
<tbody>
<tr>
<th>6</th>
<td><a href="zip-0200">ZIP 200: Network Upgrade Activation Mechanism</a></td> <td><a href="zip-0200">ZIP 200: Network Upgrade Activation Mechanism</a></td>
</tr> </tr>
</tbody> </tbody>
@ -146,7 +154,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0201" class="footnote"> <table id="zip-0201" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>6</th> <th>7</th>
<td><a href="zip-0201">ZIP 201: Network Peer Management for Overwinter</a></td> <td><a href="zip-0201">ZIP 201: Network Peer Management for Overwinter</a></td>
</tr> </tr>
</tbody> </tbody>
@ -154,7 +162,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0216" class="footnote"> <table id="zip-0216" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>7</th> <th>8</th>
<td><a href="zip-0216">ZIP 216: Require Canonical Point Encodings</a></td> <td><a href="zip-0216">ZIP 216: Require Canonical Point Encodings</a></td>
</tr> </tr>
</tbody> </tbody>
@ -162,7 +170,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0221" class="footnote"> <table id="zip-0221" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>8</th> <th>9</th>
<td><a href="zip-0221">ZIP 221: FlyClient - Consensus-Layer Changes</a></td> <td><a href="zip-0221">ZIP 221: FlyClient - Consensus-Layer Changes</a></td>
</tr> </tr>
</tbody> </tbody>
@ -170,7 +178,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0224" class="footnote"> <table id="zip-0224" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>9</th> <th>10</th>
<td><a href="zip-0224">ZIP 224: Orchard Shielded Protocol</a></td> <td><a href="zip-0224">ZIP 224: Orchard Shielded Protocol</a></td>
</tr> </tr>
</tbody> </tbody>
@ -178,7 +186,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0225" class="footnote"> <table id="zip-0225" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>10</th> <th>11</th>
<td><a href="zip-0225">ZIP 225: Version 5 Transaction Format</a></td> <td><a href="zip-0225">ZIP 225: Version 5 Transaction Format</a></td>
</tr> </tr>
</tbody> </tbody>
@ -186,7 +194,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0239" class="footnote"> <table id="zip-0239" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>11</th> <th>12</th>
<td><a href="zip-0239">ZIP 239: Relay of Version 5 Transactions</a></td> <td><a href="zip-0239">ZIP 239: Relay of Version 5 Transactions</a></td>
</tr> </tr>
</tbody> </tbody>
@ -194,7 +202,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0244" class="footnote"> <table id="zip-0244" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>12</th> <th>13</th>
<td><a href="zip-0244">ZIP 244: Transaction Identifier Non-Malleability</a></td> <td><a href="zip-0244">ZIP 244: Transaction Identifier Non-Malleability</a></td>
</tr> </tr>
</tbody> </tbody>
@ -202,7 +210,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="zip-0316" class="footnote"> <table id="zip-0316" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>13</th> <th>14</th>
<td><a href="zip-0316">ZIP 316: Unified Addresses and Unified Viewing Keys</a></td> <td><a href="zip-0316">ZIP 316: Unified Addresses and Unified Viewing Keys</a></td>
</tr> </tr>
</tbody> </tbody>
@ -210,7 +218,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="orchard-book" class="footnote"> <table id="orchard-book" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>14</th> <th>15</th>
<td><a href="https://zcash.github.io/orchard/">The Orchard Book</a></td> <td><a href="https://zcash.github.io/orchard/">The Orchard Book</a></td>
</tr> </tr>
</tbody> </tbody>
@ -218,7 +226,7 @@ static const int NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD = 1728;</pre>
<table id="halo2-book" class="footnote"> <table id="halo2-book" class="footnote">
<tbody> <tbody>
<tr> <tr>
<th>15</th> <th>16</th>
<td><a href="https://zcash.github.io/halo2/">The halo2 Book</a></td> <td><a href="https://zcash.github.io/halo2/">The halo2 Book</a></td>
</tr> </tr>
</tbody> </tbody>

View File

@ -53,7 +53,8 @@ changes are:
The network handshake and peer management mechanisms defined in ZIP 201 [#zip-0201]_ The network handshake and peer management mechanisms defined in ZIP 201 [#zip-0201]_
also apply to this upgrade. Unified addresses and viewing keys are described in also apply to this upgrade. Unified addresses and viewing keys are described in
ZIP 316 [#zip-0316]_. ZIP 316 [#zip-0316]_. ZIP 32 [#zip-0032]_ has been amended to include hierarchical
key derivation for Orchard.
The following network upgrade constants [#zip-0200]_ are defined for the NU5 The following network upgrade constants [#zip-0200]_ are defined for the NU5
@ -186,6 +187,7 @@ References
.. [#protocol] `Zcash Protocol Specification, Version 2021.1.24 or later <protocol/nu5.pdf>`_ .. [#protocol] `Zcash Protocol Specification, Version 2021.1.24 or later <protocol/nu5.pdf>`_
.. [#protocol-networks] `Zcash Protocol Specification, Version 2021.1.24 [NU5 proposal]. Section 3.11: Mainnet and Testnet <protocol/nu5.pdf#networks>`_ .. [#protocol-networks] `Zcash Protocol Specification, Version 2021.1.24 [NU5 proposal]. Section 3.11: Mainnet and Testnet <protocol/nu5.pdf#networks>`_
.. [#protocol-txnencodingandconsensus] `Zcash Protocol Specification, Version 2021.1.24 [NU5 proposal]. Section 7.1: Transaction Encoding and Consensus <protocol/nu5.pdf#txnencodingandconsensus>`_ .. [#protocol-txnencodingandconsensus] `Zcash Protocol Specification, Version 2021.1.24 [NU5 proposal]. Section 7.1: Transaction Encoding and Consensus <protocol/nu5.pdf#txnencodingandconsensus>`_
.. [#zip-0032] `ZIP 32: Shielded Hierarchical Deterministic Wallets <zip-0032.rst>`_
.. [#zip-0200] `ZIP 200: Network Upgrade Activation Mechanism <zip-0200.rst>`_ .. [#zip-0200] `ZIP 200: Network Upgrade Activation Mechanism <zip-0200.rst>`_
.. [#zip-0201] `ZIP 201: Network Peer Management for Overwinter <zip-0201.rst>`_ .. [#zip-0201] `ZIP 201: Network Peer Management for Overwinter <zip-0201.rst>`_
.. [#zip-0216] `ZIP 216: Require Canonical Point Encodings <zip-0216.rst>`_ .. [#zip-0216] `ZIP 216: Require Canonical Point Encodings <zip-0216.rst>`_