Commit Graph

155 Commits

Author SHA1 Message Date
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 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 1be8793401 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-21 17:19:36 +01:00
Daira Hopwood 7fe898c231 Give a full-text URL for \cite{Nakamoto2008}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-21 17:19:36 +01:00
Daira Hopwood 17042258cd Correct and improve presentation of \crossref{networkupgrades}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-06 20:18:56 +01:00
Kris Nuttycombe a25f2b92a7 Set NU5 activation height in the protocol specification. 2022-05-11 14:31:54 -07:00
Daira Hopwood e381ded490 \crossref{coinbasetransactions} effectively defined a coinbase transaction as the first
transaction in a block. This wording was copied from the Bitcoin Developer Reference
(https://developer.bitcoin.org/reference/transactions.html#coinbase-input-the-input-of-the-first-transaction-in-a-block),
but it does not match the implementation in zcashd that was inherited from Bitcoin Core.

Instead, a coinbase transaction should be, and now is, defined as a transaction with a
single null prevout. The specifications of consensus rules have been clarified and adjusted
(without any actual consensus change) to take this into account, as follows:

 * a block MUST have at least one transaction;
 * the first transaction in a block MUST be a coinbase transaction, and subsequent
   transactions MUST NOT be coinbase transactions;
 * a transparent input in a non-coinbase transaction MUST NOT have a null prevout;
 * every non-null prevout MUST point to a unique UTXO in either a preceding block, or a
   *previous* transaction in the same block (this rule was previously not given explicitly
   because it was assumed to be inherited from Bitcoin);
 * the rule that "A coinbase transaction MUST NOT have any transparent inputs with non-null
   prevout fields" is removed as an explicit consensus rule because it is implied by the
   corrected definition of coinbase transaction.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 01:51:33 +00:00
Daira Hopwood 4ef578706b In \crossref{internalh}, add a security argument for why the SHA-256-based commitment scheme
NoteCommit^Sprout is binding and hiding, under reasonable assumptions about SHA256Compress.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-19 18:09:23 +00:00
Daira Hopwood cf1995c2ed Fix stale links, and correct the accenting of [MÁEÁ2010].
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-03 22:15:14 +00:00
Daira Hopwood d6a33fc056 Add note about resistance of note encryption to partitioning oracle attacks \cite{LGR2021}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-12-01 18:09:12 +00:00
Daira Hopwood 21f384dcda Fix URL links to \cite{BBDP2001} and \cite{BDJR2000}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-01 13:26:34 +01:00
Marek 01dbecefea Fix a typo in bibliography. 2021-08-12 21:40:29 +01:00
Daira Hopwood 1aefc848bf Change the number of partial rounds, R_P, for Poseidon from 58 to 56.
This matches the number calculated by `calc_round_numbers.py` (for 128-bit security "with margin")
in Version 1.1 of the Poseidon reference implementation.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-29 15:43:24 +01:00
Daira Hopwood e3667dc30d Add ZIP 239 to the list of ZIPs included in NU5.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-06 03:39:06 +01:00
Daira Hopwood ccaa100141 Reference [SVPBABW2012]: link to the ePrint summary page rather than the PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-05 16:55:05 +01:00
Daira Hopwood 530f00e150 Update title of ZIP 316.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-05 16:55:05 +01:00
Daira Hopwood eb5a018396 Note that [JT2020] proves a tight reduction from finding a nontrivial discrete log relation to DLP.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-05-20 21:57:03 +01:00
Daira Hopwood 35c8af6e47 DJB's "High-speed cryptography" book seems completely stalled.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-05-07 16:03:16 +01:00
Daira Hopwood 58add67726 * Specify that diversifier indices for Orchard should be chosen uniquely, not randomly.
* Vanity diversifiers are not an issue for Orchard given that it does not have its own
  payment address format, and given the use of "jumbling" (ZIP 316) in unified addresses.
  Remove the corresponding note from \crossref{orchardkeycomponents}.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-05-07 16:03:16 +01:00
Daira Hopwood 65ebb2266d Fix some URLs in references.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-04-19 00:12:37 +01:00
Daira Hopwood 46fefcaf56 Update all references to https URLs (and the year of the Unicode Standard to 2020).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-04-05 21:44:19 +01:00
Daira Hopwood 3a55af9b1f Cosmetics and indexing.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-04-01 02:11:35 +01:00
Daira Hopwood 7bfdce2d6a Write caution about linkage between the abstract and concrete protocols in \crossref{cautionlinkage}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-04-01 02:11:35 +01:00
Daira Hopwood 4d3204b8e1 Describe the recommended way to encode a Sapling or unified payment address as a QR code.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-26 18:23:58 +00:00
Daira Hopwood bbc6131f29 Update specification of Poseidon.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-26 18:23:58 +00:00
Daira Hopwood 212fdc8752 Add references for the halo2 book.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-26 18:23:57 +00:00
Daira Hopwood e5336bb536 Various rationale updates for NU5.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-26 18:23:57 +00:00
Daira Hopwood 36074af67b Version 2021.1.18:
* Define unified payment addresses in place of the Bech32 form of Orchard addresses.
* Remove Sprout-specific fields from the v5 transaction format.
* The rho value for an Orchard output note was incorrectly described as being derived from
  rseed, instead of being set to the nullifier from the same action description as intended
  (fixes #459 ).
* The psi value is now derived using the PRF^expand input [9], instead of [10] (refs #459 ).
* Correct a note about the range of the Merkle hash inputs in \crossref{actionstatement}.
* Correct the validity condition for ak in \crossref{orchardfullviewingkeyencoding}.
* Add a definition for K^Orchard in \crossref{commitmentsandnullifiers} (fixes #460 ).
* Correct the number of full and partial rounds for Poseidon.
* Add a note explaining the origin of the 2^{65} constant in the definition of PoseidonHash.
2021-03-17 02:06:38 +00:00
Daira Hopwood f6fb3c80d7 More WIP.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-15 16:18:54 +00:00
Daira Hopwood 6ac5901a42 More WIP, and rename orchard.pdf to nu5.pdf.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-15 16:18:54 +00:00
Daira Hopwood dae8852187 More Orchard WIP.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-15 16:18:54 +00:00
Daira Hopwood e62d57959e More WIP.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-15 16:18:54 +00:00
Daira Hopwood 6453611314 * More Orchard WIP;
* The definition of a represented group abstraction function incorrectly required canonicity;
* Note about non-canonical encodings in the Jubjub gave incorrect values for encodings of the point of order 2;
* Change the spec of decryption with ovk to match zcashd (by adding \bot and subgroup checks);
* Add a note saying that a node impl that checkpoints on Sapling can omit verifying BCTV14 proofs.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-15 16:18:54 +00:00
Daira Hopwood ad9c631ee0 More WIP for Orchard, including hashing to Pallas and Vesta.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-15 16:18:54 +00:00
Daira Hopwood c2c4160151 WIP: Orchard
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-03-15 16:18:54 +00:00
Daira Hopwood 9bc9823a23 Add macros and Makefile support for building the Orchard draft specification.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-01-10 23:56:30 +00:00
Daira Hopwood 0bd8580d1a Include the activation dates of Heartwood and Canopy in 'Network Upgrades'.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-01-10 23:40:03 +00:00
Daira Hopwood 94ec65564c Define Sprout/Sapling chain value pool balances, and include consensus rules from ZIP 209.
This includes updates to ZIPs 209 and 211 for consistency of terminology (also addressing
a nit from the NCC Canopy report).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 85b8f1647b Include a reference to [BFIJSV2010] for batch pairing verification techniques.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 6a4b1f5f6c Add a reference to [BCCGLRT2014].
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-03 12:05:33 +01:00
Daira Hopwood baad229598 Update stale references to Bitcoin documentation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-13 18:45:16 +01:00
Daira Hopwood 5e8ae9bb89 Precisely specify the encoding and decoding of Ed25519 points.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +01:00
Daira Hopwood 3e3bf8a79b Add 'Mainnet and Testnet' section.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +01:00
Daira Hopwood 43e4e71989 Corrections to ZIP references.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-17 23:01:13 +01:00
Daira Hopwood 4f063850d5 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-17 23:01:13 +01:00
Daira Hopwood 1a24d6232c Consistently use "signing key" and "validating key" for signatures.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-17 23:01:13 +01:00
Daira Hopwood 9bac0682c3 Protocol spec: NU4 -> Canopy; ZIPs 211 and 212 are now published.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-02 18:35:13 +01:00
Daira Hopwood d53ab5fcbc Protocol spec: reference ZIP 173 instead of BIP 173.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-02 18:35:13 +01:00
Daira Hopwood 66ba1aad3e Network Upgrade 4 is now called Canopy.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-27 17:24:29 +01:00
Daira Hopwood 5fa56e83bf Protocol spec: add references for the NU4 upgrade.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-04-02 14:49:39 +01:00