POP Goes the Blockchain

I can probably stop here. Merely having the word on the Vidya site will increase blog readership more than if I posted a deleted scene from
Black Panther.

There are already thousands of thought pieces explaining Blockchain, how it will revolutionize commerce, how it will
transform the Internet. There is even a company whose decision to add Blockchain to its name led to a 600% stock surge
and a financial windfall for its CEO!

And after all that and an entire decade of obsession with Bitcoin, almost no one knows what blockchain is and why it matters.
I won’t be able to fix that today, but that isn’t my goal. My goal is to help you understand why y’all need to slow your roll.
Blockchain has great potential, but there are significant obstacles to address if it is to emerge from basements and
garages to prove it is ready for prime time after all these years.

Those obstacles are Performance, Openness, and Privacy. POP! Let’s understand why Blockchain must address these concerns
to become mainstream and how they are a microcosm of critical paradoxes we continue to wrestle with as a society.

A Brief Blockchain Explainer

A blockchain is an immutable, append-only list of transactions among parties on a peer-to-peer network of computers. While
our ancestors conducted business by going to the bank or the post office, there is no central authority
on a blockchain, which means that incompetence or malice won’t compromise everyone (Like what happened with, not
to call out anyone by name, but something that rhymes with Requifax).

Parties conduct business directly with each other according to rules agreed upon by the network, and
the transactions are recorded to varying levels of detail by everyone on the network
(full nodes and light nodes).
Think of a transaction as a row on
a spreadsheet. A block is a fixed amount of transactions–like a single worksheet while the blockchain is the entire Excel workbook.

Central authority is replaced by computer science and computer hardware. When a block reaches capacity,
“miners” race to achieve consensus that all the transactions
on that block are legitimate according to a
consensus protocol. In its most common form originated by Bitcoin,
proof-of-work,
mining invests significant compute power in a cryptographic problem that’s hard to solve but whose solution is easy to verify.
Whoever pulls it off first gains consensus from the blockchain,
adds the block to the ledger, gets rewarded in some currency, and serves as the standard for each
new node to join. That solution is also integral to generating a
hash of the block that is recorded by the next block,
which is a fancy way of saying that any attempt to tamper with the transactions will be easily detectable by everyone. This is
the foundation of security on Blockchain.

Bitcoin made Blockchain famous, but Bitcoin represents one very narrow implementation of it. There
are lots of ways to implement a blockchain. Also, don’t assume all transactions are financial. Companies are investing
heavily in Blockchain to manage their supply chains,
where transactions are goods bought or shipped or sold. In an online voting blockchain, transactions
could be votes. In biotech, transactions could be genetic sequences.
In communities ravaged by war forcing refugees to seek asylum elsewhere, transactions could be
life events as proof of identity.

So the ideas are transformative; the tech is cool; and big institutions in government and industry abuse our trust all the time.
What’s the problem?

Performance: Blockchains are slow and use a lot of energy

Absent an ostensibly responsible central authority, Blockchain combines cryptography and
clever data structures like Merkel trees to build trust.
Blocks are deemed valid during the mining process by solving that complex cryptographic problem as proof-of-work. It takes time
to solve these problems, which means that the mining process can be far slower than what users are used to in their daily
interactions with the web. When you consider how many resources are out there dedicated to shedding every millisecond you can
off HTTP responses from a website, you realize how directly performance relates to revenue.

Ethereum addresses proof-of-work scalability with a consensus protocol called proof-of-stake,
but even if that helps, there are memory considerations. All nodes on a blockchain contain the entire ledger of transactions,
which can get into the terabytes for full nodes in a real-world application. Transactions are executed
by smart contracts written in the Solidity
programming language. In order to keep matters between the parties involved, a smart contract needs to maintain state–
everything there is to know about how the contract is executed. You store that state
in memory on the Ethereum Virtual Machine using the Solidity API.
As contracts become more complex and store more data–and developers possibly mismanage memory like in the old C++ days–memory
can be a concern along with compute.

Openness: Blockchain lacks standards, needs tooling, and must avoid a class system

I am using the term openness as an umbrella for three ideas: defining open standards to support transactional
integrity and interoperability among blockchains,
accessibility of blockchain development for software engineers via open and powerful tools, and maintaining parity
among nodes on the blockchain to facilitate open competition among nodes.

Open standards

Every transformative technology emerges from open standards. The Internet has HTTP, SMTP, FTP, JSON, XML, and on and on; databases have SQL.
Blockchain needs the same to thrive. The problem is that both the community and the technology underlying Blockchain are antithetical
to centralized governance. It is a solvable paradox, but I question whether the community even sees this as a problem. The
Ethereum Foundation is a one small step in that direction.

Once-powerful companies like Oracle, IBM, and SAP–basically the Celebrity Big Brother
of tech–are rushing to get back on
the A-list by embracing Blockchain and glossing over the closed nature of their proprietary, fragmented solutions. Once
upon a time, Service-Oriented Architecture (SOA) was a legitimate, powerful
concept whose hype motivated vendors to sell overengineered solutions to doe-eyed customers desperate to appear visionary only
to find themselves locked into heavyweight, proprietary products. And SOA had far more standardization than Blockchain.
Today people are more scared to utter “SOA” than they are “Voldemort”
despite its vindication by modern microservices architectures.

Given these barriers, it is no surprise that as of this moment there are over 1000 times more Java questions on
Stack Overflow
than there are Blockchain questions. The comparison is flawed to be sure, but that many orders of magnitude illustrates the point
given that Bitcoin has been around for a decade.

Open competition

Just as centralized governance runs at odds with an architecture and community suspicious of centralization, so too
should the possibility of the emergence of a class system among nodes in a blockchain. Given the resource-intensive nature
of proof-of-work, only machines endowed with sufficient memory and processing power can act as miners. This could theoretically
(though improbably) lead to a 51% atack, and the few who can afford
that kind of power will dominate. Meanwhile,
only nodes endowed with sufficient collateral can place winning bets in proof-of-stake. This leads to a
“rich get richer” scenario. In both cases,
you build a class system where certain nodes become dominant and potentially pernicious–analogous to
the economic phenomenon Progressive- and New Deal-era
reforms in the United States were designed to address through the very centralized institutions whose failures
motivated the birth of Bitcoin.

All of this can lead you down the rabbit hole of pedantic economics debates on Facebook and Reddit that inevitably devolve into
which user is most like Hitler. The point is Blockchain needs to
devise a consensus protocol that balances decentralization with equality of opportunity if not necessarily in outcome.

Privacy

Security and privacy aren’t the same; locking the door doesn’t stop anyone from seeing what’s inside. Blockchain
is similar. The clever computer science in place to secure transactions doesn’t obfuscate them. Needless to say, Blockchain
is a nonstarter as a pervasive technology if it can’t solve the privacy question.

There are a lots of ideas out there for solving this problem with Zcash arguably the most promising.
Zcash is a cryptocurrency that offers privacy through even more clever cryptography
in the form of zero-knowledge proofs. Another compelling alternative
is Corda, an open-source “Blockchain for business” written
in Kotlin that makes privacy (along with interoperability and tooling)
a first-class citizen. Various vendors offer proprietary solutions as well.

To echo a previous point, standards related to privacy would sure come in handy here.

******

Blockchain has been around for a decade and only just now is emerging as a compelling solution for everything from
banking to health care to improving the taste of fat-free ranch dressing. Until Blockchain learns the lessons of the past and
resolves its own inherent paradoxes, we will not realize the true potential of this otherwise transformative technology
if enough early adopters get burned to turn off future ones.