Hacker News new | ask | show | jobs
by rglullis 1626 days ago
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.

2 comments

> - 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