is it theoretically possible to generate a private key of an existing btc address ?
That really depends on what you mean when you say "possible", and how the existing BTC address was generated. As long as the private key for the BTC address was generated from a sufficiently random source, nobody else is ever going to generate the same number. If the private key was generated from something without enough entropy such as a person choosing a password, or faulty random number generating software, then it becomes much more likely that the same private key could be generated.
the private key is basically just a random 256bit number,
This is true. However, as jordant and Amph have both attempted to explain...
2
256 is a VERY big number. Much bigger than most people are able to comprehend. The odds of generating the same random 256 bit number as someone else isn't just small, it's astronomically small. It's so small that any reasonable person would consider it impossible.
so if I'd know that number I could just create a new private key in WIF form, from which I'd create public key and btc address,
Yes. This is wy it is very important to keep your private keys secure. If anyone else gains access to your private keys, then they can spend or steal your bitcoins.
or is there something more to this and one 256bit number can have multiple public keys and btc addresses?
If we are talking about P2PKH bitcoin addresses (the addresses that start with a "1"), then a single private key can actually be used for two different bitcoin addresses. When converting the random number into WIF, you can choose compressed or uncompresses. Compressed will result in a different address than uncompressed. Once you have the private key in WIF, there is only 1 bitcoin address associated with that key.
Note that the opposite is not true.
There are 2
256 different private keys. However, P2PKH bitcoin addresses are a representation of a 2
160 bit hash. This means that an address can have multiple private keys. If we divide the total number of keys by the total number of possible addresses we find that:
2
256 / 2
160 = 2
96On average each possible P2PKH bitcoin address has 2
96 different private keys that can each spend any bitcoins that are received at that address.
So, while there is only a 1 in 2
256 chance of generating the exact same private key as was originally used to create the P2PKH address, there is actually a 1 in 2
160 chance of generating any 1 of the 2
96 different private keys that can all be used to spend bitcoins that are received at that address.
Fortunately, while not nearly as big of a number as 2
256, 2
160 is still a VERY big number. Big enough that there shouldn't be any concern of anyone generating any of the private keys as long as the private key is originally generated from a random enough source.