A smart contract is a computer program or a transaction protocol which is intended to automatically execute, control or document legally relevant events and actions according to the terms of a contract or an agreement. The objectives of smart contracts are the reduction of need in trusted intermediators, arbitrations and enforcement costs, fraud losses, as well as the reduction of malicious and accidental exceptions.

For example, say a user wants his or her money to be sent to a friend next Tuesday, but only if the temperature climbs above 90 degrees Fahrenheit according to weather.com. Such rules can be written in a smart contract.

Oracle Services: Oracles are data feeds from external systems that feed vital information into blockchains that smart contracts may need to execute under specific conditions. The growing need for oracles represents the continued expansion of blockchain systems into practical and real-world use cases, where accurate data is crucial.

Solidity: Solidity is an object-oriented programming language for writing smart contracts. It is used for implementing smart contracts on various blockchain platforms, most notably, Ethereum. It was developed by Christian Reitwiessner, Alex Beregszaszi, and several former Ethereum core contributors to enable writing smart contracts on blockchain platforms such as Ethereum. The programs compiled by the Solidity are intended to be run on Ethereum Virtual Machine.

Notebook for self-learning