When a Bitcoin is sent to your public key the message is sent encrypted. Your private key is able to decrypt this info so that the transaction completes. In the unlikely event that somebody is able to create your public key from thier private key, your private key adds a signature to the public key to verify it was derived from your private key. This ensures that the private key that made the public key is the only key that can decrypt messages sent to the public key. This signature check is only made when the received Bitcoins are attempted to be spent/exchanged. It is only at this point it will be known if a 'hacker' private key received the transaction.
No. There is no encryption that goes on in transactions or blocks. There isn't even anything "sent" to a public key nor is there any such an object as a "Bitcoin". How transactions actually work is that outputs are created which have a specific set of requirements that must be met in order to be allowed to spend from the output. Those requirements are in the form of a script. The script is a mini program that is executed when another transaction is created that spends from that output. It actually consists of two parts, the output script (which goes in the output being spent), and the input script (which goes in the inputs section of the transaction spending the output). When concatenated together (input script cat with output script), the script must result in true by the end of its execution.
Public and private keys come into this because the most common output type requires signature checking. It is called Pay to Pubkey Hash (P2PKH). These outputs require that a signature and public key are provided in the input script. The output script specifies that the hash of the public key must match the hash provided in the output (that hash comes from the Bitcoin address). Then it specifies that the
signature verifies to the public key with the message it signed being a special form of the spending transaction.
Wallet, spends/exchanges
A wallet is a collection of keys (private, public, wallet address) used to access/view relevant parts of the blockchain (the information, not the actual data). This is almost always some software to put these keys to use. Using your private key you can view the amount of Bitcoins you own, send payments and make a public key so that you can receive payments. The wallet is given an address that is a hash derived from the public key. Payments can be made to this wallet address. All I know is that the wallet address is used as an extra level of protection from private keys being reverse engineered from a public key. This is because the signiture check is only made when the received funds are attempted to be used. The wallet address hash adds protection through extra security and discouragement associated to the time element.
There is no such thing as a wallet address. There are multiple Bitcoin addresses in a wallet, but only one associated with each public key. There is not a single address for one wallet though.
Addresses serve other purposes too. They are much smaller than a public key so it moves the cost from the sender to the receiver. They are also shorter and easier to remember and give out than public keys.
Desktop
You download the blockchain and have a copy of the keys and wallet address.
Not necessarily. You don't need to have the full blockchain for the vast majority of desktop wallets. These wallets are called SPV wallets and they only need the headers chain. SPV wallets rely on other people running full nodes and connect to these full nodes with some special parameters. This way they can find out about their transactions and the blocks they are included in but don't need to actually download the entire blockchain. However you do lower your security and privacy in doing this as you are trusting someone else not to give you bad information.
These keys are stored in wallet.dat (or similar). You absolutely must make backups of this file.
Only 1 wallet actually uses a wallet.dat file; every wallet has its own wallet file and format, the wallet.dat is just the one specific to Bitcoin Core.
If you take the desktop wallet route, do you need to download the blockchain for all the currencies you use? I ask because at first I wanted to mine Ethereum. It took 10hrs to download the blockchain and takes up 20gb of my 128gb bootdrive. Space is one thing but the time it all takes is something akin to late 90's downloading. I should have done more reading because the dag is bigger than my vram. So I tried Monero. This didn't download any blockchain and just works by typing in a single line command into the miner and its off. Can desktop wallets work without downloading the blockchain?
My next task is to decide on a wallet... I thought about using the official desktop wallet for each currency I use but the blockchain download is putting me off. Any suggestions?
For the best security and privacy, you should use the wallet which downloads the entire blockchain.