ZIP 311: Fix formatting error and regenerate HTML

This commit is contained in:
Jack Grigg 2022-11-03 23:52:47 +13:00
parent e512fa78ad
commit 396900a9e6
4 changed files with 22 additions and 23 deletions

View File

@ -112,7 +112,7 @@ Index of ZIPs
<tr> <td>308</td> <td class="left"><a href="zip-0308.rst">Sprout to Sapling Migration</a></td> <td>Final</td> <tr> <td>308</td> <td class="left"><a href="zip-0308.rst">Sprout to Sapling Migration</a></td> <td>Final</td>
<tr> <td><span class="reserved">309</span></td> <td class="left"><a class="reserved" href="zip-0309.rst">Blind Off-chain Lightweight Transactions (BOLT)</a></td> <td>Reserved</td> <tr> <td><span class="reserved">309</span></td> <td class="left"><a class="reserved" href="zip-0309.rst">Blind Off-chain Lightweight Transactions (BOLT)</a></td> <td>Reserved</td>
<tr> <td>310</td> <td class="left"><a href="zip-0310.rst">Security Properties of Sapling Viewing Keys</a></td> <td>Draft</td> <tr> <td>310</td> <td class="left"><a href="zip-0310.rst">Security Properties of Sapling Viewing Keys</a></td> <td>Draft</td>
<tr> <td>311</td> <td class="left"><a href="zip-0311.rst">Sapling Payment Disclosure</a></td> <td>Draft</td> <tr> <td>311</td> <td class="left"><a href="zip-0311.rst">Zcash Payment Disclosures</a></td> <td>Draft</td>
<tr> <td><span class="reserved">312</span></td> <td class="left"><a class="reserved" href="zip-0312.rst">Shielded Multisignatures using FROST</a></td> <td>Reserved</td> <tr> <td><span class="reserved">312</span></td> <td class="left"><a class="reserved" href="zip-0312.rst">Shielded Multisignatures using FROST</a></td> <td>Reserved</td>
<tr> <td><span class="reserved">313</span></td> <td class="left"><a class="reserved" href="zip-0313.rst">Reduce Default Transaction Fee</a></td> <td>Reserved</td> <tr> <td><span class="reserved">313</span></td> <td class="left"><a class="reserved" href="zip-0313.rst">Reduce Default Transaction Fee</a></td> <td>Reserved</td>
<tr> <td>321</td> <td class="left"><a href="zip-0321.rst">Payment Request URIs</a></td> <td>Proposed</td> <tr> <td>321</td> <td class="left"><a href="zip-0321.rst">Payment Request URIs</a></td> <td>Proposed</td>

View File

@ -85,7 +85,7 @@
<tr> <td>308</td> <td class="left"><a href="zip-0308">Sprout to Sapling Migration</a></td> <td>Final</td> <tr> <td>308</td> <td class="left"><a href="zip-0308">Sprout to Sapling Migration</a></td> <td>Final</td>
<tr> <td><span class="reserved">309</span></td> <td class="left"><a class="reserved" href="zip-0309">Blind Off-chain Lightweight Transactions (BOLT)</a></td> <td>Reserved</td> <tr> <td><span class="reserved">309</span></td> <td class="left"><a class="reserved" href="zip-0309">Blind Off-chain Lightweight Transactions (BOLT)</a></td> <td>Reserved</td>
<tr> <td>310</td> <td class="left"><a href="zip-0310">Security Properties of Sapling Viewing Keys</a></td> <td>Draft</td> <tr> <td>310</td> <td class="left"><a href="zip-0310">Security Properties of Sapling Viewing Keys</a></td> <td>Draft</td>
<tr> <td>311</td> <td class="left"><a href="zip-0311">Sapling Payment Disclosure</a></td> <td>Draft</td> <tr> <td>311</td> <td class="left"><a href="zip-0311">Zcash Payment Disclosures</a></td> <td>Draft</td>
<tr> <td><span class="reserved">312</span></td> <td class="left"><a class="reserved" href="zip-0312">Shielded Multisignatures using FROST</a></td> <td>Reserved</td> <tr> <td><span class="reserved">312</span></td> <td class="left"><a class="reserved" href="zip-0312">Shielded Multisignatures using FROST</a></td> <td>Reserved</td>
<tr> <td><span class="reserved">313</span></td> <td class="left"><a class="reserved" href="zip-0313">Reduce Default Transaction Fee</a></td> <td>Reserved</td> <tr> <td><span class="reserved">313</span></td> <td class="left"><a class="reserved" href="zip-0313">Reduce Default Transaction Fee</a></td> <td>Reserved</td>
<tr> <td>321</td> <td class="left"><a href="zip-0321">Payment Request URIs</a></td> <td>Proposed</td> <tr> <td>321</td> <td class="left"><a href="zip-0321">Payment Request URIs</a></td> <td>Proposed</td>

View File

@ -1,14 +1,14 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>ZIP 311: Sapling Payment Disclosure</title> <title>ZIP 311: Zcash Payment Disclosures</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js?config=TeX-AMS-MML_HTMLorMML"></script> <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js?config=TeX-AMS-MML_HTMLorMML"></script>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="css/style.css"></head> <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="css/style.css"></head>
<body> <body>
<section> <section>
<pre>ZIP: 311 <pre>ZIP: 311
Title: Sapling Payment Disclosure Title: Zcash Payment Disclosures
Owners: Jack Grigg &lt;jack@electriccoin.co&gt; Owners: Jack Grigg &lt;jack@electriccoin.co&gt;
Status: Draft Status: Draft
Category: Standards / RPC / Wallet Category: Standards / RPC / Wallet
@ -49,7 +49,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<td>Shielded</td> <td>Shielded</td>
<td>🔍</td> <td>🔍</td>
<td>🔐</td> <td>🔐</td>
<td>🔐</td> <td>🔐*</td>
<td>Required</td> <td>Required</td>
</tr> </tr>
<tr> <tr>
@ -73,6 +73,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<ul> <ul>
<li>🔍 = Visible on the block chain.</li> <li>🔍 = Visible on the block chain.</li>
<li>🔐 = Cannot be confirmed without information that is not visible on the block chain.</li> <li>🔐 = Cannot be confirmed without information that is not visible on the block chain.</li>
<li>🔐* = Information is revealed, but not enough to confirm the amount paid (due to change).</li>
<li>🔒 = Requires either an interactive payment disclosure, or a non-interactive payment disclosure that reveals the sender's address.</li> <li>🔒 = Requires either an interactive payment disclosure, or a non-interactive payment disclosure that reveals the sender's address.</li>
</ul> </ul>
<p>Enabling proof-of-payment for all of these transaction variants (where it is possible to do so) is the subject of this ZIP.</p> <p>Enabling proof-of-payment for all of these transaction variants (where it is possible to do so) is the subject of this ZIP.</p>
@ -90,10 +91,6 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<li>Any of Carol's other diversified payment addresses.</li> <li>Any of Carol's other diversified payment addresses.</li>
<li>Any of Carol's other transactions.</li> <li>Any of Carol's other transactions.</li>
</ul> </ul>
<div>
<h1>System Message: WARNING/2 (zip-0311.rst line 75)</h1>
<p>Bullet list ends without a blank line; unexpected unindent.</p>
</div>
<p>For this use case, it is not necessary (and not necessarily intended) that the payment disclosure be publically verifiable.</p> <p>For this use case, it is not necessary (and not necessarily intended) that the payment disclosure be publically verifiable.</p>
</section> </section>
<section id="donation-drive"><h3><span class="section-heading">Donation drive</span><span class="section-anchor"> <a rel="bookmark" href="#donation-drive"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h3> <section id="donation-drive"><h3><span class="section-heading">Donation drive</span><span class="section-anchor"> <a rel="bookmark" href="#donation-drive"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h3>
@ -135,23 +132,24 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<li>A payment disclosure may be tied to a challenge, creating an interactive proof.</li> <li>A payment disclosure may be tied to a challenge, creating an interactive proof.</li>
<li>Senders with a Sapling address may choose to provably reveal that address as part of the payment disclosure.</li> <li>Senders with a Sapling address may choose to provably reveal that address as part of the payment disclosure.</li>
<li>Senders are not required to remember any ephemeral data from the creation of a transaction in order to produce a payment disclosure for that transaction. (Performance may be improved if they do cache witness data for spent notes.)</li> <li>Senders are not required to remember any ephemeral data from the creation of a transaction in order to produce a payment disclosure for that transaction. (Performance may be improved if they do cache witness data for spent notes.)</li>
<li>The payment disclosure can be created without requiring another trusted setup.</li>
</ul> </ul>
</section> </section>
<section id="conventions"><h2><span class="section-heading">Conventions</span><span class="section-anchor"> <a rel="bookmark" href="#conventions"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2> <section id="conventions"><h2><span class="section-heading">Conventions</span><span class="section-anchor"> <a rel="bookmark" href="#conventions"><img width="24" height="24" src="assets/images/section-anchor.png" alt=""></a></span></h2>
<p>The following functions used in this ZIP are defined in the Zcash protocol specification: <a id="id1" class="footnote_reference" href="#protocol">3</a></p> <p>The following functions used in this ZIP are defined in the Zcash protocol specification: <a id="footnote-reference-1" class="footnote_reference" href="#protocol">3</a></p>
<ul> <ul>
<li> <li>
<span class="math">\(\mathsf{DiversifyHash}(\mathsf{d})\)</span> <span class="math">\(\mathsf{DiversifyHash}(\mathsf{d})\)</span>
<a id="id2" class="footnote_reference" href="#protocol-concretediversifyhash">7</a></li> <a id="footnote-reference-2" class="footnote_reference" href="#protocol-concretediversifyhash">7</a></li>
<li> <li>
<span class="math">\(\mathsf{SpendAuthSig.RandomizePrivate}(α, \mathsf{sk})\)</span> <span class="math">\(\mathsf{SpendAuthSig.RandomizePrivate}(α, \mathsf{sk})\)</span>
, ,
<span class="math">\(\mathsf{SpendAuthSig.Sign}(\mathsf{sk}, m)\)</span> <span class="math">\(\mathsf{SpendAuthSig.Sign}(\mathsf{sk}, m)\)</span>
, and , and
<span class="math">\(\mathsf{SpendAuthSig.Verify}(\mathsf{vk}, m, σ)\)</span> <span class="math">\(\mathsf{SpendAuthSig.Verify}(\mathsf{vk}, m, σ)\)</span>
<a id="id3" class="footnote_reference" href="#protocol-concretespendauthsig">8</a></li> <a id="footnote-reference-3" class="footnote_reference" href="#protocol-concretespendauthsig">8</a></li>
</ul> </ul>
<p>We reproduce some notation and functions from <a id="id4" class="footnote_reference" href="#protocol">3</a> here for convenience:</p> <p>We reproduce some notation and functions from <a id="footnote-reference-4" class="footnote_reference" href="#protocol">3</a> here for convenience:</p>
<ul> <ul>
<li> <li>
<span class="math">\([k] P\)</span> <span class="math">\([k] P\)</span>
@ -202,7 +200,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
.</li> .</li>
<li> <li>
<span class="math">\(\mathsf{ock}\)</span> <span class="math">\(\mathsf{ock}\)</span>
: The outgoing cipher key that allows this output to be recovered. <a id="id5" class="footnote_reference" href="#protocol-saplingencrypt">5</a></li> : The outgoing cipher key that allows this output to be recovered. <a id="footnote-reference-5" class="footnote_reference" href="#protocol-saplingencrypt">5</a></li>
</ul> </ul>
</li> </li>
<li> <li>
@ -233,7 +231,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
</li> </li>
<li> <li>
<span class="math">\(\mathsf{nullifier_{addr}}\)</span> <span class="math">\(\mathsf{nullifier_{addr}}\)</span>
: A nullifier for a ZIP 304 fake note. <a id="id6" class="footnote_reference" href="#zip-0304">11</a></li> : A nullifier for a ZIP 304 fake note. <a id="footnote-reference-6" class="footnote_reference" href="#zip-0304">11</a></li>
<li> <li>
<span class="math">\(\mathsf{zkproof_{addr}}\)</span> <span class="math">\(\mathsf{zkproof_{addr}}\)</span>
: A Sapling spend proof.</li> : A Sapling spend proof.</li>
@ -256,7 +254,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
.</li> .</li>
<li> <li>
<span class="math">\(\mathsf{sig}\)</span> <span class="math">\(\mathsf{sig}\)</span>
: A BIP 322 signature. <a id="id7" class="footnote_reference" href="#bip-0322">9</a> : A BIP 322 signature. <a id="footnote-reference-7" class="footnote_reference" href="#bip-0322">9</a>
<ul> <ul>
<li>TODO: <cite>zcashd</cite> currently only supports the legacy format defined in BIP 322. We may want to backport full BIP 322 support before having transparent input support in this ZIP, to ensure it does what we need.</li> <li>TODO: <cite>zcashd</cite> currently only supports the legacy format defined in BIP 322. We may want to backport full BIP 322 support before having transparent input support in this ZIP, to ensure it does what we need.</li>
<li>TODO: BIP 322 specifies consensus rule checks as part of the signature verification process. We will likely need to migrate it over to an equivalent ZIP that specifies these for Zcash (which has a different set of script validation consensus rules).</li> <li>TODO: BIP 322 specifies consensus rule checks as part of the signature verification process. We will likely need to migrate it over to an equivalent ZIP that specifies these for Zcash (which has a different set of script validation consensus rules).</li>
@ -272,7 +270,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<p>The inputs to a payment disclosure are:</p> <p>The inputs to a payment disclosure are:</p>
<ul> <ul>
<li>The transaction.</li> <li>The transaction.</li>
<li>The SLIP-44 <a id="id8" class="footnote_reference" href="#slip-0044">10</a> coin type.</li> <li>The SLIP-44 <a id="footnote-reference-8" class="footnote_reference" href="#slip-0044">10</a> coin type.</li>
<li>The message <li>The message
<span class="math">\(msg\)</span> <span class="math">\(msg\)</span>
to be included (which may be empty).</li> to be included (which may be empty).</li>
@ -313,7 +311,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
as well as the random as well as the random
<span class="math">\(\alpha\)</span> <span class="math">\(\alpha\)</span>
that was generated internally.</li> that was generated internally.</li>
<li>[Optional] If an associated payment address was provided for this spend index, create a ZIP 304 signature proof for that payment address, <a id="id9" class="footnote_reference" href="#zip-0304">11</a> using <li>[Optional] If an associated payment address was provided for this spend index, create a ZIP 304 signature proof for that payment address, <a id="footnote-reference-9" class="footnote_reference" href="#zip-0304">11</a> using
<span class="math">\(\alpha\)</span> <span class="math">\(\alpha\)</span>
and and
<span class="math">\(\mathsf{rk}\)</span> <span class="math">\(\mathsf{rk}\)</span>
@ -462,10 +460,10 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<span class="math">\((\mathsf{addrProof.nullifier_{addr}}, \mathsf{spend.rk}, \mathsf{addrProof.zkproof_{addr}})\)</span> <span class="math">\((\mathsf{addrProof.nullifier_{addr}}, \mathsf{spend.rk}, \mathsf{addrProof.zkproof_{addr}})\)</span>
as a ZIP 304 proof for as a ZIP 304 proof for
<span class="math">\((\mathsf{addrProof.d}, \mathsf{addrProof.pk_d})\)</span> <span class="math">\((\mathsf{addrProof.d}, \mathsf{addrProof.pk_d})\)</span>
<a id="id10" class="footnote_reference" href="#zip-0304">11</a>. If verification fails, return false.</li> <a id="footnote-reference-10" class="footnote_reference" href="#zip-0304">11</a>. If verification fails, return false.</li>
<li>Decode and verify <li>Decode and verify
<span class="math">\(\mathsf{zkproof_{spend}}\)</span> <span class="math">\(\mathsf{zkproof_{spend}}\)</span>
as a Sapling spend proof <a id="id11" class="footnote_reference" href="#protocol-spendstatement">4</a> with primary input: as a Sapling spend proof <a id="footnote-reference-11" class="footnote_reference" href="#protocol-spendstatement">4</a> with primary input:
<ul> <ul>
<li> <li>
<span class="math">\(\mathsf{tx.shieldedSpends[spend.index].rt}\)</span> <span class="math">\(\mathsf{tx.shieldedSpends[spend.index].rt}\)</span>
@ -501,7 +499,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<ul> <ul>
<li>Recover the Sapling note in <li>Recover the Sapling note in
<span class="math">\(\mathsf{tx.shieldedOutputs}[\mathsf{output.index}]\)</span> <span class="math">\(\mathsf{tx.shieldedOutputs}[\mathsf{output.index}]\)</span>
via the process specified in <a id="id12" class="footnote_reference" href="#protocol-saplingdecryptovk">6</a> with inputs via the process specified in <a id="footnote-reference-12" class="footnote_reference" href="#protocol-saplingdecryptovk">6</a> with inputs
<span class="math">\((height, \mathsf{output.ock})\)</span> <span class="math">\((height, \mathsf{output.ock})\)</span>
. If recovery returns . If recovery returns
<span class="math">\(\bot\)</span> <span class="math">\(\bot\)</span>

View File

@ -73,8 +73,9 @@ and does not reveal:
- Carol's payment address. - Carol's payment address.
- Any of Carol's other diversified payment addresses. - Any of Carol's other diversified payment addresses.
- Any of Carol's other transactions. - Any of Carol's other transactions.
For this use case, it is not necessary (and not necessarily intended) that the payment disclosure
be publically verifiable. For this use case, it is not necessary (and not necessarily intended) that the payment
disclosure be publically verifiable.
Donation drive Donation drive
-------------- --------------