A blockchain is essentially a decentralized ledger that maintains transaction records on many computers simultaneously. Once a group, or block, of records is entered into the ledger, the block’s information is connected mathematically to other blocks, forming a chain of records. Because of this mathematical relationship, the information in a particular block cannot be altered without changing all subsequent blocks in the chain and creating a discrepancy that other record-keepers in the network would immediately notice. In this way, blockchain technology produces a dependable ledger without requiring record-keepers to know or trust one another, which eliminates the dangers that come with data being kept in a central location by a single owner.
The blockchain idea has attracted enough supporters that there are now several hundred digital currencies on the market (link is external), and the companies that are investigating ways to employ blockchain number many more. Because the market is growing so rapidly, several stakeholders, customers and agencies asked NIST to create a straightforward description of blockchain so that newcomers to the marketplace could enter with the same knowledge about the technology.
“Blockchain is a powerful new paradigm for business,” Yaga said. “People should use it—if it’s appropriate.”
The question is when it is appropriate. As with any new tool, there can be a temptation to employ it purely for its novelty value. The report outlines some possible use cases, including banking, supply chain management and keeping track of insurance transactions. The report, Yaga said, was created partly to help IT managers make informed decisions about whether blockchain is the right tool for a given task.
“In the corporate world, there’s always a push to adopt new technologies,” Yaga said. “Blockchain is today’s shiny new toy, and there’s a big push to adopt it because of that.”
“We want to help people to see past the hype,” he said, “as lofty a goal as that is.”
Virtual barrels of digital ink are flowing in the media nowadays about these cryptocurrencies and the underlying blockchain technology that enables them. Much of the attention stems either from the giddy heights of value attained lately by the most well-known of these currencies, Bitcoin, or from the novelty of blockchain itself, which has been described (link is external) as the most disruptive technology since the internet. Blockchain’s proponents believe it lets individuals perform transactions safely without the costs or security risks that accompany the intermediaries that are required in conventional transactions.
The NIST report’s authors hope it will be useful to businesses that want to make clear-eyed decisions about whether blockchain would be an asset to their products.
“We want to help people understand how blockchains work so that they can appropriately and usefully apply them to technology problems,” said Dylan Yaga, a NIST computer scientist who is one of the report’s authors. “It’s an introduction to the things you should understand and think about if you want to use blockchain.”
The NIST document, whose full title is Draft NIST Interagency Report (NISTIR) 8202: Blockchain Technology Overview, introduces the concept of blockchain, discusses its use in electronic currency, and shows its broader applications.
Understand the technologies which comprise blockchain systems and to understand how blockchains can be appropriately and usefully applied to technology problems.
Section 1 provides an introduction to the topic of blockchain technology.
Section 2 defines the high-level components of a blockchain system architecture, including hashes, transactions, ledgers, blocks, and blockchains.
Section 3 discusses how a blockchain is expanded through the addition of new blocks representing sets of transactions.
Section 4 examines the need for consensus models to resolve conflicts among blockchain mining nodes.
Section 5 introduces the concept of forking.
Section 6 defines and discusses smart contracts.
Section 7 looks at blockchain permission models, discusses their application considerations, and provides use case examples for each model.
Section 8 provides several examples of blockchain platforms in use today to indicate the variations from one platform to another.
Section 9 highlights some of the limitations of blockchain technology.
Section 10 gives a short conclusion for the document.
Appendix A contains a glossary for selected terms defined in the document.
Appendix B provides a list of acronyms and abbreviations used in the document.
Appendix C defines the references used throughout the document.
Blocks are chained together through each block containing the hash of the previous block’s header, thus forming the blockchain. If a previously published block were changed, it would have a different hash. This in turn would cause all subsequent blocks to also have different hashes since they include the hash of the previous block. This makes it possible to easily detect and reject any changes to previously published blocks. Figure 7 shows a generic chain of blocks.
In our generic presentation of a blockchain from the previous section, many mining nodes are competing at the same time to solve a puzzle to gain the right of publishing the next block (and if applicable, a financial award). They are generally mutually distrusting users that may only know each other by their public addresses. Each user may be motivated by a desire for financial gains not the well-being of the other mining nodes or even the network as a whole. In such a situation, why would a user propagate a block solved by another user? Also, who resolves conflicts when multiple mining nodes solve a block at approximately the same time? To make this work, blockchains use a variety of consensus models that enable a group of mutually distrusting users to work together.
Note that when a user joins a blockchain system, the user agrees to the initial state of the system. This is recorded in the only pre-configured block, the genesis block. Every blockchain has a published genesis block and every block must be added to the blockchain after it, based on an agreed-upon consensus method. Regardless of the method, however, each block must be valid and thus can be validated independently by each user in the blockchain network. By combining the initial state and the ability to verify every block since then, users can agree on the current state of the blockchain. Note that if there were ever two valid chains presented to a user, the default mechanism, in most blockchain systems, is that the longer chain is ‘more’ valid and should be adopted (this happens occasionally and will be discussed later).
The following properties are then in place:
• The initial state of the system is agreed upon.
• Users agree to the consensus method by which blocks are added to the system.
• Every block is linked to the previous block with a hash (except for the first ‘genesis’ block, which has no previous block, and usually has a hash value of all 0’s for the previous block).
• Users can verify every block.
In practice, node software handles all the details. Key to the blockchain approach is that there is no need to have a trusted third party to give the state of the system—every user within the system can verify the system’s integrity. To add a new block to the blockchain, all participating nodes must come to a common agreement over time, however, so some temporary disagreement is permitted. The method of agreement (or consensus) must work even in the presence of possibly malicious users attempting to disrupt or take over the blockchain. This section discusses several major consensus models, as well as conflict resolution.