Covenants and capabilities in the UTXO model



Summary:

The email conversation discusses the concept of turing completeness and its implementation in Bitcoin's UTXO model. The author argues that full turing completeness is less dangerous than people fear, as each step would be a transaction paid for with a usual fee, making it less scary. However, special-purpose opcodes are needed to make coherent statements about transactions since they are complex and hard to parse format. One example given is the ability to assert that a parent has a scriptpubkey of X, allowing capabilities to be added without gunking up on-chain state with things other than UTXOs.The conversation also touches on the idea of deduplicating scripts to save bandwidth and help Bitcoin scale better. One approach suggested is to allow references to old blocks so code snippets can be pulled out of them, avoiding having to define the 'common sections' upfront. However, charging for virtual vbytes keeps smart functionality very expensive. Finally, the conversation emphasizes the importance of payment covenants being completely knowable to the recipient. Recipients shouldn't accept random covenants they haven't explicitly accepted on their own, and not being able to parse a UTXO should result in them assuming it's bricked.


Updated on: 2023-06-15T03:46:21.960442+00:00