Zooko's triangle, why not use the DHT?

@JacopoStanchi Zooko’s triangle addresses a more fundamental problem that might explain the tradeoffs with your suggestion.

One way to look at the triangle is that you get to pick 2 out of 3 from Unique Choosable Names, Partition Tolerance, Non-Consensus. The reason for this is simple, if Alice and Bob are in two different partitions that cannot communicate and both decide they want to choose what the name “bestHuman” maps to (Alice chooses herself, and Bob himself). Without some global agreement/consensus about whether Alice or Bob is qualified to decide the value of “bestHuman”, there will be different answers in each partition (resulting in either no partition tolerance or no unique choosable names depending on how you look at it).

In your case the problem is that if we replace “bestHuman” with “bestHuman.com” in the above scenario both Alice and Bob can push to the DHT “bestHuman.com” => Alice/Bob CID. If the DHT nodes used DNS (a consensus system) to resolve “bestHuman.com” and store that value and were trusted to do so by the network then we could ask the DHT for values. However, at that point it would be faster and more secure to go to DNS directly.

Hope this was helpful. If you’re interested in Zooko’s triangle/naming things I would take a look at how to combine/layer different 2 out of 3 systems to make it feel a lot like you have all 3. For instance, if you combined IPNS (Partition Tolerant and Non-Consensus, but no Unique Choosable Names) with a consensus system with Partition Tolerance and Unique Choosable Names (e.g. DNS, blockstack, ENS, etc.) then you can end up with interesting properties depending on how you combine the systems together.

1 Like