Dividing Grilled Cheese: A Metaphor for Centralized and Decentralized Systems

post-thumb

Post by Rachel Shadoan

We’ve been working with a lot of decentralized systems here at Akashic Labs recently. But we’ve sometimes struggled to explain them to people who don’t spend their days up to their eyeballs in decentralized system design. Today, we’ve happened upon a metaphor that we’re satisfied with (and not just because it involves cheese).

Let’s say there’s a grilled cheese sandwich that needs to be divided between two hungry kids.

In a centralized system, a babysitter cuts the sandwich in half and distributes a half to each kid. The babysitter acts as an authority, arbitrating the resource allocation between the two kids.

In a decentralized system, the kids play a round of Rock Paper Scissors. The winner of the round of Rock Paper Scissors divides the sandwich; the loser gets to choose which half of the sandwich they want. The system has no central authority; it provides a framework for the users to negotiate use amongst themselves.

Both styles of systems have advantages and disadvantages. Centralized systems are often more straightforward to design, but rely on the central authority to act in good faith. If our babysitter is actually a witch and our two kids are Hansel and Gretel, for instance, the babysitter could distribute a larger half of the sandwich to Hansel with the intention of plumping him up to eat him. Not only is this unfair to Gretel, who ends up with a smaller share of the sandwich, it probably won’t work out well for Hansel, either. This is one of the reasons that transparency is so vital in centralized systems.

Additionally, the authority in a centralized system represents a single point of failure for the system. If the authority is incapacitated, resource allocation must be handled by system users in an ad hoc manner and may break down entirely. We’d hate for the kids to come to blows over the grilled cheese.

Decentralized systems present greater design challenges, but have the significant advantage of robustness. There is no single point of failure; the system continues as long as there are users implementing the system’s protocol.

However, because of the lack of a central authority, it can be difficult to deal with bad actors using the system. In a centralized system, if one kid steals the other kid’s half of the sandwich, the authority can step in and force the thief to return the sandwich. Identifying and punishing bad actors in a decentralized system can be much more challenging. If our decentralized sandwich division protocol is not well-specified, one child could intentionally cut the sandwich into multiple pieces in such a way that it would be difficult for the other child to judge the size of the pieces. Without a centralized authority, there would be no recourse for the choosing child, except to refuse to participate in the system with the bad actor in the future. For this reason, it’s important to design decentralized systems with bad actors in mind.