Computational cryptography › Live on mainnet today › Plain curves
Hardness assumptionKE: gives key exchange

Computational DH

In plain words

The puzzle that keeps elliptic-curve Diffie-Hellman key exchange secret.

The idea: Diffie-Hellman with curve points: one node sends aG, the other sends bG, and each multiplies what it received by its own secret to reach the same point abG, which becomes the key for an encrypted link. The bet is that someone watching aG and bG can't reach abG.

Why it matters: Protects the encrypted connections between Ethereum nodes.

Agreeing on a secret in public
AliceBobeveryone seescommonGsecret asecret bmixa·Gmixb·Gsame secretab·Gsame secretab·GBob's mix + aAlice's mix + bcan't unmixthe paint
Alice and Bob start from a public color, each mixes in a secret one, and they swap the mixtures in the open. Each then adds their own secret color to what they received, and both end up with the same paint. An eavesdropper has seen both mixtures but can't unmix them. In the real protocol, mixing is multiplying a curve point by a secret number.

The details

On the map: on the curve

Given a·G and b·G, compute ab·G. If discrete log is easy, this is easy too.

It is what makes elliptic-curve Diffie-Hellman key exchange secure[1], which Ethereum nodes use to set up encrypted peer-to-peer connections (KE)[2].

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

Everything that falls with it (2 boxes)

About the tags

KE
This assumption gives key exchange on its own, so it needs more than one-way functions and falls if public-key encryption is impossible.

References

  1. Whitfield Diffie and Martin E. Hellman. New Directions in Cryptography. Democratizing Cryptography, 1976. doi:10.1145/3549993.3550007
  2. devp2p authors. The RLPx Transport Protocol. ethereum/devp2p, 2019. github.com/ethereum/devp2p/blob/master/rlpx.md