Hacker News new | ask | show | jobs
by dmcgee 1626 days ago
Is a blockchain strictly necessary for decentralization at all? If the issue with decentralization is control and governance rather than technology, why not have a cooperative model that still functions on a centralized database?
2 comments

I'm guessing your question is rhetorical, but in case it isn't:

Repeat after me: "blockchain is only required if you want to solve a problem that deals with permissionless, trustless and distributed consensus".

- permissionless: no previous vetting/authentication/authorization of any participant. If you can a priori authenticate users, you can have a decentralized system with Paxos, and you can run a "decentralized" governance system based on simple "web of trust".

- trustless: no participant is assumed to be reliable/honest

- distributed: the network can suffer disconnections and partitions, but the overall system can still work.

If you can choose who will be allowed to define "consensus", you can use other BFT consensus solutions, so no blockchain is needed.

If you have a "cooperative" model, this assumes that you can trust the participants, so no blockchain is needed.

If your system can withstand network disconnections/partitions, no blockchain is needed.

> - trustless: no participant is assumed to be reliable/honest

Shouldn't that be "at least one participant is assumed to be unreliable/dishonest"?

They're equivalent. If at least 1 participant is unreliable/dishonest and I don't know which one, the only logical reaction is to treat them all the same until I can determine the culpable one.
Perhaps, but it feels a bit like the Monty Hall paradox/game. If you know which ones are more truthful, then the odds aren't as bad as "everyone must be guilty until proven innocent."

"Innocent until proven guilty," the modus operandi of the US judicial system, at least in theory, is the design of a system that assumes trust and removes offenders.

It's not about "justice" or "fairness". It's about "correctness". An "honest" agent with stale data is as unreliable as the "dishonest" one.

When dealing with Byzantine-style problems, there is no such thing of "who is more truthful?", just "what is the consensus that should be agreed on?"

Participant needs a better definition. I'd think block chain requires trusting every participant.

The private key must always be trusted for what the person behind it intends for it to do

The cooperative model requires people to coordinate on choosing the same human authority figure.

Blockchain only requires people to coordinate on choosing the same programmatic criteria for block validity (and then choosing the longest valid chain).

Which practically ends up the same - see the Etherium fork/rollback.

One potential use maybe would be a blockchain that is openly run by a company (80+% of nodes or something) but if you also run a note it could continue after the company ceases to be.

There are other ways to do that but it might almost be a reasonable use case.

You can point to that event but it's actually not enough to establish that it "practically ends up the same."
You can ignore the event, but the trust we’re to put in the blockchain is based on a promise that such an event can’t happen, but it did.
Not really. The old chain even still exists.

Also, Ethereum is different from a real blockchain.