Two new address formats

Version 0.11.0 of neptune-core has just been released and with it two new address formats are available through the JSON RPC.

  • Viewing address
  • EC hybrid

Benefits

The new address formats are much shorter than the previous address formats, and the on-chain announcements that are generated when you send funds to these addresses are also much shorter.

Address Type Address Length (Bech32 characters) Ciphertext Length (b-field elements)
EC hybrid address 168 19
Viewing address 115 15
Generation address 3482 335

Viewing addresses start with “nview”, and elliptic curve-hybrid addresses start with “nech”.

The introduction of these new address formats will also deprecate the address format “symmetric” addresses, as this address format is easy to use incorrectly.

Drawbacks

The shorter address format comes with some drawbacks, as their use can negatively effect privacy if they are used incorrectly.

The “viewing address” format is similar to a “view key”. Anyone who sees this address can see all UTXOs (with on-chain announcements) sent to this address. Therefore, this address should only be shared with one other party. Sharing an address does not risk funds, only privacy.

The EC hybrid address format works similar to the viewing key, except it adds an elliptic curve key-exchange mechanism on top, meaning that an attacker who wants to deanonymize amounts sent to an address will need to see both the address and have a powerful quantum computer. This attacker, that knows the address and has a big quantum computer still cannot steal anything.

The name “viewing” and elliptic curve-hybrid" refers to how the AES key is shared, and what is needed to break privacy. It does not refer to what is needed to steal funds. To steal funds, it is not enough to see the address or to have a powerful quantum computer. A powerful quantum computer does not make it easier to steal funds even if you’re using these new addresses and the attacker knows your address.

Technical Details

Cryptographic data, namely “sender randomness” and the UTXO data structure must be shared with the receiver. The default way of doing this is to publish the data in announcements that are part of the transaction. These announcements are always symmetric-key encrypted with a 256-bit AES key. For viewing addresses, the 256-bit AES key can be read directly from the address. For elliptic curve-hybrid addresses, this 256-bit AES consists of two parts: one part is derived from the address and one part is chosen by the sender. The sender then communicates their part (the 256 bit they get to chose) to the receiver through an elliptic curve Diffie-Hellman key exchange mechanism. The two parts and then XOR’ed, and the result is the AES key.

For anyone wanting more information, see the pull request on GitHub:

2 Likes

With the release of v3.0.8, `NeptuneWallet` now has rudimentary support for this address format. Wallets can send to and receive on this new address format.

Latest NeptuneWallet version can be found here: