One of the most interesting parts of Bitcoin is the “Bitcoin blockchain,” or simply “the blockchain.” The blockchain itself is nothing more than a shared data structure - a way to organize transactions in a particular way. Alongside the blockchain there is also a set of network protocols and application rules which solve a previously unsolved problem: management of a shared transaction ledger among multiple computers that don’t know each other and, more importantly, don’t even trust each other. As such, you can think of the blockchain as a distributed database of sorts, except that the participants using the database don’t trust each other to not fraudulently alter the database.
In the past few years, Bitcoin and the blockchain have shown great promise as a potential implementation of digital money. However, not everyone is ready to use all of Bitcoin. As such, a new interest has emerged - can the learnings from the internals of Bitcoin, e.g. the blockchain, be used to solve new problems? The answer is clearly “yes,” and this article discusses some of the reasons why.
The Bitcoin blockchain is hand-crafted to support Bitcoin. Here is what makes it great.
The blockchain is designed for global fault tolerance. Anyone can add a new computer to the blockchain (a “node”) which can synchronize and verify the entire contents of the Bitcoin blockchain. As of this writing, there are about 6,000 nodes currently active in the Bitcoin network, each providing access to blockchain data. The overall network is very tolerant to partial machine outages.
The focus of the blockchain today is to provide a system with no central control. This means that the system cannot be shut down or changed by any single party. It enables the users of the network to know that they can safely use the network without the rules changing. Powering the decentralization is an ever-increasing capacity for verifying new blocks in the blockchain - a.k.a. mining. As of this writing, there is nearly 1 quintillion (a billion billions) hashes per second going into Bitcoin proof-of-work to validate the blockchain.
The records inside the Bitcoin blockchain are immutable. Once they are created and confirmed, they cannot be altered or removed from the network. This is a very important property for finalizing the state of a transaction.
While the Bitcoin blockchain works very well for Bitcoin transactions, it is not necessarily well suited for other applications. Here are some attributes of the Bitcoin blockchain that may not be well suited for everyone:
The blockchain today is a completely public system. Anyone can connect to the network, view the data on the network, and view the data in the blockchain. The system is partially anonymous, in that you may not be easily able to identify who the participants are, but with some sleuthing, you can learn a lot about who is using the network. Private blockchains can be built such that less information is public; but inherent to most blockchain systems will be some level of transparency that may not be available with centralized systems.
The Bitcoin blockchain allows anyone to connect and participate. The good news is that because the blockchain is a trustless system, open participation does not necessarily lead to security risks. However, most all previously created financial systems are closed networks with strict access controls for reading or writing to the databases. Additionally, due to the heavy regulatory burden of most financial companies, use of an open system without strong identification and authentication can be a non-starter in many situations. If desired, it is possible to restrict access to a private blockchain to a subset of pre-vetted parties.
The blockchain was designed specifically for handling Bitcoin assets and Bitcoin assets only. There is no mechanism inherent to the blockchain which could enable transacting anything other than Bitcoin. If you want transactions for stocks, precious metals, loans, or anything else, the blockchain can’t help you. It is true that a number of products have attempted to layer on top of the Bitcoin blockchain (e.g. the Open Assets Protocol, Colored Coins, Omnicoin, etc), but none of these are native to the blockchain and do not take full advantage of it’s security.
We’re all familiar with the concept of ‘mining’, the process which validates, builds, and secures the Bitcoin blockchain. This system works well for an open, trustless system. However, the mining process in Bitcoin is extremely computationally expensive and exists primarily to enforce its trustless nature. If you’re building a system which does not require the ultimate in decentralization, this mining process can be very expensive. Alternate forms of mining are substantially cheaper and may involve simple elections rather than Bitcoin’s brute-force proof of work.
Because the Bitcoin blockchain is not controlled by any single party, it updates via a system of consensus. That is, the majority of validators (e.g. miners) must agree to the validation rules in order to agree upon which transactions are accepted. Consensus is an important part of any system which is strongly averse to centralization. However, the cost of such a system is that updating the software can be almost impossible if consensus cannot be reached. This has recently been witnessed in Bitcoin with the difficulty in changing the size of a Bitcoin blockchain block. Other systems may find auto-update mechanisms more appropriate for updating software, but this does require some element of centralization.
Fungible assets are those where any unit of the asset is replaceable by any other. Bitcoin is perfectly fungible - we can take two bitcoins, add them together, and they are perfectly fungible for any other two bitcoins. However, many applications deal with non-fungible assets, such as stocks, properties, or identified items at an auction house. While the Bitcoin blockchain could be used to carry these assets, a system designed for non-fungible assets would need to manage and transact those items in a very different way.