Smart contracts are neither contracts nor particularly smart. They are simple programs that are stored on the blockchain along with information about coins, tokens, and wallets. Smart contracts are key to the development of decentralized applications based on cryptocurrencies.
Smart contracts do not run on the Bitcoin blockchain. The technology was introduced as part of the specification for Ethereum in 2014. So when it comes to smart contracts, Ethereum is the name of the game. That is one reason so many dApps are built to run on Ethereum and Ethereum-compatible blockchains.
Smart contracts started as simple IF/THEN statements. The developer who coined the term “smart contract” described a smart contract as a blockchain version of a vending machine: IF the right coins are deposited, THEN dispense a snack. In a sense, the vending machine is smart, meaning it is able to execute its task automatically and independently.
On Ethereum, a smart contract might specify that IF a sum is received in the user’s wallet, THEN 10% is transferred to a second wallet set aside for long-term savings.
Most smart contracts are now written in a programming language called Solidity, which was created by some of the same software engineers who created early versions of Ethereum. Solidity supports the creation of smart contracts that are more sophisticated than the simple IF/THEN model.
Like other information on the blockchain, smart contracts are immutable, meaning they cannot be altered after they are deployed, and irreversible, meaning they cannot be erased. Most developers make the source code to their smart contracts available for inspection so users can be sure the contracts don’t siphon off some or all of their funds to the developer’s wallet.
All blockchain-based decentralized finance applications and other dApps are based on smart contracts.