Protocol Specification version 2026.6.4 - #1322
Merged
Merged
Conversation
…discrete-logarithm terminology. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
(Jubjub) rather than r_P (Orchard). Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…n for TODOs, so that those colours can be reused. Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
…pools via semantic *type markup. This is preparation for Ironwood: the main practical reason to make the distinction is that the Orchard shielded protocol will be used for both the Orchard and Ironwood shielded pools. It has also always been annoying that "Sapling" named a Network Upgrade as well as a shielded protocol and its pool. Introduce a "concept -> typeface" indirection: low-level typeface macros (\strongtype, \slantedtype, \mathsanstype, \mathsansitalictype, ...) and semantic macros mapping each concept to one of them (\upgradetype, \topprotocoltype, \subprotocoltype, \pooltype, \softwaretype, \fieldnametype, ...), so the typeface for a concept is chosen in one place. Rework \emph/\schoolbook to override the variant typefaces rather than the previous \fakebold hack, and retire \mathsfit. Add the \term<concept> wrappers and \ChainValuePoolBalance. Redefine the existing top-level-protocol, Network Upgrade, shielded-protocol, and pool name macros (Zcash; Overwinter ... NU6.1; the Sprout, Sapling, and Orchard protocols and pools) to use the semantic markup, and apply it throughout the existing text: upgrades bold, protocols upright math sans, pools slanted. Some of the references to shielded protocols become references to corresponding pools, but not the ones that are entangled with subsequent changes. Note that the refactoring, in particular the switch from associating notes, etc. with shielded protocols to associating them with shielded pools, is applied also to the Change History. Since shielded protocols were in one-to-one correspondence with shielded pools throughout this history, I believe this isn't too much of a misrepresentation. Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…, and cover the relation between addresses, pools, and notes. Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Also drop ZIP 256's proposed relocation of the canonical-encoding rules from the description sections (4.3-4.6) to the encoding sections (7.2-7.5): the constraint-bearing types are declared only in the description sections, and so this would make things less clear, not more. Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…s TeX Live versions Newer TeX Live (e.g. 2025 under `nix develop`) ships the raleway package without the Raleway-TLF (Tabular Lining Figures) family or its italic Type1 metrics, so the pool-name italic (\ralewayitalictype) silently fell back to the body font. Vendor the needed Raleway TLF font files under protocol/texmf/ and point the build at them via TEXMFHOME, registering the font map with \pdfmapfile so pdfTeX embeds them. The spec now builds identically regardless of the ambient TeX Live's raleway packaging. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the pre-NU6.2 Zcash Protocol Specification release, version 2026.6.4, split out from the NU6.2 work so that it can be reviewed and merged first. The NU6.2 consensus changes (ZIP 257) will follow in a separate PR on top of this one.
It comprises the retrospective consensus bug fixes described in ZIP 256, together with a number of unrelated corrections and editorial improvements.
ZIP 256 (consensus bug fixes between NU6.1 and NU6.2)
rkMUST NOT be the identity point, retrospectively enforced as a soft fork.MAX_MONEY(ZIP 209).valueBalanceSaplingfor a v4 transaction refers to the value as encoded, not the normalized value.ephemeralKeyconformance issue.Other corrections and improvements
r_P, not the Jubjub orderr_J.dk/ovkderivation intoDeriveDkAndOvk^Orchard, so that ZIP 32 can use it without duplication.Build tooling
protocol/texmf/, and point the build at them viaTEXMFHOME. Newer TeX Live (e.g. 2025 undernix develop) ships theralewaypackage without theRaleway-TLFfamily or its italic Type1 metrics, so pool names silently fell back to the body font. Vendoring makes the spec build identically regardless of the ambient TeX Live's raleway packaging — which also unblocks moving production rendering to anix buildflow (#1298).🤖 Generated with Claude Code