When delving in to Crypto Currency, one of the fundamental things you will need to understand is what a Crypto Currency Wallet is.
According to Wikipedia:
A cryptocurrency wallet stores the public and private keys which can be used to receive or spend the cryptocurrency. A wallet can contain multiple public and private key pairs.[better source needed] There are over nine hundred cryptocurrencies; the first and best known is bitcoin. The cryptocurrency itself is not in the wallet. In case of bitcoin and cryptocurrencies derived from it, the cryptocurrency is decentrally stored and maintained in a publicly available ledger.:93 Every piece of cryptocurrency has a private key. With the private key, it is possible to write in the public ledger, effectively spending the associated cryptocurrency.
This definition is quite technical, and while it is probably mostly true, it does not tell the full story. In my opinion, a Crypto Currency Wallet is a software tool that allows you to view balances of crypto funds, and optionally transfer crypto funds. A watch-only wallet does not need a public or private key to view the balances of crypto currency, but a public key allows a view-only wallet to collate a set of crypto currency addresses. A wallet can be thought of as a collection of addresses which hold a portion of crypto funds. A full wallet (as opposed to a watch-only), can view the balances of crypto addresses, but it can also transfer funds from them. In order to do this, the wallet needs some access (possibly indirect) to a private key or multiple private keys. In lamen’s terms, a Crypto Currency Wallet allows you to see what crypto funds you have, spend them, and receive them. A good way to think about it is exactly like a normal wallet. When you open it up, you can see what funds you have, spend them, or put funds in there that are given to you.
Why then, is there so much confusion over what a wallet is? The answer is that most wallet software up to this point has been designed pretty badly, and does not try to shield the user from the complexities of crypto currency. The wikipedia article is an example of the kind of complexity that the average person is faced with when trying to get their head around what a wallet is and how to use one. But, it doesn’t have to be this way! Better software is on the way, and I hope to be one of the people that build it.
Here’s an explanation of all the things related to a wallet:
This is the thing you need to keep secure. This allows you to mint public keys, addresses, and sign transactions. Signing transactions is how you transfer money from one address to another. Your private key should never touch a computer that is able to transmit information over the internet. Your private key should be stored on a hardware device (Trezor, KeepKey, Ledger, or other hardware device). Or, it should be kept in paper form. A private key can be derived from 12, or 24 words written down on a piece of paper. A piece of wallet software should not store on your computer or phone. If it does, it is vulnerable to malware and your funds may be stolen.
Even though your private key should not be stored on your device, most popular wallets do this as standard practice. This is not a safe practice. It’s up to you if you want to use these kinds of software, but I recommend only doing this with small amounts of crypto currency.
A public key gives you access to a list of possible addresses that can be used by your private key. With your public key, anyone can see all the addresses that were created from your private key, all of their balances, and transactions to and from the addresses. Essentially, it’s like giving someone view access to your bank accounts. While Wikipedia says that a wallet stores public and private keys, it really does not need to do this. For a view-only wallet, only a list of addresses is necessary. Most wallets will currently at least request your public key, or grab it without telling you. This is OK if they don’t transfer your public key on to another server. But, if the wallet sends your public key elsewhere, whoever has access to that public key can see all of your funds. So, it is highly recommended that you allow as few organizations or people to have your public key as possible. Basically, don’t give it to anyone if you can avoid it, and it is good practice to break your funds up in to addresses created from several different public keys for privacy reasons.
An address may mean slightly different things depending on the currency we are talking about. An address is basically a once use only bank account. Money can be sent to it, and then you can use your private key to send money from it. Your private or public key can be used to mint addresses, but it’s only possible to spend the money in an address with the private key that created the address. Addresses are publicly viewable. If someone has access to an address, they can see the balance of the funds in the address, and they can see all of the transactions associated with the address.
A transaction is a an entry in the Blockchain ledger. It is just a record of the address that some funds came from, how much was transferred, and the address that the funds were sent to. I won’t go in to the complexities of how transactions are managed on a Blockchain, but creating a transaction is how you spend money from an address. You can spend money from any address where you have access to the private key. Transaction chain is how you can trace funds from place to place. Government, and non-government agencies regularly monitor transactions to understand where money is coming from and going to. Transactions are public. This is where concept of pseudo-anonymity comes in. If someone other than you knows which addresses you have the private keys for, they can see where you are receiving funds from, and where you are transferring funds to. Generally speaking, agencies with a lot of resources can make accurate guesses as to which addresses you own based on several things: where you bought the currency in the first place (the exchange who has your identity details), your IP address, and whose addresses you are sending funds to. There is a presentation about this here: https://www.slideshare.net/dakami/black-ops-of-tcpip-2011-black-hat-usa-2011
What Makes a Good Wallet?
A good wallet will support many currencies – especially those that are most commonly used. It will never store any private keys on any computers or phones. It will use a hardware device to do that. It will be easy to use. Transferring funds will be easy, and it will be easy to see the balances of your funds. It will also give you accurate estimates of the value of your funds in your fiat currency of choice. It will work on the main platforms: Windows 10, iOS, and Android (hopefully more).
Does such a wallet exist? I do not believe that at this point in time, such a wallet exists, so please get in contact if you have a recommendation for me. But, I believe that these wallets are coming, and I am in a mad race to create such a wallet. It’s coming along nicely and a prototype should be available soon. Please contact me if you are interested in becoming and alpha tester.