Smart contracts were first theorized by Nick Szabo, defining them in a 1994 article (available at http://firstmonday.org/ojs/index.php/fm/article/view/548) as an electronic transaction protocol designed to execute the terms and conditions of a contract without depending on trusted intermediaries due to the minimization of execution exceptions.
These objectives are achieved by automating the contractual clauses embedded into the software and made self-enforcing by resorting to automated settlements, without the need for legal systems or trusted intermediaries.
Originally, smart contracts were implemented in limited form in Bitcoin, through the use of scripts developed in a non-Turing-complete language. Scripts allowed the transfer of Bitcoins between users of the network without the need to resort to reliable intermediaries.
In the next section...