A classic contract is a verbal or written agreement with a set of conditions. In today’s world, the state guarantees the fulfillment of the terms of the contract. If one of the parties fails to comply with the terms of the agreement, a court will identify the wrongdoers and hold them responsible. Such contracts are common in everyday life: when renting an apartment, insuring a car or getting a job. There are also difficulties associated with classic contracts. The text of the document should be drawn up by an expert, otherwise there may be gaps and inaccuracies in the terms of the agreement. Lawyers like to use professional vocabulary which is difficult for a common person to understand. What are smart contracts? A guide for beginners.
What is a smart contract?
With the move to digital methods of communicating, storing and processing information, the foundation for a new form of contract emerged. In 1996, Nick Szabo developed the concept of self-executable digital contracts. The author called them smart contracts. According to Nick Szabo’s definition, a smart contract is a set of digitally described promises, including a set of protocols by which the parties fulfill their promises.
Smart contracts on blockchain
The real practical application of smart contracts came with the advent of blockchain technology. Decentralized blockchain-based systems are an environment in which the execution of a smart contract is independent of a third party, and the code cannot be arbitrarily changed. Outside of such an environment, a smart contract would simply be software code. An important parameter of a smart contract on a blockchain is Turing completeness. In simple terms, Turing completeness is the ability of the system to perform any computable function. That is, a Turing-complete system is a system that can execute any computer program.
Bitcoin’s blockchain uses the Turing-incomplete programming language Script. Bitcoin supports simple smart contracts with multi-signatures (multiple participants need digital signatures to perform an action), withholding of funds for a set time and so on. Ethereum blockchain works with smart contracts in the Turing-complete programming language Solidity. Solidity allows the creation of more complex algorithms, but such smart contracts are much harder to check for vulnerabilities.