<p>The process of encoding a public key is very clear and explained here <a href="https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses" rel="nofollow noreferrer">https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses</a></p>

<p>I am looking for the other way around: how to get the public key from an address?</p>

<p>When you send bitcoins to someone you usually use the "readable form" (encoded) of the address (e.g. <code>1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</code>). However the blockchain stores the unencoded form (e.g. <code>04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f</code>)</p>

<p>How is it possible to recover the unencoded form of the address?</p>

<p>Example: If you want to send bitcoins to <code>1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</code> the node has to find out that you refer to the public key <code>04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f</code></p>

CC BY-SA 4.0
2019-05-05T21:10:31.640Z
Hashing is a one way mathematical function. There is no way you can reverse engineer it. Hashing is also quantum resistant. So it's impossible to get public key from a public address.
Ugam Kamat
CC BY-SA 4.0
2019-05-06T06:49:45.810Z
You are right I will edit and reformulate my question: When you send bitcoin to someone you use the "readable form" of the public key. However the blockchain stores it in the other form. How does it link the readable form of the address to the public key then?
Kevin P
CC BY-SA 4.0
2019-05-06T07:23:35.527Z
No, the node does not have to find the public key. When you send some bitcoins to an address, the bitcoins are encumbered by you providing a valid public key and a signature from your private key to spend it. The unspent outputs are only stored in the hash form.
Ugam Kamat
<address><public-key>
Decode public key from address
Kevin P
# Decode public key from address

(Asked by: username_0 on 2019-05-05)

The process of encoding a public key is very clear and explained here <https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses>

I am looking for the other way around: how to get the public key from an address?

When you send bitcoins to someone you usually use the "readable form" (encoded) of the address (e.g. `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa`). However the blockchain stores the unencoded form (e.g. `04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f`)

How is it possible to recover the unencoded form of the address?

Example: If you want to send bitcoins to `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa` the node has to find out that you refer to the public key `04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f`

**Tags:** address, public-key

> **Comments:**
> **username_1**: Hashing is a one way mathematical function. There is no way you can reverse engineer it. Hashing is also quantum resistant. So it's impossible to get public key from a public address.  
> **username_0**: You are right I will edit and reformulate my question: When you send bitcoin to someone you use the "readable form" of the public key. However the blockchain stores it in the other form. How does it link the readable form of the address to the public key then?  
> **username_1**: No, the node does not have to find the public key. When you send some bitcoins to an address, the bitcoins are encumbered by you providing a valid public key and a signature from your private key to spend it. The unspent outputs are only stored in the hash form.  

---

## 0 answers

