Discreet Log Contracts (DLC): smart contracts op de Bitcoin blockchain

1161 totale weergaven

Bitcoin krijgt wel eens het verwijt dat het niet programmeerbaar genoeg is. Het argument is dan: “Je moet kiezen voor Ethereum, want die hebben decentralzed finance (DeFi).” Dat is echter een onjuiste redenering. Want waar je het Lightning Network kunt zien als DeFi, en ook Taproot deuren opent voor nieuwe ‘betaal-constructies’, kun je ook Discreet Log Contracts (DLC’s) onder deze groep scharen.

Wat kun je met deze met deze tool bouwen op bitcoin?

Koop gemakkelijk en snel Bitcoin bij Bitvavo. Ga aan de slag en betaal geen handelskosten voor je eerste aankoop tot €1.000 !

Discreet Log Contracts

Verschillende ontwikkelaars begonnen in januari 2020 aan een specificatie voor het gebruik van Discreet Log Contracts, want dat is DLC voluit geschreven.

Een Discreet Log Contract is een bepaald type smart contract. Je gebruikt daarbij data uit de real-time wereld met een oracle om een contract te laten uitvoeren. Je kunt op deze manier op een decentrale en automatische manier geld inzetten op bijvoorbeeld voetbalwedstrijden, verkiezingen of andere uitslagen.

Nadat het evenement heeft plaatsgevonden, publiceert het oracle een commitment over de uitkomst van het evenement wat de winnende partij kan gebruiken om hun geld op te eisen. Dit soort transacties zouden zelfs bínnen een Lightning betaalkanaal kunnen plaatsvinden.

Contract met waarde

Simpel gezegd is een discreet log contract een digitale afspraak waarin monetaire waarde zit opgesloten. Bij het vaststellen en opstellen van een DLC maakt een derde partij de uitkomst bekend over het geld dat hierin zit opgesloten, en zo wordt deze waarde verdeeld. De blockchain verhult vervolgens de exacte voorwaarden van het contract.

Thaddeus Dryja stelde dit concept aanvankelijk voor in het MIT Digital Currency Initiative. Hij was ook de auteur van de whitepaper van het Lightning Netwerk. Je zou ook paralellen kunnen zien tussen Lightning en DLC: je sluit een bepaalde hoeveelheid sats op (in een betaalkanaal en/of DLC) om vervolgens de waarde te toedienen.

Hoe gaat zoiets in z’n werk? Om te beginnen, moeten beide partijen van een DLC eerst afspreken dat ze samen een contract willen aangaan en het eens zijn met de voorwaarden ervan. Omdat het contract vaak een bepaalde uitkomst in de toekomst als kantelpunt gebruikt, creëren beide partijen een aantal transacties. De derde partij (of het oracle) bepaalt dan welke van deze betalingen wordt uitgezonden naar het netwerk van miners en nodes.

Future contracten

Een leuk voorbeeld is om een ‘decentraal’ future contract op te stellen. Doorgaans ga je voor deze future contracten naar een beurs toe, zoals Deribit of de CME. Maar dit kan ook met een DLC. Neem Alice en Bob in gedachten, twee mensen die samen willen speculeren op de toekomstige prijs van bitcoin op een bepaalde datum.

Vervolgens publiceert een oracle van een derde partij, bijvoorbeeld van een index van de prijs, informatie over de ontwikkeling van de koers van Bitcoin. Bekende indices zijn de CME CF Bitcoin Reference Rate (BRR) of de CME CF Bitcoin Real-Time Index (BRTI). Je zou dit kunnen zien als een mandje prijzen van spotmarkten van verschillende beurzen, locaties en dergelijke. Samen vormen ze één prijs, die gebruikt wordt in het futurecontract.

Door multi-sig-outputs te gebruiken, kunnen de details van hun contract worden gemaskeerd voor de blockchain. In het contract zitten dan de toegezegde fondsen van zowel Alice als Bob opgesloten.

Discreet Log Contracts (DLC): smart contracts op de Bitcoin blockchain

Als je zelf aan de slag wilt met DLC’s, kun je terecht bij MIT DCI. Zij hebben libraries en tutorials gemaakt voor Go, NodeJS en .NET Core. In de paper van Dryja staat ook uitgelegd hoe dit er technisch uit ziet.

SuredBits laat in een afbeelding zien hoe dit er op de blockchain uit komt te zien: inputs met een bepaalde waarde aan sats en nieuwe outputs die evenveel sats waard zijn, maar waarvan de verdeling is gemaakt door het oracle.

Discreet Log Contracts (DLC): smart contracts op de Bitcoin blockchain

Deze DLC’s hebben wat dat betreft een kleine (extra!) impact op de blockchain. Daarnaast zijn de contracten ook nagenoeg privaat, helemaal na de komst van Taproot.

Finance op de blockchain

Het is van belang dat deze oracle dit hele proces geen idee heeft van wat Alice en Bob graag zien gebeuren, wat betreft de prijs. Anders zouden contracten gemanipuleerd kunnen worden met foute data. Taproot kan hier een grote stap bij zetten, wat door Schnorr signatures en MAST de structuur van een contract maskeerd.

Bij dit model móét je dus wel vertrouwen op een derde partij. Dat is inherent aan een DLC. Tegelijkertijd is het wél DeFi. De finance wordt decentraal op de blockchain uitgevoerd, zonder centrale partij die hier wat over in de melk te brokkelen heeft.

In theorie kun je deze DLC’s ook in sub-channels op het Lightning Netwerk laten uitvoeren. Je kunt zo een contract opstellen over de manier waarop de balans bínnen een betaalkanaal wordt verdeeld. Op deze manier vervuil of belast je de blockchain niet met on-chain betalingen. De voorwaarde hierbij is dan wel dat beide partijen online zijn en de resultaten van het contract erkennen, voordat de saldi worden bijgewerkt.

Toepassingen

De toepassingen gaan natuurlijk veel verder dan future contracten op basis van de Bitcoin prijs. Ter voorbeeld kun je ook denken aan:

  1. Twee partijen willen inzetten op Feyenoord-Ajax, waarbij de KNVB fungeert als derde partij.
  2. Donald en Joe willen inzetten op de Amerikaanse verkiezingen, waarbij het senaat fungeert als oracle.
  3. Gerrit en Marco willen een gokje wagen over wel of geen regen op 4 december, waarbij het KNMI uitsluitsel geeft. 
  4. Jan is van mening dat Bitcoin op 1 januari 2022 de $100.000 bereikt, en wil daar voor $500 een gokje op wagen met Janette, die denkt dat de prijs lager zal zijn. De data van de beurs Kraken kan daarbij de oracle zijn.

In al deze gevallen kan de derde partij het geld niet afpakken, maar slechts een signaal geven bij uitslagen die nodig zijn. Het kan niet gemanipuleerd een kant kiezen (want het contract is privaat) en het doet zijn werk zoals het hoort.

Wil je meepraten over de ontwikkelingen of heb je vragen? Kom dan eens langs in onze Telegram chat!

Lees meer over:
BTCsmart contracts