For any blockchain to gain main stream adoption, send by name must be enabled.
Going to websites, email, and even phonebooks in smart phones have implemented send by name, each in their own way, but from the end user experience, it is very similar.
NEM’s Namespace is a powerful feature that along with other NEM functions can allow a scalable and useful alias system to tag individual accounts with an alias.
-
All aliases must fall under the domain of a namespace. This helps with reputation.
-
After a person has registered a namespace, they identify the account they would like to assign an alias too and pick out the alias. The following shows and example of the important pieces of information that need to be known.
- Owned Alias: foobarltd (owned by TANXPO-UPPCJH-L3PLUH-Y5M6AE-6B47H3-YZ5ZCD-FMXH)
- Account that needs an alias: TBR3WV-2AS2C5-MGG73H-QFWIZR-EP4RCL-SANKKQ-QRRL
- Desired alias to tag above account: employee1002@foobarltd
3)The desired result then is that when a person enters employee1002@foobarltd into the send field on a wallet, the transaction will be forwarded automatically to TBR3WV-2AS2C5-MGG73H-QFWIZR-EP4RCL-SANKKQ-QRRL
-
In this example we can see the company I own is named foobarltd , and I have a new employee. Before I had 1001 employees, so I need an easy and scalable way to add the 1002nd and the next thousand after that. This system will do that for us.
-
I run the alias tag employee1002@foobarltd through the NEM brainwallet generator. That creates a pointer account with the address of TDHUNF-7KUBEC-KUSBCI-PHY2ON-MNYEKH-2WBVOO-3W65. This can be verified by going to http://blockexplore.in/static/brain-wallet-to-key.html. It should be noted that each alias will always produce a unique pointer account.
-
Now that I know the pointer account. I log into the account that owns the namespace foobarltd and send a transaction to the pointer account. This transaction will have in its message contents the account that needs to receive all funds sent to employee1002@foobarltd.
-
Message/Alias Asigning Account and Namespace: foobarltd (owned by TANXPO-UPPCJH-L3PLUH-Y5M6AE-6B47H3-YZ5ZCD-FMXH)
-
Message Receiving Account (pointer account): TDHUNF-7KUBEC-KUSBCI-PHY2ON-MNYEKH-2WBVOO-3W65
-
Message Content: TBR3WV-2AS2C5-MGG73H-QFWIZR-EP4RCL-SANKKQ-QRRL (account that really wants to receive the funds)
-
The following example was made.
Tx Hash: 0723273169d8936d6fc0f290b5cb0d0486f97df4603af2b570160e7be38078df
Nembex Link: http://bob.nem.ninja:8765/#/transfer/0723273169d8936d6fc0f290b5cb0d0486f97df4603af2b570160e7be38078df -
Now that an alias has been made and assigned how exactly will it work?
-
Any NEM user can type into the send box the alias employee1002@foobarltd.
-
That is then interpreted by the wallet as an account to search. It will search TDHUNF-7KUBEC-KUSBCI-PHY2ON-MNYEKH-2WBVOO-3W65 and in particular it will look at the content of the first message sent to that account.
-
Searching that account finds the first transaction and the first message to that account is written as, “TBR3WV-2AS2C5-MGG73H-QFWIZR-EP4RCL-SANKKQ-QRRL”.
-
Wallet now interprets TBR3WV-2AS2C5-MGG73H-QFWIZR-EP4RCL-SANKKQ-QRRL = employee1002@foobarltd. Now that the association is made, it autofills the send to box with TBR3WV-2AS2C5-MGG73H-QFWIZR-EP4RCL-SANKKQ-QRRL and the transaction may proceed.
-
Send by name is now enabled and any account can be assigned any alias under a namespace by the namespace owner.
-
The above is a wallet side protocol. One thing that might be needed is to check the pointing transaction to see if it was indeed made by the person that owned that namespace. The person that owns the namespace foobarltd should be the only one that can make anyalias@ foobarltd.
-
It would be much nicer if this protocol was handled on the NIS level, where when a person makes an alias pointing transaction that the NIS has pre-verified that the owner of that namespace is the only one sending it, and that when the transaction is being formed, it is made is a way that makes it known to all NIS that it is a send by alias transaction and all NIS can confirm that transaction.
-
This system would work in a very similar fashion to the domain system and email system on the internet. Any person that buys an internet domain can now make emails under that domain for their organization or peers. In the same way, any person with a namespace should be able to make an alias for as many accounts as they like.
It can also scale indefinitely. -
While it took me a while to explain the process, it is actually quite simple and is deterministic and quick to automate. A person assigning an alias could have the whole process made very simple for them by filling in some simple text boxes of “alias to assign” and “account to assign it to” and then they click send.
-
And as for the people wanting to send to that alias, from the user experience side, they need only to type the alias tag in the send to box and the rest is automated for them.