is there a way to recover bitcoins sent to a wrong bitcoin address? Does bitcoin address change automatically within the bitcoin wallets?
No you cannot recover Bitcoin sent to the wrong address.
Many people and businesses use HD wallets that generate a new address each time. If the recipient has provided you with a new address but you send Bitcoin to their old one, it is very likely they will be able to recover your payment.
Privacy is the primary reason to generate a new address for each new payment received.
The most likely answer is - No.
You could retrieve them only if you somehow got the private key of the address you sent to or if the person to whom you sent the coins is willing to send you the bitcoins. Chances are neither is possible, because:
- To generate a private key knowing the address is practically impossible. Normally you start with a private key, and generate address from it. This is very easy and is how "wallets" are created, they're a compilation of private key + address pairs.
- Chances are, nobody has ever or will ever generate the keypair to where you sent your coins by accident. This is because of the practically infinite possibilities.
There is no way to reverse payments in bitcoin and it is considered one of important features of bitcoin.
For the 2nd part - Yes, addresses change. Your wallet creates these keypairs (private key & address) automatically whenever you make a transaction, or when you want it to. Normally when you send bitcoins, wallets spend everything on the address but one part is sent to whomever you're paying, and the "change" returned to you on another new address inside your wallet. This is a good privacy / security practice. Note that some wallets randomly generate all keypairs. So, you need to keep a backup of the whole collection. There are also HD wallets, which generate all keypairs from a common source, also called the seed. In this way, you can recover all your addresses if you've backed up only the seed.