Discrete Log Contract primitives shall be added according to the general design outlined here: https://talk.peercoin.net/t/atomic-dlcs-with-distributed-oracles/16641 The following tasks need to be completed: - [x] Move to a library such as secp256k1-zkp that supports adaptor signatures with MuSig2. - [ ] Ensure new library is working on Windows: https://github.com/peercoin/coinlib/issues/37 - [x] Wire underlying MuSig2 functions and create MuSig2 abstraction with adaptor support. - [x] Write class to specify DLC contract terms. DLCs should use a versioned protocol to allow future upgrades. - [x] Write class for handling DLC state with serialisation so DLC data can be shared between counterparties. - [x] Create MuSig2 key for funding DLC. - [x] Create Taproot MAST structure with APO path. - [x] Add CET (Contract Execution Transaction) using adaptor signatures. - [x] Add RT (Refund Transaction). - [ ] Add FT (Funding Transaction). - [ ] Allow key-path settlement. (Maybe in a future version) - [ ] CET completion via adaptor-signature decryption. - [ ] Unit testing - [ ] Testnet example
Discrete Log Contract primitives shall be added according to the general design outlined here: https://talk.peercoin.net/t/atomic-dlcs-with-distributed-oracles/16641
The following tasks need to be completed: