Zooko's triangle and Marc's petnames

Accommodating two very different ways of 'thinking' about names.

January 2024

Zooko's triangle is a well-known trilemma for anyone working in digital identity. It posits that you can choose two of the following three properties for names / identifers, but not all three:

  • Names are not coordinated by some central authority
  • Names are secure i.e. no-one can pass themselves off as someone else
  • Names are memorable e.g. not telephone numbers

You might say that it describes the challenge of accommodating two very different ways of 'thinking' about names — the computer way and the human way.

Perhaps the most prominent approach to achieve all three is the idea of petname systems first formally described by Marc Stiegler. To be more precise, petname systems do not actually realise names with all three properties, but they may be said to realise a system that can offer a similar experience to the human participants in the system. In Zooko's own words:

You can have a namespace that is distributed and secure [the first two bullets above] and in addition you can offer your users a computer agent, which runs locally to them and is loyal to them, which translates the self-authenticating names into human readable names for their use.
In Pet Names, the user still gets the usability benefits from all three sides of Zooko's Triangle.

The translation operates both ways. Memorable and contextual names map to a distributed and secure namespace.