OpenZeppelin / OpenZeppelin/compact-contracts
Add batch outputs to the note token core
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 55
- Forks
- 29
- Avg merge
- 5d 7h
- Merged PRs (30d)
- 25
Description
🧐 Motivation
Paying N recipients currently costs N proofs and N transactions. Batching also reduces transaction-shape leakage, since a fixed output count stops the shape from distinguishing a plain payment from a split.
📝 Details
- One proof, one nullifier, N+1 commitments (N outputs plus change).
- Compile-time variant on the core: in ZK an unused output still pays its constraints, so the count cannot be a runtime flag.
- Interacts with multi-input spend — decide the padded
(inputs, outputs)shapes together.
Planned, not in #679 (confidential-note-token.md §0).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with confidential-note-token.md §0 and issue #679 to understand the planned note-token core and existing exclusions. Resolve the compile-time output-count and multi-input shape decisions described here, then define the corresponding proof, nullifier, commitment, and change behavior before implementation can be considered complete.
Written by the indexing model from the issue text.
Assessment
- Domain
- blockchain, cryptography
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100