Smart Contracts: Purpose And Origin
Similar to the terms “blockchain”, “AI” and “cloud”, the phrase “smart contract” always gets too much attention. Indeed, it is much better to be sure of what happens next than just to count on existing judicial systems.
The main benefits of smart contracts (smarts) are:
- Applying automatically, fairly and trustfully.
- No need to involve an intermediate person in smart combination, proceeding and finalizing;
- (As a result) No lawyers.
What are the smarts though? Are they exclusively Ethereum-based? Are they our future? Here, we will try to figure out what smarts actually are and what they are not.
What smarts actually are?
First of all, let’s determine what a common smart is. It is a deal among several participants that obliges them to do something, for instance, to pay for a rental, or to fix a damaged car in response for a periodical check.
Unlike а common contract, а smart is supported by a computer code that checks all conditions and executes it automatically. So if a person (say ‘A’) agrees to deliver some goods to another person (‘B’) in three months, a code decides whether this deal is true (were the goods delivered in time?) and performs the required action (money transfer) without a possibility to step back.
The main peculiarity of smarts is that they need no trust. Hence, no intermediate person is required to check if all conditions are met. Instead of waiting for someone else to prove compliance with the deal or relying on governments and corporations, people can use smarts that will proceed with all these actions in time and unbiased.
Smarts are not intelligent
Saying “smart” in fact means nothing about intelligence, as the agreements are not alive. The “smart” explains unnecessity for one of the cooperatives to perform the agreement at all cost. While a contract would be like a human who might take into consideration all mitigating details, the sense of the justice and so on, a smart, on the contrary, is the letter of the law that removes any possible space for ambiguity, never changes rules and does not take into account any secondary conditions.
Smarts are complex
Since Ethereum-based marketing is so popular, some may think that smarts exist only within the Ethereum space. But this wrong. Even Bitcoin had Script, a language that allowed smarts to be written. Moreover, the very first smarts were written in 1995, which is long before Bitcoin was invented. What makes Bitcoin and Ethereum smarts different is language details. Solidity, the Ethereum language, is Turing complete, while Script is not. This is the reason why Ethereum smarts are more complicated and difficult to examine.
Complexity brings some unwanted consequences, for example, a potential security breach. This is similar to real life. The more complicated a contract is, the harder it is to predict all possible mistakes and drawbacks. When it comes to the smart, security must embrace all possible executions of the contract and all its outcomes. In some cases, even the author may be surprised by the contract’s behavior.
Turing completeness of smarts' language causes problems during analysis. This is due to the nature of such a kind of programming languages. To prove the reliability of a contract is to prove that it has no bugs as a program, which is almost impossible in case of complex software. You would need several years to learn how to write down a paper contract correctly. Smarts require the same competence level. Many contracts written by unskilled people are not even close to being secure. There is a variety of those examined and analyzed.
Bitcoin overcomes this problem by having no opportunity to write a complex structure. It just cannot be too complex. Simple contracts are easy to check for validity and security.
Ethereum obliges all contract authors to be responsible for contract execution consequences.
ETH smarts are not really contracts
In theory, it is reasonable to shift the contract results responsibility to its authors. However, eventually, some centralization aftermath appears.
One of Ethereum’s main features is “code is law”. So results of the contract cannot be argued. The smart authors are to understand that they are on their own. Creating a smart that works improperly is a punishment by itself. That is exactly why the DAO crashed.
The DAO (Decentralized Autonomous Organization) is a foundation intended to show how complex Ethereum smarts could be. The DAO proposed its customers to make deposits to get response in accordance with the investments carried out by the Organization. Final ideas should have been reached as consensus between the stakeholders. With ETH worth of $20, the DAO could raise $150 million in ETH. Unfortunately, the code was not properly secured. Someone found how to break in, and the DAO lost all its funds.
Even though it is technically wrong to say that the DAO attackers were hackers. The core idea of hacking is to get into a system through its vulnerabilities. Indeed, the DAO was hacked by someone, but it was not a malfunction security breach. It was more like using an unforeseen system behavior, which is not hacking at all.
After that Ethereum abandoned the "Сode is law" dogma and rolled the system back, returning all money that was lost. Simply speaking, Ethereum developers corrected all mistakes made by The DAO major participants.
That is where Ethereum Classic comes from. Some network participants refused to step aside from the “Code is law” rule. Furthermore, its authors removed Turing-completeness as a potentially dangerous property. Common standards associated with smarts are ERC20 and ERC721. All of them can be created avoiding Turing-completeness.
Smarts operate within the digital world
Smarts are good enough even without Turing-completeness. It is much easier to use a smart contract instead of a real one. At least, they do not require going to the court in case of some problems.
For example, a person ‘A’ can prove giving the car for rent. A person ‘B’ can prove money was transferred and get the car in exchange. However, two problems appear here.
The first one comes from the fact that a centralized third party’s trust is unacceptable. Smarts cannot rely on a single source, it just makes no sense in the blockchain paradigm. Smarts must have a distributed behavior.
Bigger problem goes thereafter. Within the decentralization approach, smarts require a strict link to physical components. The computer world must be tied to the physical one. This is old fashion “Oracle problem”.
An actual car transfer from ‘A’ to ‘B’ must be recorded in some way. We can propose recording approaches but they all depend on the physical world centralization. Considering the car as an Ethereum-based token, we can imagine its transfer in an atomic ETH swap procedure. But ‘B’ has to believe that this token really correlates with the car. So there must be the Oracle which can guarantee that the token shift really means the legal car passage in real life.
Moreover, even if officials will accept the token as a car substitute, what about the case if it is stolen or lost? Reissuing, retrievement or any other similar problems raise up a lot of questions.
Connecting the digital space to the real one is a very difficult issue. Real assets are subjected to the legislation which means that they are regulated in a centralized way. This makes digital and real possessions significantly different. Trusting an intermediary is unacceptable for smarts.
Digital objects, similar to music, clips or books, may face the same complication. They exist according to the “real” legislation and require Oracles for trust issues. Oracles in turn are simple examples of solution takers. Replacing the machine's simplicity, one needs to provide various outcomes as in real life. Hence, it is neither becomes simple nor trustful.
Only digital bearer tools can work without Oracles. And this is true for all parties within the deal. A token cannot correlate to something outside blockchain. The only way to get a trustless environment is to have smarts as a digital bearer tool.
Unfortunately, smarts are not as useful as they might seem. They involve rather more problems than solutions in the described context. The Turing-completeness has made it all worse, leading to unforeseen consequences. Smarts cannot be properly secure, trustless, and independent. As digital bearers, they are still limited to decentralized Bitcoin-like protocols.