How it is possible to validate existing Pay to Public Key Hash transaction without public key?
A transaction which spends from a P2PKH output provides both the signature and public key in the input script. So the public key is part of the transaction data, just the spending transaction, not the output creating transaction.