Introduce Schnorr signature
It's ready now.
Some preparation patches were landed: 6359ab083610744c35a0b53b10345513f9afb91e, 9a78f4561801b7bda73c215f49cc7e25daa58eac, c4f49a8366f7e3c2c039dc24df1e8840b2cd8a7c, 37a34b8f075a0f48f293de2b3b9929eb5e81ba84, 418d4721d874eaa6bf4dbb8981e9f5a74058f97d, 94ef1e634610947734100ffc79eef5db5a064baa, 0990b704e4d790816e6b9195c4271eb905ebbabd, 6e78e958dac62a16cf402d2e704086663ebdadf6
To-do
- [x] Read the issues in
libsecp256k1which are related to Schnorr signature. - [ ] Make a demo for Schnorr signature.
- [x] Implement Schnorr signature in the CodeChain primitives and the SDK.
Finished working on the primitives.
Finished working on CodeChain and the SDK. CodeChain: https://github.com/CodeChain-io/codechain/commits/schnorr codechain-sdk-js: https://github.com/codechain-io/codechain-sdk-js/tree/schnorr codechain-keystore-js: https://github.com/CodeChain-io/codechain-keystore-js/tree/schnorr
Might need to change the code of libsecp256k1. See https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki#cite_note-4, the current code uses the option 2.
@jhs7jhs What is the current status of this issue? Is there something to do?
@sgkim126 Currently the basic implementation is finished, but it's based on the experimental part of the old version of the bitcoin library, so it is quite dangerous to merge. Also, MuSig signing is not supported yet and needs to be implemented.