Whether you are a newcomer to the world of cryptocurrencies or an expert, you have definitely heard about smart contracts. in this article, we go through what smart contracts are, how they work, and what we need to run a smart contract. Finally, we cover some drawbacks and limitations of them. Stay with us
Whether you are a newcomer to the world of cryptocurrencies or an expert, you have definitely heard about smart contracts. Smart contracts constitute a crucial part of cryptocurrencies’ ecosystem today. Nowadays, cryptocurrencies are more than just means for conducting digital payments. They seek to remove all intermediaries and automate all the processes that are tied to third parties.
Today, we use decentralized applications to take loans, trade cryptocurrencies without relying on centralized exchanges, participate in play-to-earn games and even run totally online and autonomous organizations called DAOs. None of these would have been possible without smart contracts.
Therefore, being familiar with smart contracts and their underlying principles is vital for every cryptocurrency user and lover. Accordingly, we have dedicated this article to smart contracts and their applications. In this article, we go through what smart contracts are, how they work, and what we need to run a smart contract. Finally, we cover some drawbacks and limitations of them. Stay with us.
What are smart contracts?
Imagine that you have a house which you want to rent. You prepare a contract and include all the required terms and conditions, but one big difference this contract has with the traditional ones you have in mind is that it is completely digital.
You determine the amount of the rent and specify the date you wish to take it. The tenant reads the contract and if they agree with the terms, they sign it. From this time on, the amount of the rent will be subtracted from the tenant’s bank account. No party can violate the terms included or make any changes, and the contract will execute automatically and under any conditions.
This may seem far-fetched or you may even consider it as part of a sci-fi movie, but the reality is that this is exactly what smart contracts are doing.
In simple terms, a smart contract is a code which is written on the blockchain. It includes some terms which when met, the contract will execute automatically.
A smart contract is something like an “if-else” function. Remember the example of renting a house which we referred to above. The smart contract can be something like this: “if the tenant paid the rent, the contract will be renewed; else, it will be terminated”.
Smart contracts totally eliminate the need to trust third parties. One interesting feature about these contracts is that nobody can stop them or impose any changes, even the person who has written them.
Since they run on blockchain, every member of the chain, or every so-called “node”, has one copy of the contract. Therefore, manipulating it is almost impossible, for it is being executed by all nodes, not a centralized server or authority.
Ethereum was the world’s first blockchain that supported smart contract technology. However, today there are many other well-known blockchains which have this capability, including Solana, Polkadot, Cardano, and Tron.
How do smart contracts work?
You may now be wondering how a smart contract exactly works, how one can code and run a smart contract, what is exactly needed to execute a smart contract and what are some real-world use cases of this revolutionary innovation. In the following parts, we will answer all these questions.
How is a smart contract run?
After you are done with coding your smart contract, the code will be recorded on the blockchain as a transaction. This is done through a client, which is an official software that directly connects you to the blockchain.
A smart contract can be coded using one or more than one programming language. For example, the language for coding smart contracts on Ethereum blockchain is Solidity. Therefore, in order to write a smart contract on Ethereum, you have to learn Solidity.
How is a smart contract executed?
In order to interact with a registered contract, you also need to make a transaction. This transaction is sent to the contract as an input. It is worth mentioning that each contract has a unique address, to which transactions are sent.
We can again use the example of renting a house to clarify the point. Imagine that you are the tenant and you want to pay the rent. You send a transaction to the smart contract and pay the required amount. Since the contract is coded in a way that it is automatically renewed if the rent is paid, after you pay the rent, you can be sure that the house still belongs to you.
Pay attention that in order for a transaction to be confirmed, you need to have enough ether to pay for the gas. Gas is the fee that is required to conduct a transaction on the Ethereum network.
Smart contracts are executed by all nodes simultaneously, using an innovation called Ethereum Virtual Machine or EVM. Like any other virtual machine, EVM is a computation engine that acts like a massive, virtual, decentralized computer. It is the foundation of Ethereum’s operating structure and is responsible for executing smart contracts.
As the final point, we would like to mention that the process through which a smart contract is coded and executed has so much technical complexity. Therefore, you may be confused on how smart contracts work, and that is completely normal. But, remember that as an ordinary user, you do not need to be familiar with all technical details to use these contracts, exactly as for using the Internet, you do not need to know how it exactly works.
What do we need to create a smart contract?
Generally speaking, in order to create a smart contract, you need the following stuff:
Subject and accessibility
The smart contract must have access to all required products and services. For example, if a smart contract is used to hand over a file under certain conditions, it must have access to the file.
In a smart contract, terms must be specified as accurately as possible. These are the conditions that determine how and when a smart contract must get executed, so it’s of great importance to be accurate and minimize the errors.
Oracle is a technology that delivers external data to the contract. For example, if your smart contract is created to track the price of an asset, the oracle may be a valid website.
Smart contracts need a blockchain to be distributed among and executed by its nodes. Moreover, you need an official website to connect directly to the blockchain. Ethereum is still one of the most popular blockchains for running smart contracts.
Drawbacks and limitations of smart contracts
Up to this part, we talked about the underlying principles of smart contracts and went through the advantages they have over traditional contracts. However, smart contracts are not flawless and they have their own limitations, including:
Smart contracts are coded by humans, so it’s always possible to encounter bugs and errors. One big drawback is that when a smart contract is recorded on the blockchain, it’s impossible to change it. A famous example for this is the DAO hack. The DAO was the world’s first decentralized autonomous organization which was run on the Ethereum blockchain. There was a bug in the code of this DAO. Hackers found this bug, exploited it and stole more than 50 million dollars of users’ funds. In order to compensate for the stolen funds, Ethereum had to undergo a hard fork and this led to the creation of Ethereum Classic.
In order to code a smart contract, you have to be an experienced developer, or you have to ask for help from other developers. Besides, you have to pay for the gas, both for executing the contract and for interacting with it.
Smart contracts are not officially and legally accepted by the governments yet. For example, ownership of a house which is recorded on a smart contract is not accepted by the governments.
The oracles’ problem
We previously mentioned that oracles are ways for delivering external data to the blockchain. Using oracles in smart contracts is inevitable, because they need to have access to external data. However, this causes two problems. Firstly, the oracle is a centralized website or source and that is in conflict with the nature of smart contracts. Secondly, the oracle itself may not be valid.
There is no doubt that smart contracts will play a significant role in shaping our future and it is even likely that these contracts will completely replace traditional ones. Smart contracts have features which make them unique, and maybe their most prominent feature is that they eliminate the need to trust intermediaries.
However, if these contracts want to gain public acceptance, they have to do something about their limitations. Smart contracts’ biggest barrier to public acceptance may be their legal status and as long as this is not clarified, we cannot hope to use them in greater scales.