<p>A public key in Bitcoin is a pair of 256-bit numbers used as part of the ECDSA scheme. A <a href="https://en.bitcoin.it/wiki/Address" rel="nofollow">Bitcoin address</a> is a Base58-encoding of the 160-bit hash of the public key (the hash function in question being RIPEMD160 of SHA256).</p>

<p>From the public key you can easily and deterministically compute the address, but from the address alone you cannot deduce the public key.</p>

CC BY-SA 3.0
2014-04-24T18:05:46.030Z
You need at least 257 bits to represent the public key.  It's a pair of two 256-bit numbers but you only need to store the least-significant bit of the Y coordinate and the rest can be calculated from the X coordinate.  This is defined in http://www.secg.org/download/aid-780/sec1-v2.pdf
David Grayson
CC BY-SA 3.0
2014-04-24T22:13:14.483Z
@DavidGrayson: Corrected.
Meni Rosenfeld
CC BY-SA 3.0
2014-04-24T17:57:05.967Z
2014-04-24T22:12:11.663Z
2014-04-24T22:12:11.663Z
Meni Rosenfeld
<p>The <strong>public key</strong> is a pair of 256-bit numbers that are the coordinates of a point on an ECDSA ellipctic curve.  (Bitcoin uses the secp256k1 curve.)</p>

<p>A bitcoin <strong>address</strong> is calculated from the public key by taking a binary representation of the public key, hashing it, and then encoding it with the <a href="https://en.bitcoin.it/wiki/Base58Check_encoding" rel="nofollow">Base58Check</a> scheme so you can easily see it and send it to people.  The details are explained here:</p>

<p><a href="https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses" rel="nofollow">https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses</a></p>

<p>However, one thing currently missing from the wiki page is that each public key has <em>two different binary encodings</em> depending on whether you used ECDSA point compression (as defined in <a href="http://www.secg.org/download/aid-780/sec1-v2.pdf%E2%80%8E" rel="nofollow">SEC1</a>).  Therefore, each public key actually has two different addresses.  Currently Armory seems to use the "uncompressed" addresses but Multibit uses "compressed" addresses, at least by default.</p>

CC BY-SA 3.0
2014-04-24T18:02:16.977Z
2014-04-24T18:02:16.977Z
David Grayson
<p>The service <a href="http://cosign.co.in/" rel="nofollow">CoSign</a> shows that to create a multisig wallet you need to provide a Senders Address and Senders Public Key.   </p>

<p>I thought that they were the same thing.  </p>

<p>What am I missing here?</p>

<public-key><multi-signature>
Is a bitcoin wallet address the same as your public key?
Arron S
# Is a bitcoin wallet address the same as your public key?

(Asked by: username_0 on 2014-04-24)

The service [CoSign](http://cosign.co.in/) shows that to create a multisig wallet you need to provide a Senders Address and Senders Public Key.

I thought that they were the same thing.

What am I missing here?

**Tags:** public-key, multi-signature


---

## 2 answers

### Answer by username_1 on 2014-04-24. Score: 6

A public key in Bitcoin is a pair of 256-bit numbers used as part of the ECDSA scheme. A [Bitcoin address](https://en.bitcoin.it/wiki/Address) is a Base58-encoding of the 160-bit hash of the public key (the hash function in question being RIPEMD160 of SHA256).

From the public key you can easily and deterministically compute the address, but from the address alone you cannot deduce the public key.

> **Comments:**
> **username_2**: You need at least 257 bits to represent the public key.  It's a pair of two 256-bit numbers but you only need to store the least-significant bit of the Y coordinate and the rest can be calculated from the X coordinate.  This is defined in http://www.secg.org/download/aid-780/sec1-v2.pdf  
> **username_1**: @username_2: Corrected.  

---

### Answer by username_2 on 2014-04-24. Score: 2

The **public key** is a pair of 256-bit numbers that are the coordinates of a point on an ECDSA ellipctic curve. (Bitcoin uses the secp256k1 curve.)

A bitcoin **address** is calculated from the public key by taking a binary representation of the public key, hashing it, and then encoding it with the [Base58Check](https://en.bitcoin.it/wiki/Base58Check_encoding) scheme so you can easily see it and send it to people. The details are explained here:

<https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses>

However, one thing currently missing from the wiki page is that each public key has *two different binary encodings* depending on whether you used ECDSA point compression (as defined in [SEC1](http://www.secg.org/download/aid-780/sec1-v2.pdf%E2%80%8E)). Therefore, each public key actually has two different addresses. Currently Armory seems to use the "uncompressed" addresses but Multibit uses "compressed" addresses, at least by default.


---

