Commit Graph

1197 Commits

Author SHA1 Message Date
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
Daira Hopwood b4761037a4 In \crossref{networks}, update the settled activation block hashes to be those for NU5
on Mainnet and Testnet.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-21 17:19:36 +01:00
Daira Hopwood 1be8793401 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-21 17:19:36 +01:00
Daira Hopwood 9db08c218f In \crossref{sproutspendingkeyencoding}, remove the statement that future key representations
might use the padding bits of Sprout spending keys.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-21 17:19:36 +01:00
Daira Hopwood adce640cb0 Rename ExcludedPointEncodings to PreCanopyExcludedPointEncodings.
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 a02401a61e Correct the history entry for v2022.3.2 to include the entry about `sizeProofsOrchard`.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-21 17:19:36 +01:00
Daira Hopwood 840674803f Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-06 20:25:53 +01:00
Daira Hopwood 984c14da9e Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-06 20:22:40 +01:00
Daira Hopwood 8bc9244a47 Correction in \crossref{constants}: Uncommitted^Orchard is not a bit sequence.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-06 20:18:56 +01:00
Daira Hopwood 8d9b70b0e4 Cosmetics (spacing in v5 transaction encoding table).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-06 20:18:56 +01:00
Daira Hopwood 2336f6f345 Make \crossref{overview} more precise about chain value pools.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-06 20:18:56 +01:00
Daira Hopwood b12bb61103 An [NU5 onward] consensus rule requiring the `nConsensusBranchId` field to match
the consensus branch ID used for SIGHASH transaction hashes, should apply only
when effectiveVersion ≥ 5 (since v4 transactions did not explicitly encode the
`nConsensusBranchId` field.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-06-06 20:18:56 +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
Jack Grigg a0767f42fe Add value of sizeProofsOrchard to protocol spec §7.1 and ZIP 225 2022-06-06 10:17:33 -04:00
Kris Nuttycombe 32870a93af Fix rendering issue. 2022-05-11 21:03:29 -07:00
Kris Nuttycombe a25f2b92a7 Set NU5 activation height in the protocol specification. 2022-05-11 14:31:54 -07:00
Daira Hopwood ed82b5bf85 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:34:21 +01:00
Daira Hopwood be7df83b10 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:33:57 +01:00
Daira Hopwood 2d2508d06c In \crossref{orchardkeycomponents}, do not allow construction of Orchard
spending keys such that the corresponding internal incoming viewing key is 0
or ⊥. (This was already specified for the external incoming viewing key.)
Similarly in \crossref{orchardfullviewingkeyencoding}, do not consider a
decoded key valid if either its external or internal incoming viewing key
would be 0 or ⊥.

fixes #598
2022-04-28 20:33:06 +01:00
Daira Hopwood dbd7339c3f Cleanup: remove duplicate macro \CommitIvkRandom in favour of \CommitIvkRand.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:28:07 +01:00
Daira Hopwood 0c53d8815f Clarify how to determine which table in \crossref{txnencoding} to use for transaction parsing,
depending on the effectiveVersion as determined by the `header` field. fixes #603

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:28:07 +01:00
Daira Hopwood 9000614a63 Add an acknowledgement to Mary Maller for reviewing the Halo 2 security proofs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:27:15 +01:00
Daira Hopwood 11b44b4490 Cosmetic indexing fixes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:27:15 +01:00
Daira Hopwood 3c3da6d6dc Correct "block chain branch" to "consensus branch" to match ZIP 200.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:27:15 +01:00
Daira Hopwood deafb410de Add an acknowledgement to Josh Cincinnati for discussions on the Zcash protocol,
and to more people associated with the ZK Podcast.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-04-28 20:27:15 +01:00
Daira Hopwood 634e274df6 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 08:49:31 +00:00
Daira Hopwood c7ad527f38 Fix an undefined reference in the history entry for 2021.2.17, in pre-Canopy versions.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 08:49:31 +00:00
Daira Hopwood 5d3b4ef038 NU5 proposal -> NU5
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 01:51:34 +00: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 e123584794 Document the consensus rule that coinbase script length MUST be {2..100} bytes. fixes #589
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 01:09:11 +00:00
Daira Hopwood c506a972ac Cosmetics and improvements to indexing.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 01:02:24 +00:00
Daira Hopwood 8f77f6f1df Acknowledge the developers of Bitcoin Core (as distinct from the designers of the
Bitcoin protocol).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 00:58:54 +00:00
Daira Hopwood 27f5bb1e68 Correct a type error in the usage of Commit^ivk: the output type Commit^ivk.Output includes 0,
but the type of incoming viewing keys should not include 0 because KA^Orchard.Private does not.
This is now handled by explicitly rejecting 0 as output from Commit^ivk when generating ivk
in \crossref{orchardkeycomponents}.

An encoding of ivk as 0 is also rejected in \crossref{orchardinviewingkeyencoding} when parsing
an incoming viewing key.

The action circuit needed no changes because pk_d already could not be the zero point, and
therefore the 'Diversified address integrity' condition fails when ivk = 0.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 00:56:59 +00:00
Daira Hopwood 5c7c728e63 In \crossref{blockchain}, define what a settled network upgrade is, specify requirements
for checkpointing, and allow nodes to impose a limitation on rollback depth. Also in
\crossref{bctv}, note that this checkpointing requirement mitigates the risks of not
performing BCTV14 zk proof verification.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-03-18 00:50:06 +00:00
Daira Hopwood 81858fff41 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-19 18:09:23 +00:00
Daira Hopwood 6c32c7c7ea Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-19 18:09:23 +00:00
Daira Hopwood dcc5532d61 In \crossref{sighash}, add a consensus rule that SIGHASH type encodings MUST be canonical
for v5 transactions.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-19 18:09:23 +00:00
Daira Hopwood 24cfab0b55 Add reference to [BCGGMTV2014] when discussing an example of an incorrect security claim.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-19 18:09:23 +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 0cdab5071b In \crossref{joinsplit}, clarify that balance for JoinSplit transfers is enforced by the
JoinSplit statement, and that there is no consensus rule to check it directly.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-19 18:09:23 +00:00
Daira Hopwood 02adb44328 Set Change History entry date, and update version year to 2022.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-03 22:15:14 +00:00
Daira Hopwood b57f6d1487 Correct the note about domain separators for PRF^expand in \crossref{abstractprfs},
and ensure that new domain separators for deriving internal keys from ZIPs 32 and 316 are included.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-03 22:15:14 +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 59a220d59e Change the types of cm_x, Uncommitted^Orchard, and ak in Orchard to { 0 .. q_P-1 },
avoiding type errors and reflecting the implementation in zcashd. This eliminates all uses of P_x
(except that ak in an Orchard full viewing key is still required to be a valid Pallas affine
x-coordinate). Also clarify the coordinate system whenever we refer to coordinates.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-03 22:15:14 +00:00
Daira Hopwood b6e00e0d41 Refine the security argument in the note about partitioning oracle attacks.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-01-03 22:15:14 +00:00
Daira Hopwood 82c4e49155 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-12-01 18:09:12 +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 67a4b35dcd Add acknowledgement to Sasha Meyer.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-12-01 18:09:12 +00:00
Daira Hopwood eab1ef1a1a Add acknowledgement to Mihir Bellare for contributions to the science of zero-knowledge proofs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-12-01 18:09:12 +00:00
Daira Hopwood 36252cebf6 Add "note commitment scheme" as a term.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-12-01 18:09:12 +00:00
Daira Hopwood 089a9cb8be Make consistent use of "spending authority", and add this term to the index.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-12-01 18:09:12 +00:00
Daira Hopwood 4da403f470 Add notes in each Appendix B that z_j may be sampled from {0 .. 2^{128}-1} instead of {1 .. 2^{128}-1}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-12-01 18:09:12 +00:00
Daira Hopwood b1a707e963 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-30 16:56:40 +01:00
Daira Hopwood bab61e8ecf Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-30 16:56:40 +01:00
Daira Hopwood 97fa264611 * Witness g_d^new and pk_d^new in Orchard as non-identity Pallas points, rather than witnessing
their representations as bit sequences.
* Note that ak^P in Orchard cannot be the identity.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-30 16:56:40 +01:00
Daira Hopwood 7bf094e827 * Use complete addition in SinsemillaCommit.
* Correct the proof of Theorem 5.4.6.
* Change the type of cm_old in Orchard to P rather than P*, i.e. allow the identity point.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-30 16:56:40 +01:00
Daira Hopwood 06706937d5 Change the type of rt^Orchard from P_x to {0..q_P-1}. This reflects the zcashd implementation;
also checking rt^Orchard \in P_x would require a square root and is unnecessary.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-30 16:56:40 +01:00
Daira Hopwood b8f83aac4b Correct the consensus rule about the maximum value of outputs in a coinbase transaction:
it should reference the block subsidy rather than the miner subsidy.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-30 16:56:40 +01:00
Daira Hopwood 5688e5cbbd Fix some cross-references.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-30 16:56:40 +01:00
Daira Hopwood c871d448ce Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-01 13:26:34 +01: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
Daira Hopwood a5c4f139c9 protocol/links_and_dests.py: Some DOI links (i.e. to https://doi.org/) redirect to link.springer.com
in a way that requires cookies (booo!). We allow this for DOI links, but for all other links we
simulate a client that never sets cookies.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-01 13:19:33 +01:00
Daira Hopwood 0d2b01e602 Cosmetics (captialization of ZKProof).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-01 11:44:16 +01:00
Daira Hopwood b7f0a0bd0d Correct a minor error in the proof of \theoremref{thmsinsemillacr}:
the condition SinsemillaHashToPoint(D, M) ≠ ⊥ is required in the proof.
(The case SinsemillaHashToPoint(D, M) = ⊥ is covered by \theoremref{thmsinsemillaex}.)
The proof had not been updated correctly when the statement was revised in v2021.2.0.
Also add a missing D argument to SinsemillaHashToPoint in that proof.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-01 11:44:16 +01:00
Daira Hopwood 324c9ae7b9 Add \zcashdref for referencing zcashd versions (also \zebraref which is currently unused).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-01 11:44:16 +01:00
Daira Hopwood 7e5272e70b Add \historyref for referencing Change History versions.
Also fix an incorrect reference to v2019.0-beta-40 that should be v2019.0.0.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-09-01 11:44:16 +01:00
Daira Hopwood 3ebba2652a Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-08-12 21:44:17 +01:00
Daira Hopwood 8f8ef49618 Add Change History entry for fixing [ZIP-239] in the References.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-08-12 21:43:39 +01:00
Daira Hopwood 219a4ef253 Clarify wording in the Change History entry for v2021.2.13.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-08-12 21:38:20 +01:00
Daira Hopwood 8718157af0 Reword the reference to a Sapling full viewing key in \crossref{saplingdummynotes}
(the full viewing key would include ovk, although it is not used in that section).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-08-12 21:37:35 +01:00
Daira Hopwood 045a3a9e54 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-29 17:30:21 +01:00
Daira Hopwood a6fd0153d2 Add a consensus rule in \crossref{merkletree} that a block MUST NOT add note commitments that
exceed the capacity of each of the Sprout, Sapling, and Orchard note commitment trees.

Also add a cross-reference for constants used in \crossref{merkletree}.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-29 17:30:21 +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 411f39e231 Change the definition of inputs to the action circuit to split enableSpends and enableOutputs
into two field elements.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-20 06:00:31 +01:00
Daira Hopwood 36e2059de0 Set Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-13 15:50:46 +01:00
Daira Hopwood ffd97926a8 Clarify in \crossref{transactions} that the remaining value in a transparent transaction value pool
is only available to miners as a fee in the case of non-coinbase transactions, and that the remaining
value in the transparent transaction value pool of a coinbase transaction is destroyed.

Co-authored-by: Teor <teor@riseup.net>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-13 15:50:46 +01:00
teor e628134536 Make heightBytes encoding match NU5 coinbase nExpiryHeight
Since nExpiryHeight is limited to `2^32 - 1`, heightBytes is limited to 5 bytes.

Co-authored-by: Teor <teor@riseup.net>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-13 15:50:46 +01:00
Daira Hopwood 819761ef67 Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-13 15:50:46 +01:00
Daira Hopwood 8c7b2f2a95 Add cross-references for CanopyActivationHeight, ZIP212GracePeriod, and BlockHeight.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-13 15:50:46 +01:00
Daira Hopwood 0ad0d3d57a Clarify that decomposition of scalars for scalar multiplication in the action circuit MUST be canonical,
unless a non-canonical decomposition can be proven to result in an equivalent statement -- and clarify
for which multiplications the latter case applies.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-13 15:50:46 +01:00
Daira Hopwood f97ef3ae72 Remove a spurious reference to rseed in \crossref{sproutinband}. There were no changes for Sprout in ZIP 212.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-13 15:50:46 +01:00
Daira Hopwood fb83397ad7 Set the Change History entry date.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
Daira Hopwood 2814e00a1a Cosmetics and cross-referencing improvements.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-01 19:54:54 +01:00
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 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 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