EOS uses a different account structure than most cryptocurrencies you know. While it might seem complex at first, it is not that difficult once you understand the basics, all of which will be covered in this article. So, how do EOS accounts work?
Default EOS accounts
Every user has one or more accounts on the EOS blockchain. EOS accounts are human-readable identifiers that are stored on the blockchain and they are required to push or transfer any (valid) transaction to the EOS blockchain. These accounts can also be owned by multiple people depending on the permissions configuration.
EOS accounts are 12 characters long and can contain the letters a-z and the digits 1–5. These account names replace the long and clumsy wallet addresses that are used in most cryptocurrencies.
Furthermore, every EOS account has permissions. Permissions can be seen as requirements which need to be fulfilled in order for a transaction to go through. An EOS account has 2 native permissions by default:
- Owner: shows ownership of the account and is needed to make any changes to the ownership the account. This key(s) for this permission is/are best kept (safely) offline, as they are not needed to do most things on the EOS network.
- Active: used for transferring funds, voting for producers and making other high-level account changes.
Besides these 2 native permissions you can create new, custom, permissions that fit your needs.
Each permission has one or multiple keys and/or account name(s) associated with it. Each key or account name associated with a permission has a certain weight, and each permission has a certain weight threshold which needs to be met before a transaction requiring that permission is accepted.
To help you understand all of this information we have included the above image, which visualizes the permissions structure of a default EOS account. As you can see, the owner permission has a default threshold of 1, and 1 key with a weight of 1 associated with it. The same goes for the active permission which has a default threshold of 1, and 1 key with a weight of 1 associated with it.
This means that only the (private) key associated with the owner or active permission is required to perform any transaction requiring the owner or active permission.
Now you are familiar with the structure of an EOS account, it’s time to learn about account resources. Each EOS account has 3 resources: CPU, network and RAM, which all allow users to do different things. We will explain each resource individually below using a metaphor by EOS Asia.
If the EOS blockchain was a train, CPU, RAM, and network could be explained in the following way:
Network would be the available seats in each train leaving and entering the blockchain. Your chair will always be reserved, and if u need it, it will be yours. BUT, if no one is on the train, you could lay across a bunch of chairs because they are free! So network is a way to make sure you have somewhere to sit when the train leaves.
CPU is how often you can ride the train, and works much like network as far as allocation goes. You may have a train ticket, but of course the ticket is only usable on certain days and times.
Now the EOS train is pretty laid back, so any unused space is free to use re: CPU and network, until the people that paid for the space need to use the space.
CPU and network are joint resources that together are called BANDWIDTH.
RAM is your storage space on the train. If you need to bring a ton of luggage, you need to pay per bag to check your bags onto the train. If you do not need to bring a lot of luggage, you can sell your storage space to others that are riding on the train.
CPU and network can be obtained by staking EOS, which is essentially locking your tokens for a certain time. When the user wants to move their EOS they can unstake their tokens, essentially making transactions free. RAM can not be obtained through staking but can instead be bought and sold and is used to hold other tokens for example.
Putting it all together
You now understand both the structure and the resources of EOS accounts, so it’s time to put all of this together in order to fully understand EOS accounts.
In the above image you can see how the account structure is related to the account resources. The light blue lines indicate CPU & NET are needed to perform any action requiring that permission. The red line indicates RAM is needed to hold other tokens. This should give you a solid understanding of how an EOS account operates.
Using the permissions structure within EOS you can do many interesting things. One of those things is creating a multisignature account, which is relatively easy on the EOS network. In general, a multisignature account (more commonly known on other blockchains as a multisignature wallet) is an account that requires more than 1 signature in order to perform a transaction.
EOS accounts are more complicated, as they have multiple permissions with multiple actions associated with that permission, instead of a single possible action which is the case on most current blockchains. As a result of this more complicated account system it is possible to change the earlier described threshold of a permission that needs to be met before any transaction requiring that permission can be executed. It is also possible to then add multiple keys with different weights to the permission.
Using these principles you can then require multiple keys to sign a transaction before it (and the action that the transaction performs) executes, essentially making your permission a multisignature permission!
We will give a more in-depth explanation on how this works and how to do this yourself in a future article.