Overview
Discreet Log Contracts (DLCs) are a protocol for creating conditional payments on Bitcoin that depend on real-world events. Proposed by Tadge Dryja in 2018, DLCs use a clever combination of adaptor signatures and oracle attestations to enable financial contracts like bets, insurance, and derivatives -- all while keeping the contract terms private and the on-chain footprint minimal.
How It Works
A DLC involves three participants: two contracting parties (Alice and Bob) and an oracle that attests to real-world outcomes.
┌─────────┐ ┌─────────┐
│ Alice │◄──── Funding Transaction ───►│ Bob │
└────┬─────┘ (2-of-2 multisig) └────┬────┘
│ │
│ Pre-sign Contract Execution Txs │
│ for all possible outcomes │
│◄──────────────────────────────────────►│
│ │
│ ┌──────────┐ │
│ │ Oracle │ │
│ │ attests │ │
│ │ outcome │ │
│ └────┬─────┘ │
│ │ │
│ Oracle signature enables │
│ the correct CET to be broadcast │
└────────────────────────────────────────┘
- Setup: Alice and Bob agree on the contract terms and an oracle to use
- Funding: They create a 2-of-2 multisig funding transaction
- CETs: They pre-sign Contract Execution Transactions (CETs) for every possible outcome, using adaptor signatures locked to the oracle's anticipated attestation points
- Settlement: When the oracle publishes its attestation, the appropriate CET becomes spendable, and the winner can claim the funds
Privacy Properties
DLCs are remarkably private:
- The oracle does not know that a contract depends on its attestation
- On-chain, a DLC looks like an ordinary multisig transaction (especially with Taproot)
- Third parties cannot determine the contract terms from the blockchain
- The oracle never learns who is using its data or for what purpose
Use Cases
- Price bets: Wagering on the future price of bitcoin or other assets
- Insurance: Parametric insurance contracts that pay out based on verifiable events (weather, earthquakes)
- Futures and options: Synthetic financial derivatives settled in bitcoin
- Sports betting: Decentralized prediction markets
Limitations
- The number of possible outcomes must be enumerated upfront, which can be impractical for contracts with many possible values (though numeric decomposition techniques help)
- Oracle trust is still required for honest attestation, though the oracle cannot steal funds
- Interoperability between DLC implementations is still maturing