By Anthony Lusardi
Further readingCentralized, distributed, decentralized, umm...what? Unbounded tech stacks with Daml Reading Daml Smart Contracts for Non-Programmers The Privacy Tradeoff Daml Developer Monthly - July 2021
Public Blockchains and Distributed Ledgers
By Anthony Lusardi. Oct 6, 2020
I try hard to differentiate between what people mean when they talk about “blockchain”s. In my view calling a public blockchain and a distributed ledger by the same blanket term is about as informative as calling SQL, MongoDB, and an Excel spreadsheet a “database”. It’s technically correct but very uninformative. So I’d like to try my hand at clarifying this and exploring the benefits and trade-offs of each at a very high level.
What Do We Mean When We Talk About Blockchains?
Speaking broadly we have two relatively new types of technically similar, but operationally different databases, the public blockchain, and the distributed ledger. The difference between these two effectively reduces down to one critical component:
How much privileged control do one or more entities have over their database?
So with this in mind let’s throw out the mislabeling and clarify some terms:
- A public blockchain is any ordered database where it is expected that anyone would be able to read from or write to at a cost. Bitcoin being the most well known and popular example of this.
- A distributed ledger is any private ordered database that is expected to have restrictions on who may read from or write to the database. Most commonly they’re restricted to those participating in the operation of the ledger. Fabric and Corda would be the most well known and popular examples of these.
These definitions gloss over other key differences but what we can say generally is
- A public blockchain is the most technically feasible attempt at providing equal world-wide access to a database,
- A distributed ledger is the most technically feasible attempt at providing privileged multi-party access to a database.
Why Would I Want All My Data To Be Public?
The advantage of a public blockchain is that any number of people who may or may not know or trust each other can use it to record data that is important to them. This often takes the form of transactions that have at least some, and often significant monetary value. Ultimately if you can afford to save data to this blockchain then you get to save data there with no other intermediaries in between.
This presents two tradeoffs:
- The whole world can see your data.
- It costs a direct monetary fee to use.
If you need the benefits of a public blockchain which are primarily a means to achieve a censorship and corruption resistant form of money then use it. If you don’t then you might want to look elsewhere.
I’d Like My Data To Be Private Please
Distributed ledgers look a lot like traditional SQL databases with one crucial difference:
In the most egalitarian version it gives each of these participants equal say, but the actual structure can be whatever you imagine for your needs.
If you were to choose a distributed ledger over a SQL database it would involve some coordination between organizations on business requirements. At first blush this implies a higher workload but in reality it reduces workload by reducing what would be multiple separate infrastructures enforcing the same set of business requirements into one. Furthermore these infrastructures help to facilitate trust and strengthen relationships as all participants to your ledger can see and be certain of the parts relevant to them. This is a property wholly unavailable to traditional database architectures.
When compared to public blockchains, distributed ledgers are much more cost efficient to save data to (like any other private database) and the data within it is generally not accessible to the entire world. They also offer substantially more flexibility with upgrades and feature improvements to both your database and development stack. With a distributed ledger you only need to upgrade the nodes participating in your private network, not the entire world as you would need with a public chain.
So in conclusion public blockchains and distributed ledgers address vastly different concerns and are worth distinguishing between. Public blockchains are really good for exchanging value in some cases, while distributed ledgers are really good for managing business operations.
We would like to get your thoughts and opinions on the two: What are you using blockchain or distributed ledgers for? What other trade-offs do you see? Start a discussion with us here.