Blockchains are difficult to understand, harder to implement, and yet have generated billion-dollar markets. This inscrutable success has given them the perception of having magical powers, and VCs have poured millions of dollars into the space in the hope of finding the right engineers who understand the technology and problem enough to create the killer blockchain app.
While lots of entrepreneurs are responding by putting blockchains on every imaginable technology, from radios to self-driving cars, many of these uses aren’t justified and may actually be counterproductive: creating security vulnerabilities, complicating future improvements, and adding cost. To get a hold on this, we’ll look at the structure of blockchains, as embodied in the most hype-generating application of all: the Bitcoin network.
The core asset of the Bitcoin network is a blockchain: a set of cryptographically linked data packets (blocks) and associated state transition rules, which together form a secure database storing the system state and history. Copies of the blockchain are stored on the nodes of a peer-to-peer network, and each node can verify the integrity of its blockchain by checking that each block in the chain proceeds from the previous according to the system’s state transition rules. The blockchain grows as blocks are added to its end, with each block including a set of message data (in the case of Bitcoin these concern transactions between accounts), a cryptographic signature (or `hash’) uniquely generated by the contents of the block, and a reference to the hash of the previous block.
Tampering with the data in any block will result in a different hash for the block, and as the block’s hash is referenced by subsequent blocks, all subsequent blocks would also have to be rewritten. One final component secures the blockchain: a stamp which is computationally or economically difficult to create (known as `Proof-of-Work’ or `Proof-of-Stake’). As long as the blockchain periodically adds new blocks, and nodes treat the longest blockchain as the definitive truth, an attacker would need to reproduce the proof-of-work or proof-of-stake stamps before the next block is issued, or his version would be deemed outdated and discarded. The parameters of the proof-of-work or proof-of-stake system are periodically updated by the network to ensure that blocks are being created frequently enough to avert any attack, while still providing enough time for messages to propagate through the network and be assembled into the next block.
This architecture creates a secure database with a number of inherent properties:
Distributed: Copies of the blockchain are stored on each node in the network, making it inherently distributed and robust to drop-outs in communication or failures of individual nodes. Economic incentives are structured to encourage the participation of all nodes in verifying, securing, and generating new blocks.
Trustless: Because copies of the blockchain and state transition rules are transparently held by all participants in the network, all participants are fully aware of the implications of their actions. Further, because each message is cryptographically signed by the sender, it is considered irrevocably binding. Together, these mean that two parties who do not trust each other can use the blockchain as a trusted data source and mediator of disputes, allowing them to coordinate in the absence of trust.
Immutable: Secured against tampering by malicious individuals or groups, the blockchain serves as an immutable register of state history and all messages/transactions. This allows it to be used for reconciling financial or legal disagreements, even when the parties do not trust each other.
Resilient: As each node stores a copy of the blockchain and state transition rules, it is able to continue operation of the blockchain in the absence of other verifying nodes- and the results of its work can be verified to have been fair and accurate when communication resumes. By allowing for consensus between different versions of the state history (such as which might be generated by a temporary dropout between segments of the network) the system is able to maintain a stable view of history.
Blockchains are not a panacea, however. They require consensus from all network participants, incur latency over a peer-to-peer network, and have additional overhead due to the verification mechanism. As a result blockchains are slower, more computationally demanding, and usually more memory-intensive than traditional databases. Yet in some scenarios the attributes listed above (distributed, immutable, trustless, resilient performance) may be more valuable than the performance loss, and make blockchains a solution that can enable innovative solutions to challenging problems.
As an example, the Visa transaction network provides a method of transferring money and regularly handles transaction volumes in excess of 2000 transactions/second. However, the Visa network requires account setup fees, transaction fees, currency exchange fees, transfer limits, may not be available in all countries, and vendors can be defrauded by spurious callback requests. By contrast, the Bitcoin network is incredibly slow – only able to handle 7 transactions/second with a confirmation time of at least 10 minutes- but has no account setup fees, de minimus transaction fees, no transaction limits, no exchange fees, universal availability, and transactions are irrevocable. While for many day-to-day uses the speed and convenience of a centrally controlled network like Visa is compelling, for some use cases (e.g. international money transfers, micropayments) the attributes of the Bitcoin network may be more attractive.