Skip to content

ZSA integration (step 7): Modify zebra-consensus to support Orchard ZSA#28

Closed
dmidem wants to merge 42 commits into
zsa-integration-issuance-commitmentsfrom
zsa-integration-consensus
Closed

ZSA integration (step 7): Modify zebra-consensus to support Orchard ZSA#28
dmidem wants to merge 42 commits into
zsa-integration-issuance-commitmentsfrom
zsa-integration-consensus

Conversation

@dmidem
Copy link
Copy Markdown
Collaborator

@dmidem dmidem commented Nov 19, 2024

No description provided.

dmidem added 30 commits August 18, 2024 22:34
…ns from librustzcash/zcash_primitives instead of reimplementing them
… to use the correct order of the asset burn field in V6 transaction as it's defined in ZIP 230
… now - the same as used in librustzcash to make it possible to run tests)
…add issuance_block test function there (now it simply deserialized issuance block from the test vector to check if deserialization functions work properly)
…dd checks of deserialization of transfer and burn blocks
…'re two keys now - VERIFYING_KEY_VANILLA and VERIFYING_KEY_ZSA
@dmidem dmidem marked this pull request as draft November 19, 2024 18:38
@dmidem dmidem changed the title Modify zebra-consensus to support Orchard ZSA ZSA integration (step 6): Modify zebra-consensus to support Orchard ZSA Dec 9, 2024
@dmidem dmidem marked this pull request as ready for review December 9, 2024 11:07
@dmidem dmidem changed the title ZSA integration (step 6): Modify zebra-consensus to support Orchard ZSA ZSA integration (step 7): Modify zebra-consensus to support Orchard ZSA Jan 5, 2025
@dmidem
Copy link
Copy Markdown
Collaborator Author

dmidem commented Jan 11, 2025

Closed in favour of #37

@dmidem dmidem closed this Jan 11, 2025
dmidem added a commit that referenced this pull request Jun 23, 2025
This pull request merges the changes from several incremental PRs into
one cumulative set of updates on top of the `zsa1` branch. It introduces
ZSA-compatible crates, Network Upgrade 7 (Nu7), initial Transaction V6
support, Orchard generics for ZSA, property-based testing enhancements,
note commitment handling for ZSA issuance, and initial consensus
modifications for Orchard ZSA.

It does not include the final state management changes or additional
tests — those come in subsequent PRs.

Below is a high-level overview of the merged changes:

1. **ZSA-Compatible Crates Integration (Step 1)**
   #24: 
- Replaces core libraries (`halo2`, `zcash_note_encryption`, etc.) with
QED-it’s ZSA-compatible forks.
- Maintains full support for Orchard “Vanilla” without activating any
new ZSA features yet.

2. **Network Upgrade 7 (Nu7) Support (Step 2)**
   #15  
- Introduces code paths and placeholders for Nu7, the upcoming network
upgrade required for ZSA.
- Adds `FIXME` comments where final activation heights and other
specifics must be filled in.

3. **Transaction V6 Foundations (Step 3)**
   #16  
- Adds a `V6` variant to Zebra’s `Transaction` enum, initially mirroring
`V5` logic.
- Sets a baseline for future ZSA-related modifications, including
placeholders for relevant fields and logic.

4. **Refactor Orchard Structures to Generics (Step 4)**
   #17  
- Converts key Orchard data structures (e.g., `ShieldedData`) to
generics, enabling a single code path for both Orchard Vanilla and
Orchard ZSA.
- Implements serialization/deserialization for `V6` transactions,
including a `burn` field in the ZSA flavor.

5. **Orchard Proptests with ZSA Enhancements (Step 5)**
   #18
- Extends the property-based testing framework to handle ZSA-specific
fields and behaviors in `Transaction V6`.
- Refactors code organization (e.g., extracting `Burn` types) for better
clarity and future expansion.

6. **Integration of ZSA Issuance Commitments (Step 6)**
   #25
- Merges issuance action note commitments with existing shielded data
commitments for `V6` transactions.
- Ensures `Transaction::orchard_note_commitments` includes issuance note
commitments when present, preserving `V5` behavior.

7. **Initial ZSA Consensus Support (Step 7)**
   #28
   - Modifies `zebra-consensus` to support Orchard ZSA.  

**Next Steps**  
- **State Management & Additional Testing**: Future PRs will introduce
state-layer modifications, refine consensus checks, and add more
comprehensive tests.

By consolidating these first several steps into a single PR, we aim to
simplify the review process .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant