Hacker News new | ask | show | jobs
by mjburgess 1159 days ago
You say land use, but your explanation of the need is economic -- that use case is already conceded. It's bad on other grounds.

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.

1 comments

You're mis-understanding the use case.

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.

Yes, but for the same reason blockchain doesn't

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

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.

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.