A smart contract is a computer algorithm designed to maintain commercial contracts in blockchain technology. Essentially, a smart contract is a piece of code that is executed if certain conditions are met.
The contract becomes valid after it is digitally “signed” by the parties. The process of signing is similar to how the funds are sent within the existing cryptocurrency networks. To ensure that the contract can be automatically validated it needs an environment which allows fully automating the execution of contract items. In other words, smart contracts can only exist within an environment that has unrestricted access to the executable code that controls the object of a smart contract.
All contract terms must have a mathematical description and a clear logic of execution. In this regard, the first smart contracts have the task of formalizing the simplest relationships, consisting of a small number of conditions. Having unimpeded access to the objects of the contract, a smart contract tracks achievements or violations of the points and makes independent decisions based on the pre-programmed conditions.
Smart contracts were first mentioned by Nick Szabo in 1994. However, practical implementations have only become possible with the appearance of blockchain technology in 2008. Some principles of smart contracts were programmed into the protocol of the first cryptocurrency Bitcoin, but they were not implemented in the client software and weren’t used in the real world. With the advent of technology, ideas began to be voiced that different protocols of higher level can be created on top of the bitcoin protocol, including fully-fledged smart contracts, similar to how many application-level protocols exist over TCP/IP.