mirror of
https://github.com/bitcoin/bips.git
synced 2026-11-02 19:41:29 +00:00
bip374: justify G as input with a better reasoning
This commit is contained in:
1 file changed
+3
-3
+3
-3
@@ -64,7 +64,7 @@ Input:
|
||||
* The secret key ''a'': a 256-bit unsigned integer
|
||||
* The public key ''B'': a point on the curve
|
||||
* Auxiliary random data ''r'': a 32-byte array<ref name="why_include_auxiliary_random_data"> ''' Why include auxiliary random data?''' The auxiliary random data should be set to fresh randomness for each proof. The same rationale and recommendations from [https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#default-signing BIP340] should be applied.</ref>
|
||||
* The generator point ''G'': a point on the curve<ref name="why_include_G"> ''' Why include the generator point G as an input?''' 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.</ref>
|
||||
* The generator point ''G'': a point on the curve<ref name="why_include_G"> ''' Why include the generator point G as an input?''' While all other BIPs have used the generator point from secp256k1, passing it as an input here lets this algorithm be used for other generators on secp256k1.</ref>
|
||||
* An optional message ''m'': a 32-byte array<ref name="why_include_a_message"> ''' Why include a message as an input?''' This could be useful for protocols that want to authorize on a compound statement, not just knowledge of a scalar. This allows the protocol to combine knowledge of the scalar and the statement.</ref>
|
||||
|
||||
The algorithm ''GenerateProof(a, B, r, G, m)'' is defined as:
|
||||
@@ -94,8 +94,8 @@ Input:
|
||||
* The public key used in the proof generation ''B'': a point on the curve
|
||||
* The result of multiplying the secret and public keys used in the proof generation ''C'': a point on the curve
|
||||
* A proof ''proof'': a 64-byte array
|
||||
* The generator point used in the proof generation ''G'': a point on the curve<ref name="why_include_G"> ''' Why include the generator point G as an input?''' 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.</ref>
|
||||
* An optional message ''m'': a 32-byte array<ref name="why_include_a_message"> ''' Why include a message as an input?''' This could be useful for protocols that want to authorize on a compound statement, not just knowledge of a scalar. This allows the protocol to combine knowledge of the scalar and the statement.</ref>
|
||||
* The generator point used in the proof generation ''G'': a point on the curve<ref name="why_include_G" />
|
||||
* An optional message ''m'': a 32-byte array<ref name="why_include_a_message" />
|
||||
|
||||
The algorithm ''VerifyProof(A, B, C, proof, G, m)'' is defined as:
|
||||
* Fail if any of ''is_infinite(A)'', ''is_infinite(B)'', ''is_infinite(C)'', ''is_infinite(G)''
|
||||
|
||||
Reference in new issue
Block a user