<p>Starting from a private key, a working functional <a href="https://bitcoin.stackexchange.com/questions/42055/what-is-the-approach-to-calculate-an-ethereum-address-from-a-256-bit-private-key">example</a> provides details for how an Ethereum address can be calculated from an uncompressed secp256k1 elliptic curve public key. This functional example made it clear the computation of an Ethereum address had to use the proper Keccak hashing function, quite different from the NIST SHA3 implementation. Was wondering if Ethereum supports compressed secp256k1 public keys, if so are there any test vectors for testing implementations?</p>

CC BY-SA 3.0
2016-05-22T21:55:56.947Z
Uncompressed Address Synthesis: ```% echo b205a1e03ddf50247d8483435cd91f9c732bad281ad420061ab4310c33166276 | bx ec-to-public -u```
046cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153fd94ed48e1f63312dce58f4d778ff45a2e5abb08a39c1bc0241139f5e54de7df
skaht
CC BY-SA 3.0
2016-05-22T22:00:04.087Z
```% ./kec -x -256 6cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153fd94ed48e1f63312dce58f4d778ff45a2e5abb08a39c1bc0241139f5e54de7df```
787EC5A5313A976F7BDF9EED**AFDEFC1937AE294C3BD55386A8B9775539D81653**
skaht
CC BY-SA 3.0
2016-05-22T22:04:47.290Z
Hypothesized Compressed Address Synthesis: ```% echo b205a1e03ddf50247d8483435cd91f9c732bad281ad420061ab4310c33166276 | bx ec-to-public```
036cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153
skaht
CC BY-SA 3.0
2016-05-22T22:07:52.273Z
```% ./kec -x -256 6cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153```
78389290CA1CDEE2ADC06DF0**5477163B24B75D3AE4714F48E76C144F4766CDE7**
skaht
CC BY-SA 3.0
2016-05-29T02:50:58.193Z
Since the public addresses above are not encoded, it does not appear there is a means to determine if the Ethereum key is uncompressed or compressed. This makes me think all Ethereum public addresses must be derived only from uncompressed addresses.
skaht
<wallet><address><private-key><public-key><ethereum>
Can Ethereum support compressed secp256k1 public keys to compute Keccak addresses?
skaht
# Can Ethereum support compressed secp256k1 public keys to compute Keccak addresses?

(Asked by: username_0 on 2016-05-22)

Starting from a private key, a working functional [example](https://bitcoin.stackexchange.com/questions/42055/what-is-the-approach-to-calculate-an-ethereum-address-from-a-256-bit-private-key) provides details for how an Ethereum address can be calculated from an uncompressed secp256k1 elliptic curve public key. This functional example made it clear the computation of an Ethereum address had to use the proper Keccak hashing function, quite different from the NIST SHA3 implementation. Was wondering if Ethereum supports compressed secp256k1 public keys, if so are there any test vectors for testing implementations?

**Tags:** wallet, address, private-key, public-key, ethereum

> **Comments:**
> **username_0**: Uncompressed Address Synthesis: ```% echo b205a1e03ddf50247d8483435cd91f9c732bad281ad420061ab4310c33166276 | bx ec-to-public -u``` 046cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153fd94ed48e1f63312dce58f4d778ff45a2e5abb08a39c1bc0241139f5e54de7df  
> **username_0**: ```% ./kec -x -256 6cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153fd94ed48e1f63312dce58f4d778ff45a2e5abb08a39c1bc0241139f5e54de7df``` 787EC5A5313A976F7BDF9EED**AFDEFC1937AE294C3BD55386A8B9775539D81653**  
> **username_0**: Hypothesized Compressed Address Synthesis: ```% echo b205a1e03ddf50247d8483435cd91f9c732bad281ad420061ab4310c33166276 | bx ec-to-public``` 036cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153  
> **username_0**: ```% ./kec -x -256 6cb84859e85b1d9a27e060fdede38bb818c93850fb6e42d9c7e4bd879f8b9153``` 78389290CA1CDEE2ADC06DF0**5477163B24B75D3AE4714F48E76C144F4766CDE7**  
> **username_0**: Since the public addresses above are not encoded, it does not appear there is a means to determine if the Ethereum key is uncompressed or compressed. This makes me think all Ethereum public addresses must be derived only from uncompressed addresses.  

---

## 0 answers

