Published on: 2022-05-12T17:28:39+00:00
In a recent discussion on the Bitcoin development mailing list, it was clarified that recursive covenants do not guarantee any specific outcome in the future. Both recursive and non-recursive covenant opcodes can be used to ensure something will happen, but there is always the possibility of alternative spend paths. A covenant is not just a promise, but also a restriction. Recursive covenants allow for loops in the progression through covenant addresses, enabling infinite recursion and the creation of permanent walled gardens. However, it is important to note that the way covenants are discussed does not always reflect what a particular covenant opcode does, but rather the boundaries of what can be done with it.The distinction between recursive and non-recursive covenants is further elaborated by ZmnSCPxj in response to Jorge's confusion. A covenant is essentially a promise of something happening in the future, while a recursive covenant guarantees that the same thing will happen again in the future. Non-recursive covenants, on the other hand, can also be useful, as they serve their purpose efficiently without relying on recursion. For example, the `OP_EVICT` opcode is designed for a specific use-case and avoids recursion. In different situations, both types of covenants have their importance.The discussion on the bitcoin-dev mailing list revolves around the feasibility and potential use cases of covenants. While the concept of creating walled gardens, such as Visacoin, raises concerns about censorship, it is noted that multisig wallets can achieve similar results without the need for recursive covenants. The conversation also highlights the ability of well-implemented covenant contracts to allow receivers to specify spend conditions, avoiding the receipt of restricted coins. It is argued that dynamic covenants enable more secure wallet vaults and that practical use cases of walled gardens require this dynamicness rather than recursion. The OP_CTV opcode is mentioned as a means of providing non-recursive covenants, and it is emphasized that no combination of future opcodes can enable recursion or dynamicness to an OP_CTV call. The discussion concludes by acknowledging the different possibilities and limitations of covenants in the Bitcoin ecosystem.In relation to potential attacks based on covenants, the discussion explores the idea of governments mandating certain spend conditions for Bitcoin. It is argued that this would require a law to force the acceptance of these conditions for services. To defend against receiving "tainted" coins, it is suggested that compliant scripts be generated to receive funds, allowing the receiver to avoid restricted coins. This places the risk solely on the receiver. Additionally, organizations with incompatible interests would want to choose their own spend conditions when transferring funds, rather than inheriting the conditions of the spender. Therefore, the implementation and trustworthiness of parties involved play a significant role in mitigating risks associated with covenants.The conversation delves into the implementation of walled gardens using covenants and highlights the need for dynamic rather than recursive covenants for practicality. A static walled garden created through infinite recursion would not be able to accommodate new addresses. Dynamicness is achieved by dynamically specifying destination addresses, enabling users to send funds to arbitrary public keys while still allowing the government to spend the funds. The OP_CHECKOUTPUTVERIFY opcode is mentioned as a means of providing this dynamicness and enhancing wallet vault security. Concerns about potential attacks, such as visacoin, which requires recursive covenants, are deemed unwarranted given that OP_CTV cannot be used for such purposes.In a BitcoinTalk thread, concerns are raised about potential attacks enabled by covenants, with visacoin being considered particularly alarming. However, it is clarified that `OP_CTV` has enabled non-recursive covenant opcodes, making it possible to have covenants without recursion. It is emphasized that `OP_CTV` cannot be used to implement visacoin, as it requires a recursive covenant.The bitcoin-dev mailing list discussion covers various topics related to Bitcoin development. Concerns about attacks based on covenants are raised, with visacoin mentioned as a potential threat. The conversation also touches on the APO version of the simple vault, comparing CTV with other covenant proposals, and addressing concerns about recursive covenants. The meeting summary includes information on the vulnerabilities of the APO version of the simple vault and the unusability of APO as a CTV alternative. It also mentions Fiatjaf's CTV spacechain demo and the discussions surrounding recursive covenants and responding to FUD (fear, uncertainty, and doubt). The overall discussion highlights the different aspects and considerations involved in Bitcoin development.During the last CTV meeting, several topics were discussed, including the vulnerabilities of the APO version of the simple vault and its usability as a CTV alternative. The meeting also covered Fiatjaf's CTV spacechain demo and comparisons between CTV and other covenant proposals.
Updated on: 2023-08-02T06:28:02.023317+00:00