Commit Graph

3249 Commits

Author SHA1 Message Date
Daira Emma Hopwood 477fd91493 Initial attempt at making the document work with screen readers
(this doesn't work very well yet, and it may be a hopeless task).

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood dcd81b5a85 Document that Zooko came up with the name "Faerie Gold".
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 52a7763e4b ZIP 32: fix a type error in the derivation of dk_i. (The intent was clear.)
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 7082f4ddf6 ZIP 212: Cosmetics and minor rewording for clarity.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 95493805de Sort out the mess with $\mathsf{PRF^{expand}}$ domain separators.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 2a08f7be78 Add reference to my "Explaining the Security of Zcash" talk at Zcon3.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood f0457c0668 Cosmetics.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 4a61f37072 Explain the note decryption soft fork at block height 2121200.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood f24a4befab In \crossref{outputstatement}, say why $\mathsf{pk★_d}$ is typed as a
bit sequence rather than as a point.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 2ee72c97b7 In the table of \crossref{blockheader}, clarify that `hashLightClientRoot`
is used in Heartwood and Canopy, but not in NU5 or later.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood b83c7625cf Move a note about the order of arguments to NoteCommit^Orchard to a more
relevant place.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood e1ae36d208 Add notes in \crossref{spenddesc}, \crossref{outputdesc}, and
\crossref{concretehomomorphiccommit} saying that an implementation of
HomomorphicPedersenCommit^Sapling MAY resample the commitment trapdoor
until the resulting commitment is not the zero point, in order to avoid
it being rejected as the cv field of a Spend description or Output
description.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood cd9371b0ee Delete a confusing claim in \crossref{spenddesc} that "The check that rk
is not of small order is technically redundant with a check in the Spend
circuit ...". The small-order check excludes the zero point, which the
Spend authority check that this claim was intending to reference does not.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood d56323956b Document that the attacks in \cite{DKLS2020} are no better than brute force
key search against FF1-AES256 as specified in \crossref{concreteprps}.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 3b799127d1 Acknowledge Greg Pfeil as a co-designer of the Zcash protocol.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood aa2d9a4802 The abstract no longer describes the NU5 version of the specification as
a draft.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood ae88944e8c * Rename the section "Note Commitments and Nullifiers" to "Computing ρ
values and Nullifiers" to more accurately reflect its contents.
* Split some of the content of the section "Notes" into subsections
  "Note Commitments" and "Nullifiers". Make the descriptions of how
  note commitments and nullifiers are used more precise and explicit,
  and add forward references where helpful.
* Remove redundancy in the definition of note plaintexts between
  \crossref{noteptconcept} and \crossref{noteptencoding}.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood b4e3edbb8c The uses of inputs [4] and [5] to PRF^{expand}_{rseed} (or first bytes
of the input in case of Orchard), were accidentally swapped in the
protocol specification relative to ZIP 212. The implementation in zcashd
correctly followed ZIP 212, using [4] to derive rcm and [5] to derive esk.

[Note added 2023-12-07: This commit, which is between spec versions
2022.3.8 and 2023.4.0, does not accurately reflect what was deployed.
In fact the domain separators for Sapling were implemented according to
ZIP 212, but the ones for Orchard were implemented according to the spec,
i.e. swapped relative to Sapling. This has been documented in spec
version 2023.4.0.]

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 04db180f3c The return type of $GroupHash^{\mathbb{J}^{(r)*}}$ in \crossref{concretegrouphashjubjub}
was incorrectly given as $\mathbb{J}^{(r)*}$, rather than the correct
$\mathbb{J}^{(r)*} \cup \{\bot\}$.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 5f0bed973e In the discussion of partitioning oracle attacks on note encryption in
\crossref{inbandrationale}, we now use the fact that g_d has order greater
than the maximum value of ivk, rather than assuming that g_d is a non-zero
point in the prime-order subgroup. (In the case of Sapling, the circuits
only enforce that g_d is not a small-order point, not that it is in the
prime-order subgroup. It is true that honestly generated addresses have
prime-order g_d which would have been sufficient for the security argument
against this class of attacks, but the chosen fix is more direct.)

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood f0ef9cf1f1 Add a Change History entry "Change Daira Emma Hopwood's name.", and change the
name in bibliography entries (the changes in `protocol.tex` were made in
8ea921667d).

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood 1d1ec0324b ZIP 321: clarify the usage of ``req-``.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-14 18:05:49 +00:00
Daira Emma Hopwood 57d2d72003
Merge pull request #743 from daira/zip-231-stub
Add stub for ZIP 231: Decouple Memos from Transaction Outputs
2023-12-08 01:57:04 +00:00
teor d3ea7d9bdf
Merge pull request #746 from zcash/arya-editor 2023-12-07 15:34:17 +10:00
teor 3bdbf4d620
Update with Arya's name and email
Co-authored-by: Arya <aryasolhi@gmail.com>
2023-12-06 07:16:10 +10:00
teor 50fcbcf8d4
Add Arya as a ZIP Editor 2023-12-06 05:00:46 +10:00
Daira Emma Hopwood f18b12db0e ZIP 231: add stub.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-01 20:10:29 +00:00
Daira Emma Hopwood 6dd46ce7df
Merge pull request #734 from daira/fix-linkcheck
Fix for `make linkcheck` false positives
2023-11-22 22:11:01 +00:00
Daira Emma Hopwood e514a9fbf2
Merge pull request #726 from zcash/dependabot/github_actions/actions/checkout-4.1.1
Bump actions/checkout from 3.6.0 to 4.1.1
2023-11-22 22:08:35 +00:00
str4d 1d9780f674
Merge pull request #730 from daira/bcp14
Updates to reference BCP 14 rather than RFC 2119
2023-11-08 22:12:05 +00:00
Daira Emma Hopwood b1410c0f42
Merge pull request #723 from daira/zip-0-updates-3
ZIP 0: Leftover change from #716
2023-10-31 14:28:28 +00:00
Daira Emma Hopwood dbd852a7fc Filter out known false positive GitHub fragments that we can't check.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-28 19:02:31 +01:00
Daira Emma Hopwood 85f51937aa Try to decode GitHub's bunkum. This is a partial fix for #733.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-28 18:30:35 +01:00
Daira Emma Hopwood 2eb0ed8ef0 Updates to reference BCP 14 rather than RFC 2119. fixes #729
Also change two "should"s in ZIP 224 to "SHOULD"s.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-28 15:34:22 +01:00
dependabot[bot] c850bac964
Bump actions/checkout from 3.6.0 to 4.1.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.6.0...v4.1.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-18 15:35:32 +00:00
Daira Emma Hopwood 6db2ef822c
Merge pull request #722 from daira/obsolete-zip-313
ZIP 313: Obsoleted by ZIP 317
2023-10-05 11:21:48 +01:00
Daira Emma Hopwood 15bcf580c9 ZIP 313 warning notice: address nits.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-05 11:18:59 +01:00
Daira Emma Hopwood 8d9639e958
Merge pull request #725 from daira/zip-230-stub
ZIP 230 stub: Version 6 Transaction Format
2023-10-05 10:42:37 +01:00
Daira Emma Hopwood 98334fd680 ZIP 230 stub: Version 6 Transaction Format
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-04 22:02:14 +01:00
Daira Emma Hopwood 3f36a2ca4b Revert "Revert a change as discussed in the 2023-09-27 ZIP Editors' meeting,"
This reverts commit 01190867fd.
2023-09-29 15:12:30 +01:00
Daira Emma Hopwood eccfc4cc80
Merge pull request #716 from daira/zip-0-updates-2
[ZIP 0] Add Aditya Bharadwaj as a ZIP Editor; further clarifications and process updates
2023-09-29 15:11:23 +01:00
Daira Emma Hopwood 01190867fd Revert a change as discussed in the 2023-09-27 ZIP Editors' meeting,
and add a bugfix.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-29 15:06:57 +01:00
Daira Emma Hopwood e956ae7715 ZIP 313: Obsoleted by ZIP 317.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-27 22:03:31 +01:00
Daira Emma Hopwood c1881dfa27 Add support for notes and warnings.
There is currently a bug that will cause them to be rendered incorrectly
if they have only one paragraph, but that doesn't matter for the usage
in this PR.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-27 22:03:10 +01:00
Daira Emma Hopwood bbd44929bd ZIP 0: Regenerate HTML.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-15 18:16:28 +01:00
Daira Emma Hopwood f8b491ee50 ZIP 0: Add paragraph on public transparency about influence or constraints.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-15 18:16:13 +01:00
Daira Emma Hopwood 10bc5c8fa5 ZIP 0: Add Aditya Bharadwaj as a ZIP Editor.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-15 18:16:13 +01:00
Daira Emma Hopwood 0c8acb147d ZIP 0 clarifications:
* Remove redundancy between the list of reasons to reject an update and
  the "Specification of Status Workflow" section, and move things to the
  right section.
* Define "Released".
* Remove use of "proposed" (which was not intended to be the same as the
  status "Proposed").
* Add another reason to reject an update: it violates a conformance
  requirement of any Active Process ZIP (including this ZIP);
* Clarify that ZIP stubs, and only ZIP stubs, MUST use Status: Reserved;
* Clarify when a Released ZIP can be changed to a non-Released status;
* Require that changes in status other than Draft <-> Withdrawn in
  general need consensus among ZIP Editors, and eliminate resulting
  redundancies. This is technically a strengthened requirement for
  changes other than to Proposed or Rejected, but reflects existing
  practice.
* Clarify how the Owners of a ZIP change it to Withdrawn.
* Active can now only be reached from Proposed. Strengthen the
  requirements for rough consensus in this case to say that the ZIP
  has been complete for at least a month and Proposed for at least
  a week. This will impose a bit more overhead but I think it's
  necessary; previously, a Process or Informational ZIP could have
  gone directly from Draft to Active without sufficient notice.
* Require that a Consensus ZIP has an implementation merged into at
  least one consensus node codebase (currently zcashd and/or zebra)
  before it is moved to Implemented, and make the existing discussion
  of timing relative to a network upgrade apply only to Consensus ZIPs;
* Require that if a non-editorial update is made to an Obsolete or
  Withdrawn ZIP, its status MUST be changed appropriately.
* Allow a status transition from Implemented to Obsolete, and clarify
  when transitions to Obsolete occur.
* Add a responsibility for the ZIP Secretary to share significant
  changes in ZIP status, in particular progression of a ZIP to Proposed,
  on the Community Forum.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-15 18:16:13 +01:00
Daira Emma Hopwood e9469a3d61 ZIP 0: Formatting and typos.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-14 15:07:31 +01:00
Daira Emma Hopwood c608694157 ZIP 0: Add MUST NOT to defined keywords.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-13 22:27:23 -04:00