Smart contracts are similar to the standard offline contracts except that they are implemented digitally as a software program on the distributed, decentralized blockchain. They allow agreements and transactions to be executed between anonymous parties without the need for 3rd parties such as a central authority or external enforcement mechanism. As the smart contract is computer code, once the parties within the contract have fulfilled the stipulations of the contract, all actions pertaining to the agreement or transaction are immediately executed. All actions associated with the smart contract are trackalable and irreversible on the blockchain.
Ethereum was the first blockchain to implement smart contracts based on its language Solidity and remains the most popular to date. However, other blockchains (e.g., Cardano, EOS, Neo, Dfinity) have smart contract functionality and are trying to overcome some of the deficiencies with the Ethereum blockchain. Generally, Bitcoin is not used for smart contracts as it was not designed for that purpose.
Vending machines are an example of a smart contract where the rules of the transaction are programmed into the vending machine. The customer is informed of the cost of each product and selects the product. The customer then presses the button for that project and the machine ejects the product. If the customer has put in too much money, the machine also ejects the change.
The vending machine automated and simplified the sales process. It slashed costs for the distributor and increased the size of the distribution network as a human or a dedicated store were not required. For the customer, the product was now cheaper and more accessible.
In this manner, smart contracts will have the same impact on a number of industries, similar to what vending machines did for the retail.
All tokens are smart contracts, but not all smart contracts are tokens. A token is a type of smart contract that defines how tokens are generated, how they are transferred across different parties, whether they are fungible, etc.
Automation. As smart contracts are just a set of computer instructions, once it is designed and coded correctly for a specific activity, it is easily replicated and streamlined.
Cost savings. No intermediaries are needed (i.e., notaries, estate agents, advisors, etc) thus all fees associated to their services are minimized or nullified.
Efficiency. As the information is stored on the blockchain, actions wasted on manually processing paper documents, transporting them to the addresses of the contractual parties etc. are nullified. Thus, enforcement of contracts is a less costly and more efficient endeavour with transaction times shortened significantly.
Transparency. It is not possible to steal or lose any documents associated with the actions governed by the smart contract as all details are encrypted and stored on the blockchain. Either party can verify if a transaction has been executed by checking the blockchain or their digital wallets.
Interoperability. As the smart contracts run on the open blockchain ledger, the rules and actions of the smart contract can be implemented across multiple corporations with access to the same blockchain ledger.
Enforceability. As the smart contract is a program that exists on the blockchain, it is a completely digitized process. Therefore, parties involved in a smart contract cede performance of the contractual obligation to a digitized process that once executed, cannot be altered. Once the parties involved in the smart contract have complied with the stipulations of the contract
Ill-defined rules and conditions. As smart contracts are self-executing, once it detects that the parties within the contract have fulfilled the rules and conditions, it immediately executes the agreement or transaction. As the action is irreversible, ill-defined rules and conditions in the contract can have negative impacts on contractual parties in the agreement.
Coding errors. Even though rules and conditions are defined appropriately by lawyers in a natural language setting, the programmer has to ensure that he/she has translated and coded the rules and conditions correctly. Thus, smart contracts are subject to human error.
Contractual disputes. It seems that smart contracts are ideal and straightforward as the actions are executed upon meeting the conditions as stipulated in the contract; however, in the real world there can be ambiguities regarding how the conditions are met, especially in complex situations. In complex situations, contractual principles such as frustration, duress, undue influence, on any parties involved may require subjective interpretation of judgement on a case-by-case basis. Smart contracts by their very design are not amenable to subjective interpretation.
The implementation of smart contracts can bring along many benefits; however it is likely that its use in the immediate future will be limited towards simple and straightforward transactions and agreements where the actions taken by parties involved in the contract or the object being transacted is not subject to wide and subjective interpretation.