Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ZIP 2003] Disallow v4 transactions in NU7 #825

Open
daira opened this issue May 2, 2024 · 4 comments
Open

[ZIP 2003] Disallow v4 transactions in NU7 #825

daira opened this issue May 2, 2024 · 4 comments
Assignees
Labels
consensus Consensus changes, and errors or omissions in consensus specification NU7 proposal ZIP idea ZIP number assigned
Milestone

Comments

@daira
Copy link
Collaborator

daira commented May 2, 2024

In NU7 we will very likely be adding a new transaction version, v6. This is likely to mean that three transaction versions will be allowed simultaneously: v4, v5, and v6. That is complicated but not really so bad.

After NU7, it is proposed to reorganise transaction fields to support "action groups". This may or may not require another transaction version, v7, but it will increase the number of options for the transaction format regardless. In addition there will be a new revision of the Orchard shielded protocol to support ZSAs, with an associated circuit change. I think it is not yet decided whether the old Orchard Action circuit will still be used in v5/v6 transactions after NU7 activation, but in any case proofs of that circuit must still be verifiable.

Having effectively four transaction versions (v4 to v6 and the action groups change), and five zk circuits (Sprout JoinSplit, Sapling Spend, Sapling Output, Orchard Action, OrchardZSA Action) in the field at once is too much. I'm good at remembering protocol details and I don't think I'll be able to effectively keep track of the whole protocol at this point, even with the help of my ADHD meds 😛

So, assuming that NU6 and NU7 remain roughly as planned, I propose that in NU7, we:

  • disallow v4 transactions, i.e. only v5, v6 and possibly v7 will be supported;
  • at the NU7 activation height, burn/unissue all remaining Sprout funds moved to [ZIP idea] Unissue Sprout funds #925.

Note that the Sprout chain value pool balance will necessarily be nonnegative because ZIP 209 requires that as a consensus rule.

(As with all network upgrades, a rollback is possible undoing the activation, at which point it is technically possible for additional Sprout funds to be spent before any reactivation. Therefore, a validating node must keep the last Sprout treestate until it is no longer possible to roll back that far, i.e. 100 blocks after activation for Zebra. It is expected that all zcashd nodes will have halted.)

@daira daira changed the title Proposal to deprecate v4 transactions and move all Sprout funds to the ZSF in NU7 Proposal to disallow v4 transactions and move all Sprout funds to the ZSF in NU7 May 2, 2024
@daira
Copy link
Collaborator Author

daira commented May 4, 2024

This is proposed for NU7, so it should block the NU7 target until it is decided whether or not it will be included.

@daira daira added this to the NU7 milestone May 4, 2024
@daira daira changed the title Proposal to disallow v4 transactions and move all Sprout funds to the ZSF in NU7 Proposal to disallow v4 transactions and (possibly) move all Sprout funds to the ZSF in NU7 Oct 30, 2024
@daira daira changed the title Proposal to disallow v4 transactions and (possibly) move all Sprout funds to the ZSF in NU7 Proposal to disallow v4 transactions in NU7 Oct 30, 2024
@daira daira self-assigned this Oct 30, 2024
@daira
Copy link
Collaborator Author

daira commented Oct 30, 2024

@str4d made the argument that if we do this and then there is a reason to re-allow v4 transactions, that would be possible.

@nuttycom nuttycom added the consensus Consensus changes, and errors or omissions in consensus specification label Nov 1, 2024
@nuttycom nuttycom changed the title Proposal to disallow v4 transactions in NU7 [Zip idea] Disallow v4 transactions in NU7 Nov 1, 2024
@daira
Copy link
Collaborator Author

daira commented Nov 5, 2024

This is specified by draft-hopwood-disallow-v4-transactions.

@str4d
Copy link
Collaborator

str4d commented Nov 5, 2024

The ZIP Editors (me, @nuttycom, @conradoplg, @arya2) agree that the ZIP draft as-written is an Update ZIP, and have assigned it ZIP 2003.

@str4d str4d changed the title [Zip idea] Disallow v4 transactions in NU7 [ZIP 2003] Disallow v4 transactions in NU7 Nov 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
consensus Consensus changes, and errors or omissions in consensus specification NU7 proposal ZIP idea ZIP number assigned
Projects
None yet
Development

No branches or pull requests

3 participants