In a decentralized world, trust is not a vital ingredient to make things work. Blockchain relieves participants from having to depend on a centralized party to control truthfully. No more entrusting your business’ livelihood to a third party intermediary in hopes they’re going to always do the correct thing. With blockchain, every participant is on top of things, yet nobody has total control. There are variety of technologies employed by blockchain designs to materialize this self-governance. Smart contracts are to date the foremost and widely adopted technology.
A smart contract refers to a chunk of malicious program that gets executed by a quorum of blockchain nodes independently so as to record the newest program state. this could seem complex, so let’s take your time to unpack it.
Basic Definition of Smart Contracts
Smart contracts are executable programs. they’re usually written in high-level computer programming languages so as to represent arbitrary business logic or pre-determined criteria to trigger transfer of values. For a wise contracts engine to be effective in supporting a good range of use cases, the language has to be Turing complete, a flowery engineering term meaning the language is programmed to resolve any computation problem. For this reason, although it’s possible to program in Bitcoin scripting language, because it’s very limited in functionalities, Bitcoin isn’t considered to possess smart contracts.
Smart contracts get executed by the block chain nodes, as a result of processing transactions that are submitted by the user. A blockchain transaction incorporates a designated target smart contract function, a payload that contains input values to the call, and always signed by the submitter. A transaction is submitted to any node within the blockchain network, which broadcasts it to the complete network so all the nodes will see the transaction. At some point, the transaction gets processed by each individual node using the executable program within the target smart contract. If the transaction execution is successful, the interior state of the blockchain are going to be updated. a wise contract may additionally consider the input to be invalid and reject the transaction as failed, during which case the state isn’t affected.
Smart contracts must be independently executed by a quorum of blockchain nodes. Unlike traditional databases, blockchains are decentralized. Every node assumes others are potentially malicious and never trusts states maintained by other nodes within the network. Instead each node maintains its own state database by executing the transactions themselves using the smart contract code.
How does this independent execution mechanism in every node guarantee that every node guarantees that all nodes are in identical state?
All nodes must have the identical beginning state, same input values and also the same execution logic. If all three parts are identical, the tip state is sure to be identical. The chain of blocks with the linked hashes each representing the total list of transactions (input values) and current states (beginning state), plays a critical role in forming consensus among the blockchain nodes.
Finally, different blockchain protocol employ different techniques to guarantee that the identical smart contract cods are executed to process the transaction.
The main purpose of smart contracts is to take care of program states. State is an arbitrary piece of information that gets updated by executing a transaction. In this sense, a blockchain will be conceptualized as a database, although it’s designed to lean heavily towards data consistency and immutability, at the price of speed and query support. The majority blockchain protocols are designed to follow a state transfer conceptual model.
Each smart contract maintains its own set of states. Most transactions submitted to a blockchain, target a smart contract, with the exception of pure value transfers that don’t involve smart contracts. Once a transaction is executed, the target smart contract updates its state. A smart contract can call another smart contract, so as to question the downstream contract’s state or update it.