Blockchain technology has recently generated a lot of interest from both academia and industry. Blockchain is a distributed software system that allows transactions to be processed without the involvement of a trusted third party. As a result, business transactions can be completed in an inexpensive and fast manner. In addition, the immutability of blockchains provides distributed trust, as it is almost impossible to forge any transactions stored on blockchains, and all historical transactions are available for verification and traceability.
Blockchain technology allows the creation of smart contracts, which were first proposed in the 1990s by Nick Szabo. In a smart contract, contract terms written in computer programs will be automatically executed under predetermined conditions. Smart contracts, which are made up of transactions, are essentially stored, replicated, and updated on distributed blockchains. In contrast, conventional contracts must be executed by a trusted third party in a centralized manner, which increases the duration and incurs additional costs. The integration of blockchain technology with smart contracts will make the dream of a “peer-to-peer market” come true.
The history of smart contracts
For the first time the idea of "smart contract" was proposed in 1994 by Nick Szabo, but practical application became possible only with the advent of blockchain technologies in 2008.
Smart contracts facilitate the execution of contractual agreements with built-in transparency and resistance to forgery. The distinctive features of smart contracts make them suitable for many applications. A lot of research has been done in the industry as well as in academia to explore the strengths and applicability of smart contracts. In addition, improvements in the technical aspects have focused on fine-tuning smart contracts to improve their interoperability. Contract platforms are emerging on the market with appropriate features that are suitable for specific applications.
Smart contracts can translate business rules into computer programs. Each smart contract platform includes a set of application-specific features. For example, Ethereum is primarily developed for applications that require tokenization. Almost all platforms contain the core features of a smart contract system, including immutable code, a decentralized ledger, and a consensus layer.
The importance of smart contracts is determined by a rich set of features such as decentralization, resistance to forgery, transparency, autonomous execution, and accuracy. As a result, blockchain -based smart contracts are being used in a wide variety of applications such as finance, healthcare, e-government, internet of things, telecommunications, logistics, and various industrial contexts. Several blockchain platforms such as Ethereum , Hyperledger Fabric , Corda , NEM, Stellar and Waves are available to deploy smart contacts with unique applicability features in the industry. Moreover, more platforms targeting specialized application areas are expected to emerge. However, there are several issues that need to be addressed before the large-scale implementation of smart contracts. These issues include scalability, data privacy, lack of governance, computational overhead, storage overhead, and network overhead.
The main characteristics of a "smart" contract are: its form of expression (programming language); self-execution; use of blockchain infrastructure.
- Form of expression. First of all, it should be understood that a "smart" contract is written in an artificial language (programming language), and not in a natural language. However, like any other contract, it is a collection of commands (( if ) if ..., ( else ) then ..., ( another ) otherwise ...). The fundamental difference is that in the case of an artificial language, these commands are executed by a machine and without human participation, and in the case of a natural one, they are performed either by the participants themselves voluntarily or with the help of a third party (for example, a court).
- Self-fulfillment. This criterion is not new. Such methodologies are already used in the field of exchange trading. Now exchange works are participating in the auction, which independently decide on the conclusion of a transaction based on the algorithm. As for "smart" contracts, in this case, the terms of the contract are executed automatically in the environment, if certain conditions are met, which are pre-written in the programming language. For example, if ( if ) the container crossed the customs border, then ( else ) will pay 80% of the deposit to the counterparty. Such a condition is fulfilled automatically without the intervention of subjects in the contract or other manipulations with it.
- Use of blockchain infrastructure. Blockchain should be understood as a distributed public registry containing a database of all previously performed transactions, which is decentralized and contained in public sources on the Internet.
Legally, it is quite difficult to understand such a structure, but its features can be analyzed.
- Block information cannot be changed. The database of all previously completed transactions is decentralized and distributed among all participants in the system.
- Publicity. Based on paragraph 1, each participant in the system can check the entered information about the transaction.
The legal nature of a smart contract lies in the direct expression of the will of the parties and formally complies with the principles of civil law. This agreement also has a typical legal structure - subject, term and price.
At this stage, a "smart" contract is a way to automatically fulfill the agreements reached, which is a formulated set of agreements between the parties, reached through the negotiation process.
Practical aspects of using smart contracts
If we consider the practical aspects of the use of smart contracts as a basis for the emergence of private property rights, here we can distinguish both pluses and minuses. The acquisition of property (both real and virtual) is called one of the main areas of application of smart contracts. The advantages over traditional contracts in this area are, in particular, the absence of intermediaries, automatic execution, strict regulation of activities and interpretation of conditions, the impossibility of interfering with a predetermined code. Ideally, smart contracts should not only help reduce transaction and transaction costs, but also reduce the number of litigation. However, most of the advantages of smart contracts are also its disadvantages.
So, the biggest problem of smart contracts is the impossibility of coding a significant part of the agreements between the parties, because they do not fit into the “if <...>, then <...>” scheme, but are covered by abstract concepts, such as “legality” , "fairness", "reasonable time", "protection of the weaker side", etc.
The next disadvantage of smart contracts is the link to the real world and the need to obtain data from outside the system. To obtain data that is located outside the blockchain or other distributed ledger, a smart contract must contact the so-called oracles. Oracle programs are specialized services aimed at linking the digital world to the real one and providing smart contracts with initial data for their execution. The use of oracles means the involvement of a third party in such an agreement with all the ensuing risks, in particular, the question arises of the reliability of data obtained from such a source. The oracle program can be attacked by attackers who change its code, as a result of which it will provide false data. Or the information entering the oracle can be changed or modified.
As a result of such manipulations, the information entering the smart contract will be unreliable, which will determine in advance the unfair execution of the agreement.
The automatic execution of a smart contract also raises some problems. In particular, if there are objective conditions for suspending the execution or changing the agreement, the smart contract cannot be changed, just as it is impossible to suspend its execution. Problems may also be related to the fact that the program code may contain an error, or errors were made when entering data into the system. In addition, there is no answer as to who should be held responsible for such errors: the parties, the application developer, or someone else. That is, unlike traditional contracts, smart contracts have almost no flexibility.
When we talk about acquiring ownership of real estate on the basis of smart contracts, it is also necessary to take into account the participation of notaries and state registrars in this procedure. In this situation, smart contracts can both simplify the procedure and cause difficulties. For example, the advantage of a smart contract for real estate purchase and sale contracts would be to simplify execution. So, if after the conclusion of the contract of sale, the ownership right to the buyer was re-registered, but the latter did not pay the money to the seller within the prescribed period, the ownership right can be automatically re-registered to the seller without the need to apply with the corresponding requirement to the registrars. At the same time, in order to use smart contracts in real estate transactions, it is necessary to resolve the issue of participation (or absence) of notaries in this procedure, as well as state assistance in transferring state registries to the blockchain.
The purely legal problems of smart contracts include the lack of a legal framework, that is, at the moment there is practically no legislative regulation of the procedure for concluding and executing smart contracts, as well as problems related to the choice of law that applies to smart contracts of a transnational nature, and the problem of how to protect the rights arising from the conclusion of smart contracts.
If counterparties are located in different countries, there may be a problem of determining the law by which relations are settled. In this case, difficulties may arise with the application of the usual rules of private international law. For example, with respect to smart contracts, conflict-of-law bindings such as “place of performance of the contract”, “place of conclusion of the contract”, “the law with which the legal relationship is most closely connected” lose their meaning. To solve this problem, it is proposed to immediately determine what law should apply to such relations. However, it is quite difficult to determine this in the program - it is not clear how to formulate it correctly, whether the program will be able to properly use such a condition. Therefore, in this case, it is again more expedient to fix some conditions on paper.
One of the most important problems associated with the use of smart contracts is the problem of protecting the rights of its participants. In the case of smart contracts, some traditional categories of contract law must be considered from a different angle. For example, there is an opinion that the category of improper performance of an obligation cannot be applied to smart contracts. The smart contract aims to ensure the proper fulfillment of the obligation, therefore, in fact, through the use of smart contracts, the risks of dishonesty of the parties to the contract are eliminated. However, failure to fulfill an obligation formalized with a smart contract can also happen. But the reason for this is most often a technical error. Because as a way to protect rights in this case, it is proposed to use coercion to fulfill obligations in kind. If the obligation was fulfilled with an error, bilateral restitution should be applied. Bilateral restitution under a smart contract will be possible with a reverse transaction mechanism, which can be provided in a smart contract. It can be applied when performance has been made but an error has been discovered in the contractual terms.
According to the researchers, liability for violation of obligations from smart contracts will also have specifics. It is believed that in such a case only non-contractual liability measures can be applied, since the obligation is performed only properly, cases of willful non-performance are not considered.
Features of automated execution are that the obligated party does not influence the performance and cannot be held responsible for software failures and errors in the performance of the obligation. In this case, either an incident is possible when no liability arises, or the tort liability of the party for intentionally making changes to the operation of technical devices.
When we talk about liability for violation of conditions and errors in smart contracts, we consider it appropriate to take into account such factors. First, if the improper execution of a smart contract is due to an error in the program code, the question arises as to who should be held responsible for such an error. It is seen that the responsibility for such errors should be assigned to the party that took the responsibility to prepare the smart contract. For example, if a smart contract is developed on the order of the debtor, he must bear the risk of an error in the smart contract, which will lead to improper execution. If the development of a smart contract is undertaken by the lender, he should be responsible for the failure to comply with such a contract. In any case, the party that takes the risk of non-execution of the smart contract due to technical errors has the right to claim against the developer with whom the contract for software development was concluded. Within the framework of this claim, it is also possible to demand compensation for losses caused by the failure to fulfill such a contract. Secondly, the specifics of a smart contract is that the responsibility for its violation can be assigned to a third party who interfered with the program code, which led to improper fulfillment of the obligation. Such liability will be implemented within the framework of the rules of tort law.
From a legal point of view, a smart contract can be characterized as an agreement between two or more persons to establish, change or terminate legal rights and obligations, which are formalized and executed using special computer programs. At the same time, all the terms of the transaction are executed in electronic form, and their implementation is carried out automatically. So, the main feature of a legal smart contract is the clearly expressed terms of the agreement between the parties and the ability to self-realization on a legally enforceable basis.
Traditionally, the question of which law applies to a contract is determined by the rules of private international law. However, given the legal nature of international treaties that are complicated by a foreign element, it may be difficult to apply the usual rules of private international law in smart contracts. After all, when counterparties are located in different countries, the problem arises of determining the law by which such relations will be settled. For smart contracts, conflict bindings like “place of performance of the contract”, “place of conclusion of the contract”, “law”, with which legal relations are most closely connected, lose their meaning.
So, at the moment, many issues related to smart contracts remain unresolved. Thus, the main advantage of a smart contract - the impossibility of changing its conditions and interfering with its work - is simultaneously considered its main drawback, since it does not allow taking into account objective circumstances that may affect the execution of the contract.