Share this post:
Since being published, the next generation of the IBM Blockchain Platform has been announced. Therefore, IBM Blockchain Platform Starter Plan will be removed from the IBM Cloud Catalog starting July 5th, 2019 and you will not be able to provision new instances after that. However, existing instances will be supported until June 4, 2020. To continue your blockchain developer journey with the next gen version of the IBM Blockchain Platform, go here.
Is a public online forum a better form of communication than a private email? I think most would agree that’s the wrong question to ask — it depends what you’re trying to do. In much the same way, there is no blanket approach to applying blockchain technology to achieve all goals.
Blockchain first emerged as the underlying technology that made Bitcoin possible, and since then has seen intense interest across most major industries. The promise of blockchain is that it enables new means of exchanging business value in a decentralized manner — from facilitating the transfer of assets, to rewiring record-keeping processes, to supporting data sharing and preventing data tampering. But as with all new technologies, it’s important to first be clear on the business outcomes you want to achieve as you determine your blockchain approach.
Deploy the IBM Blockchain Platform across multiple environments
What is blockchain?
In the simplest terms, a blockchain is a digital recording of the history of transactions. However, blockchain has several features that set it apart from a traditional digital ledger or relational database:
- Blockchains are distributed across and managed by peer-to-peer networks of computing devices.
- Transaction data is shared among participants of the blockchain network, which eliminates the need to reconcile disparate ledgers.
- A transaction is added to the blockchain only after it has been validated through a consensus mechanism that ensures it is the one and only version of the truth.
- The data is immutable because each transaction is cryptographically secured and linked to the previous transaction as it is recorded.
- An asset on a blockchain has provenance because participants can see where it came from and how ownership of it has changed over time.
Since its inception, one of the core promises of blockchain technology has been decentralization. However, as the space matures many have come to acknowledge that there must be tradeoffs in practice — even calling decentralization a myth. No business can be fully centralized or decentralized without compromising in another area such as security, privacy, performance or scalability.
This is an important consideration when determining the best blockchain approach for your use case. You may have heard the distinction between public and private blockchains, sometimes also characterized as permissionless and permissioned. Understanding the differences between public and private blockchains is crucial to understanding the kind of tradeoffs you may need to consider when developing a blockchain solution.
The differences between public and private blockchain
Both public and private blockchains are based on some form of distributed ledger technology, but they diverge in five key areas: permissions, consensus, security, performance and scalability.
In most cases, anyone can participate in a permissionless blockchain. Participants do not need to meet predetermined criteria or provide any information about themselves, and they can interact on the network without revealing their identity, using a pseudonym or alpha-numeric address. However, the transactions recorded on a public blockchain are visible to all other participants.
The type of openness and pseudonymity that exists on a public blockchain usually isn’t suitable for transactions among business entities. For numerous reasons including regulatory and security concerns, most organizations need to know who they’re dealing with, and they must also ensure unauthorized participants can’t gain access to transaction data, which could contain sensitive corporate information. Meeting these crucial requirements are part of the reason why IBM was an early founder and contributor to the The Linux Foundation’s Hyperledger Project, as none of the major blockchain protocols of the day were able to provide the flexibility, modularity, security, and permissionability for businesses.
Even within the world of private blockchains, it is important to consider which degree of privacy is necessary — and useful. For example, a strictly private blockchain, run and maintained by a single entity within a single organization, has limited use. Blockchain networks become more valuable when more organizations participate to share and transact data. But these organizations can participate only when they have been granted permission. This type of permissioned network, amongst a known set of participants, is the kind of blockchain I’m referring to when I refer to private blockchains.
When it comes to permissions, the key thing to think about is how the blockchain network helps you achieve your business outcome. Is it more valuable for you to have a wider network with many participants, and share a larger volume of data and transactions? Or will you benefit more from a smaller, more tightly governed set of participants?
Transactions on both public and private blockchains are verified by consensus, but there are many different ways in which consensus can be achieved.
Even within the permissionless blockchain space, consensus mechanisms can vary widely. But generally, they are based on an incentive structure which rewards participants who contribute to the network. The mechanism that is probably the most widely known, thanks to Bitcoin and other cryptocurrencies, is proof of work. Miners participate on the network by contributing their computing power to solve complex cryptographic problems to verify transactions, and they are rewarded in the form of cryptocurrency. Proof of work is a time-consuming and computationally intensive consensus mechanism, resulting in slow transaction speeds and high electricity costs. For this reason, many other consensus mechanisms have emerged in the public blockchain space, such as proof of stake, proof of capacity, and proof of elapsed time.
In a private blockchain, consensus is usually achieved through a process called selective endorsement. It is based on the concept that network participants have gained permission to be there and that the participants involved in a transaction are able to confirm it. The advantage is that a blockchain using this type of consensus can be built with a more modular architecture, and it can allow for greater transaction volume at faster speeds. Endorsers are determined by the governance and operating rules for the network.
The security offered on a public blockchain is dependent on the mechanism for recording transactions. Earlier, I mentioned the concept of immutability, but it is probably more accurate to say that blockchains are tamper-evident. Once a transaction is recorded to the blockchain, it cannot be altered or covered up, but only reversed by a new transaction. Both the original and the later transaction are still visible. Groups of transactions are put together in a block that is cryptographically secured and linked to the previous block. This creates a chain and a chain is much more difficult to hack than a single link. However, if a malicious majority of the network were to collude, they could potentially gain control of the transaction approval process. This is known as a 51 percent attack.
Private blockchains also employ the recording mechanism of grouping transactions into blocks and linking blocks together into an immutable chain. But in a business context when it is necessary to protect sensitive corporate information and customer data, it is important to secure the blockchain with additional measures. Your blockchain network should be prepared to:
- Ensure separation between entities, providing horizontal protection.
- Prevent attacks through privileged user accounts, providing vertical protection.
- Protect encrypted data by securing the cryptographic keys.
Great security starts with using an infrastructure such as IBM LinuxONE to host your blockchain.
Public blockchains tend to have lower transaction throughput than private blockchains due to the time and computational required to confirm transactions. Until the proof of work is completed for the current transaction, subsequent transactions are held up.
The performance of a private blockchain depends on the design of the network and its systems infrastructure. Since selective endorsement doesn’t require anywhere near the amount of power that proof of work does, a private blockchain can process much higher transaction volumes at higher speeds with far fewer computational resources. Ultimately, if consensus is automated and you have a scalable input and output system with lots of memory, a large cache and a fast commercial microprocessor, you should be capable of delivering and processing high volumes of data on your private blockchain.
Performance and scalability often go hand in hand. Due to the computational power required to run public blockchains and ensure consensus, they can be difficult to maintain at a large scale. The more users join a public network, the more transactions they request, the longer it takes for those transactions to be confirmed, and the longer the waiting times during peak hours.
Most private blockchains start small but need room to grow to handle the number of internal and external partners that will be involved in the network. It might be difficult now to determine your future requirements or predict how your network will grow, which is why it’s important to have a modular architecture, scale-out capabilities, and capacity on demand.
Next steps for your blockchain
The type of blockchain approach that’s optimal for your use case depends on your industry and business goals. Moving toward a decentralized business model will involve a series of tradeoffs, and you must decide the right mix that will work for the problem you’re trying to solve. Now that you’ve learned more about the differences between public and private blockchains, I encourage you to explore how blockchain is being applied today in various industries. This will give you a better idea of how different combinations function in real environments.
If you still aren’t sure how to approach your use case, join a blockchain workshop with consulting experts who can help you gain a deeper understanding of the technology and review key considerations for production. If you’re ready, get started developing a blockchain solution now.
Simplicity, speed and value for blockchain developers