I’ve been asked many times recently what exactly is a “smart contract” and it’s a bit difficult to explain to most people. They are in the two-dimensional “paper contract” mindset when I’m trying to explain a three dimentional decentralized blockchain asset. Here is the Wikipedia version:
Proponents of smart contracts claim that many kinds of contractual clauses may be made partially or fully self-executing, self-enforcing, or both. The aim with smart contracts is to provide security that is superior to traditional contract law and to reduce other transaction costs associated with contracting.
Smart contracts have been used primarily in association with cryptocurrencies. The most prominent smart contract implementation is the Ethereumblockchain platform, where they are known as a decentralized application (dapp, stylized ĐApp).
The real-world smart contract that gained mainstream coverage was The DAO, a decentralized autonomous organization for venture capital funding, running on Ethereum, which was launched with US$250 million in crowdfunding in May 2016 and was hacked and drained of 3,689,577 ETH three weeks later.
The phrase “smart contracts” was coined by Nick Szabo in 1996, and reworked over several years. Szabo’s first publication, “Smart Contracts: Building Blocks for Digital Free Markets” was published in Extropy #16, and then later reworked as “Formalizing and Securing Relationships on Public Networks.”These documents described how it would be possible to establish contract law and related business practices through the design of electronic commerceprotocols, between strangers on the Internet. Szabo describes smart contracts as:
New institutions, and new ways to formalize the relationships that make up these institutions, are now made possible by the digital revolution. I call these new contracts “smart”, because they are far more functional than their inanimate paper-based ancestors. No use of artificial intelligence is implied. A smart contract is a set of promises, specified in digital form, including protocols within which the parties perform on these promises.
Szabo, inspired by researchers like David Chaum, also had a broader expectation that specification through clear logic, and verification or enforcement through cryptographic protocols and other digital security mechanisms, might constitute a sharp improvement over traditional contract law, even for some traditional kinds of contractual clauses (such as automobile security interests that provide for repossession) that could be brought under the dominion of computer protocols.
With the present implementations, based on blockchains, “smart contract” is mostly used more specifically in the sense of general purpose computation that takes place on a blockchain or distributed ledger. In this interpretation, used for example by the Ethereum Foundation or IBM, a smart contract is not necessarily related to the classical concept of a contract, but can be any kind of computer program.
Systems such as Ethereum emerged after the first successful blockchain deployment. These were designed to achieve greater Turing completeness and create vast value chain ecologies.[clarification needed]
Notable examples of implementation of smart contract technology are:
- Ethereum implements a Turing complete language on their blockchain. It is the most-used smart contract platform.
- Namecoin is a replicated domain name registry.
- Ripple (Codius), development halted in 2015
- Automated Transactions is another turing complete smart contract language, used in cryptocurrencies like Burstcoin and Qora. An example for its usage is atomic cross-chain trading.
A smart contract is “a computerized transaction protocol that executes the terms of a contract.” A blockchain-based smart contract is visible to all users of said blockchain. However, this leads to a situation where bugs, including security holes, are visible to all but may not be able to be quickly fixed.
Such an attack, difficult to fix quickly, was successfully executed on The DAO in June 2016, draining US$50 million in Ether while developers attempted to come to a solution that would gain consensus. The DAO program had a time delay in place before the hacker could remove the funds; a hard fork of the Ethereum software was done to claw back the funds from the attacker before the time limit expired.
Issues in Ethereum smart contracts in particular include ambiguities and easy-but-insecure constructs in its contract language Solidity, compiler bugs, Ethereum Virtual Machine bugs, attacks on the blockchain network, the immutability of bugs and that there is no central source documenting known vulnerabilities, attacks and problematic constructs.
Replicated titles and contract execution
Szabo proposes that smart contract infrastructure can be implemented by replicated asset registries and contract execution using cryptographic hash chains and Byzantine fault tolerant replication. Askemos implemented this approach in 2002 using Scheme (later adding SQLite) as contract script language.
One proposal for using bitcoin for replicated asset registration and contract execution is called “colored coins”. Replicated titles for potentially arbitrary forms of property, along with replicated contract execution, are implemented in different projects.
Hypothesised advantages of a smart contract over its equivalent conventional financial instrument include minimizing counterparty risk, reducing settlement times, and increased transparency. As of 2015, UBS was experimenting with “smart bonds” that use the bitcoin blockchain in which payment streams could hypothetically be fully automated, creating a self-paying instrument.
In popular culture
Karl Schroeder‘s 2002 novel Permanence features a “rights economy” in which all physical objects are nano-tagged with contractual requirements, so that payment may be enforced for all uses of proprietary information, e.g., a military mission in deep space must continuously justify the cost-benefit ratio of each ship or it will stop working.