1
0
mirror of https://github.com/bitcoin/bips.git synced 2025-05-12 12:03:29 +00:00

Clarify restraints on given points

This commit is contained in:
Andrew Toth 2024-12-26 14:16:57 -05:00
parent 9d6dc6b681
commit 1842120907
No known key found for this signature in database
GPG Key ID: 60007AFC8938B018

View File

@ -18,7 +18,7 @@
=== Abstract === === Abstract ===
This document proposes a standard for 64-byte zero-knowledge ''discrete logarithm equality proofs'' (DLEQ proofs) over an elliptic curve. For given elliptic curve points ''A'', ''B'', ''C'', and ''G'', the prover proves knowledge of a scalar ''a'' such that ''A = a⋅G'' and ''C = a⋅B'' without revealing anything about ''a''. This can, for instance, be useful in ECDH: if ''A'' and ''B'' are ECDH public keys, and ''C'' is their ECDH shared secret computed as ''C = a⋅B'', the proof establishes that the same secret key ''a'' is used for generating both ''A'' and ''C'' without revealing ''a''. This document proposes a standard for 64-byte zero-knowledge ''discrete logarithm equality proofs'' (DLEQ proofs) over an elliptic curve. For given elliptic curve points ''A'', ''B'', ''C'', ''G'', and a scalar ''a'' known on ly to the prover where ''A = a⋅G'' and ''C = a⋅B'', the prover proves knowledge of ''a'' without revealing anything about ''a''. This can, for instance, be useful in ECDH: if ''A'' and ''B'' are ECDH public keys, and ''C'' is their ECDH shared secret computed as ''C = a⋅B'', the proof establishes that the same secret key ''a'' is used for generating both ''A'' and ''C'' without revealing ''a''.
=== Copyright === === Copyright ===
@ -115,8 +115,8 @@ This proposal is compatible with all older clients.
== Test Vectors and Reference Code == == Test Vectors and Reference Code ==
A reference python implementation is included [./bip-DLEQ/reference.py here]. A reference python implementation is included [./bip-0374/reference.py here].
Test vectors can be generated by running `./bip-DLEQ/gen_test_vectors.py` which will produce a CSV file of random test vectors for both generating and verifying proofs. These can be run against the reference implementation with `./bip-DLEQ/run_test_vectors.py`. Test vectors can be generated by running `./bip-0374/gen_test_vectors.py` which will produce a CSV file of random test vectors for both generating and verifying proofs. These can be run against the reference implementation with `./bip-0374/run_test_vectors.py`.
== Footnotes == == Footnotes ==