Add total public excess to Schnorr challenge #1423
Labels
consensus breaking
Use for issues or PRs that will break consensus and force a hard fork
enhancement
must-have
Required for the associated milestone
Milestone
Currently a kernel signature is defined as the pair
(s,kG)
, wheres=k+ex
, withk
a nonce andx
the (secret) excess. The challengee
is defined ase=SHA256(kG|M)
. To conform to BIP-schnorr (#1294 and here under "key prefixing") and enable features such as atomic swaps, I propose we modify the challenge toDoing so will tie the signature to the excess, meaning the same signature for excess
x
can't be used to sign a kernel with excessx'=x+a
.I am preparing a PR for the grin fork of libsecp256k1, so that the aggsig module can support both types of challenges. If others agree that this change should be implemented, changes to rust-secp256k1-zkp and grin are necessary as well.
Enabling this feature on T3 will require a hardfork. We might want to consider doing this (together with some other improvements), also to gain some experience in doing hardforks before mainnet launch.
Any comments/suggestions are welcome!
The text was updated successfully, but these errors were encountered: