Scaling DLC Part1: Off-chain Discreet Log Contracts

Ichiro Kuwahara
Crypto Garage
Published in
3 min readApr 30, 2020

Paper:Discreet Log Contracts Channels and Integration in the Lightning Network
Scaling DLC series:
Scaling DLC Part1: Off-chain Discreet Log Contracts -this post
Scaling DLC Part2:
Free option problem with DLC
Scaling DLC Part3:
How to avoid free option problem with DLC
Scaling DLC Part4:
Integrating DLC channels in the Lightning Network

Crypto Garage is working on the development of the P2P Derivatives project that aims at developing a platform for peer-to-peer financial contracts based on Discreet Log Contracts initially proposed by Tadge Dryja from MIT Digital Currency Initiatives. We previously executed DLC with Blockstream and Skew. We are also working on DLC Specifications with Suredbits and other great developers.

DLC enables two parties to establish a financial contract using the Bitcoin blockchain and an oracle, but without having to reveal the existence of the contract to the oracle. One of the challenges of any blockchain based system is scalability, so reducing the amount of on-chain transactions is always desired. This also has the advantage of reducing the cost for the participants. We just made available a paper proposing a mechanism for updating DLC off-chain (that we call DLC channels) and an approach for integrating them in the Lightning Network. In this series of posts I will provide an overview of the solutions described in this paper.

Figure 1. DLC Transactions

Once a DLC expires, if both parties wish to re-establish a DLC together, they need to first close the initial one before opening a new one. This is wasteful as it requires at the minimum two extra on-chain transactions (one for mutual closing, and a new Funding Transaction).

So when two parties execute two consecutive contracts, a total of 4 transactions will be broadcast on-chain, as shown in the Figure 2 below.

Figure 2. Consecutive contracts on DLC

So one would like to have a way to have actual DLC channels, where two parties can keep establishing contracts as long as the balance in the channel allows it, as illustrated in Figure 3 below.

Figure 3. Consecutive contracts on DLC channels

Creating such channels is less trivial than it may seem at first glance, as one tricky part is to ensure that no party can ever have the possibility of both enforcing the outcome of a previous contract or that of the latest contract (so they could pick the most favorable to them). We refer to this issue as the “free option” problem hereafter, but it shouldn’t be confused with the free option problem of atomic swaps.

In the next post, I will explain the free option problem with DLC.

--

--