Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

The consensus is largely social, because for a transaction to commit it must be (digitally) signed by the correct counterparties, and people holding duplicated and adversarial copies is a real problem that does cause disruption to business on a daily basis. If two organizations have two documents that claim to be the same thing but differ, how do you decide who wins? Ideally you never get into that situation but it can easily happen in many ways.

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.



view as:

If you think carefully about how consensus between people is resolved, you'll realise an immutable append-only ledger makes that process harder, not easier.

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.


Yes, you can add digital signatures to any kind of data. Basic REST doesn't do this however, so already we're beyond what it does.

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.


So a service-oriented architecture with digital signing. It seems this is just being rebranded "enterprise blockchain", presumably because CEOs have heard they should have one.

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.


Legal | privacy