nummatus a privacy preserving proof of reserves protocol
play

Nummatus: A Privacy Preserving Proof of Reserves Protocol for - PowerPoint PPT Presentation

Nummatus: A Privacy Preserving Proof of Reserves Protocol for Quisquis Arijit Dutta , Arnab Jana, and Saravanan Vijayakumaran Indian Institute of Technology Bombay, Mumbai, India Indocrypt, Hyderabad December 16, 2019 1 / 14 Introduction


  1. Nummatus: A Privacy Preserving Proof of Reserves Protocol for Quisquis Arijit Dutta , Arnab Jana, and Saravanan Vijayakumaran Indian Institute of Technology Bombay, Mumbai, India Indocrypt, Hyderabad December 16, 2019 1 / 14

  2. Introduction ◮ Cryptocurrency removes the need to trust centralized financial institute, brings privacy ◮ Miners and cryptocurrency users in Bitcoin 2 / 14

  3. Introduction ◮ Cryptocurrency exchange ◮ Custodial wallet → stores secret keys, enables trading 2 / 14

  4. Concerns and Solution ◮ Concerns ◮ Wallets get hacked, theft, internal fraud, and exit scam ◮ $927 million worth of cryptocurrency reported as stolen from exchanges in the first nine months of 2018 1 ◮ Fractional reserves ◮ One possible solution: Periodic proof of solvency ◮ Proof of reserves ◮ Proof of liabilities 1 https://ciphertrace.com/crypto-aml-report-2018q3 3 / 14

  5. Concerns and Solution ◮ Concerns ◮ Wallets get hacked, theft, internal fraud, and exit scam ◮ $927 million worth of cryptocurrency reported as stolen from exchanges in the first nine months of 2018 1 ◮ Fractional reserves ◮ One possible solution: Periodic proof of solvency ◮ Proof of reserves ◮ Proof of liabilities ◮ What’s in the name? ◮ Quisquis, a privacy focused cryptocurrency, proposed by Fauzi et al . in 2018 ◮ Latin for Quisquis → whoever, whatever ◮ Latin for Nummatus (a proof of reserves protocol) → moneyed, rich ◮ Proves exchanges are rich enough to meet their liabilities, preserves privacy of exchanges 1 https://ciphertrace.com/crypto-aml-report-2018q3 3 / 14

  6. Proof of Reserves Protocol ◮ The exchange needs to prove the possesion of certain amount of reserves ◮ Non-private proof of reserves protocol ◮ Exchange creates a transaction keeping owned addresses as input and some other owned addresses as output ◮ Reveals owned addresses and reserves amount 4 / 14

  7. Provisions: a Privacy Preserving Proof of Reserves Protocol for Bitcoin ◮ Proposed by Dagher et al . in 2015 ◮ Pedersen commitments: to hide the amount associated with a public key ◮ G is a cyclic group of prime order, let g be a generator, DL is hard ◮ h = g x ∈ G is chosen, x is unknown ◮ Pedersen commitment p ( a , y ) for amount a is given as p = g a h y ◮ y is random scalar, called the blinding factor 5 / 14

  8. Provisions: a Privacy Preserving Proof of Reserves Protocol for Bitcoin ◮ Proposed by Dagher et al . in 2015 ◮ Pedersen commitments: to hide the amount associated with a public key ◮ G is a cyclic group of prime order, let g be a generator, DL is hard ◮ h = g x ∈ G is chosen, x is unknown ◮ Pedersen commitment p ( a , y ) for amount a is given as p = g a h y ◮ y is random scalar, called the blinding factor ◮ Proof of reserves: Main Idea 5 / 14

  9. Provisions: a Privacy Preserving Proof of Solvency Protocol for Bitcoin ◮ For each address in P anon , the exchange chooses a random scalar y i and calculates Pedersen commitment � g a i h y i if i ∈ I own p i = h y i if i / ∈ I own ◮ The exchange proves in zero knowledge that p i s are calculated properly 6 / 14

  10. Provisions: a Privacy Preserving Proof of Solvency Protocol for Bitcoin ◮ For each address in P anon , the exchange chooses a random scalar y i and calculates Pedersen commitment � g a i h y i if i ∈ I own p i = h y i if i / ∈ I own ◮ The exchange proves in zero knowledge that p i s are calculated properly ◮ The exchange calculates |P anon | � |P anon | � i ∈I own a i h � y i p res = p i = g i =1 i =1 ◮ Motivated PoR protocols: MProve for Monero, Revelio for Grin, and Nummatus for Quisquis 6 / 14

  11. A Brief Introduction to Quisquis ◮ A recently proposed privacy focused cryptocurrency ◮ Hides the sender, the receiver and the amount of the transaction ◮ Privacy focused cryptocurrency → monotonic growth of UTXO set ◮ Solves the problem with an account based model 7 / 14

  12. Quisquis Accounts ◮ ( G , g , p ), prime order p with generator g , DDH is hard ◮ Quisquis account: acct = (public key , commitment) = (( a , b ) , ( c , d )) ∈ G 4 8 / 14

  13. Quisquis Accounts ◮ ( G , g , p ), prime order p with generator g , DDH is hard ◮ Quisquis account: acct = (public key , commitment) = (( a , b ) , ( c , d )) ∈ G 4 ◮ Public key: ( a , b ) = ( a , a k ) = ( g t , g k · t ), t arbitrary scalar, k secret key ◮ Commitment: ( c , d ) = ( c , g v c k ) = ( a r , g v a kr ) = ( a r , g v b r ), r arbitrary scalar, v ∈ F p is the amount 8 / 14

  14. Quisquis Accounts ◮ ( G , g , p ), prime order p with generator g , DDH is hard ◮ Quisquis account: acct = (public key , commitment) = (( a , b ) , ( c , d )) ∈ G 4 ◮ Public key: ( a , b ) = ( a , a k ) = ( g t , g k · t ), t arbitrary scalar, k secret key ◮ Commitment: ( c , d ) = ( c , g v c k ) = ( a r , g v a kr ) = ( a r , g v b r ), r arbitrary scalar, v ∈ F p is the amount ◮ To claim ownership of acct : prove knowledge of ( k , v ) such that b = a k ∧ d = g v c k , knowledge of t and r are not required! 8 / 14

  15. Simplus: A Semi-private Proof of Reserves Protocol for Quisquis ◮ After the j th block appears in the blockchain, exchange publishes the set of owned accounts A own = { acct 1 , acct 2 , . . . , acct m } 9 / 14

  16. Simplus: A Semi-private Proof of Reserves Protocol for Quisquis ◮ After the j th block appears in the blockchain, exchange publishes the set of owned accounts A own = { acct 1 , acct 2 , . . . , acct m } ◮ For i = 1 to m , the exchange publishes a Pedersen commitment to the amount: p i = g v i h k i (DL of h w.r.t. g is unknown) ◮ For i = 1 to m , the exchange publishes NIZKPoK signatures for � � � � α �� ∧ p i d − 1 c − 1 � PoK α b i = a α = h . � i i i � 9 / 14

  17. Simplus: A Semi-private Proof of Reserves Protocol for Quisquis ◮ After the j th block appears in the blockchain, exchange publishes the set of owned accounts A own = { acct 1 , acct 2 , . . . , acct m } ◮ For i = 1 to m , the exchange publishes a Pedersen commitment to the amount: p i = g v i h k i (DL of h w.r.t. g is unknown) ◮ For i = 1 to m , the exchange publishes NIZKPoK signatures for � � � � α �� ∧ p i d − 1 c − 1 � PoK α b i = a α = h . � i i i � ◮ b i = a k i = ⇒ α = k i for each i i � α = ◮ p i d − 1 c − 1 ⇒ p i = g v i h k i , as d i = g v i c k i � = h i i i ◮ The exchange publishes p res = � m i =1 p i 9 / 14

  18. Simplus: A Semi-private Proof of Reserves Protocol for Quisquis ◮ After the j th block appears in the blockchain, exchange publishes the set of owned accounts A own = { acct 1 , acct 2 , . . . , acct m } ◮ For i = 1 to m , the exchange publishes a Pedersen commitment to the amount: p i = g v i h k i (DL of h w.r.t. g is unknown) ◮ For i = 1 to m , the exchange publishes NIZKPoK signatures for � � � � α �� ∧ p i d − 1 c − 1 � PoK α b i = a α = h . � i i i � ◮ b i = a k i = ⇒ α = k i for each i i � α = ◮ p i d − 1 c − 1 ⇒ p i = g v i h k i , as d i = g v i c k i � = h i i i ◮ The exchange publishes p res = � m i =1 p i ◮ The exchange owned accounts are revealed, but not the reserves amount 9 / 14

  19. Nummatus: A Private Proof of Reserves Protocol for Quisquis ◮ The exchange publishes an anonymity set such that A anon ⊃ A own = { acct 1 , acct 2 , . . . , acct n } 10 / 14

  20. Nummatus: A Private Proof of Reserves Protocol for Quisquis ◮ The exchange publishes an anonymity set such that A anon ⊃ A own = { acct 1 , acct 2 , . . . , acct n } ◮ The exchange needs a sequence h 1 , h 2 , h 3 , · · · with unknown DL w.r.t. g and each other ◮ Can be generated by repeated hashing 10 / 14

  21. Nummatus: A Private Proof of Reserves Protocol for Quisquis ◮ The exchange publishes an anonymity set such that A anon ⊃ A own = { acct 1 , acct 2 , . . . , acct n } ◮ The exchange needs a sequence h 1 , h 2 , h 3 , · · · with unknown DL w.r.t. g and each other ◮ Can be generated by repeated hashing ◮ After j th block in Quisquis blockchain, for each acct i ∈ A anon , the exchange publishes � g v i h k i if acct i ∈ A own , p j j i = h w i if acct i �∈ A own , j w i s are random scalar 10 / 14

  22. Nummatus: A Private Proof of Reserves Protocol for Quisquis ◮ For each acct i ∈ A anon , the exchange generates a NIZKPoK signature σ i of � � � � α � � �� p i = h β b i = a α ∧ p i d − 1 c − 1 � PoK ( α, β ) = ∨ h j � i i i j � 11 / 14

  23. Nummatus: A Private Proof of Reserves Protocol for Quisquis ◮ For each acct i ∈ A anon , the exchange generates a NIZKPoK signature σ i of � � � � α � � �� p i = h β b i = a α ∧ p i d − 1 c − 1 � PoK ( α, β ) = ∨ h j � i i i j � ◮ NIZKPoK signature proves that either p i commits to 0 or p i = g v i h k i j 11 / 14

  24. Nummatus: A Private Proof of Reserves Protocol for Quisquis ◮ For each acct i ∈ A anon , the exchange generates a NIZKPoK signature σ i of � � � � α � � �� p i = h β b i = a α ∧ p i d − 1 c − 1 � PoK ( α, β ) = ∨ h j � i i i j � ◮ NIZKPoK signature proves that either p i commits to 0 or p i = g v i h k i j ◮ The exchange publishes p res = � n i =1 p i 11 / 14

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend