This PR adds a DLEQ (Discrete Logarithm Equality) proof module as specified in BIP 374.
Based on PR [#1651](/bitcoin-core-secp256k1/1651/) by @stratospher and the secp256k1-zkp implementation.
Public API
Exposes two functions for proof generation and verification:
secp256k1_dleq_provesecp256k1_dleq_verify
These are designed to support rust FFI bindings and follow the API patterns established in similar modules.
Questions for Reviewers
- Should this module be optional (current behavior) or enabled by default?
- Are there additional changes needed to support existing Silent Payments PRs?
- Feedback on API design, documentation, and test coverage?
Notes
Addressed outstanding comments from PR [#1651](/bitcoin-core-secp256k1/1651/):
- BIP-374 v0.2.0 test vectors
- Proper memory clearing with memclear