1
1
\mode *
2
2
3
+ \section {What's the problem? }
4
+
5
+ \begin {frame }
6
+ \centering
7
+ \includegraphics [height=\textheight ]{trump.jpg}
8
+ \end {frame }
9
+
10
+
3
11
\section [Participating ]{Participating in a protest }
4
12
5
13
\subsection {Joining a protest }
@@ -9,13 +17,6 @@ \subsection{Joining a protest}
9
17
\includegraphics [height=0.5\textheight ]{ProtestVerif-join.png}
10
18
\end {frame }
11
19
12
- \begin {frame }
13
- \begin {align* }
14
- cid &\gets H(\text {\enquote {WE MUST STAND UP \dots }}) \\
15
- pid &\gets PRF_{k_P}(cid)
16
- \end {align* }
17
- \end {frame }
18
-
19
20
\subsection {During in a protest }
20
21
21
22
\begin {frame }
@@ -28,60 +29,13 @@ \subsection{During in a protest}
28
29
\includegraphics {proofshare.tikz}
29
30
\end {frame }
30
31
31
- \begin {frame }
32
- \begin {minipage }{\linewidth }
33
- \begin {align* }
34
- P\to W\colon & pid \\
35
- W\leftrightarrow P\colon & \text {perform distance bounding} \\
36
- W\colon & wid\gets PRF_{k_W}(pid), \\
37
- & wsig\gets PRF_{k_W}(wid, t_s, l) \\
38
- W\to P\colon & (wid, t_s, l, wsig) \\
39
- \end {align* }
40
- \end {minipage }
41
- \end {frame }
42
-
43
- \begin {frame }
44
- % XXX Describe distance bounding
45
- \centering
46
- \procedure {Distance-bounding Schnorr}{%
47
- \textbf {Prover }\colon g, q = |\langle g\rangle |, x\in \ZZ _q
48
- \> \>
49
- \textbf {Verifier }\colon g, q, X = g^x \\
50
- \beta _i \sample \bin , y \sample \ZZ _q
51
- \> \> \alpha _i \sample \bin \\
52
- g^y, commit(\beta _1, \dotsc , \beta _n) \> \sendmessageright *{} \> \\
53
- \> \text {Rapid phase} \> \\
54
- \> \sendmessageleft *{\alpha _i} \> \\
55
- \> \sendmessageright *{\beta _i} \> \\
56
- \> \text {Verification phase} \> \\
57
- c\gets \alpha _1|\beta _2|\dotsb |\alpha _n|\beta _n \\
58
- r\gets y + cx \> \sendmessageright *{} \> g^r =^? X^cY\\
59
- }
60
- \end {frame }
61
-
62
32
\subsection {After the protest }
63
33
64
34
\begin {frame }
65
35
\centering
66
36
\includegraphics [height=0.5\textheight ]{ProtestVerif-endprotest.png}
67
37
\end {frame }
68
38
69
- \begin {frame }
70
- \begin {align* }
71
- \{ W, P\} \rightsquigarrow S\colon & H(pid, wid, t_s, l, wsig)
72
- \end {align* }
73
- \end {frame }
74
-
75
- \begin {frame }
76
- \begin {align* }
77
- W\rightsquigarrow S\colon & (pid, wid, t_s, l, wsig),\\
78
- & NIZK(wid = PRF_{k_W}(pid), wsig = PRF_{k_W}(wid, t_s, l),\\
79
- & \exists sign(k_W)) \\
80
- P\rightsquigarrow S\colon & (pid, wid, t_s, l, wsig),\\
81
- & NIZK(pid = PRF_{k_P}(cid), \exists sign(k_P))
82
- \end {align* }
83
- \end {frame }
84
-
85
39
86
40
\section [Verifying ]{Verifying a protest }
87
41
@@ -93,31 +47,41 @@ \subsection{After the protest}
93
47
\subsection {Verifying proof shares }
94
48
95
49
\begin {frame }
50
+ \vspace {-2em}
51
+ \begin {center }
52
+ \( (\cid , \pid , \wid , t_s, t_s', l, \pi _P, \pi _W)\) on blockchain.
53
+ \end {center }
54
+
55
+ \pause
56
+
96
57
\begin {columns }
97
- \begin {column }{0.5 \linewidth }
58
+ \begin {column }{0.6 \linewidth }
98
59
\tiny
99
60
\includegraphics [width=\linewidth ]{proofshare.tikz}
100
61
\end {column }
101
62
102
63
\begin {column }{0.5\linewidth }
103
- \begin {itemize }
64
+ \begin {enumerate }
104
65
\item Check that \( cid\) is what you're interested in.
66
+
67
+ \pause
68
+
105
69
\item Verify the \ac {NIZK} proofs.
106
- \item Each \( PRF\) is computed correctly.
70
+
71
+ \pause
72
+
73
+ \item Each \( \ACprf \) is computed correctly.
107
74
\item The owner knows a signature on the key used.
108
- \end {itemize }
75
+ \end {enumerate }
109
76
\end {column }
110
77
\end {columns }
111
78
\end {frame }
112
79
113
80
\subsection {Counting proofs }
114
81
115
82
\begin {frame }
116
- \begin {itemize }
117
- \item Each \( pid\) with more than \( t\) valid proof shares is counted.
118
- \item \( t\) is a threshold set to be higher than expected size of collusion
119
- clusters.
120
- \end {itemize }
83
+ \centering
84
+ \includegraphics [width=\linewidth ]{map-with-dots.png}
121
85
\end {frame }
122
86
123
87
\begin {frame }
@@ -127,22 +91,90 @@ \subsection{Counting proofs}
127
91
\end {frame }
128
92
129
93
94
+ \begin {figure }
95
+ \centering
96
+ % \footnotesize
97
+ \begin {minipage }{\linewidth }
98
+ \begin {align* }
99
+ O\to \text {all}\colon & \text {manifesto} \\
100
+ P\colon & t_s\gets \TSget \\
101
+ & \cid\gets \Hash [\text {manifesto}], \\
102
+ & \pid\gets \ACprf [_{\sk _P}][\cid ] \\
103
+ W\colon & t_s'\gets \TSget
104
+ \\ [-1em]
105
+ \noalign {\hfill Join}
106
+ \midrule
107
+ \noalign {\hfill Participation}
108
+ \\ [-3em]
109
+ P\to W\colon & \pid \\
110
+ P\leftrightarrow W\colon &
111
+ \PPK\mleft \{ (\sk _P) : \mright . \\
112
+ & \qquad \pid = \ACprf [_{\sk _P}][\cid ], \\
113
+ & \qquad \mleft . \sigma _P' = \ACblind [\ACsign [_{\ssk }][\sk _P]] \mright \}
114
+ \\
115
+ W\colon & \wid\gets \ACprf [_{\sk _W}][\pid ] \\
116
+ W\to P\colon & (\wid , t_s', l)
117
+ \\ [-1em]
118
+ \noalign {\hfill Participation}
119
+ \midrule
120
+ \noalign {\hfill Submission}
121
+ \\ [-2em]
122
+ P\colon & t_e\gets \TSstamp [\Hash [\pid , \wid , t_s, t_s', l]] \\
123
+ W\colon & t_e'\gets \TSstamp [\Hash [\pid , \wid , t_s, t_s', l]] \\
124
+ W\to S\colon & (\pid , \wid , t_s, t_s', t_e, l, \pi _{\wid }),\quad
125
+ \text {where} \\
126
+ & \pi _{\wid } = \SPK\mleft \{ (\sk _W) : \mright . \\
127
+ & \qquad \wid = \ACprf [_{\sk _W}][\pid ], \\
128
+ & \qquad \mleft . \sigma _W' = \ACblind [\ACsign [_{\ssk }][\sk _W]]\mright \}
129
+ \\
130
+ & \qquad\qquad (\pid , \wid , t_s, t_s', l) \\
131
+ P\to S\colon & (\cid , \pid , \wid , t_s, t_s', t_e, l, \pi _{\pid }),\quad
132
+ \text {where}\\
133
+ & \pi _{\pid } = \SPK\mleft \{ (\sk _P) : \mright . \\
134
+ & \qquad \pid = \ACprf [_{\sk _P}][\cid ], \\
135
+ & \qquad \mleft . \sigma _P' = \ACblind [\ACsign [_{\ssk }][\sk _P]] \mright \}
136
+ \\
137
+ & \qquad\qquad (\cid , \pid , \wid , t_s, t_s', l)
138
+ \end {align* }
139
+ \end {minipage }
140
+ \caption {%
141
+ An overview of the Join, Participation and Submission phases of \PRIVO .\@
142
+ The organizer \( O\) broadcasts the manifesto.
143
+ The protester \( P\) , witness \( W\) and their computations are as in \cref {fig:ProofFig }.
144
+ Finally, both \( P\) and \( W\) submits the proof shares to a permanent storage \( S\) .
145
+ }%
146
+ \label {fig:ProtocolOverview }
147
+ \end {figure }
148
+
130
149
\section {Conclusions }
131
150
132
151
\begin {frame }
133
- \begin {alertblock }{Limits }
152
+ \begin {block }{Contributions }
134
153
\begin {itemize }
135
- \item Cannot trust results that are pro-government if government issues
136
- identities (Sybil).
154
+ \item Distance-bounding Schnorr protocol
155
+ \item \Ie distance-bounding \acs {ZKP} and anonymous credentials
156
+ \item Solves crowd counting in adversarial setting.
157
+ \end {itemize }
158
+ \end {block }
159
+ \end {frame }
137
160
138
- \pause {}
161
+ \begin {frame }
162
+ \begin {greenblock }{Possibilities}
163
+ \begin {itemize }
164
+ \item We can implement this by extending BankID.
165
+ \item There are blockchains (ledgers) with reasonable transaction
166
+ throughput, \eg OmniLedger.
167
+ \end {itemize }
168
+ \end {greenblock }
139
169
140
- \item If \emph { everyone } colludes we cannot verify the location.
170
+ \pause
141
171
142
- \pause {}
172
+ \begin {alertblock }{Limits}
173
+ \begin {itemize }
174
+ \item Cannot trust results that are pro-government if government issues
175
+ credentials (Sybil).
143
176
144
- \item No terrorist-fraud resistance: some people can still stay at home,
145
- and relay responses to distance-bounding challenges.
177
+ \item Requires a chip in smartphones for distance bounding.
146
178
\end {itemize }
147
179
\end {alertblock }
148
180
\end {frame }
0 commit comments