Commit Graph

880 Commits

Author SHA1 Message Date
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 a67b74aede Corrections to a note in section 'Ed25519'.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-07 00:21:14 +01:00
Daira Hopwood 0bfbbd54e2 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +01:00
Daira Hopwood 4d148920ae Add a missing cross reference for Jubjub.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +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 e87177f97f Add end comments for conditional blocks in history entries.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +01:00
Daira Hopwood 3f41a13087 Corrections to the specification of \abstJ and the security argument for GroupHash.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +01:00
Daira Hopwood 32a55b0939 Add Jane Lusby and Teor to acknowledgements.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +01:00
Daira Hopwood 5504c17ab0 Make duplicate labels work as intended.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-06 22:58:29 +01:00
Daira Hopwood 9321a0d9fc Arguments to PRF^expand don't need to be specified as hex.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:59:17 +01:00
Daira Hopwood 553be0f9eb In RedDSA verification, clarify that \underline{R} used as part of the input to H^\ast must be exactly as encoded in the signature.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:59:17 +01:00
Daira Hopwood cbf4cb52f1 Adjust the order of operations in Sapling decryption to more closely match the implementation, and improve the notes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:59:17 +01:00
Daira Hopwood 47a2c78990 Correct a bug: esk is only to be checked against ToScalar(PRF^expand_rseed([4])) when the lead byte != 0x01.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:28:36 +01:00
Daira Hopwood 5689d59d32 Specify that shielded outputs of coinbase transactions MUST use v2 note plaintexts after Canopy activation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:28:36 +01:00
Daira Hopwood 9b55332fc2 Add Ying Tong Lai and Kris Nuttycombe as Zcash protocol designers.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:18:52 +01:00
Daira Hopwood b915222d96 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:18:16 +01:00
Daira Hopwood 154da511c6 Specify \abstJ to be as implemented, and adjust the security argument for \GroupJHash.
Also modify \exclusivefun to take an excluded set rather than a single element.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:17:49 +01:00
Daira Hopwood a7f7befe24 Add \optsqrt macro for "arbitrary square root".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-04 03:12:00 +01:00
Daira Hopwood e4315ad6a7 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-01 19:22:38 +01:00
Daira Hopwood a333649a4e Cosmetic change to the 2020.1.6 history entry. 2020-06-26 20:57:39 +01:00
Daira Hopwood 3ce9bd9823 Replace the block interval 32256 with the constant ZIP212GracePeriod.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-26 20:57:39 +01:00
Daira Hopwood 66acf80d18 Other cosmetic changes to the batch validation equations.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-26 20:57:39 +01:00
Daira Hopwood 45c2b616e2 Fix sign errors in the fixed-base terms of the batch validation equations in Appendices B.1 and B.3.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-26 20:57:39 +01:00
Daira Hopwood 3e98e63a6c For Sprout, add an explicit lead byte field to note plaintexts.
For Sapling, define note plaintext lead bytes as just bytes (so that decoding always succeeds and error handling is more explicit).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-26 20:47:32 +01:00
Daira Hopwood a3e4403f50 Delete some 'new' superscripts that only added notational clutter.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-26 18:58:17 +01:00
Daira Hopwood af41efa40c Protocol spec: ZIP 212 changes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-17 23:28:27 +01:00
Daira Hopwood eb222b4fe0 Remove some unused macros.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-17 23:01:13 +01:00
Daira Hopwood 8ccd4e656b Add an appendix on Ed25519 batch validation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-17 23:01:13 +01:00
Daira Hopwood 6e781c5905 Ed25519 updates. This corrects an error in the specification of valid public keys
(they are not checked against ExcludedPointEncodings), and includes changes for Canopy.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-17 23:01:13 +01:00
Daira Hopwood ec5eda1d9c Better positive square root symbol.
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 b9fb26f5d5 Protocol spec: fix undefined references for sprout.pdf.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-06-02 18:35:13 +01:00
Daira Hopwood e61e2460a0 Protocol spec: improve index; cosmetics.
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 092e6092ef Remove the claim that Discrete Logarithm Independence is stronger than collision resistance of GroupHash.
(That's not clearly true, and it's irrelevant.)

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-27 17:20:27 +01:00
Daira Hopwood 8d19a94716 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-27 17:18:41 +01:00
Daira Hopwood c8e08b0e96 Improve description of key structures taking into account ZIP 32. fixes #187
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-27 15:53:09 +01:00
Daira Hopwood 456c899627 Protocol spec: improve LaTeX portability.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-05-12 17:58:42 +01:00
Daira Hopwood ca802490a5 Correct a wording error transposing transparent inputs and transparent outputs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-04-22 01:32:26 +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
Daira Hopwood edc43904c9 Protocol spec: clarify note about hashFinalSaplingRoot/hashLightClientRoot.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-04-02 14:49:39 +01:00
Daira Hopwood 7fd9cc9f73 Protocol spec: add page break before appendices.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:28:41 +00:00
Daira Hopwood 4b08221dd2 Protocol spec: wording clarification about motivations for Equihash.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:10:30 +00:00
Daira Hopwood 32cb319cc7 Protocol spec: cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:10:30 +00:00
Daira Hopwood a593018417 Protocol spec: fix the Ed25519 specification mess.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:10:30 +00:00
Daira Hopwood 161c9d05f8 Protocol spec: \hexints and \hexarray macros.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:10:30 +00:00
Daira Hopwood 9d7f700c35 Protocol spec: LaTeX cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:10:29 +00:00
Daira Hopwood 32a0709ffc Protocol spec: clarify that the transaction and header encodings should be read in the context of consensus rules in those sections.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:10:29 +00:00
Daira Hopwood 0dc531d04c Protocol spec: add Heartwood consensus rules.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:10:29 +00:00
Daira Hopwood 731ddfd9f6 Protocol spec: colour-code transaction fields that were added in Sapling.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:06:52 +00:00
Daira Hopwood 892bdfde1b Protocol spec: colour-code "pre-X" consensus rule markers according to X (since that is when the rule changed).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:06:52 +00:00
Daira Hopwood ef78d9d94c Protocol spec: make Heartwood colour a darker orange.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:06:52 +00:00
Daira Hopwood 69562802cf Protocol spec: add macro and Makefile support for NU4.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:06:52 +00:00
Daira Hopwood 70cc1347f6 protocol/Makefile: make the Heartwood spec the default.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 16:06:52 +00:00
Daira Hopwood 19bfc96a0c protocol/Makefile: remove pvc* targets.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 15:41:18 +00:00
Daira Hopwood e87feda358 Protocol spec: add \Makefile macro.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-03-20 15:11:00 +00:00
Daira Hopwood 2e26bb072d Resolve conflicts in the specification of memo fields by deferring to ZIP 302.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-13 14:13:10 +00:00
Daira Hopwood 849d9435ae Use the term monomorphism for an injective homomorphism, in the context of a "signature scheme with key monomorphism".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-06 23:03:58 +00:00
Daira Hopwood 0d582758dd Specify a retrospective soft fork implemented in zcashd v2.1.1-1 that limits the nTime field
of a block relative to its median-time-past.
Correct the definition of median-time-past for the first PoWMedianBlockSpan blocks in a chain.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-06 22:40:00 +00:00
Daira Hopwood ed6baf0fef Change History entry.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-06 22:38:15 +00:00
Daira Hopwood 0a3ef33991 Update incremental Merkle tree diagram.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-02 16:46:34 +00:00
Daira Hopwood 62251dc54f Change 'Payment address' to 'Shielded payment address' in key components diagrams.
Also remove obsolete key_components.{odg,pdf} files.

Co-Authored-By: Za Wilcox <zancas@protonmail.com>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-02 16:45:47 +00:00
Daira Hopwood 20d506168b Add Acknowledgements to Henry de Valance, Deirdre Connolly, Chelsea Komlo, and Trail of Bits.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-02 15:10:19 +00:00
Daira Hopwood 8a6dc9c9fe Wording tweak: replace "it" with "the note".
I was able to read this "it" as a reference to "the transaction".
closes #174

Author: Za Wilgustus <zancas@protonmail.com>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-02-02 15:10:03 +00:00
Daira Hopwood b2c58d414c Blossom clarifications.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-12-27 11:57:20 +00:00
Daira Hopwood 54624a8a6f Specify the height at which Blossom activated.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-12-27 11:57:20 +00:00
Daira Hopwood de0d60efff Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-12-27 11:57:20 +00:00
Daira Hopwood 149dfcdb53 Add Makefile changes and macros for Heartwood spec.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-12-27 11:57:20 +00:00
Daira Hopwood 624aa9eaa1 Improve formatting of appendix cross-references.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-12-27 11:57:20 +00:00
Daira Hopwood 59aabd6fb5 Fix a typo in the generator for S_1 found by magrady.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-24 01:32:02 +01:00
Daira Hopwood a5eef5d9fc Clarify the type of v^new when sending a Sapling note. fixes #262
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-24 01:17:48 +01:00
Taylor Hornby a4c521a96c Explain the discrepancy in the number of constraints for BLAKE2s found by QED-it.
Co-authored-by: Taylor Hornby <taylor@defuse.ca>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-24 00:50:12 +01:00
Daira Hopwood 4326655e59 Merge branch 'can' of github.com:nvesely/zips into spec-updates 2019-09-24 00:36:58 +01:00
Daira Hopwood 07417709da Set date for change entry.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-24 00:31:52 +01:00
Daira Hopwood 080cfb00bf Fix an error in the expression for Δ in Pedersen hashing, and add acknowledgement to Kobi Gurkan.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-24 00:30:41 +01:00
Weikeng Chen 3b111df058 fix a small typo in 4.8 Merkle path validity
Similarly, let MerkleCRH be MerkleCRH^{Sprout} for Sprout, or **MerkleDepth^{Sapling}** for Sapling.

becomes

Similarly, let MerkleCRH be MerkleCRH^{Sprout} for Sprout, or **MerkleCRH^{Sapling}** for Sapling.

Co-authored-by: Weikeng Chen <w.k@berkeley.edu>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-24 00:28:12 +01:00
Daira Hopwood 8c6eb6c741 Protocol spec Makefile improvements to suppress unneeded output.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-03 20:51:01 +01:00
Daira Hopwood e0ddb5ed54 Remove ZIP 207 as a reference.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-03 20:51:01 +01:00
Daira Hopwood 9dfa6a981b Fix a missing reference warning for the Sprout spec.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-03 20:51:01 +01:00
Daira Hopwood 81767ac18f Update references to ZIPs and to the Electric Coin Company blog.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-09-03 20:51:01 +01:00
Daira Hopwood b7e6c187d4 Replace dummy Blossom activation height with the testnet height, and a reference to ZIP 206.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-23 20:02:00 +01:00
Daira Hopwood 0c060a7a4e Add Change History date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-23 15:25:48 +01:00
Daira Hopwood 6a92b3459e Make the Blossom spec the default.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-23 15:25:37 +01:00
Daira Hopwood c62ebaa504 Note that zcashd uses ZIP 32 extended spending keys instead of sk.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-23 15:24:57 +01:00
Daira Hopwood ae16d11150 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-23 15:14:48 +01:00
Daira Hopwood f21cd8eb1b Generalize the definition of c for the Pedersen hash so that people can apply it to other curves (if they're careful!)
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-22 19:16:27 +01:00
Daira Hopwood 1c7a9abee6 Correct the packing of nf^old into input elements in the Sapling Spend circuit. fixes #264
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-22 18:20:08 +01:00
Daira Hopwood 1cea0d7786 Remove unneeded \textbnx macro.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-22 18:17:20 +01:00
Daira Hopwood 8253c352b2 Add epigraph from Hunting of the Snark.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-22 18:16:33 +01:00
Daira Hopwood 8e21be9a73 Suppress insignificant "Overfull vbox" warnings.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-08 16:38:48 +01:00
Daira Hopwood 1147fe4eff Make the label boxes link to the correct URL.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-08 16:37:46 +01:00
Daira Hopwood 588bc39a77 Protocol spec: note the change to the minimum-difficulty threshold time on the test network for Blossom.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-07 11:18:57 +01:00
Daira Hopwood ccac68b60f Protocol spec: cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-07 11:18:57 +01:00
Daira Hopwood 7ea6510a05 Protocol spec: index improvements.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-07 11:18:57 +01:00
Daira Hopwood fbacfdc358 Protocol spec: remove HTML Makefile targets.
The original intent was to allow external linking into the spec, but that never worked for
HTML, and is now possible with PDF. Also, the HTML output was very large, and typographically
unsatisfactory.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-07 11:18:57 +01:00
Daira Hopwood 7985249119 Protocol spec: remove "optimized" Makefile targets (which actually produced a larger PDF, with TeXLive 2019).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-07 11:18:57 +01:00
Daira Hopwood cad4baf2e1 Protocol spec: silence overfull/underfull hbox warnings from the theorem list.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2019-08-07 11:18:57 +01:00