mirror of https://github.com/zcash/zips.git
ZIP 252: add reference to ZIP 32.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
parent
72d37b803c
commit
5b5dd20516
|
@ -18,7 +18,7 @@ Discussions-To: <<a href="https://github.com/zcash/zips/issues/440">https://g
|
||||||
Pull-Request: <<a href="https://github.com/zcash/zips/pull/446">https://github.com/zcash/zips/pull/446</a>></pre>
|
Pull-Request: <<a href="https://github.com/zcash/zips/pull/446">https://github.com/zcash/zips/pull/446</a>></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: <<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: <<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: <<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>
|
||||||
|
|
|
@ -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>`_
|
||||||
|
|
Loading…
Reference in New Issue