Post
Topic
Board Development & Technical Discussion
Re: Bip 119 conventant script rules are reinforced on l1 or upper layers?
by
Carlton Banks
on 30/04/2022, 17:58:55 UTC
Do you have a link to these discussions?

i'll look, can't remember who said it, but it was a recent bitcoin-dev post


The last time I read about recursive covenants on the mailing list was here: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-February/019885.html. The general outcome was not that they can't happen, but rather that there were no strong reasons against them (which I'm not sure I agree with, but I definitely don't know enough about the wider situation yet).

yeah, the claim is not that "they can't happen", but instead that "OP_CTV does not enable" them




the boat sailed on the "infinite covenant" issue quite a while ago, to wit:

Imagine a dastardly bully (let's arbitrarily give him the name G. Ment) forces you to send your BTC to a 2 of 2, 1 key yours and the other his. He can force you to always construct transactions that pay the change in any transaction to an address with exactly the same multisig; 2 of 2, 1 key yours, 1 his.

That scheme achieves the exact same outcome that bothers some people about infinite covenants, so we've been living with such a possibility since multisig (i think it was BIP34) was introduced, way back in 2011. And I think that "bare" multisig was even possible since the earliest or even the very first version of Bitcoin.


The only thing covenants do to make change the situation is to remove the key exchange: with the above scheme, we need to ask G. Ment for his address to compute the next multisig in the sequence. That negotiation is not in the Bitcoin protocol, so it would be a clunky setup. With covenants, restricting where you can spend money to would be enforced by the script, not overall the sig validation, and so the multisig is not even necessary. Bitcoin nodes would reject the transaction as invalid, same outcome.


But don't worry.

1. Don't enter into such schemes to begin with
2. Don't trade with people that do

To help with point 2, simply use the blockchain to trace if people you traded with go on to put the money you gave them into such covenants. To be extra tough, start doing this twice or even thrice removed ("you're trading with some other clown who burned perfectly good BTC in a covenant! Begone!")