BIP374: clarify why G is an input and fix wording nits #2334

pull ViniciusCestarii wants to merge 2 commits into bitcoin:master from ViniciusCestarii:bip-0374-wording-nits changing 1 files +4 −4
  1. ViniciusCestarii commented at 1:30 PM on October 20, 2026: contributor

    While reading BIP 374 I doubted the footnote for why include G ("While all other BIPs have used the generator point from secp256k1, passing it as an input here lets this algorithm be used for other curves") because for it to be able to support other curves it would need more parameters such as the group order.

    Looking at the original comment that suggested it, it was about supporting other bases in secp256k1 and not other curves.

    This clarifies the footnote and also fix some other small nits.

    cc @andrewtoth @RubenSomsen @theStack

  2. bip374: justify G as input with a better reasoning e80c8549a1
  3. fametrano commented at 4:53 PM on October 20, 2026: contributor

    Concept ACK on the footnote fix. "Other curves" was wrong: BIP374 takes its notation from BIP327, which fixes secp256k1 and its order n, and n is not an input, so G is the only curve parameter that can change. The rewritten verification sentence, with A = a⋅G and C = a⋅B, is also clearer.

  4. bip374: clarify DLEQ verification wording af1e6e27c7
  5. in bip-0374.mediawiki:110 in ed5e2ef061
     106 | @@ -107,7 +107,7 @@ The algorithm ''VerifyProof(A, B, C, proof, G, m)'' is defined as:
     107 |  * Fail if ''is_infinite(R<sub>2</sub>)''.
     108 |  * Let ''m' = m if m is provided, otherwise an empty byte array''.
     109 |  * Fail if ''e ≠ int(hash<sub>BIP0374/challenge</sub>(cbytes(A) || cbytes(B) || cbytes(C) || cbytes(G) || cbytes(R<sub>1</sub>) || cbytes(R<sub>2</sub>) || m')) mod n''.
     110 | -* Return success iff no failure occurred before reaching this point.
     111 | +* Return success if no failure occurred before reaching this point.
    


    fametrano commented at 4:53 PM on October 20, 2026:

    Nit: I'd keep "iff" here, which means "if and only if" and matches BIP340's identical line. With the "Fail if" steps above, both words give the same result, so this is only about consistency.

    * Return success iff no failure occurred before reaching this point.
    

    ViniciusCestarii commented at 5:06 PM on October 20, 2026:

    Thanks! lol I thought it was a typo. Updated on af1e6e27c772310c642cfff80c4f04b58b63a439

  6. ViniciusCestarii force-pushed on Oct 20, 2026
  7. fametrano commented at 8:15 PM on October 20, 2026: contributor

    ACK af1e6e27c772310c642cfff80c4f04b58b63a439. The force-push since my Concept ACK only restores "iff" at line 110, so that review holds at this head.

  8. theStack approved
  9. theStack commented at 3:34 AM on October 22, 2026: contributor

    ACK af1e6e27c772310c642cfff80c4f04b58b63a439

    Thanks!

  10. jonatack added the label Proposed BIP modification on Oct 22, 2026
  11. jonatack merged this on Oct 22, 2026
  12. jonatack closed this on Oct 22, 2026


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bips. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-10-22 15:10 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me