A blockchain is “a distributed database that maintains a continuously growing list of ordered records, called blocks.” These blocks “are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data. A blockchain is a decentralized, distributed and public digital ledger that is used to record transactions across many computers so that the record cannot be altered retroactively without the alteration of all subsequent blocks and the consensus of the network.
As explained by Wikipedia, “Blockchain was invented by Satoshi Nakamoto”—the pseudonym of an unknown person or persons—“in 2008 to serve as the public transaction ledger of the cryptocurrency bitcoin… [which] made it the first digital currency to solve the double-spending problem without the need of a trusted authority or central server.”
While blockchain is still largely confined to use in recording and storing transactions for cryptocurrencies such as Bitcoin, proponents of blockchain technology are developing and testing other uses for blockchain, including these:
The primary benefit of blockchain is as a database for recording transactions, but its benefits extend far beyond those of a traditional database. Most notably, it removes the possibility of tampering by a malicious actor, as well as providing these business benefits:
As described in Blockchain for Dummies, “Blockchain owes its name to the way it stores transaction data—in blocks linked together to form a chain. As the number of transactions grows, so does the blockchain. Blocks record and confirm the time and sequence of transactions, which are then logged into the blockchain, within a discrete network governed by rules agreed to by the network participants.
“Each block contains a hash (a digital fingerprint or unique identifier), timestamped batches of recent valid transactions, and the hash of the previous block. The previous block hash links the blocks together and prevents any block from being altered or a block being inserted between two existing blocks.” In theory, the method renders the blockchain tamperproof.
The four key concepts behind blockchain are:
Each blockchain network has various participants who play these roles, among others:
Hyperledger is “an umbrella project of open source blockchains and related tools, started in December 2015 by the Linux Foundation and supported by industry players like IBM, Intel and SAP to support the collaborative development of blockchain-based distributed ledgers.”
Hyperledger participants believe that “only an Open Source, collaborative software development approach can ensure the transparency, longevity, interoperability and support required to bring blockchain technologies forward to mainstream commercial adoption.”
The objective of the Hyperledger project “is to advance cross-industry collaboration by developing blockchains and distributed ledgers, with a particular focus on improving the performance and reliability of these systems (as compared to comparable cryptocurrency designs) so that they are capable of supporting global business transactions by major technological, financial and supply chain companies.”
Blockchain is frequently claimed to be an “unhackable” technology. But 51% attacks allow threat actors to “gain control over more than half of a blockchain’s compute power and corrupt the integrity of the shared ledger. … While this particular attack is expensive and difficult, the fact that it was effective means that security professionals should treat blockchain as a useful technology—not a magical answer to all problems.”
The 51% attack takes advantage of what is known as the 51% problem: “If a single party possesses 51% of a mining pool, it is possible to falsify an entry into the blockchain, allowing for double spending, and even to fork a new chain to the advantage of the mining pool.”
The two main types of blockchain, public and private, offer different levels of security. Public blockchains “use computers connected to the public internet to validate transactions and bundle them into blocks to add to the ledger. … Private blockchains, on the other hand, typically only permit known organizations to join.” Because any organization can join public blockchains, they might not be right for enterprises concerned about the confidentiality of the information moving through the network.
Another difference between public and private blockchains regards participant identity. Public blockchains “are typically designed around the principle of anonymity. … A private blockchain consists of a permissioned network in which consensus can be achieved through a process called ‘selective endorsement,’ where known users verify the transactions. The advantage of this for businesses is that only participants with the appropriate access and permissions can maintain the transaction ledger. There are still a few issues with this method, including threats from insiders, but many of them can be solved with a highly secure infrastructure.”
Blockchain technologies are growing at an unprecedented rate and powering new concepts for everything from shared storage to social networks. From a security perspective, we are breaking new ground. As developers create blockchain applications, they should give precedent to securing their blockchain applications and services. Activities such as performing risk assessments, creating threat models, and doing code analysis, such as static code analysis, interactive application security testing, and software composition analysis, should all be on a developer’s blockchain application roadmap. Building security in from the start is critical to ensuring a successful and secure blockchain application.