Skip to content
Dan Connolly edited this page May 15, 2020 · 6 revisions

Zooko's triangle says we can have at most two of three properties we want for names of participants in a network protocol:

  • Human-meaningful: Meaningful and memorable (low-entropy) names are provided to the users.
  • Secure: The amount of damage a malicious entity can inflict on the system should be as low as possible.
  • Decentralized: Names correctly resolve to their respective entities without the use of a central authority or service.

Though it may not be possible for any single namespace to have all three properties, petname systems do embody all three properties.

Keys lie at the heart of the security properties of the petname system. A key is a globally unique, unforgeable designator of some specific entity.

Nicknames can be used to assist in discovery of keys, and for help in selecting a petname. Nicknames are chosen by the owners of keys in hopes of creating a distinctive, if not unique, mapping from the memorable nickname to the key.

Petnames are our private bidirectional references to keys. There are many dogs named Rover, but for the owner of a dog with the petname Rover, there is one specific Rover to whom the name refers.

Issues

References

Clone this wiki locally