Ethereum - Blockchain Smart Contracts


Smart Contracts are powering the applications and programs built on Ethereum Protocol. They are the same as real-world contracts, except they are digital. So, it is best to say that Smart Contracts are digital contracts in the form of computer programs.

The best metaphor for a smart contract is a vending machine.

You create some inputs (money + number of the snack on the vending machine) and get a certain output (snack). This is programmed into the vending machine. Smart Contract works the same way. The vending machine removes the need for a vendor employee, smart contracts remove intermediaries in many industries.

Characteristics of Smart Contracts:

  • Immutable

Just like blocks in the blockchain, smart contracts, once deployed, cannot be changed. The only way to modify it is to create a new one. 

  • Deterministic

Doesn’t matter who runs it, the outcome will always be the same for everyone.

  • Decentralized

Nobody owns a Smart Contract. It belongs to everybody, as everything else is in the decentralized network.  

Advantages of Smart Contracts:

  • A higher degree of security
  • Automatic agreement enforcement and the ability to turn legal obligations into automated processes

Smart contracts are written in Solidity programming language. It is a high-level language that can be understood by humans. For Ethereum Protocol to understand it, it has to “translate” it to another “language” called bytecode. The Google Translator of Ethereum is Ethereum Virtual Machine. After the translation is completed, a smart contract is deployed on the Ethereum platform using a special contract creation transaction. 

Smart Contracts have their own Ethereum address (Public Key), but no Private Key. They are identified as Contract Accounts.  

These programs run on one condition – only if they are called by a transaction. They never run on their own, only if an Externally Owned Account initiates a transaction to the Ethereum Address of the Smart Contract. Once called, Contract Account initiates a transaction on its own or calls another contract, which can call another one, and so on.

Share this Post