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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions