top | item 47439718

Consensus Board Game

81 points| surprisetalk | 7 days ago |matklad.github.io | reply

11 comments

order
[+] jp57|6 days ago|reply
This is interesting, though I'd point out that "consensus" actually means something different than a simple majority agreement. It means "broad agreement". Almost nobody would consider a 51/49 vote split among a large group as consensus; and even 3/2 in a committee of five would be a stretch, especially if the two in the minority are united on an opposing alternative proposal.

I'm not sure that invalidates the core of the post, though, since I think a different consensus criterion could be substituted without losing the substance of the game.

[+] curtisf|6 days ago|reply
"Consensus" in this post refers to the "consensus problem", which is a fundamental and well-known problem in distributed systems.

It's not about political consensus.

However, the paper that introduced it and proved it possible, Lamport's "The Part Time Parliament", used an involved (and often cited as confusing) "Parliament" metaphor for computers in a distributed system

"Consensus" in distributed systems need not be limited to majorities; it really just requires no "split brain" is possible. For example, "consensus" is achieved by making one server the leader, and giving other servers no say. A majority is just the 'quorum' which remains available with that largest number of unavailable peers possible.

[+] stoneman24|6 days ago|reply
And that’s before we look at whether the participants form a quorate group (sufficient people are present to make a valid choice).

Then we could consider whether all participants have the same voting power. My son has a strong vote on what to paint his room but much less on where to go on holiday.

Need to consider whether the votes could be hidden and revealed at the end to avoid intimidation.

[+] dmurray|6 days ago|reply
I don't get this part

> Here, you asked R0, R2 and R3 to abstain from casting further votes in the first three columns, signified by black x.

If I can ask them to do that, and rely on them to go along with what I ask - why not skip all the middle steps and ask them all to vote for red?

[+] grogers|6 days ago|reply
In this incarnation, the only one who "wants" red to win is the first column. Every other column will choose whatever color it wants to win, subject to the rules of the game.

It's a 2 step process:

1. Prepare - Collect a majority of rows such that each of them promises not to accept any color sent by columns to the left of the proposing column. Any colors which were already accepted are sent in reply, along with the column they were accepted in (if different colors were accepted, only the rightmost column for a given row matters). The color to be propagated by the proposer is that with the rightmost column number (or if none were accepted by that particular majority, anything may be selected)

2. Accept - for every row, set the color to the one chosen in step one for the proposing column, subject to the promises made in step 1.

In this case, it's not shown well in the diagram, but by having a majority of rows promise for column 2, column 1 would already have a broken majority. Even if column 4 wanted red, since it received some already accepted colors, it has to choose from one of them based on the rightmost column (blue in this case)

[+] grogers|6 days ago|reply
The final diagram is a bit confusing, so it's worth pointing out one additional thing. It appears that R5 could vote green in column 2 and have green be agreed by a majority, even though in column 4, we are committing to blue as the value. However, as part of allowing blue to be selected in column 3, R5 must have already promised NOT to accept green in column 2. A more complete final diagram would show X's in all the appropriate cells.
[+] gus_massa|6 days ago|reply
I still don't understand the idea, but two questions anyway:

Why did R2 vote on the 6th column instead of the 1st one?

Why not just pick the leftmost column that has tree votes as the winner?