This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
A smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible. Smart contracts were first proposed by Nick Szabo, who coined the term, in 1994.
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 of smart contracts is to provide security that is superior to traditional contract law and to reduce other transaction costs associated with contracting. Various cryptocurrencies have implemented types of smart contracts.
The phrase "smart contracts" was coined by computer scientist 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 commerce protocols, between strangers on the Internet. In 1996 Szabo described smart contracts as follows:
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.
Byzantine fault tolerant algorithms allowed digital security through decentralization to form smart contracts. Additionally, the programming languages with various degrees of Turing-completeness as a built-in feature of some blockchains make the creation of custom sophisticated logic possible.
Notable examples of implementation of smart contracts are:
- Decentralized cryptocurrency protocols are smart contracts with decentralized security, encryption, and limited trusted parties that fit Szabo's definition of a digital agreement with observability, verifiability, privity, and enforceability.
- Bitcoin also provides a Turing-incomplete Script language that allows the creation of custom smart contracts on top of Bitcoin like multisignature accounts, payment channels, escrows, time locks, atomic cross-chain trading, oracles, or multi-party lottery with no operator.
- Ethereum implements a nearly Turing-complete language on its blockchain, a prominent smart contract framework.
- RootStock (RSK) is a smart contract platform that is connected to the Bitcoin blockchain through sidechain technology. RSK is compatible with smart contracts created for Ethereum.
- Namecoin is a replicated domain name registry.
- Ripple (Codius), smart contract 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.
Replicated titles and contract executionEdit
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[update], 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.
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 yet may not 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.
In popular cultureEdit
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.
- "Smart Contracts, Explained". Cointelegraph. 31 October 2017.
- "Nick Szabo -- Smart Contracts: Building Blocks for Digital Markets". www.fon.hum.uva.nl. Retrieved 2017-07-29.
- "Extropy Institute Resources". archive.is. 2013-11-15. Retrieved 2017-07-29.
- Szabo, Nick (1997-09-01). "Formalizing and Securing Relationships on Public Networks". First Monday. 2 (9).
- Stafford, Philip; Murphy, Hannah. "Has the blockchain hype finally peaked?". ft.com. Financial Times. Retrieved 1 June 2017.
- Buterin, Vitalik. "Ethereum Whitepaper". github. Retrieved 1 June 2017.
- Cachin, Christian. "Architecture of the Hyperledger Blockchain Fabric" (PDF). ibm.com.
- "Smart contracts: Turing completeness & reality".
- "Dumb Contracts and Smart Scripts – We Use Cash". weuse.cash. Retrieved 2017-10-27.
- "How Do Ethereum Smart Contracts Work? - CoinDesk". CoinDesk. Retrieved 2017-10-27.
- "Bitcoin as a Smart Contract Platform". Richard Gendal Brown. 2015-03-30. Retrieved 2017-10-27.
- "Blockchain: Forget Bitcoin, here comes the real thing". Idealog. 2016-03-29. Retrieved 2017-10-27.
- "What are Smart Contracts" (PDF). chainfrog. August 3, 2017. Retrieved October 27, 2017.
- Rosa, Davide De. "The Bitcoin Script language (pt. 1)". davidederosa.com. Retrieved 2017-10-27.
- bitcoinbook: Mastering Bitcoin 2nd Edition - Programming the Open Blockchain - Chapter 7, Mastering Bitcoin, 2017-05-30, retrieved 2017-10-27
- "Smart contracts and bitcoin".
- "Contract - Bitcoin Wiki". en.bitcoin.it. Retrieved 2017-10-27.
- "What is a Bitcoin Merklized Abstract Syntax Tree (MAST)?". Bitcoin Tech Talk. 2017-10-12. Retrieved 2017-10-27.
- "Smart Contracts on Bitcoin Blockchain" (PDF). September 4, 2015. Retrieved October 27, 2017.
- Andrychowicz, Marcin; Dziembowski, Stefan; Malinowski, Daniel; Mazurek, Łukasz (2013). "Secure Multiparty Computations on Bitcoin".
- Atzei, Nicola; Bartoletti, Massimo; Cimoli, Tiziana; Lande, Stefano; Zunino, Roberto (2018), "SoK: unraveling Bitcoin smart contracts" (PDF), 7th International Conference on Principles of Security and Trust (POST), European Joint Conferences on Theory and Practice of Software
- Atzei, Nicola; Bartoletti, Massimo; Cimoli, Tiziana (2017), "A survey of attacks on Ethereum smart contracts" (PDF), 6th International Conference on Principles of Security and Trust (POST), European Joint Conferences on Theory and Practice of Software
- "Vitalik Buterin on Tweeter (verified)". 18 April 2017.
- "RSK – Rootstock Open-Source Smart Contract Bitcoin Technology?".
- "Digrate Express rating report on Project Rootstock" (PDF).
- Thomas Bocek (15 September 2017). Digital Marketplaces Unleashed. Springer-Verlag GmbH. p. 169-184. ISBN 978-3-662-49274-1.
- "A Solution for the Problems of Translation and Transparency in Smart Contracts" (PDF).
- "Trust in Smart Contracts is a Process, As Well" (PDF).
- "Scripting smart contracts for distributed ledger technology" (PDF).
- "Namecoin". Cointelegraph. 23 May 2015.
- "Ripple discontinues smart contract platform Codius". Bitcoin Magazine. June 24, 2015. Retrieved August 27, 2017.
- "Automated Transactions Specification". Retrieved August 27, 2017.
- "Qora and Burst Now Able to Make Cross-Chain Transactions". May 22, 2015. Retrieved August 27, 2017.
- Nick Szabo (2005). "Secure Property Titles with Owner Authority". Retrieved January 12, 2014.
- Jörg F. Wittenberger (2002). "Askemos a distributed settlement".
- "Proceedings of International Conference on Advances in Infrastructure for e-Business, e-Education, e-Science, and e-Medicine on the Internet" (PDF).
- Martin Möbius (2009). "Erstellung eines Archivierungskonzepts für die Speicherung rückverfolgbarer Datenbestände im Askemos-System".
- Tom-Steve Watzke (2010). "Entwicklung einer Datenbankschnittstelle als Grundlage für Shop-Systeme unter dem Betriebssystem Askemos".
- RA Markus Heinker (2007). "Beweiswürdigung elektronischer Dokumente im Zivilprozess unter vergleichender Betrachtung von qualifizierten elektronischen Signaturen nach dem Signaturgesetz und dem Askemos-Verfahren".
- Hal Hodson (20 November 2013). "Bitcoin moves beyond mere money". New Scientist. Retrieved 12 January 2014.
- "Blockchain Technology: Preparing for Change" (PDF). Accenture.
- Ross, Rory (2015-09-12). "Smart Money: Blockchains Are the Future of the Internet". Newsweek. Retrieved 2016-05-27.
- Wigan, David (2015-06-11). "Bitcoin technology will disrupt derivatives, says banker". IFR Asia. Retrieved 2016-05-27.
- Tapscott, Don; Tapscott, Alex (May 2016). The Blockchain Revolution: How the Technology Behind Bitcoin is Changing Money, Business, and the World. pp. 72, 83, 101, 127. ISBN 978-0670069972.
- Peck, M. (28 May 2016). "Ethereum's $150-Million Blockchain-Powered Fund Opens Just as Researchers Call For a Halt". IEEE Spectrum. Institute of Electrical and Electronics Engineers.
- DuPont, Quinn (2017). "Experiments in Algorithmic Governance: A history and ethnography of "The DAO," a failed Decentralized Autonomous Organization" (PDF). Retrieved 29 July 2017.
- Coy, Peter; Kharif, Olga (25 August 2016). "This Is Your Company on Blockchain". Bloomberg Businessweek. Retrieved 2016-12-05.