The service CoSign 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?

2 Answers 2


A public key in Bitcoin is a pair of 256-bit numbers used as part of the ECDSA scheme. A Bitcoin 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.

  • 1
    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 secg.org/download/aid-780/sec1-v2.pdf Apr 24, 2014 at 18:05
  • @DavidGrayson: Corrected. Apr 24, 2014 at 22:13

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 scheme so you can easily see it and send it to people. The details are explained here:


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). 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.