marketing

Marketing materials (presentations, posters, flyers)
Log | Files | Refs

2018-fs-isac.tex (81652B)


      1 \documentclass[fleqn,xcolor={usenames,dvipsnames},aspectratio=169]{beamer}
      2 \usepackage{amsmath}
      3 \usepackage{multimedia}
      4 \usepackage[utf8]{inputenc}
      5 \usepackage{framed,color,ragged2e}
      6 \usepackage[absolute,overlay]{textpos}
      7 \definecolor{shadecolor}{rgb}{0.8,0.8,0.8}
      8 \usetheme{boxes}
      9 \setbeamertemplate{navigation symbols}{}
     10 \usepackage{xcolor}
     11 \usepackage{tikz,eurosym}
     12 %\usepackage[normalem]{ulem}
     13 \usepackage{listings}
     14 
     15 % CSS
     16 \lstdefinelanguage{CSS}{
     17   basicstyle=\ttfamily\scriptsize,
     18   keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function},
     19   sensitive=true,
     20   morecomment=[l]{//},
     21   morecomment=[s]{/*}{*/},
     22   morestring=[b]',
     23   morestring=[b]",
     24   alsoletter={:},
     25   alsodigit={-}
     26 }
     27 
     28 % JavaScript
     29 \lstdefinelanguage{JavaScript}{
     30   basicstyle=\ttfamily\scriptsize,
     31   morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
     32   morecomment=[s]{/*}{*/},
     33   morecomment=[l]//,
     34   morestring=[b]",
     35   morestring=[b]'
     36 }
     37 
     38 \lstdefinelanguage{HTML5}{
     39   basicstyle=\ttfamily\scriptsize,
     40   language=html,
     41   sensitive=true,
     42   alsoletter={<>=-},
     43   morecomment=[s]{<!-}{-->},
     44   tag=[s],
     45   otherkeywords={
     46   % General
     47   >,
     48   % Standard tags
     49 	<!DOCTYPE,
     50   </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
     51 	% body
     52 	</body, <body,
     53 	% Divs
     54 	</div, <div, </div>,
     55 	% Paragraphs
     56 	</p, <p, </p>,
     57 	% scripts
     58 	</script, <script,
     59   % More tags...
     60   <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>
     61   },
     62   ndkeywords={
     63   % General
     64   =,
     65   % HTML attributes
     66   charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
     67   % SVG attributes
     68   fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
     69   % CSS properties
     70   margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:,
     71 	% CSS3 properties
     72   transform:, -moz-transform:, -webkit-transform:,
     73   animation:, -webkit-animation:,
     74   transition:,  transition-duration:, transition-property:, transition-timing-function:,
     75   }
     76 }
     77 
     78 \lstdefinelanguage{JavaScript}{
     79   basicstyle=\ttfamily\scriptsize,
     80   keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for},
     81   keywordstyle=\color{blue}\bfseries,
     82   ndkeywords={class, export, boolean, throw, implements, import, this},
     83   ndkeywordstyle=\color{darkgray}\bfseries,
     84   identifierstyle=\color{black},
     85   sensitive=false,
     86   comment=[l]{//},
     87   morecomment=[s]{/*}{*/},
     88   commentstyle=\color{purple}\ttfamily,
     89   stringstyle=\color{red}\ttfamily,
     90   morestring=[b]',
     91   morestring=[b]"
     92 }
     93 
     94 \usetikzlibrary{shapes,arrows}
     95 \usetikzlibrary{positioning}
     96 \usetikzlibrary{calc}
     97 
     98 \title{GNU Taler}
     99 %\subtitle{}
    100 
    101 \setbeamertemplate{navigation symbols}{\includegraphics[width=2cm]{bfh.png} \includegraphics[width=1cm]{inria.pdf} \includegraphics[width=0.5cm]{gnu.png} \includegraphics[width=0.5cm]{ashoka.png}\hfill}
    102 %\setbeamercovered{transparent=1}
    103 
    104 \author[C. Grothoff]{J. Burdges, F. Dold, {\bf C. Grothoff}, M. Stanisci}
    105 \date{\today}
    106 \institute{The GNU Project}
    107 
    108 
    109 \begin{document}
    110 
    111 \justifying
    112 
    113 \begin{frame}
    114   \begin{center}
    115     \LARGE {\bf GNU Taler}
    116 
    117     \vfill
    118 %    \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf}
    119     \includegraphics[width=0.66\textwidth]{taler-logo-2018.pdf}
    120   \end{center}
    121 \begin{textblock*}{4cm}(.5cm,7.2cm) % {block width} (coords)
    122   {\Large {\bf \url{taler.net}} \\
    123     twitter@taler }
    124 \end{textblock*}
    125 
    126 % Substitute based on who is giving the talk!
    127  \begin{textblock*}{6cm}(9.2cm,7.2cm) % {block width} (coords)
    128    {\hfill {\Large {\bf Christian Grothoff}} \\
    129     \hfill grothoff@taler.net }
    130 \end{textblock*}
    131 
    132 \end{frame}
    133 
    134 
    135 \section{The Bank's Online Payment Problem}
    136 \begin{frame}{The Bank's Online Payment Problem}
    137 
    138   3D secure (``verified by visa'') is a nightmare:
    139 
    140   \begin{minipage}{5cm}
    141     \begin{itemize}
    142     \item Complicated process
    143     \item Shifts liability to consumer
    144     \item Significant latency
    145     \item Can refuse valid requests
    146     \item Legal vendors excluded
    147     \item No privacy for buyers
    148      \end{itemize}
    149   \end{minipage}
    150   \begin{minipage}{5cm}
    151       \includegraphics[width=\textwidth]{illustrations/cc3ds.pdf}
    152   \end{minipage}
    153   \vfill
    154     Online credit card payments will be replaced, but with what?
    155 \end{frame}
    156 
    157 
    158 \begin{frame}{The Bank's Online Payment Problem}
    159 \vfill
    160   \begin{textblock*}{12cm}(0.5cm,1cm) % {block width} (coords)
    161     \begin{itemize}
    162     \item Global tech companies push oligopolies
    163     \item Privacy and federated finance are at risk
    164 %    \item 30\% fees are conceivable
    165     \item Economic sovereignty is in danger
    166     \end{itemize}
    167 \end{textblock*}
    168 \begin{textblock*}{4cm}(3.5cm,5.2cm) % {block width} (coords)
    169  {\includegraphics[width=\textwidth]{../investors/competitor-logos/amazon.png}}
    170 \end{textblock*}
    171 \begin{textblock*}{2cm}(7cm,3cm) % {block width} (coords)
    172  {\includegraphics[width=\textwidth]{../investors/competitor-logos/alipay.jpeg}}
    173 \end{textblock*}
    174 \begin{textblock*}{2cm}(3cm,3.5cm) % {block width} (coords)
    175  {\includegraphics[width=\textwidth]{../investors/competitor-logos/paypal.jpeg}}
    176 \end{textblock*}
    177 \begin{textblock*}{2cm}(9cm,5cm) % {block width} (coords)
    178  {\includegraphics[width=\textwidth]{../investors/competitor-logos/applepay.jpeg}}
    179 \end{textblock*}
    180 \begin{textblock*}{2cm}(7.5cm,5.9cm) % {block width} (coords)
    181  {\includegraphics[width=\textwidth]{../investors/competitor-logos/samsungpay.jpeg}}
    182 \end{textblock*}
    183 \begin{textblock*}{1cm}(9.5cm,6.3cm) % {block width} (coords)
    184  {\includegraphics[width=\textwidth]{../investors/competitor-logos/android_pay.png}}
    185 \end{textblock*}
    186 \vfill
    187 \end{frame}
    188 
    189 
    190 \begin{frame}{The Distraction: Bitcoin}
    191 
    192 \begin{itemize}
    193 \item Unregulated payment system and currency:
    194 \item[] $\Rightarrow$ lack of regulation is a feature!
    195 \item Implemented in free software
    196 \item Decentralised peer-to-peer system   \pause
    197 \item Decentralised banking requires solving Byzantine consensus
    198 \item Creative solution: tie initial accumulation to solving consensus \pause
    199 \item[] $\Rightarrow$ Proof-of-work advances ledger
    200 \item[] $\Rightarrow$ Very expensive banking
    201 \end{itemize}
    202 \end{frame}
    203 
    204 
    205 \begin{frame}
    206   \frametitle{\includegraphics[height=0.5cm]{pics/bitcoin.jpeg}?}
    207   \centering
    208 \noindent
    209 \includegraphics[width=\textwidth]{pics/btc-transaction-cost.pdf}
    210 
    211 Average transaction value: $\approx$ 4215 USD (on 9.8.2018)
    212 \end{frame}
    213 
    214 
    215 \begin{frame}
    216   \frametitle{\includegraphics[height=0.5cm]{pics/zerocoin.png}?}
    217 
    218 Cryptography is rather primitive:
    219 \begin{center}
    220   {\bf All Bitcoin transactions are public and linkable!}
    221 \end{center}
    222 
    223 \begin{itemize}
    224 \item[] $\Rightarrow$ no privacy guarantees
    225 \item[] $\Rightarrow$ enhanced with ``laundering'' services
    226 \end{itemize}
    227 ZeroCoin, CryptoNote (Monero) and ZeroCash (ZCash) offer anonymity.
    228 \end{frame}
    229 
    230 
    231 \begin{frame}
    232   \vfill
    233 \begin{center}
    234 {\bf Do you want to have a libertarian economy?}
    235 \end{center}
    236   \vfill
    237 \begin{center}
    238 {\bf Do you want to live under total surveillance?}
    239 \end{center}
    240 \vfill
    241 \end{frame}
    242 
    243 
    244 \begin{frame}{GNU Taler}
    245   \vfill
    246   \begin{center}
    247     {\huge {\bf Digital} cash, made \textbf{socially responsible}.}
    248   \end{center}
    249   \vfill
    250   \begin{center}
    251   \includegraphics[scale=1.5]{taler-logo-2018.pdf}
    252   \end{center}
    253   \vfill
    254   \begin{center}
    255     Privacy-Preserving, Practical, Taxable, Free Software, Efficient
    256   \end{center}
    257  \vfill
    258  \vfill
    259 \ %
    260 \end{frame}
    261 
    262 
    263 \section{What is Taler?}
    264 \begin{frame}{What is Taler?}
    265   \vfill
    266   \begin{center}
    267 Taler is an electronic instant payment system.
    268   \end{center}
    269   \begin{itemize}
    270   \item Uses electronic coins stored in {\bf wallets} on customer's device
    271   \item Like {\bf cash}
    272   \item Pay in {\bf existing currencies} (i.e. EUR, USD, BTC), \\
    273     or use it to create new {\bf regional currencies}
    274   \end{itemize}
    275   \vfill
    276 \end{frame}
    277 
    278 
    279 \begin{frame}
    280 \frametitle{Taler Overview}
    281 \begin{center}
    282 \begin{tikzpicture}
    283  \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em];
    284  \node (origin) at (0,0) {};
    285  \node (exchange) [def,above=of origin,draw]{Exchange};
    286  \node (customer) [def, draw, below left=of origin] {Customer};
    287  \node (merchant) [def, draw, below right=of origin] {Merchant};
    288  \node (auditor) [def, draw, above right=of origin]{Auditor};
    289 
    290  \tikzstyle{C} = [color=black, line width=1pt]
    291 
    292  \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins};
    293  \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins};
    294  \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins};
    295  \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify};
    296 
    297 \end{tikzpicture}
    298 \end{center}
    299 \end{frame}
    300 
    301 
    302 \begin{frame}
    303   % TODO: replace with simplified NEW architecture picture!
    304 \frametitle{Architecture of Taler}
    305 \begin{center}
    306   \includegraphics[width=0.9\textwidth]{illustrations/taler-arch-full.pdf}
    307 
    308   $\Rightarrow$ Convenient, taxable, privacy-enhancing, \& resource friendly!
    309 \end{center}
    310 \end{frame}
    311 
    312 
    313 \begin{frame}{Usability of Taler}
    314   \vfill
    315   \begin{center}
    316     \url{https://demo.taler.net/}
    317   \end{center}
    318   \begin{enumerate}
    319   \item Install Browser extension.
    320   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    321   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    322   \end{enumerate}
    323   \vfill
    324 \end{frame}
    325 
    326 
    327 \begin{frame}{Use Case: Journalism}
    328   Today:
    329   \begin{itemize}
    330     \item Corporate structure % ($\Rightarrow$ filter)
    331     \item Advertising primary revenue % ($\Rightarrow$ dependence)
    332     \item Tracking readers critical for business success
    333     \item Journalism and marketing hard to distinguish
    334   \end{itemize}\vfill\pause
    335   With GNU Taler:
    336   \begin{itemize}
    337     \item One-click micropayments per article
    338     \item Hosting requires no expertise % (no PCI DSS)
    339     \item Reader-funded reporting separated from marketing
    340     \item Readers can remain anonymous
    341   \end{itemize}
    342 \end{frame}
    343 
    344 
    345 \begin{frame}{Use Case: Anti-Spam}
    346   Today, p$\equiv$p provides authenticated encryption for e-mail:
    347   \begin{itemize}
    348     \item Free software
    349     \item Easy to use opportunistic encryption
    350     \item Available for Outlook, Android, Enigmail
    351     \item Spies \& spam filters can no longer inspect content
    352   \end{itemize}\vfill\pause
    353   With GNU Taler:
    354   \begin{itemize}
    355     \item Peer-to-peer payments via e-mail
    356     \item If unsolicited sender, hide messages from user \&
    357           automatically request payment from sender
    358     \item Sender can attach payment to be moved to inbox
    359     \item Receiver may grant refund to sender
    360   \end{itemize}
    361 \end{frame}
    362 
    363 
    364 \begin{frame}{Social Impact of Taler}
    365   \begin{center}
    366     \includegraphics[height=1.2\textheight]{../../social-impact.pdf}
    367   \end{center}
    368 \end{frame}
    369 
    370 
    371 \begin{frame}{Taxability}
    372   We say Taler is taxable because:
    373   \begin{itemize}
    374   \item Merchant's income is visible from deposits.
    375   \item Hash of contract is part of deposit data.
    376   \item State can trace income and enforce taxation.
    377   \end{itemize}%\pause
    378 %  Limitations:
    379 %  \begin{itemize}
    380 %  \item withdraw loophole
    381 %  \item {\em sharing} coins among family and friends
    382 %  \end{itemize}
    383 \end{frame}
    384 
    385 
    386 \begin{frame}{How does it work?}
    387 We use a few ancient constructions:
    388   \begin{itemize}
    389   \item Cryptographic hash function (1989)
    390   \item Blind signature (1983)
    391   \item Schnorr signature (1989)
    392   \item Diffie-Hellman key exchange (1976)
    393   \item Cut-and-choose zero-knowledge proof (1985)
    394   \end{itemize}
    395 But of course we use modern instantiations.
    396 \end{frame}
    397 
    398 
    399 \begin{frame}{Exchange setup: Create a denomination key (RSA)}
    400    \begin{minipage}{6cm}
    401     \begin{enumerate}
    402     \item Pick random primes $p,q$.
    403     \item Compute $n := pq$, $\phi(n) = (p-1)(q-1)$
    404     \item Pick small $e < \phi(n)$ such that
    405           $d := e^{-1} \mod \phi(n)$ exists.
    406     \item Publish public key $(e,n)$.
    407     \end{enumerate}
    408   \end{minipage}
    409   \begin{minipage}{6cm}
    410   \begin{tikzpicture}
    411  \tikzstyle{def} = [node distance=1em and 1em, inner sep=0em, outer sep=.3em];
    412     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    413     \node (primes) [draw=none, below = of origin] at (0,0) {$(p, q)$};
    414     \node (seal) [def, draw=none, below left=of primes]{\includegraphics[width=0.15\textwidth]{seal.pdf}};
    415     \node (hammer) [def, draw=none, below right=of primes]{\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    416 
    417     \tikzstyle{C} = [color=black, line width=1pt]
    418 
    419     \draw [<-, C] (primes) -- (origin) node [midway, above, sloped] (TextNode) {};
    420     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    421     \draw [<-, C] (hammer) -- (primes) node [midway, above, sloped] (TextNode) {};
    422   \end{tikzpicture}
    423 %  \includegraphics[width=0.4\textwidth]{seal.pdf}
    424   \end{minipage}
    425 \end{frame}
    426 
    427 
    428 \begin{frame}{Merchant: Create a signing key (EdDSA)}
    429   \begin{minipage}{9cm}
    430     \begin{itemize}
    431   \item pick random $m \mod o$ as private key
    432   \item $M = mG$ public key
    433   \end{itemize}
    434   \end{minipage}
    435   \begin{minipage}{6cm}
    436   \begin{tikzpicture}
    437    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    438     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    439     \node (m) [draw=none, below = of origin] at (0,0) {$m$};
    440     \node (seal) [draw=none, below=of m]{M};
    441    \tikzstyle{C} = [color=black, line width=1pt]
    442 
    443     \draw [<-, C] (m) -- (origin) node [midway, above, sloped] (TextNode) {};
    444     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    445   \end{tikzpicture}
    446   \end{minipage}
    447 
    448   \parbox[t]{3cm}{{\bf Capability:} $m \Rightarrow$ }
    449   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{merchant-sign.pdf}}
    450 \end{frame}
    451 
    452 
    453 \begin{frame}{Customer: Create a planchet (EdDSA)}
    454   \begin{minipage}{9cm}
    455   \begin{itemize}
    456   \item Pick random $c \mod o$ private key
    457   \item $C = cG$ public key
    458   \end{itemize}
    459   \end{minipage}
    460   \begin{minipage}{4cm}
    461   \begin{tikzpicture}
    462    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    463     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    464     \node (c) [draw=none, below = of origin] at (0,0) {$c$};
    465     \node (planchet) [draw=none, below=of c]{\includegraphics[width=0.4\textwidth]{planchet.pdf}};
    466     \tikzstyle{C} = [color=black, line width=1pt]
    467 
    468     \draw [<-, C] (c) -- (origin) node [midway, above, sloped] (TextNode) {};
    469     \draw [<-, C] (planchet) -- (c) node [midway, above, sloped] (TextNode) {};
    470   \end{tikzpicture}
    471   \end{minipage}
    472 
    473   \parbox[t]{3cm}{{\bf Capability:} $c \Rightarrow$ }
    474   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{planchet-sign.pdf}}
    475 \end{frame}
    476 
    477 
    478 \begin{frame}{Customer: Blind planchet (RSA)}
    479   \begin{minipage}{6cm}
    480     \begin{enumerate}
    481     \item Obtain public key $(e,n)$
    482     \item Compute $f := FDH(C)$, $f < n$.
    483     \item Pick blinding factor $b \in \mathbb Z_n$
    484     \item Transmit $f' := f b^e \mod n$
    485     \end{enumerate}
    486   \end{minipage}
    487   \begin{minipage}{6cm}
    488   \begin{tikzpicture}
    489    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    490     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    491     \node (b) [def, draw=none, below = of origin] at (0,-0.2) {$b$};
    492     \node (blinded) [def, draw=none, below right=of b]{\includegraphics[width=0.2\textwidth]{blinded.pdf}};
    493     \node (planchet) [def, draw=none, above right=of blinded]{\includegraphics[width=0.15\textwidth]{planchet.pdf}};
    494     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    495     \tikzstyle{C} = [color=black, line width=1pt]
    496 
    497     \draw [<-, C] (b) -- (origin) node [midway, above, sloped] (TextNode) {};
    498     \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {};
    499     \draw [<-, C] (blinded) -- (b) node [midway, above, sloped] (TextNode) {};
    500     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    501   \end{tikzpicture}
    502   \end{minipage}
    503 \end{frame}
    504 
    505 
    506 \begin{frame}{Exchange: Blind sign (RSA)}
    507    \begin{minipage}{6cm}
    508     \begin{enumerate}
    509     \item Receive $f'$.
    510     \item Compute $s' := f'^d \mod n$.
    511     \item Send signature $s'$.
    512     \end{enumerate}
    513    \end{minipage}
    514   \begin{minipage}{6cm}
    515   \begin{tikzpicture}
    516    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    517     \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    518     \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}};
    519     \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    520     \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer};
    521     \tikzstyle{C} = [color=black, line width=1pt]
    522 
    523     \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {};
    524     \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {};
    525     \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}};
    526   \end{tikzpicture}
    527   \end{minipage}
    528 \end{frame}
    529 
    530 
    531 \begin{frame}{Customer: Unblind coin (RSA)}
    532   \begin{minipage}{6cm}
    533    \begin{enumerate}
    534     \item Receive $s'$.
    535     \item Compute $s := s' b^{-1} \mod n$ % \\
    536     % ($(f')^d = (f b^e)^d = f^d b$).
    537     \end{enumerate}
    538    \end{minipage}
    539   \begin{minipage}{6cm}
    540   \begin{tikzpicture}
    541    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    542     \node (b) [def, draw=none] at (0,0) {$b$};
    543     \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    544     \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
    545     \tikzstyle{C} = [color=black, line width=1pt]
    546 
    547     \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {};
    548     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
    549   \end{tikzpicture}
    550   \end{minipage}
    551 \end{frame}
    552 
    553 
    554 \begin{frame}{Withdrawing coins on the Web}
    555   \begin{center}
    556     \includegraphics[height=0.9\textheight]{figs/taler-withdraw.pdf}
    557   \end{center}
    558 \end{frame}
    559 
    560 
    561 \begin{frame}{Customer: Build shopping cart}
    562   \begin{center}
    563   \begin{tikzpicture}
    564    \tikzstyle{def} = [node distance= 2em and 2em, inner sep=0em, outer sep=.3em];
    565     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{shop.pdf}};
    566     \node (cart) [draw=none, right=of origin]{\includegraphics[width=0.2\textwidth]{cart.pdf}};
    567     \node (merchant) [node distance=4em and 4em, draw, right =of cart]{Merchant};
    568     \tikzstyle{C} = [color=black, line width=1pt];
    569     \draw [<-, C] (cart) -- (origin) node [midway, above, sloped] (TextNode) {};
    570     \draw [<-, C] (merchant) -- (cart) node [midway, above, sloped] (TextNode) {{\small transmit}};
    571   \end{tikzpicture}
    572   \end{center}
    573 \end{frame}
    574 
    575 
    576 \begin{frame}{Merchant Integration: Wallet Detection}
    577  \lstset{language=JavaScript}
    578  \lstinputlisting{figs/taler-presence-js.html}
    579 % \caption{Sample code to detect the Taler wallet. Allowing the
    580 %  Web site to detect the presence of the wallet leaks one bit
    581 %  of information about the user. The above logic also works
    582 %  if the wallet is installed while the page is open.}
    583 %  \label{listing:presence}
    584 \end{frame}
    585 
    586 
    587 \begin{frame}{Merchant Integration: Payment Request}
    588 % \begin{figure}[p!]
    589  \lstset{language=HTML5}
    590  \lstinputlisting{figs/taler-402.html}
    591 %  \caption{Sample HTTP response to prompt the wallet to show an offer.}
    592 %   \label{listing:http-contract}
    593 % \end{figure}
    594 
    595 % \begin{figure*}[p!]
    596 % \lstset{language=HTML5}
    597 % \lstinputlisting{figs/taler-contract.html}
    598 % \caption{Sample JavaScript code to prompt the wallet to show an offer.
    599 %          Here, the contract is fetched on-demand from the server.
    600 %          The {\tt taler\_pay()} function needs to be invoked
    601 %          when the user triggers the checkout.}
    602 % \label{listing:contract}
    603 % \end{figure*}
    604 \end{frame}
    605 
    606 
    607 \begin{frame}{Merchant Integration: Contract}
    608   % \begin{figure*}[t!]
    609   {\tiny
    610  \lstset{language=JavaScript}
    611  \lstinputlisting{figs/taler-contract.json}
    612 %   \caption{Minimal Taler contract over a digital article with a value of \EUR{0.10}. The merchant will pay transaction fees up to \EUR{0.01}.  The hash over the wire transfer information was truncated to make it fit to the page.}
    613 %   \label{listing:json-contract}
    614  % \end{figure*}
    615  }
    616 \end{frame}
    617 
    618 
    619 \begin{frame}{Merchant: Propose contract (EdDSA)}
    620    \begin{minipage}{6cm}
    621    \begin{enumerate}
    622     \item Complete proposal $D$.
    623     \item Send $D$, $EdDSA_m(D)$
    624     \end{enumerate}
    625    \end{minipage}
    626   \begin{minipage}{6cm}
    627   \begin{tikzpicture}
    628    \tikzstyle{def} = [node distance=2em and 0.5em, inner sep=0em, outer sep=.3em];
    629     \node (cart) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{cart.pdf}};
    630     \node (proposal) [def, draw=none, below right=of cart]{\includegraphics[width=0.5\textwidth]{merchant_propose.pdf}};
    631     \node (customer) [node distance=4em and 0.5em, draw, below =of proposal]{Customer};
    632     \tikzstyle{C} = [color=black, line width=1pt];
    633     \node (sign) [def, draw=none, above right=of proposal] {$m$};
    634     \tikzstyle{C} = [color=black, line width=1pt]
    635 
    636     \draw [<-, C] (proposal) -- (sign) node [midway, above, sloped] (TextNode) {};
    637     \draw [<-, C] (proposal) -- (cart) node [midway, above, sloped] (TextNode) {};
    638     \draw [<-, C] (customer) -- (proposal) node [midway, above, sloped] (TextNode) {{\small transmit}};
    639   \end{tikzpicture}
    640   \end{minipage}
    641 \end{frame}
    642 
    643 
    644 \begin{frame}{Customer: Spend coin (EdDSA)}
    645   \begin{minipage}{6cm}
    646    \begin{enumerate}
    647     \item Receive proposal $D$, $EdDSA_m(D)$.
    648     \item Send $s$, $C$, $EdDSA_c(D)$
    649     \end{enumerate}
    650    \end{minipage}
    651   \begin{minipage}{6cm}
    652   \begin{tikzpicture}
    653    \tikzstyle{def} = [node distance=2em and 0.4em, inner sep=0em, outer sep=.3em];
    654     \node (proposal) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{merchant_propose.pdf}};
    655     \node (contract) [def, draw=none, below right=of cart]{\includegraphics[width=0.3\textwidth]{contract.pdf}};
    656     \node (c) [def, draw=none, above=of contract] {$c$};
    657     \node (merchant) [node distance=4em and 0.5em, draw, below=of contract]{Merchant};
    658     \node (coin) [def, draw=none, right=of contract]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    659     \tikzstyle{C} = [color=black, line width=1pt]
    660 
    661     \draw [<-, C] (contract) -- (c) node [midway, above, sloped] (TextNode) {};
    662     \draw [<-, C] (contract) -- (proposal) node [midway, above, sloped] (TextNode) {};
    663     \draw [<-, C] (merchant) -- (contract) node [midway, above, sloped] (TextNode) {{\small transmit}};
    664     \draw [<-, C] (merchant) -- (coin) node [midway, below, sloped] (TextNode) {{\small transmit}};
    665   \end{tikzpicture}
    666   \end{minipage}
    667 \end{frame}
    668 
    669 
    670 \begin{frame}{Merchant and Exchange: Verify coin (RSA)}
    671    \begin{minipage}{6cm}
    672  \begin{equation*}
    673    s^e \stackrel{?}{\equiv} FDH(C) \mod n
    674    \end{equation*}
    675    \end{minipage}
    676   \begin{minipage}{6cm}
    677   \begin{minipage}{0.2\textwidth}
    678     \includegraphics[width=\textwidth]{coin.pdf}
    679   \end{minipage}
    680   $\stackrel{?}{\Leftrightarrow}$
    681   \begin{minipage}{0.2\textwidth}
    682     \includegraphics[width=\textwidth]{seal.pdf}
    683   \end{minipage}
    684   \end{minipage}
    685 \end{frame}
    686 
    687 
    688 \begin{frame}{Payment processing with Taler}
    689   \begin{center}
    690     \includegraphics[height=0.9\textheight]{figs/taler-pay.pdf}
    691   \end{center}
    692 \end{frame}
    693 
    694 
    695 \begin{frame}{Giving change}
    696   It would be inefficient to pay EUR 100 with 1 cent coins!
    697   \begin{itemize}
    698   \item Denomination key represents value of a coin.
    699   \item Exchange may offer various denominations for coins.
    700   \item Wallet may not have exact change!
    701   \item Usability requires ability to pay given sufficient total funds.
    702   \end{itemize}\pause
    703   Key goals:
    704   \begin{itemize}
    705   \item maintain unlinkability
    706   \item maintain taxability of transactions
    707   \end{itemize}\pause
    708   Method:
    709   \begin{itemize}
    710     \item Contract can specify to only pay {\em partial value} of a coin.
    711     \item Exchange allows wallet to obtain {\em unlinkable change}
    712       for remaining coin value.
    713   \end{itemize}
    714 \end{frame}
    715 
    716 
    717 \begin{frame}{Diffie-Hellman (ECDH)}
    718   \begin{minipage}{8cm}
    719    \begin{enumerate}
    720     \item Create private keys $c,t \mod o$
    721     \item Define $C = cG$
    722     \item Define $T = tG$
    723     \item Compute DH \\ $cT = c(tG) = t(cG) = tC$
    724     \end{enumerate}
    725    \end{minipage}
    726   \begin{minipage}{6cm}
    727   \begin{tikzpicture}
    728    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    729     \node (t) [def, draw=none] at (0,0) {$t$};
    730     \node (ct) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{dh.pdf}};
    731     \node (c) [def, draw=none, above left= of ct]  {$c$};
    732     \tikzstyle{C} = [color=black, line width=1pt]
    733 
    734     \draw [<-, C] (ct) -- (c) node [midway, above, sloped] (TextNode) {};
    735     \draw [<-, C] (ct) -- (t) node [midway, above, sloped] (TextNode) {};
    736   \end{tikzpicture}
    737   \end{minipage}
    738 \end{frame}
    739 
    740 
    741 \begin{frame}{Strawman solution}
    742   \begin{minipage}{8cm}
    743     Given partially spent private coin key $c_{old}$:
    744    \begin{enumerate}
    745 %    \item Let $C_{old} := c_{old}G$ (as before)
    746     \item Pick random $c_{new} \mod o$ private key
    747     \item $C_{new} = c_{new}G$ public key
    748     \item Pick random $b_{new}$
    749     \item Compute $f_{new} := FDH(C_{new})$, $m < n$.
    750     \item Transmit $f'_{new} := f_{new} b_{new}^e \mod n$
    751    \end{enumerate}
    752    ... and sign request for change with $c_{old}$.
    753    \end{minipage}
    754   \begin{minipage}{4cm}
    755   \begin{tikzpicture}
    756    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    757     \node (blinded) [def, draw=none]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    758     \node (planchet) [def, draw=none, above left= of blinded]  {\includegraphics[width=0.15\textwidth]{planchet.pdf}};
    759     \node (cnew) [def, draw=none, above= of planchet]  {$c_{new}$};
    760     \node (bnew) [def, draw=none, above right= of blinded]  {$b_{new}$};
    761     \node (dice1) [def, draw=none, above = of cnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    762     \node (dice2) [def, draw=none, above = of bnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    763     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    764 
    765     \tikzstyle{C} = [color=black, line width=1pt]
    766 
    767     \draw [<-, C] (cnew) -- (dice1) node [midway, above, sloped] (TextNode) {};
    768     \draw [<-, C] (planchet) -- (cnew) node [midway, above, sloped] (TextNode) {};
    769     \draw [<-, C] (bnew) -- (dice2) node [midway, above, sloped] (TextNode) {};
    770     \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {};
    771     \draw [<-, C] (blinded) -- (bnew) node [midway, above, sloped] (TextNode) {};
    772     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    773   \end{tikzpicture}
    774   \end{minipage}
    775   \pause
    776   \vfill
    777   {\bf Problem: Owner of $c_{new}$ may differ from owner of $c_{old}$!}
    778 \end{frame}
    779 
    780 
    781 \begin{frame}{Customer: Transfer key setup (ECDH)}
    782   \begin{minipage}{8cm}
    783     Given partially spent private coin key $c_{old}$:
    784    \begin{enumerate}
    785     \item Let $C_{old} := c_{old}G$ (as before)
    786     \item Create random private transfer key $t \mod o$
    787     \item Compute $T := tG$
    788     \item Compute $X := c_{old}(tG) = t(c_{old}G) = tC_{old}$
    789     \item Derive $c_{new}$ and $b_{new}$ from $X$
    790     \item Compute $C_{new} := c_{new}G$
    791     \item Compute $f_{new} := FDH(C_{new})$
    792     \item Transmit $f_{new}' := f_{new} b_{new}^e$
    793     \end{enumerate}
    794    \end{minipage}
    795   \begin{minipage}{4cm}
    796   \begin{tikzpicture}
    797    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    798     \node (t) [def, draw=none] at (0,0) {$t$};
    799     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    800     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    801     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    802     \node (cp) [def, draw=none, below left= of dh]  {$c_{new}$};
    803     \node (bp) [def, draw=none, below right= of dh]  {$b_{new}$};
    804     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    805     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    806 
    807     \tikzstyle{C} = [color=black, line width=1pt]
    808 
    809     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    810     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    811     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    812     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    813     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    814     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    815     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    816     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    817   \end{tikzpicture}
    818   \end{minipage}
    819 \end{frame}
    820 
    821 
    822 \begin{frame}{Cut-and-Choose}
    823   \begin{minipage}{4cm}
    824   \begin{tikzpicture}
    825    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    826     \node (t) [def, draw=none] at (0,0) {$t_1$};
    827     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    828     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    829     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    830     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,1}$};
    831     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,1}$};
    832     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    833     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    834 
    835     \tikzstyle{C} = [color=black, line width=1pt]
    836 
    837     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    838     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    839     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    840     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    841     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    842     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    843     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    844     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    845   \end{tikzpicture}
    846   \end{minipage}
    847   \begin{minipage}{4cm}
    848   \begin{tikzpicture}
    849    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    850     \node (t) [def, draw=none] at (0,0) {$t_2$};
    851     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    852     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    853     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    854     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,2}$};
    855     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,2}$};
    856     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    857     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    858 
    859     \tikzstyle{C} = [color=black, line width=1pt]
    860 
    861     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    862     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    863     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    864     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    865     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    866     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    867     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    868     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    869   \end{tikzpicture}
    870   \end{minipage}
    871   \begin{minipage}{4cm}
    872   \begin{tikzpicture}
    873    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    874     \node (t) [def, draw=none] at (0,0) {$t_3$};
    875     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    876     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    877     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    878     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,3}$};
    879     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,3}$};
    880     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    881     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    882 
    883     \tikzstyle{C} = [color=black, line width=1pt]
    884 
    885     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    886     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    887     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    888     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    889     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    890     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    891     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    892     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    893   \end{tikzpicture}
    894   \end{minipage}
    895 \end{frame}
    896 
    897 
    898 \begin{frame}{Exchange: Choose!}
    899    \begin{center}
    900     \item Exchange sends back random $\gamma \in \{ 1, 2, 3 \}$ to the customer.
    901     \end{center}
    902 \end{frame}
    903 
    904 
    905 \begin{frame}{Customer: Reveal}
    906    \begin{enumerate}
    907    \item If $\gamma = 1$, send $t_2$, $t_3$ to exchange
    908    \item If $\gamma = 2$, send $t_1$, $t_3$ to exchange
    909    \item If $\gamma = 3$, send $t_1$, $t_2$ to exchange
    910   \end{enumerate}
    911 \end{frame}
    912 
    913 
    914 \begin{frame}{Exchange: Verify ($\gamma = 2$)}
    915   \begin{minipage}{4cm}
    916   \begin{tikzpicture}
    917    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    918     \node (h) [def, draw=none] at (0,0) {$t_1$};
    919     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    920     \node (d) [def, draw=none, above left= of dh]  {$C_{old}$};
    921     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,1}$};
    922     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,1}$};
    923     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    924 
    925     \tikzstyle{C} = [color=black, line width=1pt]
    926 
    927     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    928     \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {};
    929     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    930     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    931     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    932     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    933   \end{tikzpicture}
    934   \end{minipage}
    935   \begin{minipage}{4cm}
    936  \
    937   \end{minipage}
    938   \begin{minipage}{4cm}
    939   \begin{tikzpicture}
    940    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    941     \node (h) [def, draw=none] at (0,0) {$t_3$};
    942     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    943     \node (d) [def, draw=none, above left= of dh]  {$C_{old}$};
    944     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,3}$};
    945     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,3}$};
    946     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    947 
    948     \tikzstyle{C} = [color=black, line width=1pt]
    949 
    950     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    951     \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {};
    952     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    953     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    954     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    955     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    956   \end{tikzpicture}
    957   \end{minipage}
    958 \end{frame}
    959 
    960 
    961 \begin{frame}{Exchange: Blind sign change (RSA)}
    962    \begin{minipage}{6cm}
    963     \begin{enumerate}
    964     \item Take $f_{new,\gamma}'$.
    965     \item Compute $s' := f_{new,\gamma}'^d \mod n$.
    966     \item Send signature $s'$.
    967     \end{enumerate}
    968    \end{minipage}
    969   \begin{minipage}{6cm}
    970   \begin{tikzpicture}
    971    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    972     \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    973     \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}};
    974     \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    975     \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer};
    976     \tikzstyle{C} = [color=black, line width=1pt]
    977 
    978     \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {};
    979     \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {};
    980     \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}};
    981   \end{tikzpicture}
    982   \end{minipage}
    983 \end{frame}
    984 
    985 
    986 \begin{frame}{Customer: Unblind change (RSA)}
    987   \begin{minipage}{6cm}
    988    \begin{enumerate}
    989     \item Receive $s'$.
    990     \item Compute $s := s' b_{new,\gamma}^{-1} \mod n$.
    991     \end{enumerate}
    992    \end{minipage}
    993   \begin{minipage}{6cm}
    994   \begin{tikzpicture}
    995    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    996     \node (b) [def, draw=none] at (0,0) {$b_{new,\gamma}$};
    997     \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    998     \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
    999     \tikzstyle{C} = [color=black, line width=1pt]
   1000 
   1001     \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {};
   1002     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
   1003   \end{tikzpicture}
   1004   \end{minipage}
   1005 \end{frame}
   1006 
   1007 
   1008 \begin{frame}{Exchange: Allow linking change}
   1009   \begin{minipage}{7cm}
   1010     \begin{center}
   1011     Given $C_{old}$
   1012 
   1013     \vspace{1cm}
   1014 
   1015     return $T_\gamma$, $s := s' b_{new,\gamma}^{-1} \mod n$.
   1016   \end{center}
   1017    \end{minipage}
   1018   \begin{minipage}{5cm}
   1019    \begin{tikzpicture}
   1020     \tikzstyle{def} = [node distance= 3em and 0.5em, inner sep=0.5em, outer sep=.3em];
   1021     \node (co) [def, draw=none] at (0,0) {$C_{old}$};
   1022     \node (T) [def, draw=none, below left=of co]{$T_\gamma$};
   1023     \node (sign) [def, draw=none, below right=of co]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   1024     \node (customer) [def, draw, below right=of T] {Customer};
   1025 
   1026     \tikzstyle{C} = [color=black, line width=1pt]
   1027 
   1028     \draw [<-, C] (T) -- (co) node [midway, above, sloped] (TextNode) {};
   1029     \draw [<-, C] (sign) -- (co) node [midway, above, sloped] (TextNode) {};
   1030     \draw [<-, C] (customer) -- (T) node [midway, above, sloped] (TextNode) {link};
   1031     \draw [<-, C] (customer) -- (sign) node [midway, above, sloped] (TextNode) {link};
   1032   \end{tikzpicture}
   1033   \end{minipage}
   1034 \end{frame}
   1035 
   1036 
   1037 \begin{frame}{Customer: Link (threat!)}
   1038   \begin{minipage}{6.3cm}
   1039    \begin{enumerate}
   1040     \item Have $c_{old}$.
   1041     \item Obtain $T_\gamma$, $s$ from exchange
   1042     \item Compute $X_\gamma = c_{old}T_\gamma$
   1043     \item Derive $c_{new,\gamma}$ and $b_{new,\gamma}$ from $X_\gamma$
   1044     \item Unblind $s := s' b_{new,\gamma}^{-1} \mod n$
   1045   \end{enumerate}
   1046 
   1047    \end{minipage}
   1048   \begin{minipage}{5.7cm}
   1049   \begin{tikzpicture}
   1050   \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1051     \node (T) [def, draw=none] at (0,0) {$T_\gamma$};
   1052     \node (exchange) [def, inner sep=0.5em, draw, above left=of T] {Exchange};
   1053     \node (signed) [def, draw=none, below left=of T]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   1054     \node (dh) [def, draw=none, below right=of T]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1055     \node (bp) [def, draw=none, below left= of dh]  {$b_{new,\gamma}$};
   1056     \node (co) [def, draw=none, above right= of dh]  {$c_{old}$};
   1057     \node (cp) [def, draw=none, below= of dh]  {$c_{new,\gamma}$};
   1058     \node (coin) [def, draw=none, below left = of bp]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
   1059     \node (psign) [def, node distance=2.5em and 0em, draw=none, below = of cp]{\includegraphics[width=0.2\textwidth]{planchet-sign.pdf}};
   1060 
   1061     \tikzstyle{C} = [color=black, line width=1pt]
   1062 
   1063     \draw [<-, C] (dh) -- (co) node [midway, above, sloped] (TextNode) {};
   1064     \draw [<-, C] (dh) -- (T) node [midway, above, sloped] (TextNode) {};
   1065     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1066     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1067     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
   1068     \draw [<-, C] (coin) -- (bp) node [midway, above, sloped] (TextNode) {};
   1069     \draw [<-, C] (T) -- (exchange) node [midway, above, sloped] (TextNode) {link};
   1070     \draw [<-, C] (signed) -- (exchange) node [midway, below, sloped] (TextNode) {link};
   1071     \draw [<-, C, double] (psign) -- (cp) node [midway, below, sloped] (TextNode) {};
   1072   \end{tikzpicture}
   1073   \end{minipage}
   1074 \end{frame}
   1075 
   1076 
   1077 \begin{frame}{Refresh protocol summary}
   1078   \begin{itemize}
   1079   \item Customer asks exchange to convert old coin to new coin
   1080   \item Protocol ensures new coins can be recovered from old coin
   1081   \item[$\Rightarrow$] New coins are owned by the same entity!
   1082   \end{itemize}
   1083   Thus, the refresh protocol allows:
   1084   \begin{itemize}
   1085   \item To give unlinkable change.
   1086   \item To give refunds to an anonymous customer.
   1087   \item To expire old keys and migrate coins to new ones.
   1088   \item To handle protocol aborts.
   1089   \end{itemize}
   1090 \end{frame}
   1091 
   1092 
   1093 \section{Competitor analysis}
   1094 \begin{frame}{Performance: \texttt{taler-exchange-benchmark}}
   1095   \begin{minipage}{7cm}
   1096     {\bf Setup:}
   1097     \begin{itemize}
   1098     \item AMD 1950X CPU
   1099     \item Debian GNU/Linux
   1100     \item Postgres 10.4
   1101     \item Compiled with $-O0 -g$ \mbox{(except for libgcrypt)}
   1102     \item 800 parallel ``clients'' \mbox{(on loopback)}
   1103     \item 60 reserves per client
   1104     \item 15 coins per reserve
   1105     \item RSA-2048
   1106     \item No network latency
   1107     \item No auditor
   1108     \item[]
   1109     \item[]
   1110     \item[]
   1111     \end{itemize}
   1112   \end{minipage}
   1113 \begin{minipage}{7cm}
   1114   {\bf Results:}
   1115 \begin{itemize}
   1116     \item 30\% CPU Taler exchange
   1117     \item 60\% CPU Taler ``clients''
   1118     \item 3\% CPU Postgres database
   1119     \item $\approx$ 4 ms / coin (withdraw, deposit, 10\% refresh chance)
   1120     \item[] $\Rightarrow$ $\approx$ {\bf 250 transactions/s}
   1121 \end{itemize}
   1122   {\bf Caveats:}
   1123   \begin{itemize}
   1124     \item {\bf 2/3rds for clients}
   1125     \item HTTP Keep-Alive diabled \mbox{(for load-balancing)}
   1126     \item Used HTTP, not HTTPS
   1127     \item No outgoing wire transfers
   1128 \end{itemize}
   1129 \end{minipage}
   1130 \end{frame}
   1131 
   1132 
   1133 \section{Competitor analysis}
   1134 \begin{frame}{Competitor comparison}
   1135   \begin{center} \small
   1136     \begin{tabular}{l||c|c|c|c|c}
   1137                 & Cash & Bitcoin & Zerocoin & Creditcard & GNU Taler \\ \hline \hline
   1138    Online      &$-$$-$$-$  &   ++    &    ++    &     +      &   +++  \\ \hline
   1139     Offline     & +++  &   $-$$-$    &    $-$$-$    &     +      &   $-$$-$  \\ \hline
   1140     Trans. cost & +    & $-$$-$$-$   & $-$$-$$-$  &     $-$      &   ++  \\ \hline
   1141     Speed       & +    & $-$$-$$-$   & $-$$-$$-$  &     o      &   ++  \\ \hline
   1142     Taxation    & $-$    &   $-$$-$    &  $-$$-$$-$   &    +++     &  +++  \\ \hline
   1143     Payer-anon  &  ++  &   o     &    ++    &  $-$$-$$-$   &  +++  \\ \hline
   1144     Payee-anon  & ++   &   o     &    ++    &  $-$$-$$-$    &  $-$$-$$-$ \\ \hline
   1145     Security    &  $-$   &   o     &    o     &    $-$$-$      &  ++   \\ \hline
   1146     Conversion  & +++  &  $-$$-$$-$   & $-$$-$$-$ &    +++     &  +++  \\ \hline
   1147     Libre       &  $-$   &  +++    &    +++   & $-$ $-$ $-$      &  +++  \\
   1148   \end{tabular}
   1149   \end{center}
   1150 \end{frame}
   1151 
   1152 
   1153 
   1154 \begin{frame}[fragile]{\texttt{payto:} Uniform Identifiers for Payments and Accounts}
   1155   \vfill
   1156   Like \texttt{mailto:}, but for bank accounts instead of email accounts!
   1157   \vfill
   1158   \begin{verbatim}
   1159     payto://<PAYMENT-METHOD>/<ACCOUNT-NR>
   1160       ?subject=InvoiceNr42
   1161       &amount=EUR:12.50
   1162   \end{verbatim}
   1163   \vfill
   1164   Default action:  Open app to review and confirm payment.
   1165   \vfill
   1166 \end{frame}
   1167 
   1168 
   1169 \begin{frame}[fragile]{Benefits of \texttt{payto://}}
   1170   \begin{itemize}
   1171     \item Standardized way to represent financial resources (bank account, bitcoin wallet)
   1172       and payments to them
   1173     \item Useful on the client-side on the Web and for FinTech backend applications
   1174     \item Payment methods (such as SEPA, ACH, Bitcoin) are registered with
   1175           IANA and allow extra options
   1176     \item Under standardization with IETF as \texttt{draft-dold-payto}
   1177   \end{itemize}
   1178   \begin{center}
   1179     Please voice your support!
   1180   \end{center}
   1181 \end{frame}
   1182 
   1183 
   1184 
   1185 \begin{frame}{How to support?}
   1186   \begin{itemize}
   1187     \item Join: \href{https://lists.gnu.org/mailman/listinfo/taler}{taler@gnu.org}, \href{irc://irc.freenode.net/\#taler}{\#taler}
   1188     \item Coding \& design: \url{https://gnunet.org/bugs/}
   1189     \item Translation: \url{https://git.taler.net/www.git/tree/locale/fr/LC_MESSAGES/messages.po}
   1190     \item Integration: \url{https://docs.taler.net/}
   1191     \item Donations: \url{https://gnunet.org/ev}
   1192     \item Funding: \url{https://taler.net/en/investors.html}
   1193   \end{itemize}
   1194   \vfill
   1195   \begin{center}
   1196     {\bf And of course we are looking for banks as partners!}
   1197   \end{center}
   1198 \end{frame}
   1199 
   1200 
   1201 \begin{frame}
   1202   \frametitle{Team \hfill \& \hfill Advisory Board \hfill}
   1203   \begin{minipage}{5cm}
   1204     \begin{description}
   1205  \item[Leon Schumacher]\ \\ co-founder
   1206  \item[Dr. Christian Grothoff]\ \\ co-founder
   1207  \item[Michael Widmer]\ \\ Jurist
   1208  \item[Dr. Jeff Burdges]\ \\ PostDoc
   1209  \item[Florian Dold]\ \\ PhD Student
   1210     \end{description}
   1211 
   1212 \end{minipage}
   1213   \begin{minipage}{5.5cm}
   1214  {\tiny
   1215 \begin{description}
   1216  \item[Prof. Mikhail Atallah] \ \\
   1217    Cryptographer, co-founder
   1218    Arxan Technologies Inc.
   1219  \item[Prof. Roberto Di Cosmo] \ \\
   1220    Director IRILL
   1221  \item[Greg Framke] \ \\
   1222    CIO Manulife, \\
   1223    former COO Etrade
   1224  \item[Ante Gulam] \ \\
   1225    Global Head of Information Security --- CISO \\
   1226    MetaPack Group
   1227  \item[Dr. Richard Stallman]\ \\
   1228    Founder of the \\ \mbox{Free Software movement}
   1229  \item[Chris Pagett] \ \\
   1230    former Group Head Security/ \ \\
   1231    Fraud/Geo Risk HSBC
   1232  \item[Prof. Alex Pentland] \ \\
   1233    MIT Media Lab
   1234 \end{description}
   1235 }
   1236 \end{minipage}
   1237 \vfill
   1238 \includegraphics[height=0.1\textwidth]{../investors/team-images/leon-schumacher.jpg}    \hfill
   1239 \includegraphics[height=0.1\textwidth]{../investors/team-images/christian-grothoff.jpg}\hfill
   1240 \includegraphics[height=0.1\textwidth]{../investors/team-images/michael-widmer.jpg}\hfill
   1241 \includegraphics[height=0.1\textwidth]{../investors/team-images/jeff-burdges.jpg}\hfill
   1242 \includegraphics[height=0.1\textwidth]{../investors/team-images/florian-dold.jpg}\hfill
   1243 \includegraphics[height=0.1\textwidth]{../investors/board-images/mja.jpg} \hfill
   1244 \includegraphics[height=0.1\textwidth]{../investors/board-images/roberto-di-cosmo.jpg}    \hfill
   1245 \includegraphics[height=0.1\textwidth]{../investors/board-images/greg-framke.jpg}    \hfill
   1246 \includegraphics[height=0.1\textwidth]{../investors/board-images/ante-gulam.jpg} \hfill
   1247 \includegraphics[height=0.1\textwidth]{../investors/board-images/alex-pentland.jpg}
   1248 %\note{Advisory board still under construction.}
   1249 \end{frame}
   1250 
   1251 
   1252 \begin{frame}{Conclusion}
   1253   \begin{center}
   1254     {\bf  What can we do?}
   1255    \end{center}
   1256   \vfill
   1257 \begin{itemize}
   1258  \item{Suffer mass-surveillance enabled by credit card oligopolies with high fees, and}
   1259  \item{Engage in arms race with deliberately unregulatable blockchains, and}
   1260  \item{Enjoy the ``benefits'' of cash \\
   1261   \hfill  \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill}
   1262 \end{itemize}
   1263 \vfill
   1264 \begin{center}
   1265   {\bf OR}
   1266 \end{center}
   1267 \vfill
   1268 \begin{itemize}
   1269  \item{Establish free software alternative balancing social goals!}
   1270 \end{itemize}
   1271 \vfill
   1272 \end{frame}
   1273 
   1274 
   1275 \begin{frame}
   1276 \frametitle{Do you have any questions?}
   1277 \vfill
   1278 References:
   1279 {\tiny
   1280   \begin{enumerate}
   1281  \item{Christian Grothoff, Bart Polot and Carlo von Loesch.
   1282        {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}.
   1283        {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.}
   1284  \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci.
   1285        {\em Enabling Secure Web Payments with GNU Taler}.
   1286        {\bf SPACE 2016}.}
   1287  \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff.
   1288        {\em Taler: Taxable Anonymous Libre Electronic Reserves}.
   1289        Available upon request. 2016.}
   1290  \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza.
   1291        {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}.
   1292        {\bf IEEE Symposium on Security \& Privacy, 2016}.}
   1293  \item{David Chaum, Amos Fiat and Moni Naor.
   1294        {\em Untraceable electronic cash}.
   1295        {\bf Proceedings on Advances in Cryptology, 1990}.}
   1296   \item{Phillip Rogaway.
   1297        {\em The Moral Character of Cryptographic Work}.
   1298        {\bf Asiacrypt}, 2015.} \label{bib:rogaway}
   1299 \end{enumerate}
   1300 }
   1301 \begin{center}
   1302   {\bf Let money facilitate trade; but ensure capital serves society.}
   1303 \end{center}
   1304 \end{frame}
   1305 
   1306 
   1307 
   1308 
   1309 \end{document}
   1310 
   1311 
   1312 
   1313 
   1314 \begin{frame}{Taler {\tt /withdraw/sign}}
   1315 % Customer withdrawing coins with blind signatures
   1316 % \bigskip
   1317   \begin{figure}[th]
   1318     \begin{minipage}[b]{0.45\linewidth}
   1319       \begin{center}
   1320         \begin{tikzpicture}[scale = 0.4,
   1321             transform shape,
   1322             msglabel/.style    = { text = Black, yshift = .3cm,
   1323                                    sloped, midway },
   1324             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1325                                    >=stealth },
   1326             rstmsg/.style      = { ->, color = BrickRed, thick,
   1327                                    >=stealth }
   1328           ]
   1329           \node[draw = MidnightBlue,
   1330             fill = CornflowerBlue,
   1331             minimum width = .3cm,
   1332             minimum height = 10cm
   1333           ] (h1) at (-4, 0) {};
   1334           \node[draw = MidnightBlue,
   1335             fill = CornflowerBlue,
   1336             minimum width = .3cm,
   1337             minimum height = 10cm
   1338           ] (h2) at (4, 0) {};
   1339           \node[above = 0cm of h1] {Wallet};
   1340           \node[above = 0cm of h2] {Exchange};
   1341 
   1342           \path[->, color = MidnightBlue, very thick, >=stealth]
   1343             (-5, 4.5) edge
   1344             node[rotate=90, text = Black, yshift = .3cm] {Time}
   1345             (-5, -4.5);
   1346           \path[okmsg, dashed]
   1347              ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge
   1348              node[msglabel] {SEPA(RK,A)}
   1349              ($(h2.west)+(0, 3.5)+(0, -1.0)$);
   1350           \path[okmsg]
   1351             ($(h1.east)+(0, -1.0)$) edge
   1352             node[msglabel] {POST {\tt /withdraw/sign} $S_{RK}(DK, B_b(C))$}
   1353             ($(h2.west)+(0, -1.5)$);
   1354           \path[okmsg]
   1355             ($(h2.west)+(0, -2.0)$) edge
   1356             node[msglabel] {200 OK: $S_{DK}(B_b(C))$)}
   1357             ($(h1.east)+(0, -2.5)$);
   1358           \path[rstmsg]
   1359             ($(h2.west)+(0, -3.5)$) edge
   1360             node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)}
   1361             ($(h1.east)+(0, -4)$);
   1362           \node at (5.3, 0) {};
   1363         \end{tikzpicture}
   1364       \end{center}
   1365       Result: $\langle c, S_{DK}(C) \rangle$.
   1366     \end{minipage}
   1367     \hspace{0.5cm}
   1368     \begin{minipage}[b]{0.45\linewidth}
   1369       \tiny
   1370       \begin{description}
   1371       \item[$A$] Some amount, $A \ge A_{DK}$
   1372       \item[$RK$] Reserve key
   1373       \item[$DK$] Denomination key
   1374       \item[$b$] Blinding factor
   1375       \item[$B_b()$] RSA-FDH blinding % DK supressed
   1376       \item[$C$] Coin public key $C := cG$
   1377       \item[$S_{RK}()$] EdDSA signature
   1378       \item[$S_{DK}()$] RSA-FDH signature
   1379       \end{description}
   1380     \end{minipage}
   1381   \end{figure}
   1382 \end{frame}
   1383 
   1384 
   1385 \begin{frame}[t]{Taler {\tt /deposit}}
   1386 Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$.
   1387 \bigskip
   1388   \begin{figure}[th]
   1389     \begin{minipage}[b]{0.45\linewidth}
   1390       \begin{center}
   1391         \begin{tikzpicture}[scale = 0.4,
   1392             transform shape,
   1393             msglabel/.style    = { text = Black, yshift = .3cm,
   1394                                    sloped, midway },
   1395             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1396                                    >=stealth },
   1397             rstmsg/.style      = { ->, color = BrickRed, thick,
   1398                                    >=stealth }
   1399           ]
   1400           \node[draw = MidnightBlue,
   1401             fill = CornflowerBlue,
   1402             minimum width = .3cm,
   1403             minimum height = 10cm
   1404           ] (h1) at (-4, 0) {};
   1405           \node[draw = MidnightBlue,
   1406             fill = CornflowerBlue,
   1407             minimum width = .3cm,
   1408             minimum height = 10cm
   1409           ] (h2) at (4, 0) {};
   1410           \node[above = 0cm of h1] {Merchant};
   1411           \node[above = 0cm of h2] {Exchange};
   1412 
   1413           \path[->, color = MidnightBlue, very thick, >=stealth]
   1414             (-5, 4.5) edge
   1415             node[rotate=90, text = Black, yshift = .3cm] {Time}
   1416             (-5, -4.5);
   1417           \path[->, color = MidnightBlue, thick, >=stealth]
   1418             ($(h1.east)+(0,3)$) edge
   1419             node[text = Black, yshift = .3cm, sloped] {POST {\tt /deposit} $S_{DK}(C), S_{c}(D)$}
   1420             ($(h2.west)+(0,2)$);
   1421           \path[->, color = MidnightBlue, thick, >=stealth]
   1422             ($(h2.west)+(0,0.5)$) edge
   1423             node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$}
   1424             ($(h1.east)+(0,-0.5)$);
   1425           \path[rstmsg]
   1426             ($(h2.west)+(0, -2.5)$) edge
   1427             node[msglabel] {409 CONFLICT: $S_{c}(D')$}
   1428             ($(h1.east)+(0, -3.5)$);
   1429           \node at (5.3, 0) {};
   1430         \end{tikzpicture}
   1431       \end{center}
   1432     \end{minipage}
   1433     \hspace{0.5cm}
   1434     \begin{minipage}[b]{0.45\linewidth}
   1435       \tiny
   1436       \begin{description}
   1437       \item[$DK$] Denomination key
   1438       \item[$S_{DK}()$] RSA-FDH signature using $DK$
   1439       \item[$c$] Private coin key, $C := cG$.
   1440       \item[$S_{C}()$] EdDSA signature using $c$
   1441       \item[$D$] Deposit details
   1442       \item[$SK$] Exchange's signing key
   1443       \item[$S_{SK}()$] EdDSA signature using $SK$
   1444       \item[$D'$] Conficting deposit details $D' \not= D$
   1445       \end{description}
   1446     \end{minipage}
   1447   \end{figure}
   1448 \end{frame}
   1449 
   1450 
   1451 \begin{frame}{Taler {\tt /refresh/melt}}
   1452   \begin{figure}[th]
   1453     \begin{minipage}[b]{0.45\linewidth}
   1454       \begin{center}
   1455 	\begin{tikzpicture}[scale = 0.4,
   1456             transform shape,
   1457             msglabel/.style    = { text = Black, yshift = .3cm,
   1458                                    sloped, midway },
   1459             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1460                                    >=stealth },
   1461             rstmsg/.style      = { ->, color = BrickRed, thick,
   1462                                    >=stealth }
   1463 	  ]
   1464 	  \node[draw = MidnightBlue,
   1465 	    fill = CornflowerBlue,
   1466 	    minimum width = .3cm,
   1467 	    minimum height = 10cm
   1468 	  ] (h1) at (-4, 0) {};
   1469 	  \node[draw = MidnightBlue,
   1470 	    fill = CornflowerBlue,
   1471 	    minimum width = .3cm,
   1472 	    minimum height = 10cm
   1473 	  ] (h2) at (4, 0) {};
   1474 	  \node[above = 0cm of h1] {Customer};
   1475 	  \node[above = 0cm of h2] {Exchange};
   1476 
   1477 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1478 	    (-5, 4.5) edge
   1479 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1480 	    (-5, -4.5);
   1481 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1482 	    ($(h1.east)+(0,3)$) edge
   1483 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$}
   1484 	    ($(h2.west)+(0,2)$);
   1485 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1486 	    ($(h2.west)+(0,0.5)$) edge
   1487 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$}
   1488 	    ($(h1.east)+(0,-0.5)$);
   1489 	  \path[rstmsg]
   1490 	    ($(h2.west)+(0, -2.5)$) edge
   1491 	    node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$}
   1492 	    ($(h1.east)+(0, -3.5)$);
   1493 	  \node at (5.3, 0) {};
   1494 	\end{tikzpicture}
   1495       \end{center}
   1496     \end{minipage}
   1497     \hspace{0.5cm}
   1498     \begin{minipage}[b]{0.45\linewidth}
   1499       \tiny
   1500       \begin{description}
   1501       \item[$\kappa$] System-wide security parameter, usually 3.
   1502       \\ \smallskip
   1503       \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\
   1504       $D + \sum_i A_{DK^{(i)}} < A_{DK}$
   1505       \item[$t_j$] Random scalar for $j<\kappa$
   1506       \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$
   1507       \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE
   1508       \item[$b_j^{(i)}$] $:= KDF_b(k_j,i)$ % blinding factor
   1509       \item[$c_j^{(i)}$] $:= KDF_c(k_j,i)$ % coin secret keys
   1510       \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys
   1511       \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\
   1512          $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$
   1513       \\ \smallskip
   1514       \item[$\gamma$] Random value in $[0,\kappa)$
   1515 %      \\ \smallskip
   1516 %      \item[$X$] Deposit or refresh
   1517       \end{description}
   1518     \end{minipage}
   1519   \end{figure}
   1520 \end{frame}
   1521 
   1522 
   1523 \begin{frame}{Taler {\tt /refresh/reveal}}
   1524   \begin{figure}[th]
   1525     \begin{minipage}[b]{0.45\linewidth}
   1526       \begin{center}
   1527 	\begin{tikzpicture}[scale = 0.4,
   1528             transform shape,
   1529             msglabel/.style    = { text = Black, yshift = .3cm,
   1530                                    sloped, midway },
   1531             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1532                                    >=stealth },
   1533             rstmsg/.style      = { ->, color = BrickRed, thick,
   1534                                    >=stealth }
   1535 	  ]
   1536 	  \node[draw = MidnightBlue,
   1537 	    fill = CornflowerBlue,
   1538 	    minimum width = .3cm,
   1539 	    minimum height = 10cm
   1540 	  ] (h1) at (-4, 0) {};
   1541 	  \node[draw = MidnightBlue,
   1542 	    fill = CornflowerBlue,
   1543 	    minimum width = .3cm,
   1544 	    minimum height = 10cm
   1545 	  ] (h2) at (4, 0) {};
   1546 	  \node[above = 0cm of h1] {Customer};
   1547 	  \node[above = 0cm of h2] {Exchange};
   1548 
   1549 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1550 	    (-5, 4.5) edge
   1551 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1552 	    (-5, -4.5);
   1553 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1554 	    ($(h1.east)+(0,3)$) edge
   1555 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$}
   1556 	    ($(h2.west)+(0,2)$);
   1557 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1558 	    ($(h2.west)+(0,0.5)$) edge
   1559 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$}
   1560 	    ($(h1.east)+(0,-0.5)$);
   1561 	  \path[rstmsg]
   1562 	    ($(h2.west)+(0, -2.5)$) edge
   1563 	    node[msglabel] {400 BAD REQUEST: $Z$}
   1564 	    ($(h1.east)+(0, -3.5)$);
   1565 	  \node at (5.3, 0) {};
   1566 	\end{tikzpicture}
   1567       \end{center}
   1568     \end{minipage}
   1569     \hspace{0.5cm}
   1570     \begin{minipage}[b]{0.45\linewidth}
   1571       \tiny
   1572       \begin{description}
   1573       \item[$\cal DK$] $:= [DK^{(i)}]_i$
   1574       \item[$t_j$] .. \\ \smallskip
   1575 
   1576       \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip
   1577 
   1578       \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$
   1579       \item[$b_\gamma^{(i)}$] $:= KDF_b(k_\gamma,i)$
   1580       \item[$c_\gamma^{(i)}$] $:= KDF_c(k_\gamma,i)$
   1581       \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$
   1582 
   1583       \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$
   1584       \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$
   1585       \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip
   1586 
   1587       \item[$Z$] Cut-and-choose missmatch information
   1588       \end{description}
   1589     \end{minipage}
   1590   \end{figure}
   1591 \end{frame}
   1592 
   1593 
   1594 \begin{frame}{Taler {\tt /refresh/link}}
   1595   \begin{figure}[th]
   1596     \begin{minipage}[b]{0.45\linewidth}
   1597       \begin{center}
   1598 	\begin{tikzpicture}[scale = 0.4,
   1599             transform shape,
   1600             msglabel/.style    = { text = Black, yshift = .3cm,
   1601                                    sloped, midway },
   1602             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1603                                    >=stealth },
   1604             rstmsg/.style      = { ->, color = BrickRed, thick,
   1605                                    >=stealth }
   1606 	  ]
   1607 	  \node[draw = MidnightBlue,
   1608 	    fill = CornflowerBlue,
   1609 	    minimum width = .3cm,
   1610 	    minimum height = 10cm
   1611 	  ] (h1) at (-4, 0) {};
   1612 	  \node[draw = MidnightBlue,
   1613 	    fill = CornflowerBlue,
   1614 	    minimum width = .3cm,
   1615 	    minimum height = 10cm
   1616 	  ] (h2) at (4, 0) {};
   1617 	  \node[above = 0cm of h1] {Customer};
   1618 	  \node[above = 0cm of h2] {Exchagne};
   1619 
   1620 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1621 	    (-5, 4.5) edge
   1622 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1623 	    (-5, -4.5);
   1624 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1625 	    ($(h1.east)+(0,3)$) edge
   1626 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$}
   1627 	    ($(h2.west)+(0,2)$);
   1628 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1629 	    ($(h2.west)+(0,0.5)$) edge
   1630 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$}
   1631 	    ($(h1.east)+(0,-0.5)$);
   1632 	  \path[rstmsg]
   1633 	    ($(h2.west)+(0, -2.5)$) edge
   1634 	    node[msglabel] {404 NOT FOUND}
   1635 	    ($(h1.east)+(0, -3.5)$);
   1636 	  \node at (5.3, 0) {};
   1637 	\end{tikzpicture}
   1638       \end{center}
   1639     \end{minipage}
   1640     \hspace{0.5cm}
   1641     \begin{minipage}[b]{0.45\linewidth}
   1642       \tiny
   1643       \begin{description}
   1644       \item[$C$] Old coind public key \\ \smallskip
   1645       \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$
   1646       \end{description}
   1647     \end{minipage}
   1648   \end{figure}
   1649 \end{frame}
   1650 
   1651 
   1652 \begin{frame}{Operational security}
   1653   \begin{center}
   1654     \resizebox{\textwidth}{!}{
   1655 \begin{tikzpicture}[
   1656   font=\sffamily,
   1657   every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm},
   1658   source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm},
   1659   process/.style={draw,thick,circle,fill=blue!20},
   1660   sink/.style={source,fill=green!20},
   1661   datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm},
   1662   dots/.style={gray,scale=2},
   1663   to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize},
   1664   every node/.style={align=center}]
   1665 
   1666   % Position the nodes using a matrix layout
   1667   \matrix{
   1668     \node[source] (wallet) {Wallet};
   1669       \& \node[process] (browser) {Browser};
   1670       \& \node[process] (shop) {Web shop};
   1671       \& \node[sink] (backend) {Taler backend}; \\
   1672   };
   1673 
   1674   % Draw the arrows between the nodes and label them.
   1675   \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract}
   1676       node[midway,below] {(signal)} (wallet);
   1677   \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)}
   1678       node[midway,below] {(5) signed coins} (browser);
   1679   \draw[<->] (browser) -- node[midway,above] {(3,6) custom}
   1680       node[midway,below] {(HTTPS)} (shop);
   1681   \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)}
   1682       node[midway,below] {(1) proposed contract / (7) signed coins} (backend);
   1683   \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation}
   1684       node[midway,below] {(HTTPS)} (shop);
   1685 \end{tikzpicture}
   1686 }
   1687 \end{center}
   1688 \end{frame}
   1689 \begin{frame}{Diffie-Hellman (ECDH)}
   1690   \begin{minipage}{8cm}
   1691    \begin{enumerate}
   1692     \item Create private keys $c,t \mod o$
   1693     \item Define $C = cG$
   1694     \item Define $T = tG$
   1695     \item Compute DH \\ $cT = c(tG) = t(cG) = tC$
   1696     \end{enumerate}
   1697    \end{minipage}
   1698   \begin{minipage}{6cm}
   1699   \begin{tikzpicture}
   1700    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
   1701     \node (t) [def, draw=none] at (0,0) {$t$};
   1702     \node (ct) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{dh.pdf}};
   1703     \node (c) [def, draw=none, above left= of ct]  {$c$};
   1704     \tikzstyle{C} = [color=black, line width=1pt]
   1705 
   1706     \draw [<-, C] (ct) -- (c) node [midway, above, sloped] (TextNode) {};
   1707     \draw [<-, C] (ct) -- (t) node [midway, above, sloped] (TextNode) {};
   1708   \end{tikzpicture}
   1709   \end{minipage}
   1710 \end{frame}
   1711 
   1712 
   1713 \begin{frame}{Strawman solution}
   1714   \begin{minipage}{8cm}
   1715     Given partially spent private coin key $c_{old}$:
   1716    \begin{enumerate}
   1717 %    \item Let $C_{old} := c_{old}G$ (as before)
   1718     \item Pick random $c_{new} \mod o$ private key
   1719     \item $C_{new} = c_{new}G$ public key
   1720     \item Pick random $b_{new}$
   1721     \item Compute $f_{new} := FDH(C_{new})$, $m < n$.
   1722     \item Transmit $f'_{new} := f_{new} b_{new}^e \mod n$
   1723    \end{enumerate}
   1724    ... and sign request for change with $c_{old}$.
   1725    \end{minipage}
   1726   \begin{minipage}{4cm}
   1727   \begin{tikzpicture}
   1728    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1729     \node (blinded) [def, draw=none]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1730     \node (planchet) [def, draw=none, above left= of blinded]  {\includegraphics[width=0.15\textwidth]{planchet.pdf}};
   1731     \node (cnew) [def, draw=none, above= of planchet]  {$c_{new}$};
   1732     \node (bnew) [def, draw=none, above right= of blinded]  {$b_{new}$};
   1733     \node (dice1) [def, draw=none, above = of cnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
   1734     \node (dice2) [def, draw=none, above = of bnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
   1735     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
   1736 
   1737     \tikzstyle{C} = [color=black, line width=1pt]
   1738 
   1739     \draw [<-, C] (cnew) -- (dice1) node [midway, above, sloped] (TextNode) {};
   1740     \draw [<-, C] (planchet) -- (cnew) node [midway, above, sloped] (TextNode) {};
   1741     \draw [<-, C] (bnew) -- (dice2) node [midway, above, sloped] (TextNode) {};
   1742     \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {};
   1743     \draw [<-, C] (blinded) -- (bnew) node [midway, above, sloped] (TextNode) {};
   1744     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
   1745   \end{tikzpicture}
   1746   \end{minipage}
   1747   \pause
   1748   \vfill
   1749   {\bf Problem: Owner of $c_{new}$ may differ from owner of $c_{old}$!}
   1750 \end{frame}
   1751 
   1752 
   1753 \begin{frame}{Customer: Transfer key setup (ECDH)}
   1754   \begin{minipage}{8cm}
   1755     Given partially spent private coin key $c_{old}$:
   1756    \begin{enumerate}
   1757     \item Let $C_{old} := c_{old}G$ (as before)
   1758     \item Create random private transfer key $t \mod o$
   1759     \item Compute $T := tG$
   1760     \item Compute $X := c_{old}(tG) = t(c_{old}G) = tC_{old}$
   1761     \item Derive $c_{new}$ and $b_{new}$ from $X$
   1762     \item Compute $C_{new} := c_{new}G$
   1763     \item Compute $f_{new} := FDH(C_{new})$
   1764     \item Transmit $f_{new}' := f_{new} b_{new}^e$
   1765     \end{enumerate}
   1766    \end{minipage}
   1767   \begin{minipage}{4cm}
   1768   \begin{tikzpicture}
   1769    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1770     \node (t) [def, draw=none] at (0,0) {$t$};
   1771     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
   1772     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1773     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
   1774     \node (cp) [def, draw=none, below left= of dh]  {$c_{new}$};
   1775     \node (bp) [def, draw=none, below right= of dh]  {$b_{new}$};
   1776     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1777     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
   1778 
   1779     \tikzstyle{C} = [color=black, line width=1pt]
   1780 
   1781     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
   1782     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
   1783     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
   1784     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1785     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1786     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
   1787     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
   1788     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
   1789   \end{tikzpicture}
   1790   \end{minipage}
   1791 \end{frame}
   1792 
   1793 
   1794 \begin{frame}{Cut-and-Choose}
   1795   \begin{minipage}{4cm}
   1796   \begin{tikzpicture}
   1797    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1798     \node (t) [def, draw=none] at (0,0) {$t_1$};
   1799     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
   1800     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1801     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
   1802     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,1}$};
   1803     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,1}$};
   1804     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1805     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
   1806 
   1807     \tikzstyle{C} = [color=black, line width=1pt]
   1808 
   1809     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
   1810     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
   1811     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
   1812     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1813     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1814     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
   1815     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
   1816     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
   1817   \end{tikzpicture}
   1818   \end{minipage}
   1819   \begin{minipage}{4cm}
   1820   \begin{tikzpicture}
   1821    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1822     \node (t) [def, draw=none] at (0,0) {$t_2$};
   1823     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
   1824     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1825     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
   1826     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,2}$};
   1827     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,2}$};
   1828     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1829     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
   1830 
   1831     \tikzstyle{C} = [color=black, line width=1pt]
   1832 
   1833     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
   1834     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
   1835     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
   1836     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1837     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1838     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
   1839     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
   1840     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
   1841   \end{tikzpicture}
   1842   \end{minipage}
   1843   \begin{minipage}{4cm}
   1844   \begin{tikzpicture}
   1845    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1846     \node (t) [def, draw=none] at (0,0) {$t_3$};
   1847     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
   1848     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1849     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
   1850     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,3}$};
   1851     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,3}$};
   1852     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1853     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
   1854 
   1855     \tikzstyle{C} = [color=black, line width=1pt]
   1856 
   1857     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
   1858     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
   1859     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
   1860     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1861     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1862     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
   1863     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
   1864     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
   1865   \end{tikzpicture}
   1866   \end{minipage}
   1867 \end{frame}
   1868 
   1869 
   1870 \begin{frame}{Exchange: Choose!}
   1871    \begin{center}
   1872     \item Exchange sends back random $\gamma \in \{ 1, 2, 3 \}$ to the customer.
   1873     \end{center}
   1874 \end{frame}
   1875 
   1876 
   1877 \begin{frame}{Customer: Reveal}
   1878    \begin{enumerate}
   1879    \item If $\gamma = 1$, send $t_2$, $t_3$ to exchange
   1880    \item If $\gamma = 2$, send $t_1$, $t_3$ to exchange
   1881    \item If $\gamma = 3$, send $t_1$, $t_2$ to exchange
   1882   \end{enumerate}
   1883 \end{frame}
   1884 
   1885 
   1886 \begin{frame}{Exchange: Verify ($\gamma = 2$)}
   1887   \begin{minipage}{4cm}
   1888   \begin{tikzpicture}
   1889    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1890     \node (h) [def, draw=none] at (0,0) {$t_1$};
   1891     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1892     \node (d) [def, draw=none, above left= of dh]  {$C_{old}$};
   1893     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,1}$};
   1894     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,1}$};
   1895     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1896 
   1897     \tikzstyle{C} = [color=black, line width=1pt]
   1898 
   1899     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
   1900     \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {};
   1901     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1902     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1903     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
   1904     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
   1905   \end{tikzpicture}
   1906   \end{minipage}
   1907   \begin{minipage}{4cm}
   1908  \
   1909   \end{minipage}
   1910   \begin{minipage}{4cm}
   1911   \begin{tikzpicture}
   1912    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1913     \node (h) [def, draw=none] at (0,0) {$t_3$};
   1914     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1915     \node (d) [def, draw=none, above left= of dh]  {$C_{old}$};
   1916     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,3}$};
   1917     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,3}$};
   1918     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1919 
   1920     \tikzstyle{C} = [color=black, line width=1pt]
   1921 
   1922     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
   1923     \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {};
   1924     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1925     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1926     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
   1927     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
   1928   \end{tikzpicture}
   1929   \end{minipage}
   1930 \end{frame}
   1931 
   1932 
   1933 \begin{frame}{Exchange: Blind sign change (RSA)}
   1934    \begin{minipage}{6cm}
   1935     \begin{enumerate}
   1936     \item Take $f_{new,\gamma}'$.
   1937     \item Compute $s' := f_{new,\gamma}'^d \mod n$.
   1938     \item Send signature $s'$.
   1939     \end{enumerate}
   1940    \end{minipage}
   1941   \begin{minipage}{6cm}
   1942   \begin{tikzpicture}
   1943    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
   1944     \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}};
   1945     \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}};
   1946     \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1947     \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer};
   1948     \tikzstyle{C} = [color=black, line width=1pt]
   1949 
   1950     \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {};
   1951     \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {};
   1952     \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}};
   1953   \end{tikzpicture}
   1954   \end{minipage}
   1955 \end{frame}
   1956 
   1957 
   1958 \begin{frame}{Customer: Unblind change (RSA)}
   1959   \begin{minipage}{6cm}
   1960    \begin{enumerate}
   1961     \item Receive $s'$.
   1962     \item Compute $s := s' b_{new,\gamma}^{-1} \mod n$.
   1963     \end{enumerate}
   1964    \end{minipage}
   1965   \begin{minipage}{6cm}
   1966   \begin{tikzpicture}
   1967    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
   1968     \node (b) [def, draw=none] at (0,0) {$b_{new,\gamma}$};
   1969     \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
   1970     \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   1971     \tikzstyle{C} = [color=black, line width=1pt]
   1972 
   1973     \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {};
   1974     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
   1975   \end{tikzpicture}
   1976   \end{minipage}
   1977 \end{frame}
   1978 
   1979 
   1980 \begin{frame}{Exchange: Allow linking change}
   1981   \begin{minipage}{7cm}
   1982     \begin{center}
   1983     Given $C_{old}$
   1984 
   1985     \vspace{1cm}
   1986 
   1987     return $T_\gamma$, $s := s' b_{new,\gamma}^{-1} \mod n$.
   1988   \end{center}
   1989    \end{minipage}
   1990   \begin{minipage}{5cm}
   1991    \begin{tikzpicture}
   1992     \tikzstyle{def} = [node distance= 3em and 0.5em, inner sep=0.5em, outer sep=.3em];
   1993     \node (co) [def, draw=none] at (0,0) {$C_{old}$};
   1994     \node (T) [def, draw=none, below left=of co]{$T_\gamma$};
   1995     \node (sign) [def, draw=none, below right=of co]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   1996     \node (customer) [def, draw, below right=of T] {Customer};
   1997 
   1998     \tikzstyle{C} = [color=black, line width=1pt]
   1999 
   2000     \draw [<-, C] (T) -- (co) node [midway, above, sloped] (TextNode) {};
   2001     \draw [<-, C] (sign) -- (co) node [midway, above, sloped] (TextNode) {};
   2002     \draw [<-, C] (customer) -- (T) node [midway, above, sloped] (TextNode) {link};
   2003     \draw [<-, C] (customer) -- (sign) node [midway, above, sloped] (TextNode) {link};
   2004   \end{tikzpicture}
   2005   \end{minipage}
   2006 \end{frame}
   2007 
   2008 
   2009 \begin{frame}{Customer: Link (threat!)}
   2010   \begin{minipage}{6.3cm}
   2011    \begin{enumerate}
   2012     \item Have $c_{old}$.
   2013     \item Obtain $T_\gamma$, $s$ from exchange
   2014     \item Compute $X_\gamma = c_{old}T_\gamma$
   2015     \item Derive $c_{new,\gamma}$ and $b_{new,\gamma}$ from $X_\gamma$
   2016     \item Unblind $s := s' b_{new,\gamma}^{-1} \mod n$
   2017   \end{enumerate}
   2018 
   2019    \end{minipage}
   2020   \begin{minipage}{5.7cm}
   2021   \begin{tikzpicture}
   2022   \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   2023     \node (T) [def, draw=none] at (0,0) {$T_\gamma$};
   2024     \node (exchange) [def, inner sep=0.5em, draw, above left=of T] {Exchange};
   2025     \node (signed) [def, draw=none, below left=of T]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   2026     \node (dh) [def, draw=none, below right=of T]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   2027     \node (bp) [def, draw=none, below left= of dh]  {$b_{new,\gamma}$};
   2028     \node (co) [def, draw=none, above right= of dh]  {$c_{old}$};
   2029     \node (cp) [def, draw=none, below= of dh]  {$c_{new,\gamma}$};
   2030     \node (coin) [def, draw=none, below left = of bp]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
   2031     \node (psign) [def, node distance=2.5em and 0em, draw=none, below = of cp]{\includegraphics[width=0.2\textwidth]{planchet-sign.pdf}};
   2032 
   2033     \tikzstyle{C} = [color=black, line width=1pt]
   2034 
   2035     \draw [<-, C] (dh) -- (co) node [midway, above, sloped] (TextNode) {};
   2036     \draw [<-, C] (dh) -- (T) node [midway, above, sloped] (TextNode) {};
   2037     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   2038     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   2039     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
   2040     \draw [<-, C] (coin) -- (bp) node [midway, above, sloped] (TextNode) {};
   2041     \draw [<-, C] (T) -- (exchange) node [midway, above, sloped] (TextNode) {link};
   2042     \draw [<-, C] (signed) -- (exchange) node [midway, below, sloped] (TextNode) {link};
   2043     \draw [<-, C, double] (psign) -- (cp) node [midway, below, sloped] (TextNode) {};
   2044   \end{tikzpicture}
   2045   \end{minipage}
   2046 \end{frame}
   2047 
   2048 
   2049 \begin{frame}{Use Cases: Refugee Camps}
   2050   Today:
   2051   \begin{itemize}
   2052   \item Non-bankable
   2053   \item Direct distribution of goods to population
   2054   \item Limited economic activity in camps
   2055   \item High level of economic dependence
   2056   \end{itemize}\vfill\pause
   2057   With GNU Taler:
   2058   \begin{itemize}
   2059   \item Local currency issued as basic income backed by aid
   2060   \item Taxation possible based on economic status
   2061   \item Local governance enabled by local taxes
   2062   \item Increased economic independence and political participation
   2063   \end{itemize}
   2064 \end{frame}