The concept of smart contract is called numerous times in the crypto ecosystem. But to understand a smart contract, we must first review what a contract means. A contract is an agreement between two or more parties, where certain rules of the game are established: what can be done, in what way and what happens if something is not fulfilled. This allows both parties to the contractual relationship to understand the interaction that is to take place in its entirety. Until now, contracts have been verbal documents or expensive written documents. These documents are subject to territorial laws and jurisdictions, and often require notaries. The latter implies more costs, time and third parties involved in the whole process. And, as if all this were not enough, the content of the contracts may be subject to interpretation. What are smart contracts?
On the contrary, a smart contract is capable of executing and enforcing itself, automatically and autonomously, without the need for intermediaries. They avoid the problem of interpretation by not being verbal or written in the languages we speak, since they are “scripts” (computer codes) written with programming languages. Thus, the terms of the contract are code commands.
The first to use the concept of smart contracts was Nick Zsabo in 1993. He explained that these are responsible for combining protocols with user interfaces to secure relationships across computer networks and that it was a way of formalizing relationships within the digital world, in his work “Formalizing and Securing Relationships on Public Networks“. At the time, the practical application of these concepts was far from becoming a reality because at the time the technology was not adequate for all the requirements involved. Years later, with the advent of Blockchain technology, the concept of smart contracts was put back on the table and now we have the possibility of a much more solid application with actual use cases.
What are smart contracts?
A smart contract is defined as a computer program that is programmed to automatically execute agreements determined by two or more parties. Such a contract is subject to the achievement of a term – the arrival of a certain day – or a condition – the occurrence of a certain event. When either of these occurs, the contract is executed without the need for a judge or an authority to demand its fulfillment.
In order for them to be executed correctly, automatically and without fail, we need predictable, transparent and incorruptible environments. Smart contracts are immutable because they are distributed among thousands of nodes that cannot alter their content. This way, we obtain a program that will always act in the same way without requiring the goodwill of a third party, which is the opposite of centralized systems. Smart contracts always act in the same way, and allow storing information that cannot be modified by will for individual purposes. They are the most secure programs and only fail when poorly programmed.
In understanding these definitions we can ask ourselves: how can the contract be fulfilled? How is it determined that the condition to which the fulfillment of the contract was subject has occurred in order for it to be carried out in the correct manner? This is where the so-called oracles come into play.
What is an oracle?
Smart contracts do not have access to data outside the network (off-chain). However, for the execution of contractual agreements, it is indispensable to have relevant information about the outside world. Thus, oracles provide a link between off-chain and on-chain data. Oracles are vital within the blockchain ecosystem because they broaden the spectrum in which smart contracts can operate. Without blockchain oracles, smart contracts would be of very limited use, as they would only have access to data internal to their own networks.
It should be noted that the blockchain oracle is not the source of information itself, but the layer that queries, verifies and authenticates external data sources, and then transmits that information. Oracles can verify any information that is on the internet, and their data can take various forms: the arrival of a date, information on a price within the market, the successful completion of a payment, the occurrence of a particular event, and more. They can evaluate anything that the parties to the contract determine the execution of the smart contract.
Traditional and smart contracts: Similarities and differences
As previously mentioned at the beginning of this note, it is important to understand the basics of traditional contracts in order to understand smart contracts. While as we have discussed there are many elements in common between traditional and smart contracts, there are also differences between the two that are worth mentioning.
Consent of the parties involved
Smart contracts are computer programs written in code, therefore the parties must identify themselves with an algorithm, wallet or code, depending on the purpose of the contract. As in traditional contracts, two or more parties are also required to express their will, but as we can see, the determination of their participation is not the same.
To confirm consent within the contract, the parties must make a “double deposit” at a certain address: the parties involved must deposit funds as a guarantee to ensure that they will fulfill their obligations. At the same time, we have a tool called “multi-signature function”, which will require all parties to approve the internal transactions of the contract. This prevents any of the parties from withdrawing or handling the funds that have been deposited in the address that manages the contract without following the rules stipulated in the contract.
Difference in its formalization
Traditional contracts are made in writing and must be formalized with a notary or judge, depending on the legislation and each case. Smart contracts, by their very nature, do not require the review of any type of judge or notary to validate the agreement reached: the contract is self-executing. What are smart contracts?
Emergence of smart contracts in Ethereum What are smart contracts?
Bitcoin has some smart contracts already created that are executed by default and transparent to the user, such as multi-signature wallets, in which two or more parties must approve the completion of a transaction before the funds are released. However, the rise of smart contracts came with Ethereum, a platform characterized by greater ease of use when creating decentralized applications. Because of its flexibility, it is the network where DeFi projects emerge. Vitalik Buterin, one of the main creators of Ethereum, observed Zsabo’s concept and determined that with blockchain technology and the decentralized system proposed by Satoshi Nakamoto, smart contracts could be executed within his proposal, the Ethereum network.
Vitalik proposed a network with a “built-in Turing-complete programming language that can be used to create “contracts” that can be used to encode arbitrary state transition functions, allowing users to create systems.” These systems are virtually limitless. At the time of Ethereum’s creation, he posited that these programs could be employed in three types of applications: financial, semi-financial and non-financial applications: identity and reputation systems, decentralized file safekeeping, Decentralized Autonomous Organizations (DAO) and many more.
A smart contract is valid without depending on authorities, due to its nature: it is a code that is visible to all and cannot be changed, as it exists on blockchain technology. This gives it an immutable, transparent and decentralized character. This makes the blockchain the perfect platform for these smart contracts. Once the smart contract is published on the blockchain, there is no way to modify it and it is not subject to interpretation. This is the power of contracts written with a programming language, which in the future will have many more applications and use cases than currently exist. Very soon we will make more notes to deepen the whole universe of smart contracts and the possibilities they offer.