Many new Bitcoin Cash users are not sure, or do not know how a Bitcoin Cash wallet works. Some even have a completely wrong idea about it. They think that their Bitcoin Cash is stored in the wallet on their smartphone or PC. But this is not correct.
Your Bitcoin Cash is not stored in the wallet, but in the blockchain and mempool on more than a thousand computers called nodes around the world. How to run such a node I described here.
Blockchain is a list of all Bitcoin Cash transactions that are grouped into blocks and chained together. Each newly created block is linked to the last created block. Mempool is a waiting room for transactions that are not yet included in a block. On average, 10 blocks are created per hour.
Why do I see my Bitcoin Cash in my wallet and can I spend it if it is not stored there?
To understand this, you must first know how a Bitcoin Cash transaction works.
On your wallet (whether it is an offline wallet like bitcoin.com or Trust Wallet or an online wallet like read.cash Wallet) is stored your Bitcoin Cash address and associated keys - private key and public key. The public key can be calculated by any other wallet that knows your Bitcoin Cash address. Your private key is only known by your wallet.
When a person A sends 1 BCH to your Bitcoin Cash address, his wallet creates a transaction file using his private key, which belongs to his Bitcoin Cash address, and your public key belongs to your Bitcoin Cash address and sends it to a node. The node verifies the transaction (the node knows both Bitcoin Cash addresses and both public keys) and if the transaction file is correct, it writes it to a waiting room (called mempool) and sends the transaction to other nodes it is connected to. The other nodes do the same. The transaction in mempool is lightning fast on all nodes in the network.
Your wallet is connected to one of these nodes. As soon as this node detects an incoming transaction for you, it immediately notifies you to receive 1 BCH from the address of the person A (some wallets do not inform if the transaction is in mempool, but only if it is in a block. In the case of BTC wallets it must be so, because a BTC transaction that is in the mempool is not always recorded in a block und you can't spend it. I suspect that these BCH wallets that do not show the mempool transactions are derived from BTC wallets). Now your wallet can issue your BCH by creating a new transaction. It does this just like person A described above.
Your private key gives you access to your Bitcoin Cash. You should keep it secret and not give it to anyone. From your private key everyone can calculate your public key and your Bitcoin Cash address (it is not possible the other way round).
What does a private key look like? Here you can see an example private key:
There is a website that lists all Bitcoin Cash private keys. You can see it there:
What? A list of all the private keys? Aren't they secret? If I know his private key, do I not have access to BCH of an address? Yeah, you can try. If you're lucky, you'll find a private key that derives a Bitcoin Cash address that has an amount of unspent coins. But you must be damn lucky.
There are 1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.976 Bitcoin Cash addresses. The most powerful computer in the world would have to take billions of years to find an address with an amount.
As you can see the private key is a bit complicated and not easy to remember. That's why they developers introduced a seed. Seed that is a sequence of 12 words that is much easier to remember. From these words (and a derivation path), your wallet can create your private key again and again.
You can import the same seed into different wallets and all of these wallets will have access to your Bitcoin Cash. I wrote here how to import your seed from read.cash into bitcoin.com wallet.
Bitcoin Cash has a huge advantage compared to conventional currencies. You must either keep fiat currencies in a bank account or als banknotes in your wallet. Your bank can go bankrupt, the government can limit or freeze payments, your conventional wallet can be stolen or you can lose it. You cannot take large amounts of cash across the border in many countries.
If you want to have access to your BCH you just have to remember your seed. That's all. You can import it into a wallet and make transactions anytime and anywhere. Nobody can take your Bitcoin Cash away from you.
But if you do not know your seed or private key, your BCH does not belong to you, but to the person or company who knows (or store) it. This could be for example an exchange, which keeps your BCH for you. If the exchange goes bankrupt or is hacked, your BCH is lost.
Therefore when I buy BCH, I always transfer it to my wallet, for which I know my seed, derivation path and private key.To make the wallet more secure against hacks, it can be secured with hardware such as Trezor.io .
Remember your seed (and derivation path) well and don't give it to anyone.
If you want to know why you sometimes have to pay higher transaction fees than normal on the Bitcoin Cash network, read my another article.