Battle of the blockchains

November 13, 2020

Are private or public blockchains more effective in the long term?

Photo by Alex Motoc on Unsplash

The literary scene around blockchain technology has been quite interesting to watch, but unless you’re an academic, you don’t get to see many details.

Most of the time, the public conversation around using a public or a private blockchain revolves around some intuitive concepts, about knowing who’s on the network, and some efficiency questions. It turns out there’s more to it than that.

Since blockchain’s first invention, we’ve gotten a much better understanding of the tradeoffs between public and private blockchains. The original reason for the excitement around the blockchain was that it seemed to be a solution to the Byzantine Generals problem. But you actually can use classic byzantine consensus on a private blockchain instead of the modern Nakamoto consensus. [1] Depending on your network guarantees, private blockchains can run with notaries to validate transactions. These seem counter to the original intuition around a public blockchain, so let’s get into the details and see where academics can shed some light for us.

Privacy

The arguments around private blockchains are relatively intuitive.

Public blockchains enable anyone to write to the blockchain, and transactions are published to everyone on the network / the world to ensure eventual consistency (Blockchains don’t violate the CAP theorem!). In a way, privacy is not possible. The public blockchain can anonymize your transactions with others, but it’s possible to trace public blockchain addresses back to individuals.[5]

Private blockchains enable users to be sure who’s participating on the network and who is reachable from the outset. An organization controls write access to the blockchain. This privacy is nearly guaranteed, which is why lots of private institutions using Corda use Corda. [4]

Consensus

Public blockchains naturally need to be larger to ensure that false transactions can’t get onto the network, making them difficult to use for smaller groups wanting to transact together. [3] There actually can’t be a public blockchain for a small group of individuals.

Most public blockchains use Proof-of-Work consensus algorithms where miners compete against each other to verify the validity of a transaction and get rewarded. The problem with these networks is that they can be slow to achieve consensus. They can take a long time to verify transactions. Due to the Merkle tree mechanics, individual transactions can get rejected by a competing chain of unconfirmed transactions.

On the private side, consensus algorithms can vary quite a bit. Most private blockchains do not need to run computationally intensive and wasteful consensus algorithms. The majority of private blockchains can reach speedy consensus without many issues. Corda even lets you configure your consensus algorithm based on your private network (more on that here).

Energy

There’s another important aspect here which is the electricity waste of certain consensus mechanisms.

Photo by Himanshu Srivastav on Unsplash

Note: in a literal and physical sense, energy can not be consumed, created, or destroyed, only converted from electrical energy to a less useful form like heat.

When I say energy waste here, I am referring to waste concerning the possible use cases for electricity.

It’s worth mentioning that exciting work has been done to convert this heat into useful work, but it’s difficult for the cost of regular heating to be better than heat from mining.

Here’s a great chart outlining the kind of energy use that we’re talking about when we look at public blockchain and cryptocurrency consensus algorithms.

Chart of energy consumption of different blockchains, compared with market capitalization [2]

The bitcoin Proof-Of-Work consensus protocol uses around 100 Terawatt-hours (TWh) every year (10¹² watt-hours!). For comparison, In 2018, the average annual electricity consumption for a U.S. residential utility customer was 10,972 kilowatt-hours (kWh). Bitcoin alone could have powered 91,142 homes last year.

In short, it’s cheaper, and potentially greener, to run a blockchain yourself privately.

Efficiency

Lots of things can influence the speed of a transaction. But it’s generally the case that private blockchains have fewer participants, meaning they can move faster.[1]

The average Bitcoin blockchain transaction takes around 30 minutes to over 16 hours to be confirmed in extreme cases.[6] This isn’t tenable in most compelling use cases that we might think of for a public blockchain — like voting, stock trading, and online gaming.

There’s a lot of ideas on how to improve that down the road with innovations like lightning networks, but so far, these problems haven’t been adequately solved, and scalability is a common topic of debate in many communities for blockchain technology. To be fair it’s worth mentioning that since bitcoin’s initial development, other blockchains have been deployed that can process transactions much faster like lumen, ripple, and EOS. In fact, there are even blockchains that can handle one million transactions per second.

Photo by rupixen.com on Unsplash

On the other side of the fence, private networks have a much easier time resolving transactions quickly. A production Corda environment can handle thousands of transactions per second.

If you look at the blockchains available, you’ll start to appreciate more of the problems a developer has to be aware of when building on a blockchain. What we’re seeing is that the private industry likes private blockchains.[7] While a public blockchain is a unique tool, I have found appropriate use-cases to be rare. Try to remember that the consequence of these decisions do not belong to us, but our users.

If the idea of building on a private blockchain like Corda sounds interesting to you then I’d recommend Corda’s getting started page to see what you can do with it. Good luck!

Want to learn more about building awesome blockchain applications on Corda? Be sure to visit corda.net, check out our community page to learn how to connect with other Corda developers, and sign up for one of our newsletters for the latest updates.

— David Awad is a Developer Evangelist at R3, an enterprise blockchain software firm working with a global ecosystem of more than 350 participants across multiple industries from both the private and public sectors to develop on Corda, its open-source blockchain platform, and Corda Enterprise, a commercial version of Corda for enterprise usage.

Follow David on Twitter here.

  • [1] Staples, M., Chen, S., Falamaki, S., Ponomarev, A.,
    Rimba, P., Tran, A. B., Weber, I., Xu, X., Zhu, J., (2017)
    Risks and opportunities for systems using blockchain
    and smart contracts. Data61 (CSIRO), Sydney.
  • [2] J. Sedlmeir H. U. Buhl G. Fridgen R. Keller
    Project Group Business and Information Systems Engineering of
    the Fraunhofer FIT, Bayreuth, Germany
  • [3] 51% attack: https://www.crypto51.app/about.html
  • [4] Novotny, Petr, Zhang, Qi, Hull, Richard, Baset, Salman, Laredo, Jim, Vaculin, Roman, Ford, Daniel L, and Dillenberger, Donna N. “Permissioned Blockchain Technologies for Academic Publishing.” Information Services & Use 38.3 (2018): 159–71. Web.
  • [5] Yousaf, H; Kappos, G; Meiklejohn, S; (2019) Tracing transactions across cryptocurrency ledgers. In: SEC’19: Proceedings of the 28th USENIX Conference on Security Symposium. (pp. pp. 837–850). ACM: Berkeley (CA), USA
  • [6] Source from Coincentral.
  • [7] Kwak, Ki & Kong, Jun & Cho, Sung & Tung, Phuong & Gim, Gwang. (2019). A Study on the Design of Efficient Private Blockchain. 10.1007/978–3–319–96806–3_8.