Contrary to what the name might suggest, smart contracts on blockchains are not contracts.
In fact, the technical term “contract” generally means a true legal arrangement between several or more parties, which binds them before the law.
Smart contracts that run on blockchains, on the other hand, are not legal arrangements, they do not necessarily require the signature of several parties, and above all, they do not create legal constraints.
To tell the truth, originally the definition of “smart contract”, conceived in the early 90s by the computer scientist, lawyer and cryptographer Nick Szabo, referred to objects useful for the management of rights in a computer system but took on a different meaning when the Ethereum network was launched in 2015.
Indeed, Ethereum introduced a computer object not yet present on the previous blockchains, such as the Bitcoin one: a block of code that can be recorded in a virtually unchangeable way on the blockchain, so that it is automatically executed by the virtual machine.
In other words, it is a computer program that is not executed by a single machine, but by the virtual machine of a decentralized network.
This way, not only is it tamper-proof, but it is also public, and there is an almost absolute certainty that it is running in exactly the way it was programmed to.
When a smart contract is running on a decentralized network, it is virtually impossible to prevent it from executing or tampering with it in order to make it execute different instructions from those planned. Since decentralized networks are public, it is also possible to examine it to understand exactly how it works.
One drawback of these programs is that they can only operate with resources on the network on which they run, so for example a smart contract on Ethereum cannot operate with Bitcoin.
However, there are various systems that allow to obtain interoperability with other blockchains, or to interact with information coming from outside, and in particular from the physical world (thanks to the so-called oracles).
Since a blockchain is essentially a ledger for validating transactions, a smart contract on a blockchain is often nothing more than an automated transaction manager, to the point that it is often referred to as “programmable money”. It is precisely because of this feature that it has been compared to a contract, as many contracts require transactions to be executed if certain conditions are met.
In a smart contract, all this happens automatically because once recorded on the blockchain it will be executed only by the virtual machine of the network.
However, not all blockchains include the possibility to use smart contracts. In fact, a virtual machine is required to execute them, and some blockchains, such as Bitcoin, Litecoin or Monero, do not have one.
The first and most used blockchain in the world that supports smart contracts is obviously Ethereum.
However, in the course of time many other blockchains, or similar technologies, have been added that allow the execution of smart contracts.
In particular, the two most used blockchains for this purpose, after Ethereum, are EOS and TRON, but Binance Chain is getting bigger thanks to some recently introduced features.
There are actually many distributed ledgers that can be used for smart contracts, such as Cardano, Stellar or Neo, even if in some cases these are not always true blockchains. In fact, smart contracts are also widely used by private or permissioned DLTs, which from a strictly technical point of view are not blockchain because they are not public and decentralized. A perfect example of this type of DLT that supports smart contracts is Libra, but also R3 Corda and Hyperledger.
The fact is that smart contracts are often the main use of blockchains which have a native cryptocurrency that is not particularly interesting, and since the vast majority of native cryptocurrencies are not particularly interesting per se, this means that most blockchain projects actually focus on smart contracts.
Indeed, there are actually very few successful blockchains without smart contracts, because in these cases they focus everything on their native cryptocurrency, and there aren’t many interesting native cryptocurrencies.
To this should also be added that in some cases, as for example with Bitcoin, an attempt has been made to add features similar to those of smart contracts even to blockchains that initially did not include them, adding higher levels based on the original blockchain. Even Ripple added smart contracts at a later time.
Lately, for example, there have been some blockchains with smart contracts that have been making people talk a lot about themselves, such as Tezos, VeChain and Zilliqa, but in reality the list of DLTs that support these features is very long.
Nonetheless, it has to be said that the sector of public blockchains with smart contracts is literally dominated by Ethereum, with EOS and TRON behind. In future, however, there could be novelties, starting from the Facebook project, Libra, which although not completely decentralized has the potential to be widely used.