> Human consensus is a valid form of blockchain consensus.
Not if you want a trustless system. Otherwise, why waste time/energy? A bank can currently perform the "human consensus" part already (ala credit cards and fiat money).
Phone-a-friend consensus aka “weak subjectivity” doesn’t meaningfully differ from the administration of centralized Git repositories. If your blockchain requires human intervention to resolve disputes, as do all pure proof of stake implementations, you probably never needed a blockchain to begin with.
> To be clear though, any such consensus _could_ theoretically be modeled using a smart contract between multiple parties
Sure, but it's only a model, in the same sense of "model" as a model train set.
If you want that blockchain's consensus model to actually do real things involving real humans, then the humans have to agree to act on that model, which itself requires consensus. So now you have two consensus systems.
IMO any consensus mechanisms that all participants can agree on is sufficient, including where a single human approves each block. As long as everyone agrees that this is fine, it's sufficient for a blockchain.
> Consensus algorithm is what makes a Blockchain a blockchain. Hyperledger says something like you can use whatever consensus mechanism you want but in practice there is not a real alternative to proof of work.
For public use maybe but for commercial/private use cases it can often be assumed that all parties are trusted in some manner. I think their approach to different consensus algorithms makes sense when you're solving for use cases beyond financial transfers between untrusted parties.
> how to achieve consensus on a distributed ledger without trusting any participant
The problem is that that is just a solution in disguise as a problem. Why do we need to achieve consensus on a distributed ledger without trusting any participant? It works, I think, for bitcoin because the ledger is an end unto itself and didn't have to interface with any existing system (no existing accounts/items/entries to assign to existing owners).
> A CBDC split among e.g. several countries, institutions, banks, would still need some (simple) consensus algorithm.
Yes, but one of the core premise of crypto is "trustlessness". Once you drop that requirement far simpler distributed consensus algorithms dominate the field.
>The consensus majority is only needed if there are 2 or more way to make valid (not breaking any rules) forward progress (aka a double spend attempt) Only in this case nodes side with the majority of their trusted nodes.
so basically "if there's a double spend just trust whatever the majority of the trusted nodes say"? It's better than trusting the entire state to the majority of nodes, but still quite centralized compared to other consensus mechanisms.
Consensus is certainly not a necessary element of a blockchain. A blockchain can just as easily exist under the control of a central authority, as it could under any other circumstances. Unless you mean that you’re still achieving consensus by simply trusting the central authority, which I guess is technically correct, but that’s not how ‘consensus’ is generally used in relation to blockchains, it’s generally used to refer to trustless distributed consensus.
> PoS consensus systems do allow for blockchains to be used to resolve consensus for future decisions
I suppose you mean that someone (out of a group G) can commit an instruction saying "the future decision is Y" into the blockchain, and at some time later everyone will be convinced this is the future decision. This is not related to PoS, this will work for pretty much any system that supports smart contracts.
In this situation the decision is not executed in a shared manner - even if one of G gets disconnected from the network, the decision still gets executed by the blockchain. So it is still different from the Two Generals Problem (as stated), where everyone in the group G must participate in executing the decision.
So blockchains still don't solve the Two General Problem. Nor should this be a goal. I think the Two Generals Problem is stupidly strong and really unnecessary in the vast majority of real computing scenarios, including the blockchain.
> Interesting - do you mind providing an exemplary paper or two? I'd like to read them.
It's basically all of them, and I don't think many are worth reading so I don't remember the titles. Search for papers that try to solve the Sybil or Eclipse attacks. (Quite a lot of them rely on trusted authorities, these are not relevant here, I mean the other ones.)
>"if there's a double spend just trust whatever the majority of the trusted nodes say"
Yes but also no. There is no trust needed because what the other nodes say does not define whats correct its arbitrary. Its only relevant if 2 or more equal good AND correct ways exist.
You aren't listing to others to find out the "right" way you solely listen to other so everyone choose the same.
>still quite centralized compared to other consensus mechanisms.
Not at all. If there is a double spend attempt your validator node picks one at "random" (the one it revived first) it then tells every node to include this one an discard the other. All other do that too completely on their own (decentral). Only if this does not lead to 80% agreement everyone is tasked to adjust and vote again. So your node looks what the nodes around them voted and switches if needed to the majority. There is no central anything that tells your node to switch. Your node does so solely because your node doesn't care which way to go but it wants to go the same way ass all others.
All this does it it breaks ties. If there would be a near 50/50 split or 33/33/33 for 3 conflicting transaction, this is guaranteed to shift to something near 100% after some re-voting. Because the existing "majority" grows faster with every re-vote if everyone adjust by these rules. And that's the sole goal. We want the network go agree.
Git is a blockchains. I don't see any rules that a consensus algorithm needs to be non-human or that only a single chain can be authorative.
Git is a blockchain that has none of the usual problems of blockchains since the arbiter is a human and they can do as they please. Argreement between humans is a social procedure.
What you describe should not be valid in any well working blockchain, not sustainably. Guaranteed global consensus is the whole point, and a simple majority vote would be useless for obvious reasons. I'm not sure if you have something specific in mind, but what you write is not true in the general case.
> Blockchains have consensus built in at the protocol level
They have it built in based on picking the chain which the most work has gone into.
Arbitrarily assigning a number to a transaction and having everyone to agree to pick the smallest in the case of conflict is easier and works fine if your members are all trusted to not maliciously abuse that facet of the code.
Proof of work is throwing away resources to solve a problem you don't have if no one is crafting malicious transactions.
Not if you want a trustless system. Otherwise, why waste time/energy? A bank can currently perform the "human consensus" part already (ala credit cards and fiat money).
reply