1
0
forked from cheng/wallet
wallet/docs/petname_language.md

1.4 KiB

title
Petname Language

Many different cryptographic identifiers get a petname, but the primary one of thought and concern is petnames for Zooko identifiers.

A Zooko identifier arrives as display name, nickname, public key, and signature binding the display name and nickname to the public key.

A petname for a Zooko name is derived from the nickname:

  • remove all leading and trailing whitespace.
  • If there are no alphabetic characters, prefix it with one at random.
  • Move any leading characters that are not alphabetic from prefix to affix.
  • Replace all whitespaces with hyphens.
  • Replace all special characters with their nearest permitted equivalent.
    "#%&'(),.:;<=>?@[]\^{|} ~` are special characters that allow escape from plain text. In displayed text, @ will signify a petname corresponding to a Zooko name.
    If someone's nickname is Bob, he will likely get the petname Bob, which will be displayed in text as @Bob, indicating it is likely to be translated in transmission and reception.
  • If the result is a duplicate of an existing petname, append a number that renders it unique.
  • The user gets the opportunity to revise the petname, but his petname has to be a valid identifier that conforms to the above rules, or else it gets revised again.
  • The user may know that several petnames correspond to one entity, but he cannot assign several nicknames to one petname.

We will also eventually have local ids for receive addresses.