On Grady Booch's views about blockchains and decentralization
I spent the last 6 months deep-diving into the blockchain & Web3 space. I'm writing as I learn from the perspective of a computer scientist, data engineer, developer and PM
Yes, the inventor of UML and a personal inspiration of mine was on a Twitter space recently sharing his views on Crypto, blockchains, and Web3. This was his take on blockchains, as I understood it -
“Over time, most systems tend towards centralization - for upkeep, security, or because of regulation. While decentralization has its benefits, not all applications will move to the blockchain. Blockchain tech is going through a wild phase”.
Before I share my take on blockchains, here’s my perspective of the technology.
Let’s start with blockchains.
In my opinion,
Blockchains are distributed data-stores incapable of D or Delete in CRUD - the cornerstone of Web2.
The system is also transparent, meaning all transactions & activity on the database are public (at least on public blockchains).
E.g., if you want to check out who owns this cool NFT (digital asset), click here.
You will see multiple transactions and owners, but I bought it last 😊 . Here’s the receipt to prove it. In this case, the asset itself (the JPG/PNG) isn’t on a blockchain, but all transactions related to the artifact are on it. This guarantees authentication and chain of custody for digital goods, which until recently was not possible. For artists, this is a game-changer.
Generally, from a data modeling perspective, products can be architected so the data that matters (financial transaction data, user data, image data, video metadata, voting data) can reside in the public domain. But, will all data be in the public domain? Unlikely.
Bitcoin’s innovation was multifold. Individuals/entities on the internet can have a fully distributed Peer to Peer trust-less cash system supported by a publicly auditable ledger. For accounting folks, Bitcoin is a transaction ledger storing the transfer of tokens from A to B. In contrast, Ethereum is a “balance ledger”, which keeps the total # of ETH available in the account and the transaction.
Who hosts servers and pays for everything? Ideally, folks like you and me run nodes that network with other hosts to keep a distributed copy of the data. A native currency is offered as an incentive to miners (more generally validators) who validate transactions and contribute to the network.
How do transactions happen? Suppose I send you $2000 or ~1 ETH via Ethereum; I pay the $2000 and a small fee for bookkeeping (writing to the blockchain). This fee gets distributed between the network, validators, hosts for providing their services. This fee is referred to as Gas on the Ethereum network.
How is Trust established between senders and receivers? Public key / Asymmetric cryptography makes it possible to establish trust without needing an intermediary.
How do all the ledgers stay in sync? Since the database is fully distributed, there needs to be a consensus mechanism, so all copies of the database agree on valid transactions for any ledger to remain consistent. Bitcoin’s consensus mechanism involves miners validating transactions by solving an algorithmic puzzle (mining). The node that solves the puzzle the fastest gets to write a new block of data into the network. It’s a clever way to incentivize more powerful computers to be part of the network.
Ethereum uses a proof-of-stake mechanism where validators stake (burn) their currency for a chance to write the next set of records in the ledger. This keeps bad actors away.
What’s the longevity of the data? Potentially forever, at least for public blockchains. Realistically, it is as long as any node in the network is alive and plugged in.
Smart contracts? Ethereum innovated further by allowing richer composability in the form of contracts (code) that can operate on the data, call other contracts on the chain, or create new contracts.
Blockchains are traditional distributed systems
They are still bound by the CAP theorem, which states that any distributed datastore can only satisfy 2 of 3 properties of a database - Consistency, Availability, and Partition tolerance.
Bitcoin sacrifices Consistency over Availability (uptime) and Partition tolerance (since it’s distributed). You can write to this datastore, but you don’t know if the write is successful until the next iteration. This manifests in weird ways in Web3 apps and services.
Types of blockchains
Blockchains can be laid out on a spectrum with two sides. All implementations of blockchains are on this spectrum, with variants specializing in scaling, consensus mechanism, validator selection, data access, and more. Two ends of the spectrum are:
Permissionless - fully decentralized, anyone can pseudonymously join, transact, contribute/validate and mine the native currency. E.g., Ethereum, Bitcoin,
Permissioned - Managed blockchains, where a single organization or consortium controls entry, transactions, and validation. E.g., Ripple
If you were a full-stack engineer in the late aughts deciding between MySQL or MongoDB/CouchDB/Cassandra, picking blockchains in 2022 feels similar. This is a big simplification, but Smart contracts are identical to Stored Procedures in traditional database systems or PL/SQL in Oracle. In addition to modifying the underlying data, these procedures can call or spawn new procedures in a deterministic way.
Ethereum is the most mature of the developer platforms, so that’s where people choose to build their “Web3” empires. Turing completeness allows developers, rich composability of components - contracts, data. Reusability is a built-in for all code deployed on blockchains like Ethereum.
Except for a minor scare, Ethereum has done well. However, what caused the scare, i.e., the meaning of “decentralization” itself, will become an essential question of the post-blockchain times. One that, I’m willing to bet, will determine blockchains’ impact in the long term. This is something that even Mr. Booch alluded to on the Twitter space.
Writing transaction data on thousands of computers around the world is expensive. Ethereum can write a whopping 13 transactions/second 😁 In comparison, Visa does about 65,000. With a growing ecosystem of services and apps, Ethereum is already very congested during business hours. E.g., a $5 ENS domain costs $39 to register because the GAS (transaction fee) is ~$30.
Congestion in Web2 systems is solved linearly. If you exceed capacity, you add more servers and load balancers. Scaling blockchains is much more complicated. Adding a new node does not speed up but slows down the entire network because a new node needs to stay in sync.
There are currently three ways to scale blockchains.
Rollups - Layer2 solutions which scale blockchain applications by processing transactions off the main chain (e.g., Ethereum). Data and proof of transactions are written on the primary chain. A smart contract guarantees valid transaction processing in Layer2 but uses data available in Layer1. Some examples of popular rollup solutions include Aribitrum and Optimism.
Interoperability networks - These are solutions that are building an internet of chains. These organizations believe in a multi-chain world where data and transactions happen between multiple Layer 1 blockchains. E.g., Polkadot and Cosmos.
Other Blockchains - Most applications do not need a public blockchain. High transaction fees & congestion will force developers to move to other Layer 1 protocols. I expect many enterprise apps will be written on top of permissioned special purpose chains. E.g., Banks, Energy, Insurance applications. Solana, Terra, Polygon, NEAR, Cardano are some popular & growing blockchain alternatives.
Conclusion: my take on blockchains
Blockchains are a revolutionary new technology. However, it still feels more like a solution looking for a problem outside of a few applications. The foundation is generic enough to model everything from societies & currencies. Remember how Uber needed mobile computing and GPS to succeed. I believe blockchains will be equally transformational to domains with the right →
Product <> Platform <> Community fit
Public blockchains are already transforming industries where transparency is critical. e.g., Art ownership (NFTs), Financial instruments (DeFi), DAOs (governance), Market Makers, etc. Businesses that act as trusted intermediaries, like public notaries, escrow, co-ops, etc, will be disrupted when the proper tooling arrives.
Blockchain’s biggest hurdle is the systemic change needed by people, corporations, and societies to adopt decentralized technology. Consequently, ‘Community’ is the new vector for innovation. “Tokenomics,” the mechanics behind creating and distributing incentives to keep the community involved, is the new skill to master. There’s not much literature on this topic, let alone modeling or simulation tools for different industries.
Grady was right that public blockchain data violates laws like the “right to be forgotten”. I believe that data that needs to be forgotten should not be on the chain.
I posit that major blockchains WILL NOT tend towards centralization. A public ledger is the best deterrent to doing something illegal or greedy, even if it’s pseudonymous. It’s a strategic advantage hard to ignore, especially for data that’s meant to be in the public domain anyway. E.g., spending on public goods and services, governance decisions, etc.
Not everything will be on the blockchain. However, problems that find a fit on blockchains won’t find them with other systems.
Words of advice to fellow Web3 entrepreneurs
As a failed platform company builder and someone who worked on many XXXL consumer platforms, here’s my advice.
Do NOT build platforms. Build the product.
No, really. There are
friends(billion-dollar outcomes) I’ve witnessed in my decade in tech that built the product first, then scaled the platform.
“Scalability is not your problem; getting people to give a sh*t is.” - TedD.
Thank you for reading.
As of writing this, I’m looking for a new product gig in the San Francisco bay area. If you know folks looking for product talent, or have friends working on interesting startups, please connect me with them. 🙏🏾
Thanks for reading Product notes! Subscribe for free to receive new posts and support my work.
Bitcoin’s academic pedigree - Communications of the ACM
The next big thing will start out looking like a Toy - Chris Dixon
Leaving tech for Crypto - OxShah
A short guide to Consensus protocols - Coindesk
CAP theorem image courtesy: Cap Theorem? on Medium