Sites like https://namevault.co/ are charging to create an account. How can I do this myself without paying anyone? I have some EOS on an exchange already.
Why does it cost money to create an account?
You can think of EOSIO to have two types of storage:
- Log is the blockchain itself where all transactions made are stored;
- RAM is the state, which is computed from all transactions that have been made.
When you make an account, there is a certain amount of data associated with it: the account name, the keys that manage the permissions, the amount of NET and CPU you staked for, and other similar meta-data.
Now, if all this information was only stored in the blockchain itself, then whenever you'd make a transaction, one would have to go back in history to see if your key matches the account, if you have enough resources, etc. Considering that this transaction could've been made a long time ago, this would not only be a very resource intensive search process, but it would also mean no one could prune the blockchain: if they did, this critical information would be lost.
Therefore, this information is stored in the state (RAM), which is immediately available to all nodes that processed previous transactions. This means that nodes have their own handy local database that they can query for information that needs to be available fast.
Although this is great at improving speeds, the speed cannot come at no costs. To provide adequate speeds--and, on the mainnet, to respect the constitution--the state should be kept in the actual RAM of the machines running the nodes. RAM is quite a bit more expensive than other direct-access data storage media, so it needs to be managed much more carefully. Therefore, EOSIO has an internal RAM market where the price is decided by market supply and demand (more details)
tl;dr: It costs money to create an account because in order to provide adequate speeds the data associated with your account is stored in a relatively scarce and expensive storage medium: RAM
How can I do this myself without paying anyone? I have some EOS on an exchange already.
As far as I know, there are no guidelines from Block.one on what'd be the recommended way to obtain a new account, but some various BPs recommend various services.