summaryrefslogtreecommitdiff
path: root/doc/paper/figs
diff options
context:
space:
mode:
authorJeff Burdges <burdges@gnunet.org>2016-09-12 15:53:20 +0200
committerJeff Burdges <burdges@gnunet.org>2016-09-12 15:53:20 +0200
commit937d7f48b9707b955615b92ec3b29059824dbbde (patch)
treebebb98a31b72b1fcd127be43fab3d5209c5aeba0 /doc/paper/figs
parentb1ec11e4922a3e5a655ca70614bc1a8988cb695a (diff)
downloadexchange-937d7f48b9707b955615b92ec3b29059824dbbde.tar.gz
exchange-937d7f48b9707b955615b92ec3b29059824dbbde.tar.bz2
exchange-937d7f48b9707b955615b92ec3b29059824dbbde.zip
Start making the protocol more explicit
Diffstat (limited to 'doc/paper/figs')
-rw-r--r--doc/paper/figs/deposit.tex62
-rw-r--r--doc/paper/figs/keys.tex54
-rw-r--r--doc/paper/figs/refresh.tex200
-rw-r--r--doc/paper/figs/withdraw.tex49
4 files changed, 365 insertions, 0 deletions
diff --git a/doc/paper/figs/deposit.tex b/doc/paper/figs/deposit.tex
new file mode 100644
index 000000000..101d4f700
--- /dev/null
+++ b/doc/paper/figs/deposit.tex
@@ -0,0 +1,62 @@
+
+ \begin{figure}[th]
+ \begin{minipage}[b]{0.45\linewidth}
+ \begin{center}
+ \begin{tikzpicture}[scale = 0.4,
+ transform shape,
+ msglabel/.style = { text = Black, yshift = .3cm,
+ sloped, midway },
+ okmsg/.style = { ->, color = MidnightBlue, thick,
+ >=stealth },
+ rstmsg/.style = { ->, color = BrickRed, thick,
+ >=stealth }
+ ]
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h1) at (-4, 0) {};
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h2) at (4, 0) {};
+ \node[above = 0cm of h1] {Merchant};
+ \node[above = 0cm of h2] {Exchange};
+
+ \path[->, color = MidnightBlue, very thick, >=stealth]
+ (-5, 4.5) edge
+ node[rotate=90, text = Black, yshift = .3cm] {Time}
+ (-5, -4.5);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h1.east)+(0,3)$) edge
+ node[text = Black, yshift = .3cm, sloped] {$S_{DK}(C), S_{c}(D)$}
+ ($(h2.west)+(0,2)$);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h2.west)+(0,0.5)$) edge
+ node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$}
+ ($(h1.east)+(0,-0.5)$);
+ \path[rstmsg]
+ ($(h2.west)+(0, -2.5)$) edge
+ node[msglabel] {409 CONFLICT: $S_{c}(D')$}
+ ($(h1.east)+(0, -3.5)$);
+ \node at (5.3, 0) {};
+ \end{tikzpicture}
+ \end{center}
+ \end{minipage}
+ \hspace{0.5cm}
+ \begin{minipage}[b]{0.45\linewidth}
+ \tiny
+ \begin{description}
+ \item[$DK$] Denomination key
+ \item[$S_{DK}()$] RSA-FDH signature using $DK$
+ \item[$c$] Private coin key, $C := cG$.
+ \item[$S_{C}()$] EdDSA signature using $c$
+ \item[$D$] Deposit details
+ \item[$SK$] Exchange's signing key
+ \item[$S_{SK}()$] EdDSA signature using $SK$
+ \item[$D'$] Conficting deposit details $D' \not= D$
+ \end{description}
+ \end{minipage}
+ \end{figure}
+
diff --git a/doc/paper/figs/keys.tex b/doc/paper/figs/keys.tex
new file mode 100644
index 000000000..839c273f1
--- /dev/null
+++ b/doc/paper/figs/keys.tex
@@ -0,0 +1,54 @@
+ \begin{figure}[th]
+ \begin{minipage}[b]{0.45\linewidth}
+ \begin{center}
+ \begin{tikzpicture}[scale = 0.4,
+ transform shape,
+ msglabel/.style = { text = Black, yshift = .3cm,
+ sloped, midway },
+ okmsg/.style = { ->, color = MidnightBlue, thick,
+ >=stealth },
+ rstmsg/.style = { ->, color = BrickRed, thick,
+ >=stealth }
+ ]
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h1) at (-4, 0) {};
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h2) at (4, 0) {};
+ \node[above = 0cm of h1] {Wallet};
+ \node[above = 0cm of h2] {Exchange};
+
+ \path[->, color = MidnightBlue, very thick, >=stealth]
+ (-5, 4.5) edge
+ node[rotate=90, text = Black, yshift = .3cm] {Time}
+ (-5, -4.5);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h1.east)+(0,3)$) edge
+ node[text = Black, yshift = .3cm, sloped] {GET {\tt /keys}}
+ ($(h2.west)+(0,2)$);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h2.west)+(0,0.5)$) edge
+ node[text = Black, yshift = .3cm, sloped] {200 OK: $S_T(DK,A_{DK},M), S_M(SK)$}
+ ($(h1.east)+(0,-0.5)$);
+ \node at (5.3, 0) {};
+ \end{tikzpicture}
+ \end{center}
+ \end{minipage}
+ \hspace{0.4cm}
+ \begin{minipage}[b]{0.45\linewidth}
+ \tiny
+ \begin{description}
+ \item[$T$] financial regulator key Necessarily pinned
+ \item[$DK$] RSA public key (``denomination key'')
+ \item[$A_{DK}$] Value of coins signed by $DK$
+ \item[$M$] Offline master key of exchange
+ \item[$SK$] Online signing key of exchange
+ \end{description}
+ \end{minipage}
+ \end{figure}
+
diff --git a/doc/paper/figs/refresh.tex b/doc/paper/figs/refresh.tex
new file mode 100644
index 000000000..6908527e1
--- /dev/null
+++ b/doc/paper/figs/refresh.tex
@@ -0,0 +1,200 @@
+\begin{frame}{Taler {\tt /refresh/melt}}
+ \begin{figure}[th]
+ \begin{minipage}[b]{0.45\linewidth}
+ \begin{center}
+ \begin{tikzpicture}[scale = 0.4,
+ transform shape,
+ msglabel/.style = { text = Black, yshift = .3cm,
+ sloped, midway },
+ okmsg/.style = { ->, color = MidnightBlue, thick,
+ >=stealth },
+ rstmsg/.style = { ->, color = BrickRed, thick,
+ >=stealth }
+ ]
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h1) at (-4, 0) {};
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h2) at (4, 0) {};
+ \node[above = 0cm of h1] {Customer};
+ \node[above = 0cm of h2] {Exchange};
+
+ \path[->, color = MidnightBlue, very thick, >=stealth]
+ (-5, 4.5) edge
+ node[rotate=90, text = Black, yshift = .3cm] {Time}
+ (-5, -4.5);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h1.east)+(0,3)$) edge
+ node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$}
+ ($(h2.west)+(0,2)$);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h2.west)+(0,0.5)$) edge
+ node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$}
+ ($(h1.east)+(0,-0.5)$);
+ \path[rstmsg]
+ ($(h2.west)+(0, -2.5)$) edge
+ node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$}
+ ($(h1.east)+(0, -3.5)$);
+ \node at (5.3, 0) {};
+ \end{tikzpicture}
+ \end{center}
+ \end{minipage}
+ \hspace{0.5cm}
+ \begin{minipage}[b]{0.45\linewidth}
+ \tiny
+ \begin{description}
+ \item[$\kappa$] System-wide security parameter, usually 3.
+ \\ \smallskip
+ \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\
+ $D + \sum_i A_{DK^{(i)}} < A_{DK}$
+ \item[$t_j$] Random scalar for $j<\kappa$
+ \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$
+ \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE
+ \item[$b_j^{(i)}$] $:= \texttt{KDFb}(k_j,i)$ % blinding factor
+ \item[$c_j^{(i)}$] $:= \texttt{KDFc}(k_j,i)$ % coin secret keys
+ \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys
+ \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\
+ $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$
+ \\ \smallskip
+ \item[$\gamma$] Random value in $[0,\kappa)$
+% \\ \smallskip
+% \item[$X$] Deposit or refresh
+ \end{description}
+ \end{minipage}
+ \end{figure}
+\end{frame}
+
+
+\begin{frame}{Taler {\tt /refresh/reveal}}
+ \begin{figure}[th]
+ \begin{minipage}[b]{0.45\linewidth}
+ \begin{center}
+ \begin{tikzpicture}[scale = 0.4,
+ transform shape,
+ msglabel/.style = { text = Black, yshift = .3cm,
+ sloped, midway },
+ okmsg/.style = { ->, color = MidnightBlue, thick,
+ >=stealth },
+ rstmsg/.style = { ->, color = BrickRed, thick,
+ >=stealth }
+ ]
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h1) at (-4, 0) {};
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h2) at (4, 0) {};
+ \node[above = 0cm of h1] {Customer};
+ \node[above = 0cm of h2] {Exchange};
+
+ \path[->, color = MidnightBlue, very thick, >=stealth]
+ (-5, 4.5) edge
+ node[rotate=90, text = Black, yshift = .3cm] {Time}
+ (-5, -4.5);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h1.east)+(0,3)$) edge
+ node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$}
+ ($(h2.west)+(0,2)$);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h2.west)+(0,0.5)$) edge
+ node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$}
+ ($(h1.east)+(0,-0.5)$);
+ \path[rstmsg]
+ ($(h2.west)+(0, -2.5)$) edge
+ node[msglabel] {400 BAD REQUEST: $Z$}
+ ($(h1.east)+(0, -3.5)$);
+ \node at (5.3, 0) {};
+ \end{tikzpicture}
+ \end{center}
+ \end{minipage}
+ \hspace{0.5cm}
+ \begin{minipage}[b]{0.45\linewidth}
+ \tiny
+ \begin{description}
+ \item[$\cal DK$] $:= [DK^{(i)}]_i$
+ \item[$t_j$] .. \\ \smallskip
+
+ \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip
+
+ \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$
+ \item[$b_\gamma^{(i)}$] $:= \texttt{KDFb}(k_\gamma,i)$
+ \item[$c_\gamma^{(i)}$] $:= \texttt{KDFc}(k_\gamma,i)$
+ \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$
+
+ \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$
+ \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$
+ \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip
+
+ \item[$Z$] Cut-and-choose missmatch information
+ \end{description}
+ \end{minipage}
+ \end{figure}
+\end{frame}
+
+
+\begin{frame}{Taler {\tt /refresh/link}}
+ \begin{figure}[th]
+ \begin{minipage}[b]{0.45\linewidth}
+ \begin{center}
+ \begin{tikzpicture}[scale = 0.4,
+ transform shape,
+ msglabel/.style = { text = Black, yshift = .3cm,
+ sloped, midway },
+ okmsg/.style = { ->, color = MidnightBlue, thick,
+ >=stealth },
+ rstmsg/.style = { ->, color = BrickRed, thick,
+ >=stealth }
+ ]
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h1) at (-4, 0) {};
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h2) at (4, 0) {};
+ \node[above = 0cm of h1] {Customer};
+ \node[above = 0cm of h2] {Exchagne};
+
+ \path[->, color = MidnightBlue, very thick, >=stealth]
+ (-5, 4.5) edge
+ node[rotate=90, text = Black, yshift = .3cm] {Time}
+ (-5, -4.5);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h1.east)+(0,3)$) edge
+ node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$}
+ ($(h2.west)+(0,2)$);
+ \path[->, color = MidnightBlue, thick, >=stealth]
+ ($(h2.west)+(0,0.5)$) edge
+ node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$}
+ ($(h1.east)+(0,-0.5)$);
+ \path[rstmsg]
+ ($(h2.west)+(0, -2.5)$) edge
+ node[msglabel] {404 NOT FOUND}
+ ($(h1.east)+(0, -3.5)$);
+ \node at (5.3, 0) {};
+ \end{tikzpicture}
+ \end{center}
+ \end{minipage}
+ \hspace{0.5cm}
+ \begin{minipage}[b]{0.45\linewidth}
+ \tiny
+ \begin{description}
+ \item[$C$] Old coind public key \\ \smallskip
+ \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$
+ \end{description}
+ \end{minipage}
+ \end{figure}
+\end{frame}
+
diff --git a/doc/paper/figs/withdraw.tex b/doc/paper/figs/withdraw.tex
new file mode 100644
index 000000000..8fc1ded39
--- /dev/null
+++ b/doc/paper/figs/withdraw.tex
@@ -0,0 +1,49 @@
+\begin{SCfigure}
+ \begin{minipage}[b]{0.45\linewidth}
+ \begin{tikzpicture}[scale = 0.4,
+ transform shape,
+ msglabel/.style = { text = Black, yshift = .3cm,
+ sloped, midway },
+ okmsg/.style = { ->, color = MidnightBlue, thick,
+ >=stealth },
+ rstmsg/.style = { ->, color = BrickRed, thick,
+ >=stealth }
+ ]
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h1) at (-4, 0) {};
+ \node[draw = MidnightBlue,
+ fill = CornflowerBlue,
+ minimum width = .3cm,
+ minimum height = 10cm
+ ] (h2) at (4, 0) {};
+ \node[above = 0cm of h1] {Wallet};
+ \node[above = 0cm of h2] {Exchange};
+
+ \path[->, color = MidnightBlue, very thick, >=stealth]
+ (-5, 4.5) edge
+ node[rotate=90, text = Black, yshift = .3cm] {Time}
+ (-5, -4.5);
+ \path[okmsg, dashed]
+ ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge
+ node[msglabel] {SEPA(RK,A)}
+ ($(h2.west)+(0, 3.5)+(0, -1.0)$);
+ \path[okmsg]
+ ($(h1.east)+(0, -1.0)$) edge
+ node[msglabel] {$S_{RK}(DK, B_b(C))$}
+ ($(h2.west)+(0, -1.5)$);
+ \path[okmsg]
+ ($(h2.west)+(0, -2.0)$) edge
+ node[msglabel] {200 OK: $S_{DK}(B_b(C))$)}
+ ($(h1.east)+(0, -2.5)$);
+ \path[rstmsg]
+ ($(h2.west)+(0, -3.5)$) edge
+ node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)}
+ ($(h1.east)+(0, -4)$);
+ \node at (5.3, 0) {};
+ \end{tikzpicture}
+ \end{minipage}
+\end{SCfigure}
+