Smart contract

From Infogalactic: the planetary knowledge core
(Redirected from Smart contracts)
Jump to: navigation, search

Smart contracts are computer protocols that facilitate, verify, or enforce the negotiation or performance of a contract, or that make a contractual clause unnecessary. Smart contracts usually also have a user interface and often emulate the logic of contractual clauses. Proponents of smart contracts claim that many kinds of contractual clauses may thus be made partially or fully self-executing, self-enforcing, or both. Smart contracts aim to provide security superior to traditional contract law and to reduce other transaction costs associated with contracting.

Examples

Digital rights management schemes are smart contracts for copyright licenses, as are financial cryptography schemes for financial contracts. Admission control schemes, token bucket algorithms, and other quality of service mechanisms help facilitate network service-level agreements. Some P2P networks need mechanisms to ensure that remote strangers contribute as well as consume resources, without requiring the overhead of actual legal contracts. Two examples of such protocols are the storage trading protocol in flŭd backup[1] and the Mojo Nation filesharing auction. Cryptographic authentication of one product part by another has been used, in lieu of a contract between manufacturer and consumer, to enforce tying strategies.[2]

History

Agoric computing was a movement in the 1970s and 1980s to bring market mechanisms such as auctions to computational resource management.[citation needed] Meanwhile, public key cryptography revolutionized what was possible in online security after the mid-1970s.

The phrase "smart contracts" was coined by legal theorist[3] computer scientist Nick Szabo, probably around 1993, to emphasize the goal of bringing what he calls the "highly evolved" practices of contract law and related business practices to the design of electronic commerce protocols between strangers on the Internet. 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.[4]

In a 2013 paper, Mark Miller and others have stressed capabilities[5] as the security basis of smart contracts, in contrast to Chaum and other researchers in the financial cryptography community who have emphasized advanced cryptographic protocols to bring security and privacy to digital money, credentials, contract signing, auctions, and other commercial mechanisms. Most of the above-cited examples[which?] have, however, probably been developed largely independently of these lines of work, and indeed some proponents[who?] see smart contracts as the inevitable outcome of many independent efforts to improve transactions in various industries using digital technology.

Several formal languages have been developed or proposed for specifying contractual clauses.[6][7][8] The IEEE has held two workshops[when?] on electronic contracting,[9] which have furthered this research.

Replicated titles and contract execution

A smart contracts infrastructure can be implemented by replicated asset registries[10] and contract execution using cryptographic hash chains and Byzantine fault tolerant replication. Each node in the peer-to-peer network acts as a title registry and escrow, executing changes of ownership and automatically checkable rules governing those transactions, and checks the same work of other nodes. Askemos implemented this approach in 2002 using Scheme as contract script language. Cryptocurrencies such as bitcoin have implemented special cases of such registries, where the property is money. Bitcoin and many of its spin-offs contain mechanisms to enable more general property titles and contract execution.[11] Code supporting this is a latent part of the bitcoin protocol, based on probabilistic and anonymous (proof-of-work based) Byzantine replication. One proposal for using bitcoin for replicated asset registration and contract execution is called "colored coins".[12] A replicated domain name registry is implemented in Namecoin; replicated titles for potentially arbitrary forms of property, along with replicated contract execution, are implemented in Crypti, Ripple, Mastercoin and Ethereum.[13] NXT[14] implements replicated property titles based on proof-of-stake in the underlying currency.

Applications may include financial instruments such as bonds, shares, and derivatives, assurance contracts, and other instruments and transactions where the nodes can monitor the events on which the smart contract rules are conditioned. As of 2015, UBS was experimenting with "smart bonds" that use the bitcoin blockchain[15] in which payment streams could be fully automated, creating a self-paying instrument.[16]

In popular culture

Permanence (2002) by Karl Schroeder 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 their mission to the ship or it will stop working.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. http://www.cpppe.umd.edu/rhsmith3/papers/Final_session1_anderson.pdf
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. [1]
  9. http://tab.computer.org/tcec/cec04/programWEC.html
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.

External links