Author: Jeremy Rubin 2022-04-12 14:33:14
Published on: 2022-04-12T14:33:14+00:00
The author shares a framework for thinking about covenants, which is useful for modeling local covenants where only one coin must be examined. The covenant primitive consists of a set of sets of transaction intents, a verifier generator function, a prover generator function, a set of proofs, and a set of assumptions under which the covenant is verified. To instantiate a covenant, the user would pick a particular element of the set of sets of transaction intents and generate a verifier and a prover function. The author analyzes three covenants under this framework: plain CTV, 2-3 online multisig, and 3-3 presigned + deleted. The author also considers other questions such as the 'cardinality' of an intent set, composition of different covenants inside of an intent, and unrollability. The above framework has a notion of 'statelessness', but it's possible and probably required that provers maintain some external state in order to prove. This framework is useful for generating tooling that could integrate a covenant into Sapio. The efficiency of a prover or verifier is out of scope of this framework.
Updated on: 2023-05-22T19:24:12.894578+00:00