A smart contract is a computer protocol intended to facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts were first proposed by Nick Szabo in 1996 [5].
A smart contract is a set of promises, specified in digital form, including protocols within which the parties perform on these promises, -- Nick Szabo [1].
Good analogy to understand smart contracts better: