A peer-to-peer decentralised network of database nodes which is "immutable" only insofar as a peer cannot afford to outspend the network... is useful for what ?
The only use-case identified so far is defeating state regulation of finance, ie., crime.
Silicon valley has this perverted obsession with applying technological solutions to societal issues. They have phenomenal hammers, but not everything is a nail.
CA DMV records? Loyalty programs? What's wrong with a database? What's the requirement for decentralized workflows?
Storing factoids that (1) can't be repudiated by anyone (including the initial reporter), (2) can support attestations in the future (I can prove to anyone that I bought something years ago without showing the thing or making myself known), and (3) can only be deanonymized if and when the user wants it to happen.
1 - Non-repudiation can be done with cryptographic signatures. Storing signed data doesn't require a blockchain. I think the major improvement is related to time-stamping, although there's lots of prior work there.
2 - When would someone ever need to prove this? If you can't prove the "what" or the "who", how is this useful?
3 - For Bitcoin, no, there's lots of tools to de-anonymize users. For others, I think that's true, but what's the use case beyond money laundering?
Why is that aspect desirable?
It's not the compute, which is abitarily centralised. It's not the code. It's not the interpretation of the data. It's the consensus of which dataset is the valid one. That "consensus" is dependent on the nodes which form it being honest and not being outspent.
That's kinda insane right? Why make which version of a dataset is the right one dependent on adversarial peers with malign economic incentives?
Oh right, because you're trying to brute force your way to an alternative economic system. That's the only use case of this mixture of technological absurdities -- and it's a dumb one which will disappear on contact with regulatory oversight.
Blockchains distributed consensus model *is* based on contingent economic incentives. This isnt a "technology" is a peer-to-peer data validation network which works only insofar as it can bribe its participants.
Firstly, forget all about outspending the network. None of the platforms an organization like the DMV might consider use proof of work (I'd hope). Standard within that space are BFT algorithms, or even non-BFT algorithms like Raft, or even a simple centralized DB (but which only holds tx ordering info, not the actual tx contents themselves).
Enterprise blockchain platforms try to solve the following problem: there are many situations where different organizations would benefit from a proper digitization of a business process, but it doesn't happen because the political/business costs of placing one organization in control of that process is too great. In turn that requirement comes from the software industry only delivering systems that assume one party controls everything. If the business process you're automating exists entirely within an organization, or if you can get all the organizations to buy into a single platform company, then it works. If those two things aren't true then we got nothing for you and so you end up with "digitized" processes that often are little more fancy than emailing PDFs or XLS files around. Or the government steps in to provide something at which point the ability to innovate or evolve that process grinds to a halt, because their only goal is system stability and not feature development.
One thing to note here - I learned whilst working on some of these projects that whilst they may sometimes appear nonsensical on the surface, that was usually due to lack of domain knowledge on my part. For example there was a project to try and put land registration in the UK "on the blockchain" (concretely, using the platform I worked on) and so I asked early on whether this really made sense because, surely, the government is the central point of truth for land ownership? Where's the inter-organization aspect? Well, guess what, turns out there are tons of obscure business processes around the buying and selling of land in which the land registry plays a key part, but it's only one organization amongst several, and a big part of the schlepp-work here is coordinating all those organizations and moving documents (i.e. hand written database transactions) between them. Once the domain experts walked me through those processes in detail and explained what they wanted, I realized it wasn't nonsensical at all. There were a lot of cases like that, where in theory I was selling the tech to them, but in reality they were explaining the need to me.
So what to do? These problems would go away and the impact of IT would be much greater, if we had two difficult-to-make things:
1. Some sort of multi-master database system in which the masters didn't trust each other, which could work together over the internet such that each company or organization could run a node themselves.
2. Social institutions that could set up and make use of such systems without any one party gaining too much power over the others.
Due to the enormous pre-existing demand that existed for automating all these difficult-to-automate business processes, when people realized that Bitcoin basically worked by solving (1) and to some unclear extent also (2), they jumped on it. Except of course the whole design philosophy of the tech really wasn't what they needed or wanted, hence the evolution of dedicated platforms like Corda that tossed out proof of work, added conventional tech like X.509, per-node RDBMS and so on.
Now in practice a lot of these projects fizzled out, which is one reason why we get threads like this one on HN. Having seen a lot of these projects in action, the issue was really that both (1) and (2) were never fully solved. For (1) the tech problems are hard because it's all the difficult bits of distributed computing and distributed databases, with lack of trust thrown in on top, combined with really difficult deployment environments (like banks), combined with many of the platforms advertised to such projects going off into the technical weeds with things like new programming languages. But the tech issues pale in comparison to (2), the social difficulties of coordinating multiple institutions in the design and implementation of complicated IT projects. In fact that was by far the hardest part and in the end the real sticking point. Without capitalist ownership incentives projects don't make progress - look at IRC vs Slack for a particularly stark example - and so often these projects got spun out into startups. But then you're back to relying on a third party. At first it didn't seem like too much of a compromise because they would just write the software, and the institutions would at least run it so the startups wouldn't get everyone's data like in a classical SaaS situation, and the platforms were designed to allow for some level of divergence and forking. But then often the customers started running out of steam and just wanted to pay someone else to run it all, so it degraded back down to being SaaS but with more overhead.
In the end the thing that stopped most of these projects being successful wasn't that the core problem statement was wrong, or even that the tech wasn't good enough (though sometimes it struggled to meet people's needs). It was actually that most non-tech orgs have developed an unwritten cultural rule of institutionally "sandboxing" tech projects to avoid the potential for career damage when they inexplicably blow up (due to mismanagement but the people involved often don't realize that). For as long as projects are confined to the sandbox marked "innovation team" everyone is happy. When it comes to real implementation, the executives start looking for ways to outsource it all so if things go wrong they can point the finger at the vendor - they want "one throat to choke" in the lingo.
This dynamic causes organizations to diverge. Either they successfully make the transition to being a sort of tech company, in which case they want to own all the platforms and probably can, or they become hollowed out customers of vendor's pre-packaged business automations in which they experience less career risk, but struggle to differentiate.
Ie., "enterprise blockchain" is just SoA.
That's status quo.
I still don't see where the need for a peer-to-peer consensus model comes from. One party to the system is the authority: they create the data about the relevant things. Or if there is a genuine multi-party authority problem, why would an algorithmic consensus model work?
If the UK and EU disagree, that isnt solvable by a p2p technical consensus protocol.
In what case are multiple peers in receipt of distributed transactions whose "integrity" can be resolved by a technological consensus process? (Subject to networked incentives, etc.)
The single use case here is clear: adversarial economic transactions.
The problem with this use case is also clear: fraud doesnt occur because the transactions themsevles are in disagreement; it occurs becuase people are falible. So we need reversability in the system. etc. etc.
"As far as I can tell what you're describing is business services connected by web APIs -- ie., the internet + microservices."
Web API tech (I assume you mean REST here) doesn't provide even a fraction of what's required.
"I still don't see where the need for a peer-to-peer consensus model comes from. One party to the system is the authority"
No, in most of these use cases there isn't a single party that's the authority and one that's subservient. Consider a simple example: company A wishes to buy something physical from company B. In an ideal system the act of sending the money would be atomic with the act of marking the relevant invoice as paid, and possibly in turn with the act of signing the paperwork saying the goods were delivered in acceptable condition. Today you can't do that because there is no one organization that's the authority for the banking system and the invoice between the organizations and the delivery tracking. So you have to do three steps independently and then they inevitably get out of sync (a "break"), requiring manual reconciliation ("rec") to locate and patch things up. Banks alone have departments devoted to nothing but that.
With a proper solution - call it what you want - you'd be able to make a single database transaction that updates the state of all three things simultaneously and atomically, such that everyone involved in the transaction is always on the same page, yet only finds out the relevant data they need to know and no more.
Most transactions don't fall neatly into the category of friendly or adversarial. People want to cooperate but they also have their own incentives, and when mistakes happen people want the consequences to fall elsewhere. P2P consensus helps because it means you can established shared schemas, shared agreement that the coded-in business logic has been followed, everyone sees the same state on their screens when they go look at the details, etc. You can't get into a position where one party says they paid for something and the other party thinks they didn't. It's all basic enough stuff but our current tech just can't do it.
You haven't explained why a land registry is appropriately modelled by a peer-2-peer adversarial database system.
There is an authority here: the state. Land is /registered/ with the state.
If there are multiple parties with a claim to land, that dispute requires a non-technical consensus model called 'the law' and its resolution is not final. The state retains the privilege, as it must, to revise its decisions.
Trying to replace courts with blockchains is a dumb idea, so silly that its proposal immediately signals a profound ignorance of the problem domain.
Which is: People.
It's been some years but my recollection of the explanation is something like this. The process of buying/selling houses and land involves many organizations. There is the land registry, the bank, lawyers, conveyancers and possibly others I've forgotten about. To actually complete a sale requires coordination of all of these. Today this is done with lots of human-readable documents bouncing around, maybe in digital form if you're lucky, wet ink signatures, lots of people who are just sort of trusted because they're pillars of society and so on. There's lots that can go wrong even in the absence of a dispute over who actually owns the land currently, it's very slow and it's very hard to digitize. Land registry exposing some documented HTTP endpoints doesn't fix anything because it doesn't solve any of the coordination or security or privacy problems.
Those are problems coordinating people --- not nodes holding duplicate and adversarial copies of datasets
The whole blockchain sales pitch is lie or fallacy of ambiguity.
Ie., the 'consensus' of a blockchain isn't social and indeed makes social consensus much harder
since it aims for immutability and so on
Still, I'm not trying to sell this stuff to you. If you don't believe these problems or the use cases exist, fine; the world is full of people who deal with them and would indeed like solutions.
Digital signatures can be added to any piece of data: add a column to a database. It's a catastrophe to make a private key a requirement of adding to a ledger, since in practice, people lose/steal/etc. them.
Now think it through some more: with what certificate is that signature associated? You need some sort of PKI that's built to a level that can replace wet ink signatures in all business transactions. What bytes are signed? You need some agreement on serialization because you can't actually sign a database column unless it's just a byte array. Now how do you get that signature to people? It has to stay associated with the data as it moves around, which it won't do it if it's just sitting in a database column, so you need some protocol to ensure it gets to the right place at the right time. But transactions are ultimately performed between people, or legal identities, not IP addresses, so you need a way to map those. Domain names aren't it because they don't represent e.g. sub-departments, subsidiaries, individual employees, so you need a naming service that reflects organizational structures in a less ad-hoc way.
Finally, what happens if two users click "Submit" near simultaneously on two conflicting edits? You need some way to resolve the conflict, but recall, these are peer institutions. There isn't one that's the authority and one that's not. That's the whole problem we're trying to solve. So you need some sort of consensus algorithm that can resolve transactions that conflict, which reflects the peer to peer nature of the underlying business relationships.
By the time you've built all of that + lots more, you've got an enterprise blockchain platform. Does it actually contain blocks? Well, the one I designed didn't actually, and sometimes we didn't even call it a blockchain at all. But that's the terminology the business world settled on for this type of system.
The need for "consensus" in distributed systems has been established for decades -- today whether via Kafka, Enterprise Buses, APIs, etc. Many of these systems are already cryptographically secure.
But blockchain isnt a solution to any kind of distributed consensus across a database network; nor any kind of security problem.
Blockchain "solves" only the problem where the compute-and-store nodes of that distributed system are incentivised to be adversarial at the data-transmission level; ie., to lie about what data theyve seen. If you don't have that problem, a blockchain isn't a solution.
In the case of land records, medical records -- whatever you care to mention, a node sending false information would break the law. A person lying to the blockchain would break the law.
The problem of reconciling data across businesses with misaligned incentives is the heart of what's today called "data engineering". Businesses build APIs around their data systems, and insofar as they choose to integrate it's because their incentives are aligned to do so.
The reason business do not integrate is because they don't want to. There is no case here where multiple stakeholders will both share data and be adversarial at the data-transmission level.
If several parties are inclined to lie, then those lies will go into the blockchain verbatim. The blockchain solves data-transmission consensus, *NOT* data-interpretation consensus. That requires law, contracts, and so on.
See, for example, NFTs. An NFT is not a transfer of any rights whatsoever, it's a group of scammers cosplaying a legal system. It's a database whose entires are meaningless -- theyre urls.
Likewise, if you think clearly about all these alledged use cases you'll find its people lying about what "consensus" means in BC, what "decentarlisation" means, etc. OR simply extremely misinformed.
Problems of social consensus are not solvable by adding to your database system 100s of nodes presumed to be liars. Problems of social centralised are made worse by this system. Problems of social trust are made worse by this system.
Adversarial, irreversal, peer-to-peer, "mega infrastructure", multi-node, etc. etc. systems fuck trust; they fuck decentralisation; and they fuck their users.
When social census, trust, cooperation, and centralisation are "at issue", the "failure modes" lie with people: they forget, they lose, they want to lie at the level of the interpretation of the data, they are scammed, they are careless -- etc.
Systems which solve "human failure modes" look nothing like blockchains -- BCs make solving those problems harder.
This is why the area is one huge series of scams. The technology itself create spontaneous systems of mutual exploitation.
Unless you just mean "enterprise SoA with digital signing" -- then the issue is that's not what "blockchain" means.
I'll play devil's advocate, because I do actually think there is one place blockchain could be useful: as a backend settlement layer for financial institutions. If you ever get into things like banking or credit cards, you'll find that our current settlement technology is kind of insane - it's basically a digitization of paper file driven processes from 70 years ago. Things like big clearing houses are largely necessary as a result of these processes, and I could see blockchain obviating some of that.
Even then, though, it takes blockchain from being this "changing the world technology" to a relatively minor efficiency improvement. I also still wouldn't bet on it, because even though the existing system is complicated and crazy, it still works, and it's not totally clear to me that existing players have enough incentives to actually change the system.
Generally, being able to program the management of money (i.e. if personA meets a certain criteria, send $X to personA) in a transparent system can be incredibly powerful.