CLApr 8, 2021
Languages for Smart and Computable ContractsChristopher D. Clack
Smart Contracts use computer technology to automate the performance of aspects of commercial agreements. Yet how can there be confidence that the computer code is faithful to the intentions of the parties? To understand the depth and subtlety of this question requires an exploration of natural and computer languages, of the semantics of expressions in those languages, and of the gap that exists between the disciplines of law and computer science. Here we provide a perspective on some of the key issues, explore some current research directions, and explain the importance of language design in the development of reliable Smart Contracts, including the specific methodology of Computable Contracts.
CRFeb 7, 2019
Distributed Ledger Privacy: Ring Signatures, Möbius and CryptoNoteChristopher D. Clack, Nicolas T. Courtois
Distributed ledger and blockchain systems are expected to make financial systems easier to audit, reduce counter-party risk and transfer assets seamlessly. The key concept is a token controlled by a cryptographic private key for spending, and represented by a public key for receiving and audit purposes. Ownership transfers are authorized with digital signatures and recorded on a ledger visible to numerous participants. Several ways to enhance the privacy of such ledgers have been proposed. In this paper we study two major techniques to enhance privacy of token transfers with the help of improved cryptography: Möbius and CryptoNote. The comparison is illuminating: both techniques use "ring signatures" and some form of "stealth addressing" or key derivation techniques, yet each does it in a completely different way. Möbius is more recent and operates in a more co-operative way (with permission) and is not yet specified at a sufficiently detailed level. Our primary goal is to explore the suitability of these two techniques for improving the privacy of payments on cryptographic ledgers. We explain various conflicting requirements and strategic choices which arise when trying to conceal the identity of participants and the exact details of transactions in our context while simultaneously enabling fast final settlement of tokens with a reasonable level of liquidity. We show that in these systems, third-party observers see obfuscated settlement. We finish with a summary of explicit warnings and advice for implementors of such systems.
SEApr 30, 2018
Temporal Aspects of Smart Contracts for Financial DerivativesChristopher D. Clack, Gabriel Vanca
Implementing smart contracts to automate the performance of high-value over-the-counter (OTC) financial derivatives is a formidable challenge. Due to the regulatory framework and the scale of financial risk if a contract were to go wrong, the performance of these contracts must be enforceable in law and there is an absolute requirement that the smart contract will be faithful to the intentions of the parties as expressed in the original legal documentation. Formal methods provide an attractive route for validation and assurance, and here we present early results from an investigation of the semantics of industry-standard legal documentation for OTC derivatives. We explain the need for a formal representation that combines temporal, deontic and operational aspects, and focus on the requirements for the temporal aspects as derived from the legal text. The relevance of this work extends beyond OTC derivatives and is applicable to understanding the temporal semantics of a wide range of legal documentation.
SENov 29, 2017
Design discussion on the ISDA Common Domain ModelChristopher D. Clack
A new initiative from the International Swaps and Derivatives Association (ISDA) aims to establish a "Common Domain Model" (ISDA CDM): a new standard for data and process representation across the full range of derivatives instruments. Design of the ISDA CDM is at an early stage and the draft definition contains considerable complexity. This paper contributes by offering insight, analysis and discussion relating to key topics in the design space such as data lineage, timestamps, consistency, operations, events, state and state transitions.