# Blockchain: Current Challenges and Future Prospects/Applications
## 2 The Unique Value of Blockchain
### Technical Characteristics of Blockchain-Based Systems  
The architecture of a distributed ledger system consists of many different technological components. In more detail, such systems utilize different types of data structures (e.g., a reversed linked list, direct acyclic graphs), distributed computing mechanisms (e.g., consensus protocols), cryptographic techniques (e.g., hashing functions, asymmetric-key cryptography, and digital signatures) blended with game theoretical concepts (e.g., concepts that are based on financial _incentivization structures_; used mostly in public, permission-less and open-participation protocols e.g., the Bitcoin Blockchain). Clients transact over a distributed peer-to-peer network by exchanging messages using message-passing techniques. In such a system, the identity of each client is recorded with a pair of public/private keys that are mathematically linked with each other (based on asymmetric-key cryptography). In reality, only the public key (referred to as the _address_) of a client is revealed to other clients of the network.  
The exchange of information between nodes falls under the concept of a _transaction_. For a blockchain-based system, the concept of a _transaction_ can be abstract and can encapsulate any type of data. For example, some blockchain protocols record the transfer of assets as a transaction (e.g., a digital currency). Each client who wishes to interact with the network uses his/her private key to sign the transaction. The mechanism of signing transactions enforces authentication and integrity of transactions over the entire network. These signed transactions are then propagated to the network and need to be validated before being added to the underlying append-only structure (also known as the _ledger_).  
Usually, all transactions are queued and their validity is verified according to the rules of the protocol before being appended to the _ledger_. Considering the Bitcoin blockchain [7] all transactions are queued in the _transaction_ pool, and miners propose blocks (sets of transactions) to be added to the chain. Miners are required to check: (i) the validity of each transaction, and (ii) that the current block will refer to the correct hash of the previous block (each block is linked with the hash of the previous block thus forming a chain i.e., the blockchain. An alternation to any of the previous blocks will result in a different hash value, thus it is easy to detect whether data from a block has been tampered). If that is the case then the proposed block is added to the chain and all nodes update the state of the world. The system is required to maintain a global view of the world, among a set of untrusted parties that are competing with each other and attempt to reach consensus, under certain rules and conditions that are defined by each protocol. For instance, the Bitcoin protocol proposes a computationally intensive consensus algorithm (also known as proof-of-work) for maintaining a level of robustness (i.e., preventing double spending), at the same time incentivizing actors (with a reward model) to participate in a computational race for validating blocks, by finding the solution to a hash puzzle [8].