Digital Asset Brings New Alternative to Smart Contracts in Financial Services
- 21.04.2016 08:45 am
Digital Asset announced the acquisition of Elevence, a technology firm that has developed an expressive language for financial institutions to model and execute agreements with certainty and finality. This technology complements Digital Asset's existing software by providing a new, verifiable way for parties to a transaction to prove updates to a distributed ledger while preserving data confidentiality.
Elevence have a seriously impressive team of Computer Scientists and financial technologists, all of whom have either a PHD or Masters in related fields. We have been working closely with them for the last few months to begin integrating their technology with our stack. Along with joining forces, we are excited to announce the Digital Asset Modeling Language, a privacy preserving yet provable alternative to Smart Contracts designed specifically for financial services.
WHAT IS A SMART CONTRACT?
Smart Contracts are software applications that are shared and run on all nodes across a blockchain network. The primary goal of blockchains with inbuilt Smart Contracts was to create self-enforcing agreements that independently control and automate the exchange of value according to predetermined rules based on predefined inputs. As with Bitcoin, Smart Contract platforms like Ethereum were designed to minimize the role of trust and enable actors that did not know each other to enter into software-enforced contractual agreements that are censorship resistant, meaning neither party, nor even governments can tamper with or prevent their execution.
WHAT ARE THE CHALLENGES OF APPLYING SMART CONTRACTS TO FINANCE?
Popular Smart Contract implementations require that the plain text of an agreement be shared across all nodes in a distributed network. While this ensures trust, it is incompatible with many applications in financial markets where the disclosure of the existence of an agreement between trading parties (e.g., a large sell order), much less deal terms, could move market prices and are rightly confidential.
Additionally, a defining characteristic of Smart Contracts is that they are self executing and/or self enforcing. In order to enforce parties to comply with the terms of a Smart Contract, the Smart Contract must be pre-funded with the full value that may need to be paid out, and will only release funds back to participants when execution has completed.
We believe there is a superior alternative to Smart Contracts for financial institutions in the majority of cases, and introduce a new language and execution environment specifically tailored for this purpose, called the Digital Asset Modeling Language.
WHAT IS THE DIGITAL ASSET MODELING LANGUAGE (DAML)?
DAML is an expressive language designed for financial institutions to model and execute agreements with certainty and finality. This technology complements Digital Asset's existing technology by providing a new, verifiable way for parties to a transaction to prove updates to a distributed ledger while preserving data confidentiality. DAML codifies rights and obligations in a similar manner to traditional legal contracts and workflows, and is more easily interpretable by a non-technical audience than most programming languages. It is a new Haskell-inspired functional programming language that has been under development for two years.
IS DAML A SMART CONTRACT PROGRAMMING LANGUAGE?
DAML is similar to a Smart Contract language in many ways but it is designed with the needs of financial institutions in mind. As such, it is optimized for usage in a private execution environment rather than in an open execution environment, in which it would be processed by all of the nodes in a network. DAML is designed to achieve many of the same benefits of Smart Contracts without the unnecessary trade-offs that make them unsuitable for financial services.
It could be argued that this is a closer fit to the original definition of Smart Contracts coined by Nick Szabo in the 1990s, which also focused on verifiability - but only by the stakeholders of that agreement rather than by everyone, and on certainty - being able to predict accurately all possible outcomes of the agreement rather than introducing doubt with unnecessary complexity.
WHAT ARE THE MAIN BENEFITS TO USING DAML?
Existing financial infrastructure is a fragmented collection of partial information spread across siloed data stores. Multiple records of similar but inconsistent information is duplicated and processed independently, and then the resulting outputs are compared and synchronized through a cumbersome reconciliation process. While distributed ledgers solve the problem of agreement on what the current state of the ledger is, they cannot solve the issue of agreement on what should happen to it next for complex financial agreements without revealing their contents.
By combining a shared log containing the complete provenance of these rights and obligations with an off-chain execution environment for processing the workflows of the behaviors being modeled, DAML ensures that all stakeholders can reach the same conclusions as to the result of a common workflow.
Having certainty in the integrity of both the ledger and the metadata dramatically reduces the frictions that arise from keeping multiple distinct systems in sync, and allows more flexible and efficient settlement systems by eliminating reconciliation, automating certain processes, and providing efficient arbitration.
IS DAML PROCESSED BY EVERY NODE IN THE NETWORK?
No, unlike Smart Contract platforms, agreements written using DAML do not need to be shared across multiple, often completely public, nodes in a network. Parties do not need to reveal the terms of their agreement to any undesirable third parties and it can be safely processed and authorized by only the relevant participants. All data is revealed on a need to know basis and even the distributed ledger, which only contains references to the agreement, is encrypted so other entities cannot detect even its existence on the ledger, let alone the terms.
HOW DOES DAML INTERACT WITH A DISTRIBUTED LEDGER LIKE HYPERLEDGER?
DAML serves as a logic and validation layer sitting above the ledger, providing an auditable way to prove why updates to the distributed ledger have occurred. An agreement modeled in DAML is only active if Hyperledger confirms it is valid and not referenced by any other transaction. This creates an independently verifiable logical mapping between the original business intent all the way through to the relevant Hyperledger transactions. The combination of the Digital Asset Modeling Language and Hyperledger allows for scale and privacy while maintaining a fully reconciled system across multiple parties.
HOW CAN THE EXECUTION OF DAML AGREEMENTS BE INDEPENDENTLY VERIFIED?
Each resulting step in the workflow of a DAML agreement is tied to a reference in Hyperledger and contains requirements on which parties’ cryptographic authorization is required to proceed. This ensures that every step in a DAML agreement, and hence every corresponding entry into Hyperledger, is only made with the full, multi-party authorization of all stakeholders of the transaction.
Nodes in the Hyperledger network that are not party to the agreement are still able to agree upon its outcome because they can independently verify that all of the required authorizations have been made without ever actually seeing the contents of the agreement itself. However, the contents of agreements can be provably revealed to authorized third parties such as regulators.
WHAT IS A TURING-COMPLETE LANGUAGE?
To be a Turing-complete programming language, the language must be adaptable enough to be able to solve any possible computational problem. The flexibility demanded by the Turing-completeness test requires specific capabilities to be present in a language, such as the ability to reference itself, however this can lead to undesired outcomes such as an infinite loop. A basic calculator is not Turing-complete as it can only process certain, predefined operations such as addition or multiplication. Personal computers are Turing-complete as they can theoretically process any algorithm.
WHY ISN’T DAML TURING-COMPLETE?
DAML was intentionally designed not to be Turing-complete. While Turing-complete languages can model any business domain, what they gain in flexibility they lose in analysability. This is because a Turing-complete language can be used to write any possible program. A program written in a Turing-complete language can therefore have any possible output. One cannot reason about the output of any possible program and therefore one cannot write a program that needs knowledge about the structure of that output in order to function. By restricting a language to only be able to write programs relevant to financial usage, the potential outputs of those programs becomes predictable. This allows those outputs to be queried and analysed for risk, position, interconnectedness, etc. that wouldn’t otherwise be possible.