Skip to content

Add Discrete Log Contract Primitives #36

@MatthewLM

Description

@MatthewLM

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:

  • Move to a library such as secp256k1-zkp that supports adaptor signatures with MuSig2.
  • Ensure new library is working on Windows: Test Windows library changes #37
  • Wire underlying MuSig2 functions and create MuSig2 abstraction with adaptor support.
  • Write class to specify DLC contract terms. DLCs should use a versioned protocol to allow future upgrades.
  • Write class for handling DLC state with serialisation so DLC data can be shared between counterparties.
  • Create MuSig2 key for funding DLC.
  • Create Taproot MAST structure with APO path.
  • Add CET (Contract Execution Transaction) using adaptor signatures.
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions