What is a Ricardian Contract?
The Ricardian contract* was developed in the mid 1990s by Ian Grigg in an effort to answer the question of how to digitize a contract.
All financial instruments can be expressed as legal prose contracts between issuer and owner. The Ricardian contract enables a legal contract to be interpreted digitally without losing the value of the original legal prose. The form allows a contract to move from the world of law, through the world of cryptography and into the world of accountancy**:
The first application of the form was a bond – a standard contract between two parties. The Ricardian contract effectively turns a bond into its own database, inserting metadata in order to extract key headline fields – a US Treasury Bond, for example, would include Name (US Treasury Note), Denomination ($1,000), Issuer (US Treasury), etc. – and including all legal prose tied to the original contract document. This digitized document is then signed with a digital signature.
This document is then hashed so that it may be used in an accounting system. The unique hash value acts as the identifier of the bond, ensuring that no two bonds collide and eliminating the need for a global registry. This identifier is then used in every ensuing transaction. A Ricardian contract store enables the original document to be returned from the hash value and presented to the user.
The Ricardian contract can be applied to any financial instrument and added on top of a blockchain (Bitcoin, for example, is an exception because this class of cryptocurrencies cannot be a contract nor can they have an issuer)***. The Ricardian contract forces an issuer to present a contract to its users, thereby ensuring that the financial instrument has integrity of known, complete terms and conditions.
*The name Ricardian contract is derived from Ricardo, the transaction processing system named after David Ricardo, a contributor to international trade theory.
*** There are currently several implementations of the Ricardian contract design pattern – see here for a list.