As you (hopefully) already read, it is impossible (in human terms) to 'crack' the private key out of a public key.
This is where I get confused. I'm still reading into this. Private keys work on the basis of proving that you own the one and only privatekkey and the messages you write with it are indeed your own. But in blockchain, there is nothing hidden so the blockchain cannot verify using a private key. So how does it do that? How does it ensure the transaction uses the right key?
When you start initializing an address in your wallet (or when you create an address by your own) what basicaly happens is that your PC will randomly(!) generate a private key (following rules, ofc.).
Out of this private key you can calclulate your public key (an address is the 'visualisation' of a public key). This is a one-way-function. This means you can generate the pub key out of the priv key easily..
but its (in human terms) not possible to calculate the priv key out of the pub key.
And as already mentioned.. Noone needs the private key to verify anything signed with it. You can verify signatures from a private key with the corresponding public key.
I would recommend you to read a bit about asymetric cryptography (
https://en.wikipedia.org/wiki/Public-key_cryptography).
There is no possible attack vector in 'forging transactions'.
Even straight up brute forcing it, it's still possible right? Just not practical because it would take ages or tonnes of computer power.
Just out of curiosity though, if you poured the 1000s of THashes of computing involved in mining to crack a private key, how long do you reckon it would take?
Also, what would happen if you flooded the system (neighboring bitcoin nodes) with 1000s of random guesses?
Sorry for the tonnes of questions....
Bruteforcing isn't really 'forging'. Its just trying out every possible combination until you have found the private key you were looking for.
There are 2^160 (~ 1,460,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000) possible priv-/pub- key pairs which can be generated.
In theory you have to search half of the search space until you find a collision (birthday-paradox). So you have to test 2^159 combination until you have found a collision.
1 TH = 1.000.000.000 Hashes ; 1000 TH/s = 1.000.000.000.000 H/s. So you would basically need 7.307.508.200.000.000.000.000.000.000.000.000.000.000.000 seconds,
which are about 84.577.641.000.000.000.000.000.000.000.000.000.000 (24h-)Days.
I hope that awnsers your question.