Bitcoin has been critiqued by those in the altcoin community for the past few years over its inability to host smart contracts. But recent work from developers at Suredbits, Crypto Garage and Atomic Loans — along with efforts from some independent contributors — on Discreet Log Contracts (DLCs) is bringing smart contracting to Bitcoin and will quell some of these critics. DLCs are uniquely positioned to bring smart contracting to Bitcoin using oracle contracts that are much more private and scalable than previously thought possible.
What Are DLCs?
DLCs are Bitcoin-based contracts that use one or many oracle signatures for enforcement. The original proposal for DLCs was made by Tadge Dryja in 2017 and later redesigned to make them more scalable and private by using something called adaptor signatures. DLC oracle contracts allow for users to make a Bitcoin transaction contingent on an oracle’s signature. Using DLCs, Bitcoiners can make bets based on events to which the oracle is attesting. Last week, we saw one of the first of these done by Suredbits Founder Chris Stewart and creator of BTCPay Server Nicolas Dorier, betting on the result of the U.S. election.
After a recent DLC redesign, they were changed to use a 2-of-2 multisig that pays out directly to a user’s wallet instead of paying to a tweaked public key. This old design required a penalty mechanism similar to that of the Lightning Network, which made it take more block space and be less private. This redesign is made possible by using adaptor signatures and making the adaptor point based on the oracle’s expected signature. What this basically means is that each party gives each other invalid transaction signatures that can only be made valid in conjunction with the oracle signature.
To make this recent bet between Stewart and Dorier possible, a lot of progress has been made in developing a standard for DLCs as well as building software according to these standards. DLC developers have been working on this standard heavily since the beginning of this year. Along with this specification, they have been building compatible software; so far there are four major implementations being worked on: Bitcoin-S, NDLC, Rust-DLC and CFD-DLC.
The Future Of DLCs
The teams working on DLCs have lots of plans for the future of the technology. Today, DLCs have only been implemented for onchain transactions. One of the most obvious improvements for DLCs would be to put them on the Lightning Network!
There are two planned ways to put DLCs on Lightning. One is by making them only usable between parties who already have Lightning channels open between one another, which could be done today but would require a lot of work done by the different Lightning implementations to add support for DLCs.
And this could be obsoleted by the second way to do Lightning DLCs, however there are some caveats. This second way to do Lightning DLCs likely won’t be possible until after Taproot is activated, but it would allow these DLCs to be routed across a network and would remove the requirement to have a channel with a user’s counterparty, however this setup requires barrier escrows which have no known major implementations.
There are other general improvements to DLCs that can be made possible in the future as well. One major idea is to give the user the ability to use multiple oracles for a given contract instead of just one. This would allow users to distribute trust between multiple oracles, instead of having a single point of failure for their contracts.
And other small improvements can be made come Taproot! With Taproot, we can make multisig transactions look like everyday, single sig transactions. Applying this to DLCs, we can make them have a smaller on-chain footprint and make them look like any other standard single sig transaction, thus saving users on fees and privacy!
DLCs are a pivotal new way to bring smart contracting to Bitcoin and we are extremely excited to see continued development with them. If you are interested in knowing more about DLCs, check out Suredbits’s blog and if you want it come contribute checkout the DLC specification repo!
This is a guest post by Ben Carman, a developer with Suredbits. Opinions expressed are entirely his own and do not necessarily reflect those of BTC Inc or Bitcoin Magazine.