how does node validate scriptSig Let's say I sent some BTC to Bob, so I created a transaction (forget about scriptPubKey) since let's say I was able to prove it by executing scriptPubKey. so After I sent BTC to BOB, new transaction's input looks like this:
in: [
  {
     &quot;prev_out&quot;: {
        &quot;hash&quot;: txId,
        &quot;n&quot;: 0
     },
     scriptSig:&quot;3045....e5f5&quot;
  }
],

Now, this scriptSig exists because when other nodes come and see this, they should be able to validate it. Now, all we have here is the signature , public key (mine), txId(output transaction that I used).
How can another Node which got this transaction validate it ?
You might say: he will see signature + public key of yours. so what will it do to validate it ? if you say that it will try to decrypt signature with public key, that's not enough. Because what I could do is encrypt blablabla string my private key and I'd put that signature there.
So I guess, my question relates to: how Node will prove I proved that I had BTC with scriptSig + txId ?
What you are asking about is the message covered by the signature. In Bitcoin, this message is defined by the consensus rules and is a modification of the transaction the signature is contained in.
The exact form of this message for non-segwit transactions is explained in How to redeem a basic Tx?