At first there was bitcoin: the worldâs most successful cryptocurrency to date. But lately there has been more and more talk about âthe bitcoin blockchainâ, âthe blockchainâ, âblockchainâ or âblockchain technologyâ.
Bloomberg reports that Nasdaq is seeking to show progress using the much-hyped blockchain. LWN notes The Linux Foundation recently announced a project to âadvance blockchain technologyâ. The Washington Post lists bitcoin and the blockchain as one of six inventions of magnitude we havenât seen since the printing press. VISA, Citi, and Nasdaq have invested $30m into a blockchain company.
VCs have invested $1bn in the bitcoin ecosystem. Bank of America is allegedly trying to load up on âblockchainâ patents. The Bank of England says thereâs âbuzz around blockchainâ and is curious what youâd use âblockchainâ for.
It seems âblockchainâ is becoming an increasingly generic term, like âcloudâ or âcyberâ.
A new breed of snake oil purveyors are peddling âblockchainâ as the magic sauce that will power all the worldâs financial transactions and unlock the great decentralized database in the sky.
But what exactly is a âblockchainâ?
Letâs turn to the definitive source, Satoshi Nakamotoâs seminal paper âBitcoin: A Peer-To-Peer Electronic Cash Systemâ and look for the first reference to âblockchainâ. Hmm, there doesnât seem to be one.
The paper contains multiple references to a âproof-of-work chainâ, and one reference to a âchain of blocksâ, but other than that neither âblockchainâ or âblock chainâ ever make an appearance in the bitcoin paper.
So if itâs not defined in the bitcoin paper, what does âblockchainâ actually mean?
Iâve asked a lot of people this question, ranging from renowned cryptographers and distributed systems experts to bitcoin enthusiasts to people not particularly versed in either bitcoin, distributed systems, or cryptography. No two people have ever given me the same answer.
I can try to take a crack at the question myself.
Here are the interesting properties of the bitcoin âblockchainâ as I see them:
When we look at the list above, what makes bitcoin unique? To me, itâs really about the âproof-of-work chainâ approach to creating a replicated transaction ledger.
So as far as Iâm concerned, as soon as we remove the âconsensus-by-lotteryâ using proof-of-work part of the âblockchainâ, it ceases to lose meaning and lapses into a much more general set of ideas which solve a similar class of problems but have been in use for decades, are distinct from bitcoin, and are in no way âblockchain technologyâ.
I would argue the etymology of âblockchainâ can be traced to a sort of mutated, colloquial term for Satoshiâs original âproof-of-work chainâ concept, and that as soon as you move beyond consensus-by-proof-of-work you are no longer using a âblockchainâ.
That is to say: I think systems which are not transaction ledgers and do not use bitcoinâs consensus-by-lottery using a proof-of-work function approach are not âblockchainsâ.
Iâll again call out Certificate Transparency again as a system which has many of the same properties as the bitcoin blockchain, but which I would not define as a âblockchainâ and whose creators would probably not describe it as a âblockchainâ either.
Would you use a database with these features?
But itâs decentralized!
While bitcoin does a reasonable job of modeling financial transactions denominated in the one and only one cryptocurrency that is bitcoin, it generally fails to live up to the ideals of a âtransactionâ in databases, and what it manages to do comes at an incredible cost in terms of electricity and time.
Bitcoin fails to achieve the properties of byzantine fault tolerance, which is perhaps a bit unreasonable to ask in order for bitcoin to be considered sound, but from a less formal perspective bitcoin has no acknowledgement protocol for accepted âtransactionsâ beyond reading your current view of the âblockchainâ, and because bitcoinâs âconsensus-by-lotteryâ mechanism is inherently racy by design (who can solve the proof-of-work the fastest?
Weâll call that an accepted write. Uh-oh, two people solved it at the same time, we can never be quite sure that a particular transaction we donât yet see in the blockchain will eventually be committed (and no, the mempool is not some magical band-aid that can solve this problem).
Compare this to pretty much any database or real-time payment system in the world, where getting a speedy âackâ (or error) of some sort, and having it mean something, is considered a basic feature. Even MongoDB can do better than this.
As a side-effect, bitcoin can also be used as a decentralized âtimestampingâ/audit log service (as noted in the original paper), however there are more efficient protocols which can solve the decentralized audit log problem.
Yet again Iâll look to Certificate Transparency, which solves the problem of verifiable audit logs without the use of a proof-of-work function, making it much easier and less computationally intensive to append to, query, and audit. For these reasons, I specifically call out bitcoinâs blockchain as being most noteworthy as a decentralized ledger, and nothing else.
Before bitcoin, the state-of-the-art in decentralized reconciliation over the Internet generally involved SCPing around GPG encrypted batch settlement files and processing them with zSeries mainframes. This is slow moving, not easily auditable, and clearly leaves a lot of room for improvement.
Bitcoin was a great demonstration of what is possible. But as the entire bitcoin ecosystem approaches a gross payment volume size nearing that of single top 10 US retailer (and about 1/10,000th the transaction volume of VISA), the âpublish all transactions to everybodyâ approach bitcoin uses is starting to show its limits.
Bitcoinâs scalability is ultimately limited by the number of transactions that can fit in a block and the rate at which blocks are published to the network, and the fight over a switch to a larger block size has grown increasingly dramatic.
But even if bitcoin adopts a larger block size, the fact itâs already hitting scalability limits despite its comparatively small transaction volume does not bode well for the âblockchainâ approach, especially as âblockchain technologyâ is being touted as a potential solution for systems which operate at multiple orders of magnitude higher transaction volume than bitcoin.
The central problem (pun intended, sorry) is that, despite claims of being âdecentralizedâ, the blockchain represents a single ledger which is global to the entire bitcoin ecosystem. It seems Satoshiâs back-of-the-napkin math doesnât really work out, and publishing all transactions to everyone is expensive in terms of bandwidth and storage.
There are attempts within the bitcoin ecosystem to address this deficiency, for example blocks could be made larger as proposed in Bitcoin XT, or some transactions could be moved to âsidechainsâ as proposed in systems like the Bitcoin Lightning Network. But the Lightning Network is useful only for a ledger that is denominated in bitcoin, and we still have to deal with the âcentralâ bitcoin blockchain, whose size is likely to continue to increase despite the addition of various âsidechainâ mechanisms.
(Edit: Several people have pointed out the Lightning Network allows for offline transactions and that itâs not a âsidechainâ, and also that the Lightning Network can support non-bitcoin denominated transactions.)
For solving the general problem of over-the-Internet decentralized reconciliation though, weâll need âblockchainsâ denominated in currencies other that bitcoin too. But now we have a new problem: how do we exchange different currencies or other financial instruments between blockchains denominated in different currencies?
While this problem may appear to have a straightforward answer, it becomes a bit more difficult when you take into account that moving money between ledgers actually involves integrating with those ugly legacy systems I was talking about earlier which can already move money denominated in âlegacyâ fiat currencies.
Turning your bitcoins into cold hard cash denominated in the currency of your choice is perhaps the cryptocurrencyâs biggest problem beyond scalability (see Mt Gox and the many thefts related to shady bitcoin exchanges on /r/sorryforyourloss).
The solution to all of these problems requires taking a step back from bitcoin and re-evaluating the actual problem we wish to solve. The âproof-of-work chainâ approach used by bitcoin is ultimately trying to solve a distributed consensus problem, where we have many parties who want to reconcile a transaction ledger over the Internet.
Bitcoin uses digital signatures to ensure the integrity of each transaction, and via proof-of-work manually selects an authority to decide which transactions are included in a particular block.
However, there are far more efficient distributed consensus algorithms than this which donât involve a proof of work. So perhaps we should consider those.
Next-generation decentralized transaction ledgers are a topic Iâve blogged about before, but as this is a quickly evolving field some of my âpicksâ have changed.
I would like to call out the following projects as ones that are interesting to me today:
In my previous blog post âThe Death of Bitcoinâ I had also mentioned Hyperledger, Tendermint and several others. Iâll get to those in a bit.
My Death of Bitcoin blog post also touched on the idea that the blockchain could be subject to incremental refinement in the same way the Watt steam engine massively improved on the previous Newcomen steam engine.
A few months later we saw exactly that with Bitcoin-NG (paper), a protocol that inverts the ordering of bitcoin consensus, in which a miner is first elected leader by winning the proof-of-work âlotteryâ by mining a âkey blockâ, and then once elected leader becomes a transaction broker who can mint âmicro-blocksâ via digital signature until the next leader is elected.
Decoupling leader election from the publishing of transactions allows the overall system to have a much higher throughput as the rate new transactions are published is no-longer coupled to the rate at which the proof-of-work problem is solved.
Iâve referenced Certificate Transparency several times in this post, but it has a few drawbacks: itâs a point-solution specifically for the purpose of X.509 certificates, and as a system that merely logs and audits what certificates CAs provide to it, it has no consensus protocol and therefore cannot be used for things like finding the canonical certificates for a given domain name.
For what Certificate Transparency is trying to accomplish, this is perfectly fine. However, given the several years theyâve spent working on it, it feels like a bit of a shame that it only serves the purpose of authenticating X.509 certificates when the general idea behind it seems much more powerful. This is perhaps how people feel about âthe blockchainâ when they see it applied only to bitcoin.
Cothority is a framework for building collective authority systems using a Merkelized log a la CT, a consensus algorithm, and threshold signatures (using Ed25519 for threshold Schnorr signatures).
By combining the ideas of consensus systems with a CT-like witness protocol, it provides a generalized framework for auditable decentralized trust and consensus which can be used for many of the same things people are pitching âblockchain technologyâ for without the need for a costly proof-of-work-based âconsensus by lotteryâ.
These two images are taken from Philipp Jovanovicâs 32C3 talk on Cothority, where they were juxtaposed as two potential solutions to the same problem. While I think Bitcoin-NG is a brilliant optimization on the original bitcoin design (and one Iâd strongly suggest bitcoin adopt some variant thereof), Cothority provides many of the same properties without a proof of work function.
Lately Iâve seen a lot of systems of the sort I previously wouldnât have classified as âblockchainsâ (because they do not use a proof-of-work chain) who previously seemed to be distancing themselves from bitcoin and the proof-of-work approach go FULL BLOCKCHAIN:
Have you accepted THE BLOCKCHAIN into your heart?
This is Tendermint, a protocol I highlighted in my last blog post as being based on a proof-of-stake system and distributed consensus protocol, as opposed to a proof-of-work scheme like bitcoin. Now there is no mention of proof-of-stake anywhere on their web page.
Is Tendermint a blockchain? I guess thereâs no question about it now! Whatever Tendermint turns out to be, its creators leave little room to doubt that it is, indeed, a BLOCKCHAIN (blockchain blockchain).
Hyperledger, another protocol I highlighted in my last blog post, has also undergone a blockchain makeover. Their old web site now redirects here (as reported on by LWN), where we no longer see any mention of âHyperledgerâ, just Enterprise Blockchain 2.0 technology!
With this much ambiguity as to the actual definition coupled with hyperrepetition, âblockchainâ is fast on its way to becoming the new âcloudâ â one of those words whose actual meaning is nebulous and unspecific, but whatever it is it must be so important people canât shut up about it!
Now donât get me wrong: I like Hyperledger and Tendermint, or at least, I thought I did. Per my personal rubric above though, neither of these systems are âblockchainsâ because they do not use a proof-of-work-based consensus protocol.
The great thing about a nebulous term is that it knows no limits.
What canât you put in the blockchain? Perhaps we could encode Wikipedia into the blockchain, or store the entire archive of Netflix videos in the blockchain. All of Archive.org could go in the blockchain. We could move the entire World Wide Web into the blockchain so all web pages are permanent and live forever.
The only real question is: What canât you put in the blockchain?
Well, the answer is: not much. The bitcoin blockchainâs ability to store data is greatly limited by its âpublish everything to everyone everywhereâ nature. 80 bytes per transaction is pretty much the limit, and the system is already hitting scalability bottlenecks at a relatively modest scale.
To go beyond that, we need a different protocol. We canât just throw âblockchain technologyâ at the problem. The relevant algorithms do not exist in the bitcoin codebase. We need a different protocol.
This is a problem many people have tried working on for a very long time. Iâve blogged about it before. There have been many pretenders to the throne: Xanadu, FreeNet, GNUnet, MojoNation/MNet, Tahoe-LAFS, OneSwarm, BitSpray, MaidSafe, IPFS. Iâll note MojoNation specifically as a system that tried to tie storage service to a cryptocurrency.
So far the leading technology for the decentralized database seems to be BitTorrent, which dominates Internet traffic. But it doesnât make for much of a database, only a blob store. Perhaps youâre now thinking: TorrentChain! Yeah, thatâs been tried. But I donât think the great database in the sky is going to be unlocked by cobbling together disparate parts into a Rube Goldberg apparatus.
Believe me that I would like to see the craziest fantasies of what people hope to accomplish with decentralized systems realized. But the blockchain is probably not the technology that is going to do it.
I feel âblockchain technologyâ has not delivered a lot of practical value: compared to most payment systems, the value bitcoin moves, and the transaction rate, are both rather insignificant (and bitcoin is all that matters â all other blockchain-based systems move practically nothing by comparison).
Bitcoin is hitting scalability limits under a relatively modest payment volume.
The only thing I think âblockchain technologyâ has actually delivered on is hype: a press release with âblockchainâ in the title garners media attention. (I direct you back to the opening paragraph of this post if you doubt that).
Old financial institutions recruiting for âblockchainâ positions are a lot more likely to find talented engineers than if they have job requirements to maintain decades-old legacy systems. I wonât dispute that âblockchainâ is pretty much guaranteed to engender a lot more excitement in your average engineer than âledgerâ, âreconciliationâ, âsettlementâ or ânotarizationâ.
In the meantime, âblockchain technologyâ advocates need a litany of big-name positive endorsements of âblockchainâ to lend credibility to the idea, even if itâs little more than expressing interest in the concept.
Thus we wind up with a positive feedback loop of hype without anyone actually delivering on anything valuable.
Thatâs not to say that the idea of decentralized transaction ledgers and timestamping systems lacks merit, but I donât think copying and pasting Satoshi-and-friendsâ codebase all over the place is the best way to go about solving the problem.
If youâre doing that, please at least take a look at Bitcoin-NG and fix the broken Merkle trees.
In Blockchainiac terms, I donât want there to be âon-chainâ and âoff-chainâ. I want âsidechains all the way downâ. I want systems that are built from the ground up to support that model. Bitcoin doesnât scale. Decentralize the blockchain!
I want protocols that are formally proven to come to consensus correctly, not protocols that are formally proven to be broken.
I want each transaction to use less electricity than I do in a day. Much less. I want the entire system to use a lot less electricity than the entire nation of Ireland.
I want more than 3 transactions per second.
I want consensus faster than every 10 minutes. Ten seconds is a lot better.
The most interesting ideas Iâm seeing are coming from people who describe their protocols as requiring no blockchain.
I worry the media are giving undue attention to questionable ideas simply because thereâs a lot of âbuzz around blockchainâ.
I worry that the hype surrounding the âblockchainâ might lead those who award research budgets to favor blockchain-based solutions over those that are blockchain-free.
I worry financial institutions might pick a âblockchainâ-based solution where a blockchain-free solution might be, by all quantitative metrics, better in every regard, simply because theyâve heard what a big deal âblockchainâ is.
But perhaps my concerns are overblown, and this is just a giant semantic argument. Maybe âblockchain technologyâ is just becoming a meaningless all-encompassing umbrella term for decentralized protocols.
Can it do ledgers? Sure! Data? Why not? Computation? Smart contracts baby!
Perhaps âpost-blockchainâ protocols will start branding themselves as âblockchain technologyâ just to stay relevant.
âCyberâ is starting to grow on me, so why not âblockchainâ too? Who needs a metaverse? Iâll see you on the blockchain.
This article originally appeared on TonyArcieri.com and has been republished here with the authorâs permission.
You can follow Tony Arcieri on Twitter
Conformity image via ShutterstockÂ