So what is this cryptographic puzzle?
- The challenge is essentially finding a nonce – a unique number that satisfies the requirements of the blockchain platform. For Bitcoin blockchain, the process is as follows:
- Requires that the node/miner guess an initial nonce or number and hash it with the block.
- The hashed digest is checked against a target value developed by the Bitcoin blockchain software.
- If the hash is greater than the target value, then the node increments the nonce, redoes the hash and compares again.
- This continues until a nonce value is found that generates a hash which is less than or equal to the target value.
- There could be a significantly large number of nonce values that can satisfy this requirement. However, the overall set of numbers that the node can consider as a nonce is exponentially larger, so it is really becomes a matter of being lucky when solving this puzzle. The more computing power a node can dedicate, the more likely they are to solve the puzzle.
- Once the correct nonce is determined, the node informs all of the other nodes on the network. The algorithm allows them to very quickly check and confirm or deny whether the nonce is correct. If correct and there is consensus with at least 51% or more of the nodes, then the block is confirmed and added to the chain. This process occurs every ten minutes as required by the Bitcoin platform.
- The target value is known to all nodes on the network as it is generated by the Bitcoin blockchain platform. The current target value is - 000000000000000000275a1f00000000000000000000000000000000000000004 and it is adjusted by the Bitcoin blockchain platform every 2016 blocks, or about 2 weeks depending on how quickly or slowly the nodes are solving the puzzle.
- If the nodes solve the puzzle very quickly, the platform increases the difficulty in solving the puzzle.
A concern with PoW consensus is that over time, it becomes quite expensive to solve. There is an exponential increase in computing power and financial cost, and it may become impractical for enterprise/business to use a blockchain requiring PoW consensus.
A more practical approach for enterprise/business application is to use Proof of Stake (PoS) or other consensus protocols. These are discussed in Part 2 of this white paper.
The Ethereum blockchain currently uses a PoW consensus but due to the computing and related energy costs involved, they are considering a move to a PoS consensus sometime in 2018.
Types and kinds of Blockchain platforms
Blockchain platforms can be public or private and the ledger types can be permissioned or permissionless. There isn’t a single qualified definition of this but loosely we have the following:
Public or Private – Determines who can read or write data to the ledger.
A public blockchain is completely open and anyone can join, participate, read or write into the network.
For a private blockchain, participants are authenticated and validated by the owner/operator of the blockchain network before they can perform any activities on the blockchain.
Permissioned or Permissionless – Indicates whether all users/nodes on the blockchain are equal or not; it clarifies who can validate a block and who cannot. It also indicates whether the users are known or anonymous. Anonymous users have a digital ID but no other indication of who they truly are.
Bitcoin and Ethereum are public and permissionless blockchains that are open to all and everyone can contribute (read, write and audit). This means that everyone can also view all of the transactions that occur on the blockchain due to its inherent transparency. That being the case, the Bitcoin blockchain is clearly not used for any enterprise or business application. It lacks a scripting language for smart contracts and its transaction confirmation rate is extremely slow for business applications.
Ethereum blockchain has capability for enterprise uses but these applications could be limited due to the transparency of all of the transactions.