You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3168b08 Bench test for EllSwift ECDH (Pieter Wuille)
42d759f Bench tests for CKey->EllSwift (dhruv)
2e5a8a4 Fuzz test for Ellswift ECDH (dhruv)
c3ac9f5 Fuzz test for CKey->EllSwift->CPubKey creation/decoding (dhruv)
aae432a Unit test for ellswift creation/decoding roundtrip (dhruv)
eff72a0 Add ElligatorSwift key creation and ECDH logic (Pieter Wuille)
42239f8 Enable ellswift module in libsecp256k1 (dhruv)
901336e Squashed 'src/secp256k1/' changes from 4258c54f4e..705ce7ed8c (Pieter Wuille)
Pull request description:
This replaces #23432 and part of #23561.
This PR introduces all of the ElligatorSwift-related changes (libsecp256k1 updates, generation, decoding, ECDH, tests, fuzzing, benchmarks) needed for BIP324.
ElligatorSwift is a special 64-byte encoding format for public keys introduced in libsecp256k1 in bitcoin-core/secp256k1#1129. It has the property that *every* 64-byte array is a valid encoding for some public key, and every key has approximately $2^{256}$ encodings. Furthermore, it is possible to efficiently generate a uniformly random encoding for a given public key or private key. This is used for the key exchange phase in BIP324, to achieve a byte stream that is entirely pseudorandom, even before the shared encryption key is established.
ACKs for top commit:
instagibbs:
reACK bitcoin/bitcoin@3168b08
achow101:
ACK 3168b08
theStack:
re-ACK 3168b08
Tree-SHA512: 308ac3d33e9a2deecb65826cbf0390480a38de201918429c35c796f3421cdf94c5501d027a043ae8f012cfaa0584656da1de6393bfba3532ab4c20f9533f06a6
0 commit comments