In Ethereum “smart contracts” are pieces of code that run on the blockchain and are guaranteed to produce the same result for everyone who runs them. And since they are on the blockchain and integrated into how Ethereum works, they can be done without any middleman or other third party. These can be used to create a wide range of Decentralized Applications (DApps) which can include games, digital collectibles, online-voting systems, financial products and many others.
The term “Smart Contract” was coined by Nick Szabo in the 90’s. Szabo used the basic example of a vending machine to describe how real-world contractual obligations can be programmed into software and hardware systems. Everyone who puts the correct amount of coins into the machine can expect to receive a product in exchange. Similarly, on Ethereum, contracts can hold value and unlock it only if specific conditions are met. The Ethereum blockchain enables this by providing a mechanism where transactions only take place when certain criteria take place.
The scripting language used by Ethereum is Turing-complete, essentially meaning that the types of DApps users can design is limited only by their programming skills and creativity.