For the sake of understanding, we use the metaphor of the image.
Public key = bank account, address = bank card number
The "public key" is like your bank account, and the "address" is like your bank card number.
Taking the Ethereum wallet as an example, after creating an Ethereum wallet, it will generate a string starting with “0x”, which is the wallet “address”.
The "address" of the wallet is calculated by the "public key", just as the bank first opens the account for you, and then gives you the bank card number.
The main purpose of the wallet "address" is to collect money. Of course, it can also be used as a voucher for the transfer. Just like when someone calls you, you need to tell the bank card number.
Password = bank card password
When creating a wallet, you need to set a "password" yourself. Usually the "password" requires no less than 8 characters. For security reasons, the "password" is best set up a bit more complicated.
There are two purposes for this "password". One is to enter the "password" when transferring money. It is similar to the password you need to transfer money to someone else. Second, you must enter this "password" when importing the wallet with Keystore.
This "password" can be modified or reset. After entering the original "password", you can directly modify the "password"; but if the original "password" is forgotten, you can use the "private key" or "mnemonic" to import the wallet and set a new "password".
In the real world, a bank card only corresponds to one password. After the password is modified, the original password is invalid. However, in a blockchain wallet, a wallet can use different "passwords" on different mobile phones, independent of each other, and does not affect each other.
Private key = bank card number + bank card password
After creating a wallet, enter "Password" to export the "Private Key". This "private key" is a string of 64 characters. Of course, some wallets use different encodings and may have fewer characters. A wallet "address" has only one private key and cannot be modified.
Just enter the "private key" and set a "password" (without entering the original "password"), you can enter the wallet and have control of the wallet, you can transfer the money in the wallet.
Therefore, the private key is equivalent to "bank card number + bank card password", which is very important and must be properly stored.
Mnemonic = private key = bank card number + bank card password
As mentioned earlier, the "private key" consists of a 64-bit string, so it is very easy to copy the error, so the "mnemonic" appears.
"Helping words", as the name implies, is to help you record and remember. The "mnemonic" consists of 12 words. There is a space between each word. Like the "private key", a wallet has only one set of "mnemonics" and cannot be modified.
"Helper" and "Private Key" have the same function: just type "mnemonic" and set a "password" (without entering the original "password"), you can enter the wallet and have control of the wallet. You can transfer the coins in your wallet.
The mnemonic can only be backed up once, and will not be displayed in the wallet after the backup. Therefore, you must copy it when you back up.
There is a backup "Keystore" function in the wallet. Select Backup "Keystore" and enter "Password". A large number of codes will appear. This is "Keystore".
When importing a wallet, just enter "Keystore" and "Password" to enter the wallet. This is not the same as importing a wallet with "private key" or "mnemonic". The latter two do not need to know the original "password", but reset the "password" directly.
"Keystore" can be understood as the encrypted "private key", which is related to the "password" of the wallet. After the "password" of the wallet is modified, the "keystore" also changes accordingly.
It is important to note that when importing a wallet with "Keystore", you need to enter "Password". This "Password" is the wallet "Password" when you back up "Keystore", regardless of whether the "Password" is modified later.