There are many definitions for smart contracts: my favorite (from recollection, Richard Brown) is
A smart contract is one where the control of assets is managed by a computer
- Smart contracts are executable business logic and data, written in a computer language
- Smart contracts can run on a public block-chain / distributed ledger that is de-centralised
- The block chain is secure.