How does Bitcoin verifies signature if addresses are one way hashed

I’m stuck at understanding Bitcoin’s transactions. So, the owner must sign the transaction with his private key, then miners can verify whether this signature matches his public key. However the public key is hashed with three functions (RIPEMD160, SHA256 and Base58) and it’s impossible to get the original ECDSA public key from the address. So how does the transaction verification actually work?

Recent Questions – Bitcoin Stack Exchange

Are Hashed Timelock Contracts and Zero-Knowledge Contingent Payments the same thing?

This answer to How is a node in the middle prohibited from keeping the money in a routed Payment in Lightning network? describes how a Hashed Timelock Contract would be used to exchange the “secret” for a payment. This sounds a lot like the Zero-Knowledge Contingent Payment described by Greg Maxwell.

Would I be correct in assuming that the HTLC would be implemented including a ZKCP?

Recent Questions – Bitcoin Stack Exchange