Make 3 unneeded PODTicket fields optional #2151
Open
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.
As discussed on Telegram, this removes 3 fields from PODTickets in order to get the size of Devcon tickets down to 16 entries. This makes them fit in circuits with a Merkle Depth 5, which is what we optimized for when creating our circuit family for Devcon.
The relevant fields (isRevoked, ticketCategory, timestampConsumed) are unused for Devcon and foreseen use cases, but have been present in tickets for a long time. The approach here is to make them optional at the PODTicket level, and avoid setting them in PODBox pipelines (PretixPipeline, CSVPipeline). This should be relatively safe, but could still break assumptions we're not aware of.
I haven't directly confirmed the new size of Devcon tickets, and the circuits used for ticket proofs. We should test that on staging before going forward.
For this change to be effective we need to push it to Zupass and also to the Devcon PODBox. I'm on the fence about whether or not to merge this, because of the risks. Here are some thoughts on the tradeoffs:
Downside of not merging:
Downside of merging: