Commit Graph

2632 Commits

Author SHA1 Message Date
Daira Hopwood 4821afe9ba Add a clarification in \crossref{txnconsensus} that after Heartwood and before Canopy activation,
Sapling outputs of a coinbase transaction MUST have note plaintext lead byte equal to 0x01.
This was implied by the existing rule that such outputs MUST decrypt successfully with an
all-zero outgoing viewing key.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 172573e686 Correct an erroneous statement in \crossref{transactions} that claimed transaction IDs are not part
of the consensus protocol.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 55052e4e54 Add a consensus rule for version 5 or later transactions, that if `nActionsOrchard` > 0 then
at least one of `enableSpendsOrchard` and `enableOutputsOrchard` MUST be 1.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 3f9ede243b Replace "must" with "MUST" in two consensus rules specified in \crossref{txnencoding}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 7102635fc6 Correct l to l⋆ in two places in \crossref{saplingmerklecrh}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 3159602dfc Fix a typo in the Security Requirements for \crossref{orchardmerklecrh}: the length of the input
to SinsemillaHash is 10 + 2·ℓ^Orchard_Merkle bits, not 6 + 2·ℓ^Orchard_Merkle bits.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 1ed8e47d56 Allow the Merkle path validity check in the Action circuit to pass if any output of
MerkleCRH^Orchard is 0, and add a note in \crossref{merklepath} arguing that this is safe.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 0b7aeae33e Change the type of MerkleCRH^Orchard to have MerkleHash^Orchard in place of MerkleHash^Orchard ∪ {⊥}
for the inputs and output, and map a ⊥ output from SinsemillaHash to 0.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood c33e23e0c2 Delete the consensus rule in \crossref{transactions} that required checking that each intermediate
Merkle root of the note commitment tree is not ⊥. Checking this rule would have imposed a
significant performance penalty, since intermediate roots do not otherwise need to be computed.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood a39618ff66
Merge pull request #529 from nuttycom/zip_0302_fix_indentation
Fix bullet points in the future-reserved section of zip-0302
2021-06-30 23:33:51 +01:00
Kris Nuttycombe bcb9845f00 Fix bullet points in the future-reserved section of zip-0302 2021-06-29 12:25:47 -06:00
Daira Hopwood 076af3f055 Regenerate PDFs. 2021-06-29 18:08:21 +01:00
Daira Hopwood 75e2ae585d Set Change History entry height.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-29 18:03:43 +01:00
Daira Hopwood 7f04e327ad Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-29 18:02:17 +01:00
Daira Hopwood b3aad58459 Add a section \crossref{txnidentifiers} on how to compute transaction IDs and \wtxids.
Split the transaction-related consensus rules into their own subsection \crossref{txnconsensus},
for more precise cross-referencing.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-29 18:02:00 +01:00
Daira Hopwood 4c118b813e Describe transaction IDs and wtxids in \crossref{transactions}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-29 17:59:15 +01:00
Daira Hopwood 9eec2ec378 Change one of the [Sapling onward] consensus rules in \crossref{txnencodingandconsensus} to have
the correct applicability: [Sapling to Canopy inclusive, pre-NU5].

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-29 17:57:03 +01:00
Daira Hopwood 27dc2a5fc4 Regenerate PDFs. 2021-06-28 18:10:48 +01:00
Daira Hopwood 671451008a Add a step to the algorithm for generating an Orchard note in \crossref{orchardsend}, to restart if esk = 0.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-28 18:06:10 +01:00
Daira Hopwood b4928747cc Explicitly say that padding in \crossref{concretesinsemillahash} is by appending zero bits.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-28 18:06:10 +01:00
Daira Hopwood c6247f4bd5 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-28 18:06:10 +01:00
Daira Hopwood ca6d988177 Correct the type of Uncommitted^Orchard, which should be P_x rather than a bit sequence.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-28 18:06:10 +01:00
Daira Hopwood 3d5f16a0a5 ZIPs 212 and 213: updates for Orchard.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-27 14:09:22 +01:00
Daira Hopwood 33c7ac6b3f ZIP 203: regenerate HTML.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 21:36:35 +01:00
Daira Hopwood 4e138b244e ZIP 203: changes for Blossom and NU5.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 21:36:35 +01:00
Daira Hopwood ab2ec000c2 ZIP 203: keyword arguments to the RPC were not implemented.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 21:36:35 +01:00
Daira Hopwood 38fe5c3b10 ZIP 203: corrections.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 21:36:35 +01:00
Daira Hopwood e433e8ae4e ZIP 203: line wrapping and formatting.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 21:36:35 +01:00
Daira Hopwood aec18d6aa8 Regenerate PDFs. 2021-06-26 21:32:35 +01:00
Daira Hopwood dea48add07 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 21:27:26 +01:00
Daira Hopwood 00074e8084 Add ZIPs 203, 212, and 213 to the list of ZIPs updated for NU5.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 21:27:26 +01:00
Daira Hopwood 048c1bf24c Update \crossref{notept} for Orchard.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:37 +01:00
Daira Hopwood 7a8b12d945 * Require that from NU5 activation, the `nExpiryHeight` field of a coinbase transaction is set
to the block height. This is needed to maintain the property that all transactions have unique
  transaction IDs, as explained in a note in \crossref{txnencodingandconsensus}.
* In order to avoid the block height being limited to 499999999, we also remove that bound on
  `nExpiryHeight` for \coinbaseTransactions.
* Remove the recommendation to support 63-bit block heights in \crossref{blockchain} (since it is
  incompatible with the above consensus rule for coinbase `nExpiryHeight`).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:37 +01:00
Daira Hopwood ad8bd025b1 The Groth16 `zkproof` field in a JoinSplit description should be colour-coded for Sapling.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:37 +01:00
teor 5503f766fd Explicitly apply `MAX_MONEY` to Orchard.
Co-authored-by: teor <teor@riseup.net>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:37 +01:00
Daira Hopwood 4ca7409f6f Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:37 +01:00
Daira Hopwood 5dff090737 Give cross-references to \crossref{notation} where $\optsqrt$ and $\possqrt$ are used.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:37 +01:00
Daira Hopwood f31b335fe9 Refine the key components diagram in \crossref{addressesandkeys} to show that Orchard incoming
viewing keys include both dk and ivk.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:37 +01:00
Daira Hopwood 6055cca71e Ensure that the layer number is passed to MerkleCRH in \crossref{merklepath}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-26 18:41:36 +01:00
Daira Hopwood 1fd7c73f68 Add ZIP 212 and 213 to list of updated ZIPs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-22 15:52:10 +01:00
Daira Hopwood 7421696ffa ZIP 225: Correct the size of an Orchard Action encoding in vActionsOrchard.
(The same error was corrected in v2021.2.1 of the protocol spec by 3f3195eb5c12c94b9e38ab7dfa5d660e144a97d3.)
fixes #525

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-22 07:27:28 +01:00
Daira Hopwood 1458078183
Merge pull request #523 from daira/zip-221-pseudocode
ZIP 221: update pseudocode for NU5, and fix a typo
2021-06-20 20:53:46 +01:00
Daira Hopwood 9dba127d7c ZIP 221: update pseudocode for NU5, and fix a typo.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-20 20:48:55 +01:00
Daira Hopwood 721dd2483f Regenerate PDFs. 2021-06-19 20:12:11 +01:00
Daira Hopwood ea0f196a92 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-19 20:05:47 +01:00
Daira Hopwood 09f944d90c Change the consensus rule that requires at least one input to, and at least one output from a v5
or later transaction, to take into account the enableSpendsOrchard and enableOutputsOrchard flags.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-19 20:05:47 +01:00
Daira Hopwood 321eed99b4 Correct the type of Extract_P^bot imported in \crossref{concretesinsemillahash}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-19 20:05:47 +01:00
Daira Hopwood 6e6fd1605e Add ZIP 209 to the list of ZIPs updated for NU5.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-06-19 20:05:47 +01:00
Daira Hopwood a893eca4d9
Merge pull request #521 from daira/zip-209-orchard
ZIP 209: apply this ZIP to the Orchard chain value pool.
2021-06-16 04:04:25 +01:00
Daira Hopwood 4fbf8e5da2
Merge pull request #520 from nuttycom/zip244-clarify_auth_tree
ZIP 244: Clarify contruction of `hashAuthDataRoot`
2021-06-16 04:03:59 +01:00