- Every node is potentially untrustworthy therefore additional verification must be performed on the results of any query. To verify a piece of information, a "paper trail" must be transmitted as well (who created what when).
- This overhead causes information to move much more slowly in a system (if at all, if the threshold is set too high it's possible for all queries to fail).
- To counter this cost, each node can build its own map of trusted nodes based on the validity of previous information. This "network of trust" can be used to throttle the amount of verification performed.
- To illustrate, let's take what happens if you're totally new to a fully decentralized ridesharing platform. You start off not knowing any of the other users (nodes) and so you select a few at random (trusting all mutually), perform a query on all nodes and select the driver with the best rating (according to popular rating from those few users). You take a ride from that driver, have an awful experience, and therefore don't trust the ratings shared by those users anymore. You're back to square one. Building trust takes a lot of time and first-hand validation.
- There's potential for trusted nodes to turn "bad" (untrustworthy) therefore each node must continuously "police" neighboring nodes and relay any changes in behavior to mutually-trusted nodes.
- What's more, there is a certain "cost of competition" that comes with truly decentralized systems. You cannot roll out "system-wide" changes as easily as a centralized one since a majority of the system must first agree (and many times that majority is too small to even consider it a consensus, which ends in grid-lock).
- These five costs (paper-trail, verification, building network of trust, policing network of trust, cost of competition) makes the overall performance of a distributed platform very inferior to that of a centralized platform like Uber.
- Of course there are downsides to centralized platforms like Uber. The quality of ratings is less trustworthy since all users use separate criteria (and could be untrustworthy Lyft proponents). Also, Uber (as a system) does not make decisions in the best interest of its users and is only kept in check by its competition (which is diminishing each day).
- You can look to human civilization as a way to illustrate some of the challenges and solutions of purely decentralized systems. It would be pretty hard to survive if everyone didn't trust anyone outside of himself. We built our own networks of trust via our family and friends (our tribe). As human populations grew, so too did competition between tribes. Centralized governments and services were then built to offset some of our individual responsibilities and promote unimpeded, fair flow of certain resources while still preserving those aspects that benefit the most from decentralization.
- These hybrid systems (platforms with both decentralized AND centralized aspects) work the best in the real world as long as those centralized parts keep working for the majority of nodes and a healthy balance of decentralized/centralized is maintained. (You'll notice we struggle with both of those caveats today in modern civilization).
Whoo! Sorry for the long-winded post, I have a lot more to say on the subject but I'll save the rest for a blog post :). (I'm working on decentralized authority and identification in my spare time so this is a hot area of research for me!).