Erm the entire point of having multiple parties sign is you get the quorum which is how you avoid this issue.
Sure, you have a limited number of participants and some tweaking to do on the quorum (in some cases you might want all parties to sign).
But hey - the blockchain cool-aid gang tried to sell it as a solution for COVID contact tracing. Which is beyond laughable. The entire industry is a shillfest.
It's probably based on the problem of malicious clients in the network consensus problem. It states that if more than a third of all clients are malicious it is not possible to come to a consensus.
The solution would be to have a trust of clients. Where every clients vouches for another. The most important thing is that it has to use certificates, if not you get the following problem.
I am client 'c'. I heard from client 'a' that client 'b' is dirty. So I tell this to client 'd', but the truth is I'm lying. However now the problem is: Is 'a' lying about 'b' or am I ('c') lying about 'a'? However having the messages signed by the clients solves this problem.
That is not what they're doing. When you have a known set of entities and trust that at least 1/3 of them will be honest, you can use other consensus systems like Byzantine Paxos. There's at least one project combining that consensus algorithm with the Ethereum virtual machine.
Just passing signed messages around wouldn't be sufficient, you need a way of ensuring overall consensus.
In the context of consensus can't the attacker simply send invalid signatures to some participants and valid signatures to other participants thus preventing consensus?
Consensus in a distributed system is not the innovation of Bitcoin, just propose a new block and let all parties digitally sign the block if they consider it valid. If more than half of the parties have signed the block it is considered accepted. This of course requires knowing the parties because otherwise a single party could just cast arbitrarily many votes.
And here lies the innovation of proof of work schemes, preventing one party from casting arbitrarily many votes by making votes expensive. This also is no innovation of Bitcoin, Bitcoin just put all the pieces together. But if you don't need pseudonymity and can know the involved parties there is no need for proof of work, i.e. you can easily replace mining with an identity verification process. And you get a system that is in some sense better because you remove the possibility to obtain more voting power by buying more hardware.
Disagree with slide three on "private blockchains". Weaver underestimates the difficulty of reaching consensus among a fixed set of participants by assuming there is just one party that signs blocks. If there is more than one party you end up in the land of BFT. Distributed systems are hard to build. Additionally a solution which is trivial to implement makes that solution good. I wish we had more trivial solutions to these problems.
You can have multiple winners at the same time. Proof of work doesn't solve the problem of conflicts. Everyone still has to pick which fork to follow, and you can't really consider something committed until it's buried under multiple blocks that you're confident the majority agree on.
If you wanted to have a system where data can be decrypted if there is a consensus, why not use proof-of-stake for managing that? That way the integrity of your data is dependent on who you invite into the system. The idea of arbitrarily requiring consensus among nine people doesn't make much sense to me.
This is really the main selling point, decentralizing consensus so no one party becomes to big to fail, or so big they are unable to be opposed which leads to tyranny.
The sad part is that the blockchain is the least interesting part of this hype. The interesting part is making all mutations of state require signed inputs which has given a really needed push to the PKC UX. Metamask is fucking amazing and interacting with applications that utilize metamask as the source of identity is so simple, something that you'd be hard pressed to find before all this hype.
There are a variety of formal consensus algorithms uses for enterprise blockchains, but they are all some variant of voting schemes based on validator signatures. Nothing like proof-of-work is needed to ensure that one bad actor, or a small number of bad actors, cannot break the network's consensus. If you have just one validator, like QLDB, then you're back to a centralized scenario.
Check out chainlink ( https://chain.link/ ). Effectively, third parties are incentivized to run oracles which provide the data, and they all have to come to a quorum.
How do you verify the ratifications without a blockchain? You’d need to meet in person ahead of time right?
(I do agree that 99% of the decentralization of protocols can happen off the blockchain, amongst trusted parties... just saying that doesn’t get you all the way to “McDonalds Corp Replacement”.)
Parties do _not_ have to trust each other to work in a permissioned or consortium block chain. They just don't. They do have to be non-anonymous to each other, and they might have to sign up to a legal agreement between each other (brokered by the governing entity convening the ledger, who issues certs to organizations so they can participate). But they don't have to be trusted. All you need is intrinsic interest in being on the ledger - some kind of pain (be it staked value, getting kicked out of a market, etc) if they are found to be a bad actor, which would be pretty obvious, and many bad actions can be prevented in the first place (e.g. prevention of double spend).
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.
It means we simply give two different nodes the same signing key and get them to sign conflicting proposals and votes. A more complicated Byzantine fault would take into consideration the structure of the underlying protocol to try to thwart consensus safety in a more intelligent way.
> The MobileCoin Consensus Protocol solves the Byzantine Agreement Problem by requiring each user to specify a set of peers that they trust, called a quorum. Quorums are based on the real-life trust relationships between individuals, businesses, and other organizations that compose the MobileCoin Network.
How does this solve network splits or honest disagreements?
Sure, you have a limited number of participants and some tweaking to do on the quorum (in some cases you might want all parties to sign).
But hey - the blockchain cool-aid gang tried to sell it as a solution for COVID contact tracing. Which is beyond laughable. The entire industry is a shillfest.
reply