Components in a blockchain network
In general, a blockchain system consists of a number of nodes, each of which has a local copy of a ledger. In most systems, the nodes belong to different organizations. The nodes communicate with each other in order to gain agreement on what should be in the ledger.
The process of gaining this agreement is called consensus, and there are a number of different algorithms that have been developed for this purpose. Users send transaction requests to the blockchain in order to perform the operations the chain is designed to provide. Once a transaction is completed, a record of the transaction is added to one or more of the ledgers and can never be altered or removed. This property of the blockchain is called immutability. Cryptography is used to secure the blockchain itself and the communications between the elements of the blockchain system. It ensures that the ledger cannot be altered, except by the addition of new transactions. Cryptography provides integrity on messages from users or between nodes and ensures operations are only performed by authorized entities:
The authority to perform transactions on a blockchain can use one of two models: permissioned or permissionless. In a permissioned blockchain, users must be enrolled in the blockchain before they are allowed to perform transactions. The enrollment process gives the user credentials that are used to identify the user when they perform transactions. In a permissionless blockchain, any person can perform transactions, but they are usually restricted from performing operations on any data but their own. Blockchain owners developed an executable software module called a smart contract, which is installed into the blockchain itself. When a user sends a transaction to the blockchain, it can invoke a smart contract module, which performs functions defined by the creator of the smart contract module.