Covenants: wat is OP_CAT?

De laatste tijd wordt er veel gesproken over OP_CAT. Deze voorgestelde opcode breidt de functionaliteit van bitcoin smart contracts aanzienlijk uit, waardoor bitcoin kan opschalen en er allerlei nieuwe mogelijkheden ontstaan voor DeFi, sidechains en tokens. Toch zijn niet alle ontwikkelaars even enthousiast. In dit artikel leggen we uit wat OP_CAT is en waar de discussie over gaat. 

De transactiesnelheid van bitcoin is op de basislaag slechts enkele transacties per seconde en dat is onvoldoende om als betaalmiddel te dienen voor honderden miljoenen mensen wereldwijd. 

Het Lightning Network biedt tot op zekere hoogte een oplossing omdat daarmee transacties off-chain plaatsvinden, maar ook dat loopt tegen schaalbaarheidsproblemen op wanneer miljoenen mensen tegelijkertijd via on-chain transacties betaalkanalen openen en sluiten. 

Om verder op te schalen is er dus iets anders nodig. Iets waardoor ondanks de beperkte transactiecapaciteit toch meer mensen gelijktijdig gebruik kunnen maken van het netwerk. 

Covenants 

Een mogelijke oplossing zijn covenants. In de context van bitcoin kunnen covenants geïnterpreteerd worden als functionaliteit voor smart contracts, waarmee voorafgaand vastgelegd wordt onder welke beperkte voorwaarden bitcoins besteed kunnen worden. 

Zo kan je met covenants vastleggen dat een transactie alleen mogelijk is naar bepaalde bitcoinadressen, of alleen wanneer een bepaalde tijd is verstreken of wanneer goedkeuring van meerdere partijen is verkregen. Het schept bijvoorbeeld de mogelijkheid tot escrow-diensten, periodieke betalingen, gelimiteerde betalingen en meer complexe multi-signature transacties. 

Ook kunnen tweedelaags schaalbaarheidsoplossingen gemaakt worden, waarbij meerdere partijen een enkele UTXO delen en deelnemers off-chain transacties uitvoeren, bijvoorbeeld met 'virtuele UTXO's'. Dat opent de deur naar mogelijkheden om op een vertrouwensloze manier met meerdere mensen een enkele bitcointransactie te delen. 

Opcodes

Covenants zijn een abstract theoretisch concept, met in de praktijk diverse manieren waarop ze geïmplementeerd kunnen worden. Op dit moment zijn er verschillende voorstellen om  opcodes opcodes Een opcode is een algemene naam voor een instructie in bitcoin script om een bepaalde operatie uit te voeren. Een eenvoudig voorbeeld is de opcode OP_CHECKSIG, waarmee te controleren is of een ondertekening geldig is.  toe te voegen waarmee ze mogelijk worden, zoals OP_TXHASH, SIGHASH_ANYPREVOUT, OP_CHECKSIGFROMSTACK, OP_VAULT, OP_CHECKTEMPLATEVERIFY en OP_CAT

Vooral OP_CAT staat sinds enige tijd in de schijnwerpers. Voorstanders laten op social media luid van zich horen via allerlei katten-memes en onlangs sprak ook Blockstream Director of Research Andrew Poelstra zich positief uit over het voorstel. Maar wat is OP_CAT nou eigenlijk? 

Bitonic app: de eenvoudigste manier om bitcoin te kopen, verkopen of bewaren. Alles op één plek.

OP_CAT 

OP_CAT heeft in ieder geval niets met katten te maken. In dit geval is 'cat' een afgekorte versie van 'concatenate', wat 'samenvoegen' betekent. Dat is ook eigenlijk het enige wat OP_CAT doet: het schept de mogelijkheid om twee stukjes data samen te voegen tot één stukje data. 

OP_CAT is bedrieglijk simpel. Het vereist slechts enkele regels code om te implementeren. Toch is het in combinatie met bestaande opcodes en slimme programmeertrucs mogelijk om met OP_CAT allerlei wiskundige functies na te bootsen. Met de reeds aanwezige mogelijkheden van Schnorr Signatures en Taproot is het bovendien mogelijk om complete merkle trees in de data te verstoppen, waarmee vervolgens gerekend kan worden. 

OP_CAT is ondanks de eenvoud dus ontzettend krachtig en veelzijdig. Het opent niet alleen de deuren voor covenants, maar ook voor allerlei andere complexe toepassingen. Voorstanders zien met OP_CAT bijvoorbeeld allerlei manieren om uitgebreide smart contracts te programmeren voor DeFi, sidechains en token-projecten. 


Boven: Andrew Poelstra licht zijn visie op OP_CAT toe tijdens The Bitcoin Layer

Kritiek 

Toch is niet iedereen even enthousiast. Het is namelijk moeilijk te voorspellen welke gevolgen OP_CAT kan hebben. 

Toen Taproot werd ingevoerd, had men immers ook niet zien aankomen dat het later tot hogere fees zou leiden omdat men het zou gebruiken om tokens te lanceren en plaatjes als NFTs op de blockchain vast te leggen. De veelzijdigheid van OP_CAT maakt het eveneens moeilijk te overzien wat de uiteindelijke gevolgen zijn, vooral wanneer er in de toekomst nieuwe upgrades bij komen die de mogelijkheden verder uitbreiden. 

Sommigen pleiten er daarom voor om voorzichtig te zijn en bitcoin zo eenvoudig mogelijk te houden, zodat de kernfunctie niet verloren gaat. Concurrerende voorstellen die covenants mogelijk maken en minder veelzijdig inzetbaar zijn zouden volgens hen beter en veiliger zijn, onder andere omdat dat voorkomt dat er ongewenste toepassingen met nadelige gevolgen ontstaan. 

Onderliggend lijkt er ook een ideologische strijd te broeien. Met aan de ene kant een groep die bitcoin vooral verder wil ontplooien als decentraal netwerk voor allerlei digitale activiteiten, terwijl een andere groep bitcoin voornamelijk wil ontplooien als monetair netwerk voor betalingen, waarbij geen plaats is voor 'plaatjes op de blockchain'. Daarnaast is er nog een derde groep 'ossificiationists' die bitcoin het liefst helemaal niet ziet veranderen, omdat het volgens hen nu al prima functioneert als 'digitaal goud'. 

BIP-347

De discussie over OP_CAT is nog lang niet beslecht en komt nu pas echt op gang. Voorstanders uit de 'Taproot Wizards'-groep publiceerden eerder al een voorstel voor OP_CAT, zelfbenoemd tot BIP-420 (een knipoog naar de jaarlijkse 420-viering).  

Inmiddels is echter ook een officieel BIP-nummer toegekend, namelijk BIP-347. De komende periode wordt onder dat nummer verder gediscussieerd over de voor- en nadelen en de wenselijkheid van OP_CAT. 


Lees ook eens over de tweedelaags schaalbaarheidsoplossing het Ark protocol.

Belangrijke thema’s in dit artikel. Klik op een thema en ontdek meer.