Blockchain is the world's worst database, created entirely to maintain the reputations of venture capital firms who injected hundreds of millions of dollars into a technology whose core defining insight was "You can improve on a Ponzi scam by making it self-organizing and distributed; that gets vastly more distribution, reduces the single point of failure, and makes it censorship-resistant."
That's more robust than I usually phrase things on HN, but you did ask. In slightly more detail:
Databases are wonderful things. We have a number which are actually employed in production, at a variety of institutions. They run the world. Meaningful applications run on top of Postgres, MySQL, Oracle, etc etc.
No meaningful applications run on top of "blockchain", because it is a marketing term. You cannot install blockchain just like you cannot install database. (Database sounds much cooler without the definitive article, too.) If you pick a particular instantiation of a blockchain-style database, it is a horrible, horrible database.
Can I pick on Bitcoin? Let me pick on Bitcoin. Bitcoin is claimed to be a global financial network and ready for production right now. Bitcoin cannot sustain 5 transactions per second, worldwide.
You might be sensibly interested in Bitcoin governance if, for some reason, you wanted to use Bitcoin. Bitcoin is a software artifact; it matters to users who makes changes to it and by what process. (Bitcoin is a software artifact, not a protocol, even though the Bitcoin community will tell you differently. There is a single C++ codebase which matters. It is essentially impossible to interoperate with Bitcoin without bugs-and-all replicating that codebase.) Bitcoin governance is captured by approximately ~5 people. This is a robust claim and requires extraordinary evidence.
Ordinary evidence would be pointing you, in a handwavy fashion, about the depth of acrimony with regards to raising the block size, which would let Bitcoin scale to the commanding heights of 10 or, nay, 100 transactions per second worldwide.
Extraordinary evidence might be pointing you to the time where the entire Bitcoin network was de-facto shut down based on the consensus of N people in an IRC channel. c.f. https://news.ycombinator.com/item?id=9320989 This was back in 2013. Long story short: a software update went awry so they rolled back global state by a few hours by getting the right two people to agree to it on a Skype call.
But let's get back to discussing that sole technical artifact. Bitcoin has a higher cost-to-value ratio than almost any technology conceivable; the cost to date is the market capitalization of Bitcoin. Because Bitcoin enters through a seigniorage mechanism, every Bitcoin existing was minted as compensation for "security the integrity of the blockchain" (by doing computationally expensive makework).
This cost is high. Today, routine maintenance of the Bitcoin network will cost the network approximately $1.5 million. That's on the order of $3 per write on a maximum committed capacity basis. It will cost another $1.5 million tomorrow, exchange rate depending.
(Bitcoin has successfully shifted much of the cost of operating its database to speculators rather than people who actually use Bitcoin for transaction processing. That game of musical chairs has gone on for a while.)
Bitcoin has some properties which one does not associate with many databases. One is that write acknowledgments average 5 minutes. Another is that they can stop, non-deterministically, for more than an hour at a time, worldwide, for all users simultaneously. This behavior is by design.
I can go on, and probably will some other day. This is a bit of a hobby for me.
The problem with Bitcoin is the costs associated with using it. Due to its decentralised nature it will always be more costly than centralised solutions. Therefore, Bitcoin simply cannot compete unless illegal activities are involved. The economics simply do not work out.
I tried to pick apart the rest of your post but damn if you're not an eloquent writer. You pretty much covered every angle. My only real complaint is your point that "Bitcoin is claimed to be a global financial network and ready for production right now."
Bitcoin isn't claiming anything, it IS a global financial network being used in production right now.
except, of course, for all the fraud, thefts, exchange collapses, "hacks" and sorry-for-your-loss events in every other part of how Bitcoin works in practice. Except for the fraud, it's completely free of fraud!
How so? Are you saying that when a trojan on my machine accesses my bitcoin wallet and sends all of my bitcoins somewhere, is it not "fraudulent transaction"? Because these things happen, you know.
I obviously can't predict the future use cases, but an example off the top of my head might be something like a country issuing social security numbers at birth using the blockchain. Suddenly that "expensive" operation can be seen as extremely cheap given the utility. Go ahead and attack the example, but like I said, just something off the top of my head.
1) It seems like the term "block chain" as used by block chain companies is pointing to what the bitcoin blockchain is but without the proof of work. So, a database which history could be cryptographically audited.
2) I don't think those are necessarily bad points for Bitcoin. Maybe it is run by speculators or gold diggers but in the end many people (including me and friends) have used/are using bitcoin for legitimate reasons.
Doesn't git already meet that requirement?
Blockchain is not a database. It's a document timestamping service (document being a short program that describes where goes what part of a coin, in the case of Bitcoin), it's just a service that doesn't use a central place or a trusted third party to produce (or keep) timestamps.
If you were to use it as a database, then no wonder it would suck horribly. It wasn't designed for that.
Aaron Voisine has done an incredible job with breadwallet, highly recommended.
In a distributed consensus environment a substantial number of proofs of work (in Bitcoins case a hash) must be performed to gradually ensure that a block in the chain is consistent and thus come to a consensus that it is in fact valid.
In Postgres a transaction can be verified and guaranteed to be consistent among nodes using a two phase commit protocol. Essentially a transaction is attempted, verified, and then committed by the nodes of the network in a guaranteed, and very secure, manner.
The upside to the Postgres method is you do not need a substantial number of individual processors to perform proof of work to securely verify consistency.
https://www.postgresql.org/docs/9.2/static/warm-standby.html...
Or on top of LevelDB or sqlite if you look at google's implementation of it:
https://github.com/google/certificate-transparency#software-...
The source of truth for certificates is certificate authorities. Certificate authorities by definition must trust the claims other authorities make about what they issued. There's no need for "proof of work". There's not even any distrust.
There's a need for an audit log, an append-only database, replication, and distribution of data.
There is no need for solving the generals problem, for hashing, for confirmations, for any of the blockchain really.
In fact, lets talk about faxes. We still have these relics of the past generation in our offices. Why? Because it acts as a mechanism to collect and store timestamp events. Blockchain precisely does that.
How about a blockchain implementation that solves this problem?
I have seen zero actually feasible use cases for blockchain outside cryptocurrencies, and those only have a use case for illicit transactions.
The usual proposal I see put forward for non-cryptocurrency blockchains is a general coordinated database of everything in an industry, so all players can see what's happening.
The problem here is having common data standards at all, which is not a problem that storing it in a blockchain will solve.
The first barrier to common data standards is business models built on obscurantism; the second is that nobody wants to make the body setting the standard into the natural monopoly it will become, which is not a problem that a blockchain will solve.
The solution is for a player to come up with an open royalty-free data standard so naturally compelling that everyone adopts it, and eventually your regulator says "you know what, use this one."
This does not involve a blockchain.
https://en.wikipedia.org/wiki/Trusted_timestamping
NB Having worked in the area I find document security (particularly authenticity) to be a fascinating subject and its not inconceivable that a blockchain based solution could be interesting but I'd love to see how such a thing would actually work in practice and some kind of idea why it is better than earlier approaches.
"because blockchain" isn't really an argument.
Blockchain is the proverbial solution looking for a problem. As has been pointed out ad nauseam, the blockchain is often just a euphemism for database.
And that's where the backlash comes from, someone says Blockchain for settlement, or blockchain for recording startup up option tracking, or blockchain for tracking, well anything physical or digital.
The problem with these solutions is that almost always, there exists a database doing exactly what the person is proposing we use blockchain for, there aren't any trust issues with the counter parties so distributed consensus doesn't buy you much, often it makes things worse due to its immutability.
Couple that with the fact that many people like the current system, or make money based on the current system and therefor can't see anything broken about it.
Also, the current technology has inertia behind it, the new technology can't be just a bit better, it needs to be much better to displace the incumbent tech, and blockchain just isn't that much better yet for most of the soutions its proposed for.
TL/DR Blockchain is the new NoSql. Awesome, useful in very strict cases, but its currently supremely hyped up and over sold.
However it offers the potential to approach problems in a fundamentally different manner. I find myself incredibly curious and fascinated with how it works - then immediately rejected once I see discussions on HN about the blockchain.
According to your bio you've been programming for many years - is an apprehension towards something new a common pattern you've observed?
Which results in "hype recoil." There are some interesting use-cases for the technology, but the hype in areas where it is not applicable (e.g. as a liquid currency) severely erode the overall perception. Fanatic belligerence when the flaws are discussed enrich angst toward the technology.
In many ways the issue is not the technology itself; rather the evangelists of it.
"If you announce that you are updating the database software used by a consortium of banks to track derivatives trades, the New York Times will not write an article about it. If you say that you are blockchaining the blockchain software used by a blockchain of blockchains to blockchain blockchain blockchains, the New York Times will blockchain a blockchain about it"
The whole article is fairly insightful, as his often are:
https://www.bloomberg.com/view/articles/2017-01-10/bank-bloc...
The article on the front page about Accenture today is a great example. People are using it as a buzzword. Blockchain isn't snake oil, but it's sure being peddled by a lot of snake oil salesmen.
In situations where you already have trust but want immutability and cryptographic assurances, you may want to look into Merkle DAGs or other authenticated data structures, which are not blockchains at all. https://cs.umd.edu/~mwh/papers/gpads.pdf
Frankly the distributed consensus part of blockchains has always seemed more than a tad bit wasteful of energy and computation.
As someone that has actually tried to sell things with bitcoin, there are major flaws with it, and they will never be fixed because these problems are inherent to blockchains. And people trying to get rich quick keep spamming forums and HN with blockchain technology X Y Z without acknowledging these problems.
1. It is really annoying to buy. You need to go out of your way to link your bank account and passport/driver's license at any major exchange, and this takes days or even weeks. You cannot buy it instantly with a credit card or paypal unless you find a shady seller with bad rates. No one wants to sell bitcoin for something that could be chargebacked.
2. No chargebacks. Good for sellers but not for buyers. People might be able to live with this if it weren't for the other 2 major problems.
3. Payment takes forever. Waiting for the recommended amount of confirms will take at least an hour?
These problems are deal-breaking and can never be fixed when using blockchain technology.
And then after 10 mins to an hour you find you can't spend it because it's been marked invalid, and the guy you sold your iPhone to is long gone.
And I can spend money I get from Paypal as soon as I get it. I don't have to wait 1 hour.
A "private" blockchain largely defeats the point, as you don't need trustless distributed concensus when you implictly trust yourself or a central authority. We just call these versioned databases.
Blockchain is a relatively new technology with plenty of promises paired with low understanding.
I am however sceptical when large amounts of people suddenly decides that they need to swap technology NOW.
Example: javascript. A language that IMO is worse than even php in a number of ways but still manages to attract developer mindshare.
(Yes, I have some experience in classic Javascript / ECMAScript )
When we discuss the cryptocurrency concept, specifically bitcoin, I think reasonable people can agree that blockchain technology has yielded something unique, interesting and worthy of technical merit, despite it not living up to the insane prognostications of bitcoin fanatics . On the whole, I think it's fair to call bitcoin a success because it continues to exist and has been self sustaining more or less within the parameters of the original design for quite a few years. Although it is small, there is some real commerce that occurs in the bitcoin world, and even among some of the alt-coins that followed it. A self-sustaining mini-economy based on computer code is fascinating, and without all the breathless evangelists talking about how bitcoin will end all wars and liberate the masses from the tyranny of taxation and government, I think we'd see a lot more meaningful technical discussion of bitcoin and the other potential uses for blockchain technology.
But that is not the world we live in. We live in a world where every conceivable problem is met with an overwrought and unworkable blockchain solution. We live in a world where startups can drain 100 million dollars on a clearly stupid idea because "blockchains are the future", we live in a world where bitcoin evangelists refuse to face the reality that the incumbent financial system is not at all threatened by bitcoin and concepts like "smart contracts" and that people with common sense aren't ignorant or misunderstanding blockchains just because they're trying to tell you that throwing millions of dollars into a "decentralized autonomous organization" (a misnomer which exemplifies blockchain insanity) is a dangerous and terrible idea.
Blockchain enthusiasts need to put up or shut up. Storing land deeds and stocks on the blockchain is unworkable. Using the blockchain to power smart-locks and self-driving cars and autonomous drones and autonmous AI VCs is unworkable and unnecessary. Bitcoin, bitcoin copycats, and RNG roulette are the only examples of blockchains working mostly as intended and providing at least a marginal utility (in that cryptocurrency can be converted into spendable money). All the rest of it is demonstrably pointless (see literally every project created with etherum besides decentralized gambling software).
This is leaving aside all the political nonsense and all the bitcoin hesits, thefts, scams, and buzzword swindling. The bottom line is that people are tired of hearing about the amazing capabilities of blockchains when nobody can seem to actually demonstrate their utility (besides bitcoin) in practice.
1. A large user base (computational power) is needed to successfully run a blockchain backed product. If the network is small, a malicious attacker with enough resources could manipulate past transactions or prevent new ones (51% attack).
2. Blockchain was designed to be a trustless (no central authority) distributed ledger. In the case of Bitcoin, it prevents double spending of a virtual currency that only exists in the Internet. When applied to "real world" assets, sooner or later you will find a step in the process that involves trusting something or someone.
So far I haven't been able to identify a use case for anything but a digital asset with great traction.