Subject: Re: [bitcoin-dev] CTV BIP Meeting #8 Notes

From: ZmnSCPxj <[email-masked]>
Date: Sat, 07 May 2022 22:40:10 +0000

Good morning Jorge,

> I think people may be scared of potential attacks based on covenants. For example, visacoin.
> But there was a thread with ideas of possible attacks based on covenants.
> To me the most scary one is visacoin, specially seeing what happened in canada and other places lately and the general censorship in the west, the supposed war on "misinformation" going on (really a war against truth imo, but whatever) it's getting really scary. But perhaps someone else can be more scared about a covenant to add demurrage fees to coins or something, I don't know.
> https://bitcointalk.org/index.php?topic=278122

This requires *recursive* covenants.

At the time the post was made, no distinction was seen between recursive and non-recursive covenants, which is why the post points out that covenants suck.
The idea then was that anything powerful enough to provide covenants would also be powerful enough to provide *recursive* covenants, so there was no distinction made between recursive and non-recursive covenants (the latter was thought to be impossible).

However, `OP_CTV` turns out to enable sort-of covenants, but by construction *cannot* provide recursion.
It is just barely powerful enough to make a covenant, but not powerful enough to make *recursive* covenants.

That is why today we distinguish between recursive and non-recursive covenant opcodes, because we now have opcode designs that provides non-recursive covenants (when previously it was thought all covenant opcodes would provide recursion).

`visacoin` can only work as a recursive covenant, thus it is not possible to use `OP_CTV` to implement `visacoin`, regardless of your political views.

(I was also misinformed in the past and ignored `OP_CTV` since I thought that, like all the other covenant opcodes, it would enable recursive covenants.)

Regards,
ZmnSCPxj