1 of 52

encrypted mempools

2 of 52

  1. "what" basics
  2. "why" motivation
  3. "how" metadata

3 of 52

  • "what" basics
  • "why" motivation
  • "how" metadata

4 of 52

simple framework

encrypt

off-chain

5 of 52

simple framework

commit

encrypt

off-chain

6 of 52

simple framework

decrypt

commit

encrypt

off-chain

7 of 52

simple framework

decrypt

commit

encrypt

execute

off-chain

8 of 52

simple framework

decrypt

commit

encrypt

execute

on-chain

(1 slot)

off-chain

9 of 52

guaranteed decryption

sophistication

in-flight

enclave

threshold

delay

witness

10 of 52

guaranteed decryption

sophistication

in-flight

enclave

threshold

delay

witness

Protect

11 of 52

guaranteed decryption

sophistication

in-flight

enclave

threshold

delay

witness

Protect

SUAVE

12 of 52

guaranteed decryption

sophistication

in-flight

enclave

threshold

delay

witness

Protect

SUAVE

13 of 52

guaranteed decryption

sophistication

in-flight

enclave

threshold

delay

witness

Protect

SUAVE

VeeDo

14 of 52

readiness

in-flight

enclave

threshold

ready?

15 of 52

readiness

in-flight

enclave

threshold

delay

ready?

16 of 52

readiness

in-flight

enclave

threshold

delay

witness

ready?

17 of 52

homomorphism

encryption(m1), encryption(m2)

18 of 52

homomorphism

encryption(m1), encryption(m2)

encryption(f(m1, m2))

19 of 52

homomorphism

in-flight

enclave

threshold

delay

witness

ready?

?

encryption(m1), encryption(m2)

encryption(f(m1, m2))

20 of 52

  • "what" basics
  • "why" motivation
  • "how" metadata

21 of 52

problem 1—frontrunning

22 of 52

problem 1—frontrunning

23 of 52

problem 1b—centralisation

edge

no edge

24 of 52

problem 1b—centralisation

edge

edge

encryption

no edge

no edge

25 of 52

problem 2—censorship

edge

handicap

neutral

26 of 52

problem 2—censorship

/

edge

handicap

edge

handicap

encryption

neutral

27 of 52

  • "what" basics
  • "why" motivation
  • "how" metadata

28 of 52

transaction metadata

IP address

size

sender

tip

29 of 52

transaction metadata

IP address

size

sender

tip

gas price

gas limit

nonce

signature

30 of 52

IP address

private broadcast

(e.g. Tor)

31 of 52

signature

public input:

private witness:

zk statement:

tx ciphertext

tx plaintext

tx ciphertext valid

32 of 52

signature

public input:

private witness:

zk statement:

tx ciphertext + state root

tx plaintext + sender pubkey Merkle proof

tx ciphertext valid + Merkle proof valid

33 of 52

signature

public input:

private witness:

zk statement:

tx ciphertext + state root

tx plaintext + sender pubkey Merkle proof

tx ciphertext valid + Merkle proof valid

signature valid

34 of 52

gas payment

public input:

private witness:

zk statement:

tx ciphertext + state root

tx plaintext + sender balance Merkle proof

tx ciphertext valid + Merkle proof valid

35 of 52

gas payment

public input:

private witness:

zk statement:

tx ciphertext + state root

tx plaintext + sender balance Merkle proof

tx ciphertext valid + Merkle proof valid

sufficient sender balance

36 of 52

nonce

public input:

private witness:

zk statement:

tx ciphertext + state root

tx plaintext + nonce Merkle proof

tx ciphertext valid + Merkle proof valid

new nonce valid

37 of 52

nonce

public input:

private witness:

zk statement:

tx ciphertext + state root + replay tag

tx plaintext + nonce Merkle proof

tx ciphertext valid + Merkle proof valid

new nonce valid

replay tag = H(nonce, private key)

38 of 52

nonce

public input:

private witness:

zk statement:

tx ciphertext + state root + replay tag + slot

tx plaintext + nonce Merkle proof

tx ciphertext valid + Merkle proof valid

new nonce valid

replay tag = H(nonce, private key, slot)

39 of 52

size

40 of 52

size

idea 1—pad to power of two

41 of 52

size

idea 1—pad to power of two

42 of 52

size

idea 1—pad to power of two

problem 1: imperfect packing

problem 2: imperfect privacy

43 of 52

size

idea 2—use homomorphism

44 of 52

size

idea 2—use homomorphism

45 of 52

ordering by fee

1 Gwei

3 Gwei

2 Gwei

46 of 52

ordering by fee

1 Gwei

3 Gwei

2 Gwei

47 of 52

ordering by fee

1 Gwei

3 Gwei

2 Gwei

optional access lists

48 of 52

timestamp

49 of 52

timestamp

dummy transactions

50 of 52

timestamp

51 of 52

thank you :)

justin@ethereum.org

52 of 52

commitment strength

on-chain

stronger

finality

off-chain

weaker