Ethereum smart contracts: What are they & how do they work?
You may have heard about smart contracts and their potential to replace lawyers. Read on to learn what Ethereum smart contracts are, how they work, how to write them, and what role they play throughout Web3.
Table of Contents
What are smart contracts?
On any network, smart contracts are self-executing computer programs stored on a blockchain. They are programmed to automatically carry out an outcome based on predetermined conditions triggered by an input.
Unlike conventional contracts, the execution of smart contracts is automatic. Hence, it does not involve any intermediary. That means parties can enter into agreements directly, eliminating costs that are otherwise paid to intermediaries that make sure a contract is executed properly.
Commonly, it takes time for traditional contracts to be executed because of the constant back and forth between parties and intermediaries like banks and lawyers. With smart contracts, however, parties can reduce the time it takes to put an agreement into effect.
Ethereum has made smart contracts popular, but the concept isn’t new. Nick Szabo introduced the idea of a smart contract in a 1994 paper, where he defined it as “a computerized transaction protocol that executes the terms of a contract.” Two years later, he followed up with another paper in 1996 that further explored the concept.
What are Ethereum smart contracts?
On the Ethereum network, smart contracts carry out key operations throughout the biggest DeFi ecosystem in Web3. Ethereum smart contracts automate transactions, enable the creation of decentralized applications, track goods across supply chains, and handle token issuance on crypto projects, among other use cases.
The most common use case for smart contracts on the Ethereum network is currently in lending, borrowing, and staking in decentralized finance. These contracts allow users to lend and borrow from each other, as well as stake crypto for interest, without relying on human staff or trust to operate.
Ethereum smart contracts define the rules of an agreement and automatically enforce them via code. Since they’re on the blockchain, it’s theoretically impossible to delete smart contracts. Transactions are also irreversible, meaning once you activate a smart contract, it will implement the pre-defined terms, and no one can undo this action once it’s done.
How do Ethereum smart contracts work?
A smart contract is a code deployed on the blockchain that automatically executes transactions based on predetermined factors. Developers deploy smart contracts on the Ethereum network, which then run autonomously as programmed. Smart contracts reside at a particular address on the Ethereum blockchain.
A smart contract is a collection of two things: code and data. When you interact with a smart contract, you submit a transaction that executes the terms defined by the code. A smart contract follows the “if/when…then”-structure.
For instance, let’s say a property owner and a buyer have entered into an agreement. The buyer locks funds in a smart contract programmed to release the money if the property owner vacates the property, completes renovations, and shares digitized transfer ownership documents at a certain date.
Therefore, the seller can not receive the payment until the predetermined terms have been met. Only then, if the buyer is sure to be the rightful owner of the property, will the funds be released by the smart contract.
How to write smart contracts on Ethereum
Writing Ethereum smart contracts requires coding knowledge. In the case of Ethereum, you need to be familiar with the programming language Solidity and Vyper to build smart contracts. Having experience in JavaScript and Python will help, too.
The code defines the rules of the smart contract according to the “if/when… then” structure.
To illustrate, you can write a smart contract that will release 5 ETH to pay a developer’s salary every 5th of the month out of a company’s Ethereum wallet.
Once the code is ready, you need to deploy it to the Ethereum network. Deployment means sending an Ethereum transaction containing the smart contract code. Like any other transaction, you’ll have to pay gas fees, which are required to carry out a transaction successfully on the Ethereum network.
For more information, take a look at our detailed guide on how to write Ethereum smart contracts.
Challenges and risks
Ethereum smart contracts are a very powerful tool, but come with challenges and risks as well.
Security vulnerabilities of Ethereum smart contracts
Because smart contracts are immutable, meaning they cannot be changed or edited once they’ve been deployed, any bugs that make it into the final version are baked in. This immutability can and does cause security vulnerabilities.
For example, the Ethereum network was famously exploited in the notorious DAO hack of 2016 where millions of dollars worth of ETH was stolen by bad actors attacking a vulnerable smart contract. Several prominent members of the Ethereum community had repeatedly voiced their concerns that the code was potentially vulnerable.
Legal and regulatory risks
Because smart contracts can be created and deployed pseudonymously, with no name attached to the contract, it can be difficult to enforce legal agreements or recover lost assets on Ethereum. While smart contracts potentially have a major use case in removing the middleman from legal contracts between multiple parties, the technology does not yet have the regulatory architecture and clarity needed to support widespread use for legal agreements.
The use of real-world data through Web3 oracles is also a potential risk, as the system relies on automated interpretation of data rather than human judgment. As such, it’s possible that oracles could be misled or accidentally programmed in a way that does not disseminate accurate information, which could cause smart contracts to fail to execute in the manner in which they were intended.
FAQs
Can you build smart contracts on other blockchains?
Yes. Blockchains like Algorand, Avalanche, Cardano, Solana, Polkadot, and Hyperledger Fabric support smart contracts.
Are Ethereum smart contracts costly?
Currently, yes. They demand higher gas fees than simple transfers on the Ethereum blockchain. Generally, already the average price of regular transfers is high. Planned changes to the Ethereum network, however, could see the cost of smart contracts decline in the future.
Are smart contracts safe?
Smart contracts are susceptible to security risks due to bugs in the code. Hackers can exploit weaknesses in the code to implement attacks that could lead to the loss of locked funds. Therefore, smart contracts should be tested for bugs and any loopholes that hackers might utilize, just like any other computer program.
Can you deploy smart contracts on private blockchains?
Yes, you can. These smart contracts are usually deployed in the context of sensitive information that is not meant for public viewing.
Can smart contracts interact?
Yes. Smart contracts can deploy other smart contracts to the blockchain network. Multiple smart contracts can also interact with each other in one transaction.
What’s the future of smart contracts?
Smart contracts are likely to get “smarter” as developers find solutions to current problems. Also, many more mainstream organizations could adopt smart contracts as they look for ways to increase efficiency in their operations. Regulators may, therefore, see the need to clarify the legal enforcement of smart contracts.