19

A raw Monero address is 95 characters long compared to 26-34 characters for a Bitcoin address.

Monero integrated address are even longer at 106 characters.

What is the cryptographic reason that causes Monero addresses to be so much longer than Bitcoin addresses?

2 Answers 2

24

From Cryptonote Address Tests

Cryptonote Public Addresses differ in several ways compared to Bitcoin. First, Cryptonote uses two keypairs, known as the spend keypair and the view keypair. Furthermore, these keys are EdDSA (specifically ed25519) keys, whereas Bitcoin uses ECDSA (specifically secp256k1) keys. Finally, Cryptonote Public Addresses are direct representations of the pair of public keys, whereas Bitcoin (and clones) uses a hash of the single public key.

(...)

To create the actual Public Address, the following is performed:

  • The pair of public keys are prepended with one network byte (the number 18, 0x12, for Monero). It looks like this: (network byte) + (32-byte public spend key) + (32-byte public view key).
  • These 65 bytes are hashed with Keccak-256.
  • The first four bytes of the hash from 2. are appended to 1., creating a 69-byte Public Address.
  • As a last step, this 69-byte string is converted to Base58. However, it's not done all at once like a Bitcoin address, but rather in 8-byte blocks. This gives us eight full-sized blocks and one 5-byte block. Eight bytes converts to 11 or less Base58 characters; if a particular block converts to <11 characters, the conversion pads it with "1"s (1 is 0 in Base58). Likewise, the final 5-byte block can convert to 7 or less Base58 digits; the conversion will ensure the result is 7 digits. Due to the conditional padding, the 69-byte string will always convert to 95 Base58 characters (8 * 11 + 7).
  • This 95-character result is the (obscenely long) Cryptonote Public Address!
1
  • Why are they converted separately? Why not all at once? Commented Aug 3, 2016 at 12:49
11

As explained by Papa Lazzarou, Monero addresses contain two public keys (the spend key and the viewkey).

As for the integrated addresses, these include the same information, plus an extra 8 byte short payment ID, serialized in the same way into the address. Those payment IDs are automatically encrypted on the blockchain, whereas full length standalone ones will not be.

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.