A smart contract is a preprogrammed contract that automatically executes if certain predefined conditions are (or are not) met.
The Ethereum project defines a smart contract as a collection of code (its functions) and data (its state), all of which reside at a specific account address on the Ethereum blockchain.
Now, if that last sentence threw you for a loop, don’t worry– the following article aims to break down the nitty-gritty technical aspects for a professional, but not programming-savvy, audience.
Sidenote: This article uses Ethereum smart contracts as a conceptual example. Smart contracts can be built on any blockchain platform, including Cardano and Solano.
What is a Smart Contract: The Nuts and Bolts
A smart contract on Ethereum is essentially just a type of Ethereum account. There are two different account types on ethereum: externally owned by anyone with the private keys, or a smart contract deployed to the network controlled solely by code.
Both accounts are capable of receiving, holding, and sending ETH tokens, as well as interacting with other deployed smart contracts.
The external account (think of this as your personal Ethereum wallet) costs nothing to create. You can create a new Ethereum wallet on a platform MetaMask or MyEtherWallet in under 30 seconds for free.
Note: Both MetaMask and MyEtherWallet are non-custodial Ethereum wallets frequently used to transact with the Ethereum ecosystem.
It can initiate transactions, but only between externally-owned accounts. For example, let’s say Bob wanted to send Jenny 0.52 ETH. This transaction would fall under this type of account– both wallets are “externally-owned.”
Note: This may sound like splitting hairs, but an account is not a wallet. A wallet is the key pair (public and private keys) associated with an– this allows a user to make transactions from an account.
A contract on the Ethereum network is different. For starters, you can’t just spin up smart contracts willy-nilly– they cost money because you’re using network storage. Contracts can also only send transactions in response to receiving a transaction.
Any transaction from an external account to a contract account can trigger the contract’s code, which can execute a specific action, such as creating a new contract or transferring tokens.
Since contracts run as they have been programmed and deployed by the network, they are not controlled by a user once they launch. Users can only interact with smart contracts by submitting transactions that execute a function defined on the smart contract.
The creator of the smart contract defines the rules, just like a regular contract, but instead of needing a court, arbitrator, or other administrative authority to enforce the contract, a smart contract automatically enforces them through its code.
By default, smart contracts can’t be deleted, and interactions with them are irreversible.
Deploying a smart contract is basically– you need to pay your gas fees to use the network just as you would pay gas to transfer ETH. However, contract deployment gas fees are much higher than simple transactions because they take up more resources and require much more work.
Ethereum-based smart contracts are all public– one can call other smart contracts in your own smart contract, which greatly expands the possibilities of automation.
Smart Contract Applications
Smart contracts open a world of possibilities for various industries, and they’re already revolutionizing how certain businesses run.
DeFi, or Decentralized Finance, is already replacing the functions of centralized financial intermediaries, such as exchanges, brokerages, and banks. For example, instead of a bank taking in customer deposits and lending them out, a decentralized lending contract (as seen in Aave) would do everything automatically– from paying the depositor an APY for their assets to determining the approval of and holding the collateral of the borrower.
Uniswap, the industry’s largest decentralized exchange, allows users to exchange Ethereum-based assets without ever having to interact with each other or through a centralized third-party exchange like Coinbase.
Let’s say you rent a Tesla from Bob. Let’s assume the Tesla is super tech-enabled. You both decide to do it via the blockchain. Bob spins up a smart contract– you must pay 0.25 ETH on the first of every month, and the contract lasts for two years. Your digital entry key is active as long as you are in good standing for the month. This entire process would be executed automatically– if your car key works, Bob can be certain you paid that month. If you paid that month, you can be certain your car key works.
Anyone can write and functional smart contract and deploy it to the Ethereum network– you just need to know how to code in a smart contract language (Ethereum uses Solidity or Vyper) and have enough ETH to deploy.
But…How Does a Smart Contract Know If an Event Actually Happened?
A smart contract, by itself, can’t get information about a “real-world” event by its own design. It can’t send HTTP requests (on the Ethereum network.) This is done because if a smart contract were to rely on external information, it opens it up for a point of failure.
For example, let’s say we executed a smart contract for the 2020 Presidential Election. Bob bet Trump wins, Mary bet Biden– 1 ETH, the winner gets all. IF contracts pulled from real-world events, they would have to determine which source to use. Let’s say Bob and Mary specified Fox and CNN had to both agree on the winner.
Let’s imagine in a hypothetical situation that both news networks disagreed. What would the contract do?
Let’s say someone hacked CNN and FOX for a day and said the losing candidate won. The contract would execute based on false information.
Ethereum is a decentralized network, so picking a central point of failure such as a news source, introduces an Achille’s Heel.
An oracle is like an on-chain API that is trusted to be queried for smart contract information; they can showcase price information, weather points, to sports outcomes.
Final Thoughts: How Will Smart Contracts Impact Lawyers?
Smart contracts will impact lawyers in whatever way lawyers are prepared to be impacted.
Legal sub-sectors and businesses that still largely rely on antiquated processes like primarily written documents and fax machines are headed for a direct collision with smart contracts.
A forward-thinking legal organization would look at smart contracts as a way to at least streamline back-office operations, if not to craft a new “smart contract” offering for an increasingly wealthy, tech-literate, and active clientele that is the cryptocurrency industry.