To Meme, Or Not To Meme: The CAT
Is it really surprising, given that cats have essentially dominated the internet for the last two decades, that cat memes have finally taken over the Bitcoin space as well in the last few weeks? Cats are the most viral meme on the internet, so it’s not shocking in the least bit that the Taproot Wizards have leaned into it, reinforced by the trolling Luke over his “dietary choices.”
The question has to be asked though, are meme campaigns really how we want to go about deciding and discussing consensus changes to a protocol as valuable as Bitcoin? I’ve seen numerous music videos, campaigns to go out in the world and “educate” people on OP_CAT, and the whole “Quest” system that Taproot Wizards has launched taking place…but the reality is the vast majority of this content that I have seen has been incredibly superficial.
Rijndael, “Artificer” at Taproot Wizards and one of the few people, if not the only person, actually tinkering and playing with OP_CAT to build out use case examples, has made a demo of a OP_CAT based covenant script.
This script enforces a specific amount of Bitcoin be sent to a specific address, and by consensus there is no other way to spend these coins except with a transaction that meets those exact conditions. Look at the size of this script:
OP_TOALTSTACK OP_CAT OP_CAT OP_CAT OP_CAT de890a8209d796493ee7bac9a58b62fbced10ccb7311e24f26c461c079ead08c OP_SWAP OP_CAT OP_CAT OP_CAT OP_CAT OP_CAT OP_CAT OP_CAT OP_CAT OP_CAT 54617053696768617368 OP_SHA256 OP_DUP OP_ROT OP_CAT OP_CAT OP_SHA256 424950303334302f6368616c6c656e6765 OP_SHA256 OP_DUP OP_ROT 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 OP_DUP OP_DUP OP_TOALTSTACK 2 OP_ROLL OP_CAT OP_CAT OP_CAT OP_CAT OP_SHA256 OP_FROMALTSTACK OP_SWAP OP_CAT OP_FROMALTSTACK OP_DUP 1 OP_CAT OP_ROT OP_EQUALVERIFY 2 OP_CAT 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 OP_CHECKSIG
This is what it takes to emulate CHECKTEMPLATEVERIFY. The equivalent script using CTV would simply be:
CTV <32 byte hash>.
I ask, what is the value of something like OP_CAT in emulating the case of basic template covenants (things requiring a spending transaction to fulfill certain conditions defined ahead of time to be valid) like this? We know exactly how to handle schemes enforcing a template on transactions spending an output locked to a template covenant, and have multiple proposals for them. CTV, TXHASH, OP_TX, and even APO can emulate these schemes by stuffing a signature in the locking output of a transaction at the cost of an extra 64 bytes.
What actual use is OP_CAT in “experimenting” to meet the needs of a class of use cases that are mature enough in design that there are at least 4 covenant proposals that can handle those use cases with a tiny fraction of the data cost? “Oh, we want to experiment with CAT because it’s flexible!” You want to use 30 OP calls to do something that can be done in one? That is a reason to actually enact a consensus change to Bitcoin? The logic of that is beyond absurd.
Downplaying Risks
In a vacuum OP_CAT is sold as “simply concatenating two strings”, and many of the memes attempt framing it as “how can that be dangerous?” This is a wildly disingenuous narrative surrounding the proposal, and it completely ignores how it interacts with other existing and future aspects of script.
In particular CSFS + CAT opens a massive amount of possibilities in terms of what can be done with Bitcoin script, not all of it necessarily positive. CSFS allows you to verify a signature on an arbitrary piece of data in the course of executing a script, and CAT allows you to “glue” different pieces of data together on the stack. These two things create a massive design space for what it is possible to do with Bitcoin.
One concrete example would be the potential to enforce amounts, or relationships between different amounts, of specific inputs and outputs in a transaction. CAT allows you to build up a transaction hash from individual pieces on the stack, and CSFS allows you to verify a signature against a public key in the locking script against arbitrary pieces of that transaction as it is built up. This could ultimately enable the creation of open-ended UTXOs anyone can spend, as long as the spending transaction meets certain criteria, such as a specific amount of coins be sent to a specific address. Combine this with the reality of OP_RETURN based assets, and this starts getting into the territory of Decentralized Exchanges (DEX).
Some of the worst incentive distortion problems that have come to fruition on other blockchains ultimately stem from the creation of DEXes on those chains. Having direct non-interactive exchange functionality on the blockchain is one of the worst forms of MEV, especially when the potential exists for miners to lock-in their profit across multiple trades in the span of a single block, rather than having to actually carry the risk of a position across multiple blocks before closing it out and realizing profit.
Part of the movement behind Taproot Wizards is “bringing the innovation back.” I.e. that lessons learned in shitcoin land are coming home to Bitcoin, now while I firmly reject the notion that anything useful has been developed on other coins in the last decade other than the basic concept of zero knowledge proofs, this mantra getting louder ignores a massive component of that dynamic even if you disagree with my view there: there are lessons to be learned regarding what NOT to do as well as what TO do.
DEXes are one of the things NOT to do. Nothing has caused as much chaos, volatility in fee dynamics (which we need to smooth out over time for sustainability of second layers), and just all around incentive chaos regarding the base consensus layers of these protocols and their degree of centralization. The idea that we should rush to bring these types of problems to Bitcoin, or exacerbate them by introducing a way to trustlessly embed the bitcoin asset into them in more dynamic and flexible ways, is frankly insane. This to me speaks of large swaths of people who haven’t learned anything from watching what happened on other blockchains in the last half decade or so.
Forever Shackled By The Cat
Looking at the dynamic above between CSFS + CAT, it is worth pointing out that Reardencode’s recent LNHANCE proposal (CTV + CSFS + Internal Key) offers a path to give us eltoo for Lightning in a way that is actually more blockspace efficient than using APO. If this argumentation, and build out of proof of concepts, winds up winning over Lightning developers who want LN symmetry in order to simplify Lightning channel management and implementation maintenance, we very well could wind up getting CSFS in the process. If OP_CAT were active prior to this, then there is no way to avoid the types of detrimental side effects of the two proposals being combined.
This would hold true for every soft fork proposal going forward if OP_CAT were ever activated. It would be impossible to escape whatever side effects or use cases were enabled by combining OP_CAT with whatever new proposals come in future. On its own OP_CAT is clunky, inefficient, and rather pointless. But in combination with other OPs it begins to get stupidly flexible and powerful. This would be a dynamic we would never be able to escape, and features that might wind up being critically necessary in the future for Bitcoin’s scalability could inescapably come with massive downsides and risks simply because of the existence of OP_CAT.
Is this a reality we want to enter simply because of a meme campaign? Because people want to tinker with wildly inefficient means of doing things instead of looking through much more efficient and purpose built proposals? I would say no.
Meme campaigns can be fun, I know this. They foster a sense of community and involvement, it’s an inherent and inescapable part of the internet and the numerous cultures that exist on it. But this is not how we should be deciding the development process of Bitcoin. They can be fun, and they can even be viciously savage at stabbing directly to the heart of matters people dance around or equivocate on. But they are atrocious at capturing nuance and complexity in many regards.
Trying to steer the consensus of a network like Bitcoin purely based on the value of a meme, rather than reasoned consideration of proposals and their implications, is a disaster waiting to happen. The conservatism and caution of Bitcoin development is what has kept it at the forefront of this space as shitcoins have come and gone, imploding in the consequences of their fly by night carefree development attitude. As much as Bitcoin sorely needs to break out of its current rut of stagnation and lack of forward progress, devolving to uncritical memes and music videos is not how to do that. It risks destroying what made Bitcoin valuable in the first place, its solid and conservative foundation.
25 January 2024 19:06