Skip to content

Conversation

Faedon
Copy link
Collaborator

@Faedon Faedon commented Feb 26, 2025

The privateMint function in the EncryptedERC contract, despite being restricted to the owner, allows the reuse of zero-knowledge proofs which affects the intended auditor control mechanism. While the mint circuit (mint_circuit.go) verifies the auditor's encryption and approval of the mint amount, the current implementation does not prevent the same proof from being used multiple times.

This implementation allows the owner to:

Mint multiple times using a single auditor approval

Exceed the auditor-approved mint amount

Operate beyond the scope of auditor oversight

The issue is compounded by proof malleability, where manipulating the y-coordinates of the proof points can create multiple valid variations of the same proof.

@Faedon Faedon added the enhancement New feature or request label Feb 26, 2025
@Faedon Faedon force-pushed the hexens-proof-reuse-private-mint branch from 75b2c6c to dca61b4 Compare March 11, 2025 10:00
@Faedon Faedon merged commit afe9213 into main Mar 11, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants