Sometimes, the blockchain tech space may seem a bit cryptic and full of “buzzwords” that get thrown around a lot. For new users it may be hard to understand what these mean, and the more complex the concept, the harder it becomes. This is sometimes the case with smart contracts, one of the most popular use cases for blockchain technology, but one that may leave some questions for those that are getting into the crypto train now.
The phrase "smart contracts" was coined by computer scientist Nick Szabo in 1994, which is why one of the units of account in Ethereum is called Szabo, which is equal to 0.000001 ETH.
Smart Contracts are, in a simplified manner, contracts that execute themselves. In its most basic form, a smart contract may consist of a transaction that is triggered by an event, for example another transaction or a certain block height being reached.
The purpose of these contracts is to eliminate the need for trusted third parties completely. Before the inception of smart contracts, the conditional release of funds can only be expected to work with a trusted party holding the funds to be released once the condition is met. With smart contracts, the transaction is programmed to happen once the condition is met, with no human action required. This eliminates the need for trust and the fees associated with hiring a third party.
There are two types of smart contracts: Deterministic and non-deterministic.
These are defined by the availability of the conditions required to trigger actions in the smart contract. A deterministic smart contract gets all of its information from the blockchain on which it operates. This information can be a certain transaction, a certain block-height, the execution of another contract and so on, as long as the information can be found on the blockchain.
Examples: Provably fair lotteries, multisig transactions
The other kind, nondeterministic smart contracts, require information that is exterior to the blockchain. This can be anything from the result of a soccer match to a weather report, to the results of an election. Anything you can think of. However, these types of contracts do require the user to trust an Oracle.
The Oracle is the “missing link” between the blockchain and the real world. Through an oracle, the smart contract can be fed information about an exterior event and be triggered by it. This, of course, requires a user to trust the Oracle that is used. However, it is also possible to use a decentralized method in which a group of token holders can vote on a certain event outcome and thus trigger a smart contract. This system is applied in the Augur prediction market.
Examples: Sports betting, prediction markets
Smart contracts can, not only trigger the release of funds, but they can also trigger other complex actions. A system of smart contracts can be arranged to build decentralized applications, something that is already taking place on the Ethereum network with projects like: Augur, FirstBlood, and others.