Coconut: Threshold Issuance Selective Disclosure Credentials with Applications to Distributed Ledgers
Authors Alberto Sonnino* Mustafa Al-Bassam* Shehar Bano* Sarah Meiklejohn* George Danezis*
* University College London
February 2019
Coconut: Threshold Issuance Selective Disclosure Credentials with - - PowerPoint PPT Presentation
Coconut: Threshold Issuance Selective Disclosure Credentials with Applications to Distributed Ledgers Authors Alberto Sonnino* Mustafa Al-Bassam* Shehar Bano* Sarah Meiklejohn* George Danezis* * University College London February 2019 The
Authors Alberto Sonnino* Mustafa Al-Bassam* Shehar Bano* Sarah Meiklejohn* George Danezis*
* University College London
February 2019
2
Mustafa Al-Bassam Alberto Sonnino Bano Shehar Sarah Meiklejohn George Danezis
3
4
send it to the blockchain anyone can verify write the contract
5
send it to the blockchain anyone can verify write the contract
6
write the contract
7
write the contract some attributes
8
credentials write the contract some attributes
9
another contract credentials
10
transactions are recorded on chain Attributes & signing key should be secret Credentials showing should be unlinkable
11
transactions are recorded on chain attributes & signing key should be secret Credentials showing should be unlinkable
12
transactions are recorded on chain attributes & signing key should be secret credentials showing should be unlinkable
13
Blindness Unlinkability Threshold Authority Authorities Non- Interactivity Efficiency
14
Blindness Unlinkability Threshold Authority Authorities Non- Interactivity Efficiency
15
Blindness Unlinkability Threshold Authority Authorities Non- Interactivity Efficiency
16
Blindness Unlinkability Threshold Authority Authorities Non- Interactivity Efficiency
17
Blindness Unlinkability Threshold Authority Authorities Non- Interactivity Efficiency
18
Blindness Unlinkability Threshold Authority Authorities Non- Interactivity Efficiency
19
20
Coconut credentials scheme Coconut smart contract library & example of applications
21
Coconut credentials scheme Coconut smart contract library & example of applications
22
Coconut credentials scheme Coconut smart contract library & example of applications
23
24
25
26
27
28
OpenSSL
n t Users need to collect
29
OpenSSL
n honest authorities t Users need to collect
30
BLS Signatures PS Signatures
Coconut
31
BLS Signatures PS Signatures h h h H H H( ( (c c cm
m m)
) ) σ σ σ ( ( (h h h, , ,h h hx
x x+ + +m m my y y)
) )
m m m
take an attribute: compute: signature: & secret key: (
( (x x x, , ,y y y) ) )
Coconut
32
repeat times
( ˜ σi)
(Λ, φ) (Θ, φ)
33
issue
Ledger
request create verify
À Ã Õ Œ œ – —
À Ã Õ Œ œ – —
À Ã Õ Œ œ – — À Ã Õ Œ œ – —
À Ã Õ Œ œ – —
À Ã Õ Œ œ – — À Ã Õ Œ œ – —
contract info contract info attributes attributes credentials credentials credentials
authorities
34
vote
Ledger
petition creator citizen
proof of identity
authorities
À Ã Õ Œ œ – — À Ã Õ Œ œ – —
credentials sign petition
À Ã Õ Œ œ – — À Ã Õ Œ œ – —
create petition
happens every campaign happens
35
The Coconut cryptographic library
Python & Timing benchmark &
Smart contract library https://github.com/asonnino/coconut Everything is released as open source software Applications Coin tumbler E-Petition (CRD proxy distribution )
36
The Coconut cryptographic library
Python & Timing benchmark &
Smart contract library https://github.com/asonnino/coconut Everything is released as open source software Applications Coin tumbler E-Petition (CRD proxy distribution )
37
The Coconut cryptographic library
Python & Timing benchmark &
Smart contract library https://github.com/asonnino/coconut Everything is released as open source software Applications Coin tumbler E-Petition (CRD proxy distribution )
38
The Coconut cryptographic library
Python & Timing benchmark &
Smart contract library https://github.com/asonnino/coconut Everything is released as open source software Applications Coin tumbler E-Petition (CRD proxy distribution )
39
The Coconut cryptographic library
Python & Timing benchmark &
Smart contract library https://github.com/asonnino/coconut Everything is released as open source software Applications Coin tumbler E-Petition (CRD proxy distribution )
40
signing is fast, verifying takes 10ms verify sign
PrepareBlindSign 2.633 ± 0.003 BlindSign 3.356 ± 0.002 Unblind 0.445 ± 0.002 AggCred 0.454 ± 0.000 ProveCred 1.544 ± 0.001 VerifyCred 10.497 ± 0.002
41
No matter how many attributes…
2 Group Elements
No matter how many authorities…
42
Signing scales linearly, verifying is constant time
Number of authorities: n, Signature size: 132 bytes
Transaction complexity size [B]
Signature on public attribute: request credential O(n) 32 À issue credential O(n) 132 Ã verify credential O(1) 162 Signature on private attribute: request credential O(n) 516 À issue credential O(n) 132 Ã verify credential O(1) 355
issue verify
43
pick 10 locations across the world server client
44
client latency VS number of authorities
1 2 3 4 5 6 7 8 9 10
Threshold parameter
100 200 300 400 500 600
Client Latency [ms]
Public attribute Private attribute
45
client latency VS number of authorities
1 2 3 4 5 6 7 8 9 10
Threshold parameter
100 200 300 400 500 600
Client Latency [ms]
Public attribute Private attribute
Europe
(close to client)
Tokyo & Sidney
46
Full cryptographic scheme Smart contract library evaluation
Coconut: Threshold Issuance Selective Disclosure Credentials with Applications to Distributed Ledgers
Alberto Sonnino University College London Mustafa Al-Bassam University College London Shehar Bano University College London George Danezis University College London The Alan Turing Institute Abstract
We present Coconut, a novel selective disclosure cre- dential scheme supporting distributed threshold issuance, public and private attributes, re-randomization, and mul- tiple unlinkable selective attribute revelations. Coconut can be used by modern blockchains to ensure confiden- tiality, authenticity and availability even when a subset of credential issuing authorities are malicious or offline. We implement and evaluate a generic Coconut smart contract library for Chainspace and Ethereum; and present three applications related to anonymous payments, electronic petitions, and distribution of proxies for censorship resis-1 Introduction
Selective disclosure credentials [15, 17] allow the is- suance of a credential to a user, and the subsequent unlinkable revelation (or ‘showing’) of some of the at- tributes it encodes to a verifier for the purposes of au- thentication, authorization or to implement electronicarXiv:submit/2158644 [cs.CR] 20 Feb 2018
Applications evaluation and benchmarking Coin tumbler, CRD proxy applications
47
Adding and removing authorities is complicated. Can we do better than re-running the key generation algorithm? Current key generation algorithms are complex to implement. Can we design a key generation algorithm for blockchains?
48
Adding and removing authorities is complicated. Can we do better than re-running the key generation algorithm? Current key generation algorithms are complex to implement. Can we design a key generation algorithm for blockchains?
49
A general framework allowing nodes to execute any kind of threshold cryptography?
50
Coconut credentials scheme Coconut smart contract library & example of applications
51
Thank you for your attention
This work is supported in part by EPSRC Grant EP/M013286/1, the EU H2020 DECODE project (grant agreement number 732546), and The Alan Turing Institute.
https://github.com/asonnino/coconut