Quisquis: An Anonymous Cryptocurrency Based on Updatable Public - - PowerPoint PPT Presentation

quisquis an anonymous cryptocurrency based on updatable
SMART_READER_LITE
LIVE PREVIEW

Quisquis: An Anonymous Cryptocurrency Based on Updatable Public - - PowerPoint PPT Presentation

Quisquis: An Anonymous Cryptocurrency Based on Updatable Public Keys Prastudy Fauzi, Sarah Meiklejohn, Rebekah Mercer, Claudio Orlandi @claudiorlandi Blockchain Research Applications Smart Contracts Transaction Layer This talk Consensus


slide-1
SLIDE 1

Quisquis: An Anonymous Cryptocurrency Based on Updatable Public Keys

Prastudy Fauzi, Sarah Meiklejohn, Rebekah Mercer, Claudio Orlandi @claudiorlandi

slide-2
SLIDE 2

Blockchain Research

Network Layer Consensus Layer Transaction Layer Smart Contracts Applications This talk

slide-3
SLIDE 3 3

Bitcoin and Anonymity

slide-4
SLIDE 4

Bitcoin is like Twitter for your bank account. (Ian Miers)

“ ”

4 A Fistful of Bitcoins (Meiklejohn et al)
slide-5
SLIDE 5

Existing Alternatives for Anonymous Payments

  • Dash
  • Monero
  • Zcash
  • … but, I’m a theoretician! For the rest of the talk I

will address ”abstract technologies” not actual products (which are much more complicated).

slide-6
SLIDE 6

Existing Techniques for Privacy

  • Technologies

– Tumblers – Ring Signatures – ZK-SNARKS

  • Questions

– Need for coordination? – Deniability? – Provable Anonymity? – Trust in third parties? – Size of UTXO?

slide-7
SLIDE 7 pk1 pk2 pk2 pk1 pk1

Basic Transactions (e.g., Bitcoin)

pk3 pk3 pk4 pk2

UTXO Blockchain

  • For context, in November 2017

– Blockchain 130 GB – UTXO 3 GB

slide-8
SLIDE 8

Tumblers (1/2)

  • A wants to give 1 coin to B
  • C wants to give 1 coin to D
  • (A, C) create a 2-2 TX with

receivers (B,D) in random

  • rder.
  • An external observer cannot

determine who sent to whom.

  • Can be generalized to N

senders and N receivers

A C B D TX
slide-9
SLIDE 9

Tumblers (2/2)

  • Centralized Tumblers

– J Easy (trusted party performs transaction and matches users) – L Need to trust central party for anonymity and security

  • Decentralized Tumblers

– L Hard (how to find other users who want to mix their coins? + protocol require interaction) – J Secure using cryptographic protocol

  • (Exception: TumbleBit, see talk this morning)
slide-10
SLIDE 10

Ring Signatures (1/3)

  • Sign(pk0,pk1,skb, m)à s
  • Ver(pk0,pk1,m,s)à accept
  • Indistinguishability:
  • Sign(pk0,pk1,sk0, m) ≈ Sign(pk0,pk1,sk1, m)
  • (In general, there are N public keys)
slide-11
SLIDE 11

Ring Signatures (2/3)

pk1 pk2 pk2 pk1 pk1 pk3 pk3 pk4 pk2
  • Was pk1 spent? Can’t tell! J
  • Also means, cannot remove pk1 from UTXO L

(Ignoring how to prevent double spending)

slide-12
SLIDE 12 pk1 pk2 pk2 pk1 pk1 pk3 pk3 pk4 pk2 pk1 pk3 pk4 pk2 pk5
  • Anonymity?

– After 2nd TXs pk1 and pk2 are both spent à 3rd transaction was made by pk3 with certainty

Ring Signatures (3/3)

(Ignoring how to prevent double spending)

slide-13
SLIDE 13

Zero-Knowledge (come back tomorrow at 10.30!)

P(x) V

“I know x s.t. f(x)=1”

  • Completeness
– P,V honest à V accepts
  • Proof-of-Knowledge
– If P does not know x à V rejects
  • Zero-Knowledge
– V learns nothing about x q a q a
slide-14
SLIDE 14

ZK-SNARKS

  • Can be seen as extension of ring signatures, using

advanced cryptographic protocols

– Can hide in sets of arbitrary size - “∞-to-1” transactions – Generation time for transaction high L – Need for trusted setup (CRS) L

pk1 pk2 pk2 pk1 pk1 pk3 pk3 pk4 pk2
slide-15
SLIDE 15

Entering QuisQuis!

slide-16
SLIDE 16

QuisQuis idea: N-to-N transaction without interaction

A S R B TX
  • S wants to send

money to R

  • Add transaction from

A to B for anonymity

  • Paradox?

– Move other people money without their approval – While at the same time preventing theft?

slide-17
SLIDE 17

Idea that does not work

A S R A TX
  • Add transaction

from A to A.

  • No money stolen J
  • No privacy L
slide-18
SLIDE 18

Idea that might work

A S R A’ TX
  • What if I could move

A’s money to a new ”random looking” address which is also

  • wned by A?
slide-19
SLIDE 19

Updatable Public Keys

Gen

pk sk r pk’

Update

hint

Derive

sk’

slide-20
SLIDE 20

Updatable Public Keys

Gen

pk sk r pk’

Update

hint

Derive

sk’

  • Correctness: (pk’,sk’) is a valid key pair
slide-21
SLIDE 21

Updatable Public Keys

Gen Update Derive

pk sk r pk’ hint sk’

  • Indistinguishability:

(pk,hint) looks like (pk’,hint)

slide-22
SLIDE 22

Unforgeability

  • No A(pk) can output (pk’,sk’,r) such that

Update(r,pk) à pk’ AND (pk’,sk’) is a valid pair

  • Output (r,pk’): trivial! (run update)
  • Output (pk’,sk’): trivial! (drop pk and run Gen)
  • Both at the same time should be hard!
slide-23
SLIDE 23

Constructions of Updatable Public Key

(Main Construction)

  • Gen à pk=(gs,gsx)=(u,v), sk=x
  • Update(pk, r) à pk’ = (ur,vr)
  • Derive(sk) à sk
  • Correctness: ✔
  • Indistinguishability: (u,v, ur,vr) ~ (u,v,ur,vs) DDH
  • Unforgeability: given x can output x (break DL)
slide-24
SLIDE 24

Constructions of Updatable Public Key

(Alternative Construction)

  • Gen à pk=gx, sk=x
  • Update(pk, r) à hint=gr, pk’=pk*gy with y=H(pkr)
  • Derive(sk, hint) à sk’ = x + H(hintx)
  • Correctness: ✔
  • Indistinguishability: follows from DDH
  • Unforgeability: given r,sk’ output sk (break DL)
  • Bonus! Forward anonymity in RO model

– (given sk’ cannot tell if new or derived)

slide-25
SLIDE 25

QuisQuis Transaction

  • Real Input: pkS
  • Real Output: pkR
  • Run Update(pkR)àpkR’
  • Choose random pkA from UTXO
  • Run Update(pkA)à pkB
A S R B=Upd(A) TX
  • ZK proof π for the following statement:

– ”I computed N-k outputs as Updates of N-k inputs” (hiding which ones) – “I know the sk corresponding to the remaining input keys”

ZK π R’=Upd(R)
slide-26
SLIDE 26

QuisQuis Transaction

  • Non-growing UTXO:

– all inputs have been spent and can be removed

  • Theft prevention:

– You are free to spend a coin if you know the sk – The other coins did not change owner

  • Anonymity

– Updated keys look ind. from fresh new keys – ZK proof hides links between inputs/outputs

slide-27
SLIDE 27

A bit more details…

  • ZK proofs obtained as combination of Sigma

protocols for

– ”I know the sk” (“I know the DL”) – “I run Update correctly” (”Proof of DDH tuple”) – “I shuffled some Updated public keys” (from Bayer-Groth shuffle)

  • Can be made non-interactive using Fiat-Shamir in the

Random Oracle model.

slide-28
SLIDE 28

Performances

slide-29
SLIDE 29

More in the paper!

  • Formal definitions and proofs of security
  • How to deal with private, variable amounts

– Commitment schemes based on updatable public keys – Split/Merge transactions – …and more!