Smart contracts: what they are and their main types
In 1994, Nick Szabo, a cryptographer and lawyer, first introduced the smart contract concept. In 2008, the world saw the emergence of Bitcoin and the further development of blockchain. Smart contract technology, being computer code, makes it possible to implement any type of transaction in the crypto industry. Smart contracts can be used on various blockchain platforms. Meanwhile, as the popularity and use of crypto assets grow, smart contracts are being used more often to conduct transactions and exchanges.
What is a smart contract?
A smart contract is a computer algorithm that generates, manages, and provides information about events and items. For example, if user A transfers an amount of money, then user B transfers ownership of the car/flat/land/ luxury item, etc. The decision-making process is automatic, with no option to renege on one's commitments.
This technology is used in blockchain as a set of functions and data that are hosted at a specific address on the network. Two or more entities can be parties to a smart contract, not just individuals but also organizations, companies, and other legal entities.
Once the conditions stipulated in the contract are met, the transaction is performed automatically, ensuring full compliance with the agreement.
Key elements of a smart contract
Transaction participants are the entities that sign the agreement and accept (or refuse) the terms of the electronic signature. We observe a similar principle when a sender of funds using the Bitcoin network puts a signature confirming the transaction in the blockchain.
The point of the contract - it refers exclusively to the object, which is within the operating environment of the smart contract or can provide direct access to the object of the transaction with no human factor involved.
Terms of the agreement - all clauses are presented in a full mathematical description, which is programmed in the smart contract environment, thus fixing the logical chain of execution of all positions of the upcoming transaction.
Decentralized platform - in order to provide distributed storage of a smart contract, it is required to record it in the blockchain of a decentralized platform.
When parties sign a contract, it is stored in the blockchain and enters into force. In order to ensure the automated fulfillment of these obligations, the Ethereum blockchain nodes are activated.
Conditions for the existence of smart contracts
This type of agreement requires several important conditions.
The first one is the availability of popular e-signature methods involving the use of public and private keys.
The second one is access to decentralized and open databases that can be trusted by the parties to the contract so as to execute the transaction effectively. These databases must operate without human intervention.
Third, the smart contract must be executed in a decentralized environment.
The fourth one is a reliable digital data source on the type of root certificate authorities (SSL) in the base of modern browsers.
Smart contact operating features
Today, smart contracts can be used to exchange finances, goods, real estate, securities and other liquid assets. They are relevant in different areas, ranging from finance and insurance to presidential elections or government candidates.
The uniqueness of the smart contract is that its information stored on a decentralized platform cannot be deleted or falsified. Encryption technology ensures the complete anonymity of all parties to the agreement.
Since the smart contract works only with virtual assets in its digital ecosystem, for interfacing with the real world of money and things, so-called oracles are used. These are programs that help computer protocols get the necessary data to implement the transaction.
The primary task of a smart contract is executing a logical chain of actions linked to specific tasks and processes, programmed by a set of conditions for execution. Thus, the transaction has no obligatory legal identification.
To create a smart contract, the customer needs to set up a corresponding task for the developers and list all the requirements of the future transaction. For example, to authorize a payment, read a utility meter, calculate the value of a trading asset, make an insurance payment in case of an emergency, etc.
Based on the received tasks, a team of experts develops a smart contract with further testing of its logical functionality to get the desired result, as well as test the security and reliability side. Next, the contract is approved and implemented in the blockchain and configured to get updates from the oracle.
The transaction is executed only if a full set of events from the oracles is formed, which correspond to the created agreement.
Pros and cons of smart contracts
As for the strengths and weaknesses of using smart contracting technology, it is worth considering each aspect.
The key advantages are speed, independence, reliability, error-free, and cost minimization. Fast data processing in automated mode and human-free operation saves a lot of time and guarantees the efficiency of the transaction. Moreover, smart contracts exclude third-party intervention, that is, the program itself is responsible for the transaction's success, evidencing its integrity.
All data recorded in the blockchain cannot be deleted or destroyed, so if one party fails to comply, the other is protected under the smart contract terms.
In the automatic transaction execution system, the risk of errors is excluded. Besides, the human factor is not involved, so the transaction features a high accuracy.
Smart contracts reduce intermediaries and transaction costs, so the terms of cooperation for both parties become more favorable.
The drawbacks of smart contracts include the lack of regulation, the technical complexity of implementation, and the impossibility of making changes to them. The lack of regulation derives from the blockchain's decentralization, while the technical complexity means enormous time, material, and physical investments in integrating contracts for the real world. Even though the impossibility of changing data in a smart contract is an advantage, there is a downside to this aspect, namely, the emergence of new factors that increase the benefits of the contract cannot be used in the deal.
ERC-20 standard for smart contracts
Different blockchains are used to create smart contracts, and the most popular is Ethereum.
ERC-20, or Ethereum Request for Comments, is a standard designed for smart contracts. It is a set of rules that must be followed when developing an agreement to create and issue a new token.
Since 2015, the ERC-20 has been providing a full-fledged guide to creating tokens. Each developer can issue their own coin and use a smart contract to ensure that the product has the necessary useful features.
Previously, each token had its own smart contract so there was a compatibility problem. Therefore, you had to write the code from scratch when adding an asset to an exchange or wallet.
The emergence of the ERC-20 standard allowed to quickly solve this issue by simplifying and unifying the issuance of tokens in a single blockchain. Today it is a one-stop solution to create and monetize DeFi-applications.
The ERC-20 standard has several required parameters. The totalSupply function is used to determine the total issue of tokens in order to prevent the creation of new tokens if the limit is reached. The balance0f function calculates the initial number of tokens belonging to a particular address (usually the issuer's address). The movement of tokens at the smart contract's expense is done thanks to the transfer function, i.e., transferring assets to users, and the transferFrom function performs a transaction. The approve function verifies the transaction, checking that the tokens are relevant for the distribution. The allowance function makes it possible to check the balance of the assets at the address to send them to the other party.
Other smart contract standards
ERC-223 - the standard has been running since 2017. It solves the mismatch problem, combines transfer and transferFrom functions, and introduces a new tokenFallback function to prepare a smart contract to accept any kind of coin. It is considered an improved version of ERC-20.
ERC-827 is the main competitor of the ERC-20 standard. It sends not only the number of assets but also the transaction data itself, that is, a third party confirms the transaction.
ERC-948 has been running since 2018 and is based on the subscription management model in the e-commerce segment. In other words, it is possible to use ERC-948 tokens and make regular payments in a specified period if the account has the necessary amount of funds.
ERC-777 - the standard implements the tokenReceived function in order to eliminate the repeated mode of transaction approval and reduce transaction time. The functionality is also focused on detecting incompatible or suspicious addresses.
ERC-721 - this is the standard for tokens used in online games. It was the first example of non-fungible tokens (NFT) creation when it was used in CryptoKitties project in 2017.
ERC-821 and ERC-875 are improved versions of the ERC-721 standard so that contracts can react to incoming tokens or send multiple NFTs in a single transaction.
Subscribe to our Telegram channel for the most relevant, interesting, and informative news from the crypto industry.