The Petname System

Motivation for this thread

I wanted to open a thread to any who may have questions on how the petname system works in theory, why this system had been thought up, and the rationale behind the system.

Recommended Reading

There are two main sources from which most of my understanding of the Petname System has been derived. There are certainly more out there, but among the ones that I have read, these are the clearest and most concise. Please before you post, make sure that you have read, understood, and searched for a solution in both of these:

(They’re not as scary to read as they sound, I promise.)

Discussion intention

Please limit the discussion to:

  • Theory of the Petname System
  • User Experience of the Petname System

Please retain any technical questions for the upcoming RFC. Other than that, feel free to ask away, and me or someone here will try to answer your questions as soon as possible.


As this discussion proceeds, I expect to construct a list of frequently asked questions. If you are aware of one that might be a good candidate but has already been asked and answered, please do not ask it again here. Instead, please submit a link to the original question and I will do my best to add it to the list in an easy to digest manner.

Q. Explain the Petname System to me in 40 words or less.


Q. What elements make up the Petname System?

A. Each name set consists of three elements:

  1. A key that is global and securely unique (but not necessarily memorable)
  2. A nickname that is global and memorable (but not at all unique)
  3. A petname that is securely unique and memorable (but private, not global)

Please would you post a brief summary of the system, pros & cons, and potential relevance to SAFE as either app or built in service. Thanks.

Basically this graphics shows what its roughly about:

memorable names <-> secure/unique names

1 Like

An in-depth RFC is on it’s way.

Isn’t that “NO DNS” RFC is about…?

I wouldn’t say that

NO DNS == Petname System

It’s anarchy vs polite anarchy.

EDIT: And the Petname System has the ability to reach beyond just DNS…

1 Like

I think the user experience will be awful. The great thing about a normal URL is that I can tell my my mom, dad or a friend to go to and they know exactly what to do. They also see that the page loads and that they’re at the URL in the address bar. The SAFE Network will work a bit different, so we already have to explain others that they need to use safe: instead of http://. This whole idea with a Petname only makes things more and more complicated. The SAFE Network should be the Iphone of the P2P-systems. Easy to use, easy to understand etc. So no extra layers of complexity should be added. The DNS right now looks amazing.

1 Like

This is indeed the direction that the Petname System will push the SAFE Network towards.

If I may ask you this, what would your primary method of transmitting this information be? Would it be digital (email, text, IM, etc) or analog (over the phone, handwritten in a letter, etc)?

1 Like

Even if digital, I rather prefer a normal URL like safe:polpolrene It makes live way more easier than what they do on TOR.
Unless you like an URl like: http://GhhkcvRgfhJnlkLmmJJK.onion

But why on earth would you want a system without URL’s? I really don’t get it.

Well, a petname system is composed of three parts:

  1. A key that is global and securely unique (but not necessarily memorable)
  2. A nickname that is global and memorable (but not at all unique)
  3. A petname that is securely unique and memorable (but private, not global)

The only element in this that is both global and unique is the key. Keys are the only thing that mean the same thing to the person sending and receiving the key.

A Nickname is a suggestion for a petname, and is public, but not necessarily unique. The petname is unique, but only to the person that creates it - it is private.

If you were to share a “link” with a friend/relative, what you would really be sending is two things: a Key and a Nickname. You would be sharing the globally unique key, and saying “This is ‘nice_website’”. They can then copy that Key into their SAFE browser (forget firefox for a moment if you would) and it would prompt them to enter in a Petname. My vision is that the website will offer up it’s own Nickname, however, they can assign it their own Petname - much like saving a bookmark in a browser. They have the choice to use the one you suggested, the one provided by the site, or something entirely different. It’s completely up to them. From there on out, that particular site will always present itself (when they are logged in to their account) as the petname that they chose.

The Petname System is based on the fact that keys cannot be simultaneously globally unique and human-memorable while remaining decentralized. I believe in this concept because of what @dirvine said once (can’t remember when, I think it was in that interview with that nasally east coast tech journalist):

Each individual machine has a unique view of the network.

I will give you this though, you brought up the most confusing aspect of the Petname System. The hardest thing to understand is that anything that is human-readable is not canonical.


That’s right, that’s just XOR. But you don’t see anything of that, because the layers we see and use are quite different. So if one registers a domain name, that will be the same for everyone. And what I get from your post, it will be not that different from your view using a petname. If I send to a friend, they understand that it’s about CNN. They can bookmark it using the name “News”. The only thing that’s not in their from the Petname system is that the website won’t offer it’s own name, although a logo (like on the normal internet) could be nice.

This is what’s been worked on as well. I can’t remember where, but I’ve read that David and the team want to make things in a way that you never have to use a Bitcoin-like address to send some money somewhere. So you see someone on a forum using the name “Smacz” and you click on it to see it’s profile-page like safe:samacz. It’s up to you to leave it empty or to put a profile or some info there. But when people click your username, they should be able to pay you without any weird or long address. Just click someone’s name and you’re done. Under the hood, the network will take care of all the private and public keys etc. So when you go to a forum, and you register (only need to click register, no username and pass needed) only you can post as your own username. It’s crypto secure, nobody can use it except you. Same for all the pages, forums etc. on the network.

would it be ok for you that you can’t name your son ‘johnny johnson’ because somewhere in the world there is already someone named like that?
the internet ip is the same as 487ferinuf4r8r747fn in safe. but the next step the internet did was to unique map the ip to readable names. unique. but that didn’t resolve the problem in which the same name could exists in africa or europe. petname will map the unique ip (unique 8yrh87hrf847hr8h3f in safe) to not unique readable names. so ‘’ for me and my family will indicate a library, and ‘’ for you will indicate an online shop. so everybody can use ‘’, because for me it could be something, and for you another thing. also, if i want to grow an orchard to sell apples, on today internet i can’t register; but in my vegetable growers community, i want to be identified by, and my neighbor as, and our neighbor

also, on this forum, you register polpolrene. my name is also polpolrene. i want to register polpolrene, but i can’t. if i register polpolrene1, the people will think i’m a fake, because the ‘original’ polpolrene is just ‘polpolrene’


Exactly! That’s the subject of a Public Persona that I was trying to figure out here which lead me to here.

That second link is their proposal on how to handle it. The Petname System is a replacement for that proposition, and is therefore directly incompatible with it. However, similar to @dirvine’s proposal, it has the ability (as I think you figured out) to be applicable to both the data location and public persona systems.

In the existing DNS system, the name is globally unique, verifiably owned, and human-memorable. Zooko’s triangle states that if a system is to be decentralized, it is impossible for a single identifier to have all three properties at the same time. The Petname System cannot provide a single identifier that is all three without disproving Zooko’s triangle. So it does the next best thing, it implements a system that uses only two of the three properties at any given time.

These things we already see on a website like Twitter. It’s part of the game, I see a lot of politicians and others create a name which they use, while already 3 others registered their name. They link to it on their website and everybody knows who’s real and who’s not.

The chance of that happening is very small. But if it happens, just be creative, come up with something different.

Yes, and it makes things more complicated, I get a link by a friend, and I see a pop-up which asks me how to name that site, the proposed name? Do I want to use a different one? Nope, I just want to go to the URL because a friend sent me a link. safe:videotube/johnny33 So at this place I see all his videos, I can bookmark that link if I like. I see directly he’s part of the domain safe:videotube and understand in a second he must be referring to his video account at that website. Exactly the same as it works on sites like youtube and twitter.

If your friend sent you this link, there is no usability loss when the link is just some crypto hash. You just click it and go to your friend’s video stream. That page probably has some title, let’s say “Johnny B @ Videotube”, and your browser remembers it automatically in history. So the next time you type “johnny” or “video” in your browser’s address field, it will suggest you proper link from the history or bookmarks. So, as I see it : hash is the key, website title is the nickname and your (optional) bookmark is a petname. Seems we already have the system in our present DNS/IANA form, but instead of hash there is a domain name or IP address.


Makes perfect sense to me.

I’m really thinking the petname system would be a good way to go as it covers a lot of what I’ve been talking about.