Sorry for the delay, recent wallet issues took too much time. This is how the registry system is supposed to work.
Asset names are supposed to be assigned by trusted users/businesses called registries. Any number of registries can exist, and each hub will have a list of registries it trusts. Only names assigned by trusted registries will be broadcast to wallets connected to the hub.
The registries post data records like this
https://explorer.byteball.org/#kYdnCr84pe/T7QJRLV0Yknf24+n9K9c9AGZclgS8WVA=Pay attention to the Data section of this unit:
asset: 9x6ZmDXonsyLhv2lEc5snj04MPiQ8tMq7m8qSJLac8o=
name: tonycoin
decimals: 2
It says that registry 3Y24IXW57546PQAPQ2SXYEPEDNX4KC6Y (the author of this unit) assigned name "tonycoin" to asset 9x6ZmDXonsyLhv2lEc5snj04MPiQ8tMq7m8qSJLac8o= and its amounts must be displayed with 2 decimal places.
Anyone can post such a record and be a self-proclaimed registry, they need to use only the standard wallet with its recently added data posting functionality.
However, to make these names visible by users, the registry must be trusted by hubs. It is in the interest of the hubs to create a safe environment for their users where asset names are unique, clear, and fairly assigned, without names that were created to deliberately confuse, mislead, or scam people, and without name squatting. That's why the hubs are expected to trust only those registries whose policies meet their quality criteria.
Each hub can have its own set of criteria, here is what I would expect from a registry to be trusted:
- it should never register the same name to two different assets
- it should do its best to avoid registering a name that was already registered by another trusted registry to another asset (impossible to totally exclude e.g. if they make registrations at nearly the same time)
- it should not register names that are meant to mislead people. E.g. names that are similar to existing ones, names using spelling tricks (lowercase L for uppercase I, etc), names that are already associated with something else (e.g. a random guy cannot apply to register "microsoft")
- it should not register dictionary words to avoid name squatting. When the asset is still associated with a dictionary word, it must be qualified, e.g. with the owner's name. For example, you can't register a "pizza" but can register "PapaJohnsPizza" or "DominosPizza". The registries may use a hierarchical structure in such cases, e.g. papajohns.pizza, dominos.pizza, hawaiian.dominos.pizza. The registry should verify the owner's name, either on its own, or relying on a third-party verification (such as attestation). In any case, the responsibility is with the registry.
- invented words are OK. E.g. it was OK to register "google" in 1997.
It all sounds similar to trademark registration, just more decentralized with multiple competing registries.
Registration is a manual process and takes some work and human judgement to validate each application. That's why registries are supposed to charge a fee for their work.
If the same name is still registered to different assets by different registries, and both registries are trusted by the hub, the hub should append a suffix with the registry name to remove ambiguity in the wallets. Otherwise, the suffix is not displayed to make the name shorter.
The end result is, asset names are unique and honest, making the environment safe for users. This is different from other platforms (such as Waves) where duplicate names are allowed, anyone can register anything, and users have to be constantly on guard against scams.
------
Now, we still have 0 trusted registries on the default hub byteball.org and the assets in the wallets are still cryptic hashes. My proposal is that we elect 1 or 2 registries to start with. We already have a poll bot and can put it to use here. If this sounds like a good idea, let's start with nominations.