Commit Graph

1034 Commits

Author SHA1 Message Date
Daira Hopwood c136527758 Regenerate PDFs. 2020-11-06 01:09:37 +00:00
Daira Hopwood 3274aa10de Avoid undefined references when building sprout.pdf.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 9a8f72c5e3 Add release date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 7999296d7d Minor corrections.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 6e3c173538 Update a comment about BIPs (which is not in the rendered document).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood c278c2f93a Reserve transaction version 0x7FFFFFFF and version group ID 0xFFFFFFFF for experimental use.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 9257be1d1f Add a consensus rule that the (zero-valued) coinbase transaction output of the genesis block cannot be spent.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 917dbf5c46 Add a missing consensus rule that has always been implemented in zcashd: there must be at
least one transparent output, Sapling output, or JoinSplit in a transaction.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +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 71cee89a18 Corrections to note decryption algorithms:
* ephemeralKey is kept as a byte sequence rather than immediately converted to a curve point;
  this matters because of non-canonical encoding.
* The representation of pk_d in a note plaintext may also be non-canonical and need not be in the
  prime subgroup.
* Move checking of cm_u in decryption with ivk to the end of the algorithm, to more closely match
  the implementation.
* The note about decryption of outputs in mempool transactions should have been normative.

Also change ZIP 212 to say that it is aligned with this version of the protocol spec.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 775b5f3b5d Use "let mutable" to introduce mutable variables in algorithms.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 9c9ad74fad Acknowledge Alexandra Elbakyan for her work on Sci-Hub.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 0ed38ec775 Acknowledge Izaak Meckler, Zac Williamson, and Vitalik Buterin for discussions of the protocol.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood a5db85828c Acknowledge Jack Gavigan as a co-designer of Sapling and of the Zcash protocol.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-11-06 01:00:58 +00:00
Daira Hopwood 924fd97422 Remove a statement that the language consisting of key and address encoding possibilities is prefix-free
(the raw encodings are not).

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 36b35dbf4a Regenerate PDFs. 2020-08-30 21:12:40 +01:00
Daira Hopwood 906838f3b6 Minor fixes to Change History.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-30 21:07:46 +01:00
Daira Hopwood 4d00112f5d Explicitly state the consensus rule that a coinbase transaction must not spend more than is available from the block subsidy and transaction fees.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-30 21:07:34 +01:00
Daira Hopwood c7180872a3 Specify where PRF^expand is used and with what inputs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-30 21:06:29 +01:00
Daira Hopwood ea59cda07f Fix a type error in the output of PRF^nfSapling; a Sapling nullifier is a sequence of 32 bytes, not a bit sequence.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-30 21:01:51 +01:00
Daira Hopwood b3da7a14ee Remove a silly comment from the LaTeX source.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-30 21:01:51 +01:00
Daira Hopwood 87a0670225 protocol/Makefile: ensure that we don't release from a branch other than master or a dirty working tree.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-30 21:01:50 +01:00
Daira Hopwood 639226dd50 Regenerate PDFs. 2020-08-19 22:03:26 +01:00
Daira Hopwood b2a7e1deb0 Fix a type error in the output of PRF^nfSapling.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-17 21:33:05 +01:00
Daira Hopwood 850e7ea019 Correct an off-by-one in an expression used in the definition of c for windowed Pedersen commitments
(this does not change the value of c).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-17 21:32:15 +01:00
Daira Hopwood b83f2b9542 Regenerate PDFs. 2020-08-11 14:44:38 +01:00
Daira Hopwood e1cac0c48a Make the Canopy specification the default.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:56:46 +01:00
Daira Hopwood 19ba684f2c Minor wording improvement.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:56:19 +01:00
Daira Hopwood 55c51715b5 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:56:08 +01:00
Daira Hopwood 7032c07fb8 Make Halving(height) return 0 (rather than -1) for height < SlowStartShift.
This has no effect on consensus since the Halving function is not used in that case,
but it makes the definition match the intuitive meaning of the function.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:55:38 +01:00
Daira Hopwood d117273977 Refine the domain of HeightForHalving from N to N^+.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:54:06 +01:00
Daira Hopwood 9dbac78f29 Rename some section titles under 'Consensus Changes from Bitcoin' to use 'Encoding and Consensus'.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:52:58 +01:00
Daira Hopwood 6fbe17da59 Updates to reflect ZIP 211: add a consensus rule on v^pub_old, and a rule about node and wallet support for sending to Sprout addresses.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:49:36 +01:00
Daira Hopwood 1d71f6cb31 Rename the type of Sapling transmission keys from KA^Sapling.PublicPrimeOrder to KA^Sapling.PublicPrimeSubgroup.
This type is defined as J^(r), which reflects the implementation in zcashd (subject to the point below);
it was never enforced that a transmission key (pk_d) cannot be the zero point.

Add a non-normative note saying that zcashd does not fully conform to the requirement to treat
transmission keys not in KA^Sapling.PublicPrimeSubgroup as invalid when importing payment addresses.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 13:43:00 +01:00
Daira Hopwood e1037ff046 Wording improvements.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 01:57:49 +01:00
Daira Hopwood d11304c7d1 Add indexing for "halving".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 01:54:48 +01:00
Daira Hopwood a651ad7fe7 Modify funding stream tables and notes to reflect changes in ZIP 214.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 01:52:06 +01:00
Daira Hopwood fd2416d9ea Set CanopyActivationHeight for Testnet.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-11 01:48:59 +01:00
Daira Hopwood fb64b2e430 Regenerate PDFs. 2020-08-03 12:19:11 +01:00
Daira Hopwood 17def33bf8 Use abstBytes_{Ed25519} and reprBytes_{Ed25519} for conversions in Ed25519 batch signature validation, and
fix a missing requirement that S_j < \ell for all signatures.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-03 12:14:34 +01:00
Daira Hopwood ff3c7c2bce Move the footnote about (x, y) notation for Ed25519 to where this notation is first used.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-03 12:11:08 +01:00
Daira Hopwood 13b6f0e120 Delete a potentially misleading Sprout-specific comment.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-03 12:10:20 +01:00
Daira Hopwood 31b844c37c Give a definition for SHA-512. Also some refactoring of hash macros.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-08-03 12:09:33 +01: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 1e6b2f8815 Regenerate PDFs. 2020-07-13 18:54:03 +01:00
Daira Hopwood b2f033f84d Add spec changes for ZIPs 207 and 214.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-13 18:45:16 +01:00
Daira Hopwood bc809dae5d Add note about full viewing key decryption of mempool transactions.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-13 18:45:16 +01:00
Daira Hopwood 0248a44a05 Change instances of "the production network" to "Mainnet", and "the test network" to "Testnet".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-07-13 18:45:16 +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