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><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>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">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>

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><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>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">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>

View File

@ -1,14 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<title>ZIP 311: Sapling Payment Disclosure</title>
<title>ZIP 311: Zcash Payment Disclosures</title>
<meta charset="utf-8" />
<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>
<body>
<section>
<pre>ZIP: 311
Title: Sapling Payment Disclosure
Title: Zcash Payment Disclosures
Owners: Jack Grigg &lt;jack@electriccoin.co&gt;
Status: Draft
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>🔍</td>
<td>🔐</td>
<td>🔐</td>
<td>🔐*</td>
<td>Required</td>
</tr>
<tr>
@ -73,6 +73,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
<ul>
<li>🔍 = 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>
</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>
@ -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 transactions.</li>
</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>
</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>
@ -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>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>The payment disclosure can be created without requiring another trusted setup.</li>
</ul>
</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>
<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>
<li>
<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>
<span class="math">\(\mathsf{SpendAuthSig.RandomizePrivate}(α, \mathsf{sk})\)</span>
,
<span class="math">\(\mathsf{SpendAuthSig.Sign}(\mathsf{sk}, m)\)</span>
, and
<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>
<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>
<li>
<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>
<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>
</li>
<li>
@ -233,7 +231,7 @@ Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/387">https://g
</li>
<li>
<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>
<span class="math">\(\mathsf{zkproof_{addr}}\)</span>
: 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>
<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>
<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>
@ -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>
<ul>
<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
<span class="math">\(msg\)</span>
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
<span class="math">\(\alpha\)</span>
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>
and
<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>
as a ZIP 304 proof for
<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
<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>
<li>
<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>
<li>Recover the Sapling note in
<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>
. If recovery returns
<span class="math">\(\bot\)</span>

View File

@ -73,8 +73,9 @@ and does not reveal:
- Carol's payment address.
- Any of Carol's other diversified payment addresses.
- 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
--------------