What is a Smart Contract?
Table of Contents
- Definition of a Smart Contract
- Functioning and Characteristics of a Smart Contract
- Advantages and Use cases of Smart Contracts
- Limitations of Smart Contracts
Smart contracts, or intelligent contracts, were first mentioned in 1994 by cryptography expert Nick Szabo. However, it is only recently that they have become democratized following the emergence and development of blockchain networks and Web3.
It's the Ethereum project that made it popular. In this article, we will define what a smart contract is and how it works. We will then look at the advantages and use cases but also the limitations and criticisms of this technological advancement still in full development.
Definition of a Smart Contract
In the 1990s, Nick Szabo defined smart contracts as a tool for formalizing and securing computer networks by combining protocols and user interfaces. Their use was then mentioned in contractual areas such as credit or payment systems.
In the cryptocurrency ecosystem, a smart contract can be defined as a program or application running on the blockchain.
It is an autonomous computer program that is executed when predetermined conditions are met.
It allows strangers who have no way of trusting each other to carry out transactions securely, all without a trusted third party.
It is important to note here that although we talk about a contract, it does not have legal value, at least not yet.
Moreover, they are not really intelligent; they simply execute code on a blockchain.
Smart contracts are therefore a computer protocol that automatically exercises the clauses of the contract, allowing for automatic, secure, and decentralized exchanges.
As a cornerstone of blockchains, they could well transform our contractual relationships by facilitating our digital exchanges.
Functioning and Characteristics of a Smart Contract
A smart contract works like a deterministic program. That is, it performs a particular task if and only if certain conditions are met.
Simply put, it goes like this: IF condition A is met, THEN transaction B is executed.
The smart contract only executes if and only if the conditions are met.
And like any transaction on the blockchain, it is then subject to validation by the nodes.
On Ethereum, for example, smart contracts consist of contract code and two public keys. The first of these keys is that of the creator of the contract, while the second represents the contract itself. Each smart contract has a different key and the smart contract is deployed by a transaction on the blockchain.
A smart contract has the following characteristics:
1️⃣ Deterministic: The smart contract only performs the actions for which it was programmed if and only if the prerequisite conditions have been met.
2️⃣ Distributed: It is distributed and replicated to all nodes securing the blockchain, making them decentralized contracts.
3️⃣ Autonomous: It is capable of verifying that its execution conditions are met and then performing the actions for which it was programmed, all automatically.
4️⃣ Immutable: It cannot be modified after deployment. And it can only be deleted if a specific function has been programmed before deployment. This characteristic makes smart contracts inviolable.
5️⃣ Customizable: It can be coded in different ways and thus be used in many areas (dApp, mint NFT, …)
6️⃣ Trustless: The parties interacting with the smart contract do not need to know or trust each other.
7️⃣ Transparent: Being deployed on the blockchain, the actions of the smart contract are visible to all.
With all of these characteristics, smart contracts represent huge progress in terms of speed and autonomy.
Advantages and use cases of Smart Contracts
As we have seen earlier, a smart contract is programmable and customizable computer code offering many types of services and solutions.
Its characteristics of decentralization and autonomy can offer greater transparency and a reduction in operational costs. Anyone with an internet connection and some knowledge can independently verify any smart contract. Here is an example of the DAI smart contract on the Ethereum block explorer.
It plays the role of an accelerator, facilitating and securing transactions on decentralized networks, but it also allows for the conservation and exchange of data. Smart contracts can be revolutionary for industries and applicable in many areas. 👇
More than just a means of exchange, smart contracts can carry information, and thus play a major role in the economic, logistical, and organizational strategies of companies:
- Securing an agreement thanks to the immutability and transparency of smart contracts and the blockchain.
- Limiting intermediary costs due to trusted third parties, such as notaries or lawyers, for the drafting, monitoring, and execution of a contract.
- Reducing the risks of errors and interpretations thanks to more traceable and transparent information.
- Simplifying transactions between different actors thanks to the autonomy of smart contracts.
- Automating contractual obligations such as payments. This eliminates the risks of non-payment by an automatic transfer of funds that have been placed in escrow, for example.
Limitations of Smart Contracts
The code of smart contracts is written by humans, which implies risks of error, bugs, or flaws. Most of the hacks that protocols suffer from come from a flaw in the smart contract.
A frequent criticism is that centralized systems could provide most of the solutions and functionalities offered by smart contracts. The main difference is that smart contacts run on a distributed network, the blockchain, and not on a centralized server. As such, they are immutable and impossible to modify, which can be a very good thing or a very bad one.
Indeed, in case of an error in the smart contract, it is impossible to go back and modify it. The only way to delete it is to include a SELFDESTRUCT function in its code at the time of its creation. This will have the consequence of "deleting" it and replacing it with a new one.
However, more and more scalable smart contracts are being used, allowing developers greater flexibility in terms of their immutability. These can be deployed with more or less complexity. We can imagine a scalable smart contract divided into several small contracts. Some parts of the smart contract will be immutable, while others can be deleted and replaced thanks to the "delete" function that was included at the time of its creation.
Another limitation that can be found in the use of smart contracts is their legal status. Indeed, they are a grey area in most countries, and these "contracts" do not fit the current legal framework.
For example, many contracts require that the different parties be identified and over 18 years old. However, the pseudonymity of the blockchain and the absence of intermediaries can threaten these requirements. There are potential solutions to these problems, such as KYC (Know Your Customer) to control the identity/age of users or Zero Knowledge Proof solutions. However, establishing a legal framework for smart contracts is a real challenge.
And finally, although smart contracts are seen by blockchain enthusiasts as a solution to replace and automate much of our contractual and administrative systems, they are still far from becoming the norm.
Indeed, their transparency can make them less interesting in certain situations, their immutability can be a hindrance and prove ineffective in solving certain complex real-world problems. For example, in the case of managing personal data, the immutability of smart contracts can make it difficult to modify erroneous or obsolete data.
In some situations, centralized servers remain the most efficient. In addition, they are easier and cheaper to maintain. They are also faster, and their interoperability (the ability to communicate between different networks) is better.
There is no doubt that smart contracts have had a huge impact on the development and adoption of blockchains by the public.
This technology has the potential to disrupt almost all areas of our society, both digital areas like financial services and physical real-world areas like logistics management.
Only time and technological advancements in other areas like artificial intelligence will tell us if these revolutionary technologies will be widely adopted.
To summarize, smart contracts closely resemble paper contracts that we see in everyday life. The major difference here is that everything is in the form of computer code, automated and visible on the blockchain. Today, the most promising and widely used blockchain for smart contracts is Ethereum.
Colossos is a crypto banking solution that combines both banking and crypto services, allowing you to easily on and off-ramp with your EUR to deposit, withdraw, and exchange your cryptocurrencies.