4
$\begingroup$

PBFT and most consensus algorithms are more complicated than a simple voting scheme. By simple voting I mean the following: we require all nodes to sign their local copy of the state and send this signed message to all other nodes. Each node then collects messages from all other nodes, and accepts the state if more than t < n nodes agree on the same state.

There are many ways to achieve the scheme above (e.g., each node individually signs, or using threshold signatures), which seems much simpler than other protocols such as PBFT (which among other things, requires designating a leader).

Therefore, I'm left to assume that voting can't directly produce a secure BFT protocol, but my question is - why is this the case? Where does consensus by voting break?

$\endgroup$
3
$\begingroup$

The purpose of a BFT is to achieve Byzantine Fault Tolerance rather than to be cryptographically secure. In fact, some BFT papers have no cryptography in them at all. You could devise a secure voting scheme but that doesn't automatically make it tolerant to byzantine failures.

Generally these algorithms seek to achieve liveness (eventual consistency of the data) and safety up to a certain number of faults, neither of these premises are present in your voting example. If you can guarantee through your protocol that even in the presence of a certain number of byzantine nodes (t < n) the protocol reaches consensus on a consistent state, then you have just created a BFT protocol.

$\endgroup$
1
$\begingroup$

Without a leader, who decides what to vote on? If everyone agrees on what is the question, then all is left is to sign the answer and count the votes. What pBFT achieves is sequencing the transactions - not only agreeing that the transactions occurred, but also on the order at which they occurred. Once the leader is known (and what ever he says next is the next transaction), still three rounds of voting are required to make sure everyone is inline with him. Actually two rounds are enough, but the third is needed to make sure the process ended before a new leader was elected.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.