Commit Graph

1195 Commits

Author SHA1 Message Date
Daira-Emma Hopwood a68370f751 Protocol spec: cosmetics and improved indexing.
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
2024-04-14 17:45:32 +01:00
Daira-Emma Hopwood ba3b2697bb Daira [Emma] -> Daira-Emma. Also correct some author lists and prevent line-breaking of given names or surnames in the spec.
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
2024-04-14 17:42:34 +01:00
Daira Emma Hopwood 18a7b531c7 Set Change History entry date.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood cb48a537a0 Acknowledge the font designers Pablo Impallari and Morris Fuller.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
Daira Emma Hopwood a77e74ffb6 Cosmetics: improve the appearance of italic bold.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-19 17:43:09 +00:00
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 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
Andrew Arnott 4ebc0f7629
Fix identification of HRP for full viewing keys
This was likely a copy-paste error with the section above it, which is very similar but presents the human-readable part of *incoming* viewing keys.
2023-07-31 07:13:11 -06:00
Daira Emma Hopwood 8ea921667d Daira Hopwood -> Daira Emma Hopwood.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-03-02 12:13:07 +00:00
teor 0f33bb41a2 Fix a MUST -> MUSTNOT typo 2022-11-09 16:03:37 -05:00
Daira Hopwood 7070e586c3 Set change history entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-15 20:24:47 +01:00
Daira Hopwood 5991a14d1f Correct Jurgen Bos' name.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-15 20:24:25 +01:00
Daira Hopwood c3f96b0a58 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-10 00:28:19 +01:00
Daira Hopwood f455422648 Specify in \crossref{blockchain} that NU5 is the most recent settled
network upgrade.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-10 00:27:45 +01:00
Daira Hopwood 2bfe19acda Remove a now-unused sampling of rcv in \crossref{orcharddummynotes}.
fixes #562

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-08 09:14:44 +01:00
Daira Hopwood 5f1f1cde2b [protocol spec] Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 13:09:45 +01:00
Daira Hopwood 26c1b6ca8c [protocol spec] Cosmetics: rearrange Change History items and mark some as \nufive.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 13:09:45 +01:00
Daira Hopwood 563b885e86 Update `protocol/Makefile` to build correctly with newer versions of `latexmk`.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 13:09:45 +01:00
Daira Hopwood 1c1a42bb27 In protocol/README.rst: Update build dependency documentation for Debian Bullseye,
mention `make linkcheck`, and correct the description of `make all`.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 13:09:45 +01:00
Daira Hopwood 8e59342637 [protocol spec] Cosmetics (vertical spacing and pagination).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 13:09:35 +01:00
Daira Hopwood a512f23bbd [protocol spec] Replace ResearchGate links for \cite{CDvdG1987} and \cite{BDPA2007}
with alternatives that do not cause false-positive link checker errors.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 00:57:05 +01:00
Daira Hopwood 22ee93c027 [protocol spec] Clarify that the recommended format for a QR code starts
with a Bech32 encoding for a Sapling payment address and with a Bech32m
encoding for a unified payment address.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 00:57:05 +01:00
Daira Hopwood a3847c0064 [protocol spec] Correct cross-references for the definition of an anchor. fixes #413
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 00:57:05 +01:00
Daira Hopwood 560bdec627 [protocol spec] Remove a calculation of cv in \crossref{orcharddummynotes}
that is not applicable to Orchard (since cv for an Action Description
depends on both the spent and output notes).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 00:57:05 +01:00
Daira Hopwood 277291a8ca [protocol spec] Correct Kexin Hu's name.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-01 00:57:05 +01:00
Daira Hopwood 43be154e37 [protocol spec] Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-08-26 00:39:02 +01:00
Daira Hopwood 513d9dc161 [protocol spec] \crossref{concretecrhivk} incorrectly cross-referenced BLAKE2b-256
rather than BLAKE2s-256. The actual specification was correct.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-08-26 00:39:01 +01:00
Daira Hopwood e2b93341ae [protocol spec] ZIP 244 is not modified by ZIP 225
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-08-26 00:39:01 +01:00
Daira Hopwood 87c5aca5f3 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-22 18:44:40 +01:00
Daira Hopwood 69939334f0 Cosmetics (don't include "No changes before" lines in Change History entries unless needed).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-22 18:44:40 +01:00
Daira Hopwood 5618352447 Document in \crossref{concreteed25519} that a full validator implementation that
checkpoints on the Canopy activation block MAY validate Ed25519 signatures using
the post-Canopy rules for the whole chain.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-22 18:44:40 +01:00
Daira Hopwood e2ccfc11b2 Update references for \cite{ECCZF2019} and \cite{ZIP-302} and \cite{ZIP-252}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-22 18:44:37 +01:00
Daira Hopwood 57f2abf5bd Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-21 17:19:36 +01:00