-
Notifications
You must be signed in to change notification settings - Fork 107
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
Document consensus rules from Zcash spec: 7.1.2 Transaction Consensus Rules #3223
Comments
@mpguerra this is a very large task, so I'd like to split it between multiple people. We could open a zcash/zips PR to split the spec section into multiple sub-sections? |
We can possibly split it between the people that worked on the listed issues/PRs. Before we start working on this we should double check that there aren't any other issues/PRs that contributed towards implementing this section of the spec. |
It would also be nice if these issues could be used by the auditors as a reference and so we should make sure the description is as complete and accurate as possible |
Thanks, please re-assign me to some of the sub-tasks after you've split this task. Here is the split I'd suggest, because it matches the structure of Zebra's code (and also the spec):
This is unusual - I've never seen a project that keeps closed tickets up to date as the code changes. So I assumed that closed tickets are out of scope for the audits. Tickets are based on what we knew at the time they were closed. But we want to audit the current state of the software, so we need something that stays up to date. So I think we should update the documentation next to the code we're getting audited. That way, we can maintain that documentation as we change the code, so it will be ready for future audits. I don't know if this is related, but was it confusing to use open tickets to track questions for the auditors? Let's talk about auditing closed tickets and tracking auditor questions at the Engineering sync. |
I wasn't suggesting that we update the closed tickets. I think the tickets as they are can contain useful information about how and where a consensus rule was implemented in addition to the documentation within the code. This will obviously only be valid for the NU5 network upgrade and I assume we'll do an audit before any new network upgrade is scheduled. |
All the sub-tickets in this ticket have been completed. |
TODO
Open a zcash/zips PR to split the spec section into multiple sub-sections. That way, there will be links to each sub-section, and the rules will be easier to find.
Tasks
For each consensus rule:
Split
Consensus rules
https://zips.z.cash/protocol/protocol.pdf#txnconsensus
Implementation
has_inputs_and_outputs
to check V5 transactions #2229transaction::check::sapling_balances_match
toV4
deserialization #2234transaction::check::coinbase_tx_no_joinsplit_or_spend
to validate V5 coinbase transactions with Orchard shielded data #2236The text was updated successfully, but these errors were encountered: