Programmable money, enabled by digital currencies, facilitates outcomes beyond simple payments by allowing users to attach conditions to the movement of funds through code. However, there is a lack of clarity on defining programmable money, where programmability can be implemented, and the resulting tradeoffs. This paper provides a definition of programmable money with four key components: a format for representing value, a set of programmable instructions, an execution environment providing a coherence guarantee, and rules around permissioning. We discuss programmability primitives, categorizing them into levels based on expressiveness. We outline four locations programmability could be offered - hardcoded into system rules, via client-supplied programs/smart contracts, in client code, or via intermediaries - analyzing benefits and risks of each. For policymakers evaluating central bank digital currencies, we recommend considering these aspects holistically and their interplay with regulation in system design. Our framework and vocabulary enable more nuanced analysis of implementing programmability.
翻译:暂无翻译