marketing

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

2021-monetative.tex (60408B)


      1 \pdfminorversion=3
      2 \documentclass[fleqn,xcolor={usenames,dvipsnames}]{beamer}
      3 \usepackage{amsmath}
      4 \usepackage{multimedia}
      5 \usepackage[utf8]{inputenc}
      6 \usepackage{framed,color,ragged2e}
      7 \usepackage[absolute,overlay]{textpos}
      8 \definecolor{shadecolor}{rgb}{0.8,0.8,0.8}
      9 \usetheme{boxes}
     10 \setbeamertemplate{navigation symbols}{}
     11 \usepackage{xcolor}
     12 \usepackage{tikz,eurosym}
     13 \usepackage[normalem]{ulem}
     14 \usepackage{listings}
     15 \usepackage{adjustbox}
     16 
     17 % CSS
     18 \lstdefinelanguage{CSS}{
     19   basicstyle=\ttfamily\scriptsize,
     20   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},
     21   sensitive=true,
     22   morecomment=[l]{//},
     23   morecomment=[s]{/*}{*/},
     24   morestring=[b]',
     25   morestring=[b]",
     26   alsoletter={:},
     27   alsodigit={-}
     28 }
     29 
     30 % JavaScript
     31 \lstdefinelanguage{JavaScript}{
     32   basicstyle=\ttfamily\scriptsize,
     33   morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
     34   morecomment=[s]{/*}{*/},
     35   morecomment=[l]//,
     36   morestring=[b]",
     37   morestring=[b]'
     38 }
     39 
     40 \lstdefinelanguage{HTML5}{
     41   basicstyle=\ttfamily\scriptsize,
     42   language=html,
     43   sensitive=true,
     44   alsoletter={<>=-},
     45   morecomment=[s]{<!-}{-->},
     46   tag=[s],
     47   otherkeywords={
     48   % General
     49   >,
     50   % Standard tags
     51 	<!DOCTYPE,
     52   </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
     53 	% body
     54 	</body, <body,
     55 	% Divs
     56 	</div, <div, </div>,
     57 	% Paragraphs
     58 	</p, <p, </p>,
     59 	% scripts
     60 	</script, <script,
     61   % More tags...
     62   <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>
     63   },
     64   ndkeywords={
     65   % General
     66   =,
     67   % HTML attributes
     68   charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
     69   % SVG attributes
     70   fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
     71   % CSS properties
     72   margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:,
     73 	% CSS3 properties
     74   transform:, -moz-transform:, -webkit-transform:,
     75   animation:, -webkit-animation:,
     76   transition:,  transition-duration:, transition-property:, transition-timing-function:,
     77   }
     78 }
     79 
     80 \lstdefinelanguage{JavaScript}{
     81   basicstyle=\ttfamily\scriptsize,
     82   keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for},
     83   keywordstyle=\color{blue}\bfseries,
     84   ndkeywords={class, export, boolean, throw, implements, import, this},
     85   ndkeywordstyle=\color{darkgray}\bfseries,
     86   identifierstyle=\color{black},
     87   sensitive=false,
     88   comment=[l]{//},
     89   morecomment=[s]{/*}{*/},
     90   commentstyle=\color{purple}\ttfamily,
     91   stringstyle=\color{red}\ttfamily,
     92   morestring=[b]',
     93   morestring=[b]"
     94 }
     95 
     96 \usetikzlibrary{shapes,arrows}
     97 \usetikzlibrary{positioning}
     98 \usetikzlibrary{calc}
     99 
    100 \title{GNU Taler}
    101 %\subtitle{}
    102 
    103 \setbeamertemplate{navigation symbols}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=2.3cm]{bfh.png} \includegraphics[width=1.6cm]{fub.pdf} \includegraphics[width=0.4cm]{ashoka.png}  \includegraphics[width=0.4cm]{gnu.png} \includegraphics[width=1cm]{logo-2020.jpg} \hfill}
    104 %\setbeamercovered{transparent=1}
    105 
    106 \author[C. Grothoff]{J. Burdges, F. Dold, {\bf C. Grothoff}, M. Stanisci}
    107 \date{\today}
    108 \institute{The GNU Project}
    109 
    110 
    111 \begin{document}
    112 
    113 \justifying
    114 
    115 \begin{frame}
    116   \begin{center}
    117     \LARGE {\bf GNU}
    118 
    119     \vfill
    120 %    \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf}
    121     \includegraphics[width=0.66\textwidth]{logo-2020.jpg}
    122   \end{center}
    123 \begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords)
    124     {\Large {\bf \href{https://taler.net/}{taler.net}} \\
    125     \href{https://twitter.com/taler}{taler@twitter} \\
    126     \href{https://taler-systems.com/}{taler-systems.com}}
    127 \end{textblock*}
    128 
    129 % Substitute based on who is giving the talk!
    130  \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords)
    131    {%\hfill {\Large {\bf Florian Dold \&} \\
    132     \hfill {\bf Christian Grothoff}} \\
    133     \hfill grothoff@taler.net
    134 \end{textblock*}
    135 
    136 \end{frame}
    137 
    138 
    139 
    140 \section{What is GNU Taler?}
    141 \begin{frame}{What is GNU Taler?}
    142   \begin{center}
    143 Taler is an electronic instant payment system.
    144   \end{center}
    145   \begin{itemize}
    146   \item Uses electronic coins stored in {\bf wallets} on customer's device
    147   \item Like {\bf cash}
    148   \item Pay in {\bf existing currencies} (i.e. EUR, USD, BTC), \\
    149     or use it to create new {\bf regional currencies}
    150   \end{itemize}
    151   \vfill
    152   \pause
    153  \noindent
    154  However, Taler is
    155   \begin{itemize}
    156     \item \emph{not} a currency
    157     \item \emph{not} a long-term store of value
    158     \item \emph{not} a network or instance of a system
    159     \item \emph{not} decentralized
    160     \item \emph{not} based on proof-of-work or proof-of-stake
    161     \item \emph{not} a speculative asset / ``get-rich-quick scheme''
    162   \end{itemize}
    163 \end{frame}
    164 
    165 
    166 \begin{frame}{Design principles}
    167   \framesubtitle{https://taler.net/en/principles.html}
    168 GNU Taler must ...
    169 \begin{enumerate}
    170   \item {... be implemented as {\bf free software}.}
    171   \item {... protect the {\bf privacy of buyers}.}
    172   \item {... must enable the state to {\bf tax income} and crack down on
    173     illegal business activities.}
    174   \item {... prevent payment fraud.}
    175   \item {... only {\bf disclose the minimal amount of information
    176     necessary}.}
    177   \item {... be usable.}
    178   \item {... be efficient.}
    179   \item {... avoid single points of failure.}
    180   \item {... foster {\bf competition}.}
    181 \end{enumerate}
    182 \end{frame}
    183 
    184 
    185 \begin{frame}
    186 \frametitle{Taler Overview}
    187 \begin{center}
    188 \begin{tikzpicture}
    189  \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em];
    190  \node (origin) at (0,0) {};
    191  \node (exchange) [def,above=of origin,draw]{Exchange};
    192  \node (customer) [def, draw, below left=of origin] {Customer};
    193  \node (merchant) [def, draw, below right=of origin] {Merchant};
    194  \node (auditor) [def, draw, above right=of origin]{Auditor};
    195 % \node (regulator) [def, draw, above=of auditor]{CSSF};
    196 
    197  \tikzstyle{C} = [color=black, line width=1pt]
    198 
    199  \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins};
    200  \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins};
    201  \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins};
    202  \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify};
    203 % \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report};
    204 
    205 \end{tikzpicture}
    206 \end{center}
    207 \end{frame}
    208 
    209 \begin{frame}
    210 \frametitle{Architecture of Taler}
    211 \begin{center}
    212   \includegraphics[width=1\textwidth]{operations.png}
    213 \end{center}
    214 \end{frame}
    215 
    216 
    217 \begin{frame}{Usability of Taler}
    218   \vfill
    219   \begin{center}
    220     \url{https://demo.taler.net/}
    221   \end{center}
    222   \begin{enumerate}
    223   \item Install browser extension.
    224   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    225   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    226   \end{enumerate}
    227   \vfill
    228 \end{frame}
    229 
    230 
    231 \section{Impact}
    232 \begin{frame}{Social Impact of Taler}
    233   \begin{center}
    234     \includegraphics[height=0.9\textheight]{../../social-impact.pdf}
    235   \end{center}
    236 \end{frame}
    237 
    238 
    239 \begin{frame}{Use Case: Journalism}
    240   Today:
    241   \begin{itemize}
    242     \item Corporate structure % ($\Rightarrow$ filter)
    243     \item Advertising primary revenue % ($\Rightarrow$ dependence)
    244     \item Tracking readers critical for business success
    245     \item Journalism and marketing hard to distinguish
    246   \end{itemize}\vfill\pause
    247   With GNU Taler:
    248   \begin{itemize}
    249     \item One-click micropayments per article
    250     \item Hosting requires no expertise % (no PCI DSS)
    251     \item Reader-funded reporting separated from marketing
    252     \item Readers can remain anonymous
    253   \end{itemize}
    254 \end{frame}
    255 
    256 
    257 \begin{frame}{Use Cases: Refugee Camps}
    258   Today:
    259   \begin{itemize}
    260   \item Non-bankable
    261   \item Direct distribution of goods to population
    262   \item Limited economic activity in camps
    263   \item High level of economic dependence
    264   \end{itemize}\vfill\pause
    265   With GNU Taler:
    266   \begin{itemize}
    267   \item Local currency issued as basic income backed by aid
    268   \item Taxation possible based on economic status
    269   \item Local governance enabled by local taxes
    270   \item Increased economic independence and political participation
    271   \end{itemize}
    272 \end{frame}
    273 
    274 
    275 \begin{frame}{Use Case: Anti-Spam}
    276   \framesubtitle{Background: \url{https://pep.security/}}
    277   Today, p$\equiv$p provides authenticated encryption for e-mail:
    278   \begin{itemize}
    279     \item Free software
    280     \item Easy to use opportunistic encryption
    281     \item Available for Outlook, Android, Enigmail
    282     \item Spies \& spam filters can no longer inspect content
    283   \end{itemize}\vfill\pause
    284   With GNU Taler:
    285   \begin{itemize}
    286     \item Peer-to-peer payments via e-mail
    287     \item If unsolicited sender, hide messages from user \&
    288           automatically request payment from sender
    289     \item Sender can attach payment to be moved to inbox
    290     \item Receiver may grant refund to sender
    291   \end{itemize}
    292 \end{frame}
    293 
    294 
    295 \begin{frame}{Taler: Unique Regulatory Features for Central Banks}
    296   \framesubtitle{\url{https://www.snb.ch/en/mmr/papers/id/working_paper_2021_03}}
    297   \begin{itemize}
    298     \item Central bank issues digital coins equivalent to issuing cash \\
    299           $\Rightarrow$ monetary policy remains under CB control
    300     \item Architecture with consumer accounts at commercial banks \\
    301           $\Rightarrow$ no competition for commercial banking (S\&L) \\
    302           $\Rightarrow$ CB does not have to manage KYC, customer support
    303     \item Withdrawal limits and denomination expiration \\
    304           $\Rightarrow$ protects against bank runs and hoarding
    305     \item Income transparency and possibility to set fees \\
    306           $\Rightarrow$ additional insights into economy and new policy options
    307     \item Revocation protocols and loss limitations \\
    308           $\Rightarrow$ exit strategy and handles catastrophic security incidents
    309     \item Privacy by cryptographic design not organizational compliance \\
    310           $\Rightarrow$ CB cannot be forced to facilitate mass-surveillance
    311   \end{itemize}
    312 \end{frame}
    313 
    314 
    315 \section{Project status}
    316 \begin{frame}{Competitor comparison}
    317   \begin{center} \small
    318     \begin{tabular}{l||c|c|c|c|c}
    319                 & Cash & Bitcoin & Zerocoin & Creditcard & GNU Taler \\ \hline \hline
    320    Online      &$-$$-$$-$  &   ++    &    ++    &     +      &   +++  \\ \hline
    321     Offline     & +++  &   $-$$-$    &    $-$$-$    &     +      &   $-$$-$  \\ \hline
    322     Trans. cost & +    & $-$$-$$-$   & $-$$-$$-$  &     $-$      &   ++  \\ \hline
    323     Speed       & +    & $-$$-$$-$   & $-$$-$$-$  &     o      &   ++  \\ \hline
    324     Taxation    & $-$    &   $-$$-$    &  $-$$-$$-$   &    +++     &  +++  \\ \hline
    325     Payer-anon  &  ++  &   o     &    ++    &  $-$$-$$-$   &  +++  \\ \hline
    326     Payee-anon  & ++   &   o     &    ++    &  $-$$-$$-$    &  $-$$-$$-$ \\ \hline
    327     Security    &  $-$   &   o     &    o     &    $-$$-$      &  ++   \\ \hline
    328     Conversion  & +++  &  $-$$-$$-$   & $-$$-$$-$ &    +++     &  +++  \\ \hline
    329     Libre       &  $-$   &  +++    &    +++   & $-$ $-$ $-$      &  +++  \\
    330   \end{tabular}
    331   \end{center}
    332 \end{frame}
    333 
    334 
    335 \begin{frame}{Taler: Project Status}
    336 \begin{itemize}
    337     \item Protocols and core exchange component are stable
    338     \item Current focus: Merchant integration, settlement integration, wallet backup, 100k TPS scalability
    339     \item Pilot project at Bern University of Applied Sciences cafeteria
    340     \item Internal alpha deployment with a commercial bank in progress
    341   \end{itemize}
    342   \vfill
    343 \begin{center}
    344 \includegraphics[width=0.7\textwidth]{taler-in-use.png}
    345 \end{center}
    346 \end{frame}
    347 
    348 
    349 \begin{frame}{Ongoing development}
    350 We have ideas for protocol extensions and ``programmable money'':
    351   \begin{itemize}
    352     \item Mediated wallet-to-wallet payments (instead of customer-to-merchant)
    353     \item Age-restricted private payments for children (youth protection)
    354     \item Privacy-preserving auctions (trading, currency exchange)
    355   \end{itemize}
    356 We also are looking into:
    357   \begin{itemize}
    358     \item General digital wallet usability and availability
    359     \item Accessibility features for illiterate and innumerate users
    360   \end{itemize}
    361 \end{frame}
    362 
    363 
    364 \begin{frame}{How to support?}
    365   \begin{description}
    366     \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}}, \\
    367                  \url{irc://irc.freenode.net/\#taler}
    368     \item[Develop:] \url{https://bugs.taler.net/}, \url{https://git.taler.net/}
    369     \item[Translate:] \url{https://weblate.taler.net/}, \url{translation-volunteer@taler.net}
    370     \item[Integrate:] \url{https://docs.taler.net/}
    371     \item[Donate:] \url{https://gnunet.org/ev}
    372     \item[Invest:] \url{https://taler-systems.com/}
    373   \end{description}
    374   We are looking for:
    375   \begin{itemize}
    376     \item European media organizations (50+ staff, 2+M annual turnover)
    377           for pilot Taler integration paid by \url{https://stadiem.eu/} project
    378           ({\bf urgent})!
    379     \item Commercial banks to offer Taler to their customers
    380     \item Central banks to operate Taler as a CBDC
    381   \end{itemize}
    382 \end{frame}
    383 
    384 
    385 \begin{frame}
    386 \frametitle{Do you have any questions?}
    387 \vfill
    388 References:
    389 {\tiny
    390   \begin{enumerate}
    391  \item{David Chaum, Christian Grothoff and Thomas Moser.
    392        {\em How to issue a central bank digital currency}.
    393        {\bf SNB Working Papers, 2021}.}
    394  \item{Christian Grothoff, Bart Polot and Carlo von Loesch.
    395        {\em The Internet is broken: Idealistic Ideas for building a GNU Network}.
    396        {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.}
    397  \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci.
    398        {\em Enabling Secure Web Payments with GNU Taler}.
    399        {\bf SPACE 2016}.}
    400  \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff.
    401        {\em Taler: Taxable Anonymous Libre Electronic Reserves}.
    402        Available upon request. 2016.}
    403  \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza.
    404        {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}.
    405        {\bf IEEE Symposium on Security \& Privacy, 2016}.}
    406  \item{David Chaum, Amos Fiat and Moni Naor.
    407        {\em Untraceable electronic cash}.
    408        {\bf Proceedings on Advances in Cryptology, 1990}.}
    409   \item{Phillip Rogaway.
    410        {\em The Moral Character of Cryptographic Work}.
    411        {\bf Asiacrypt}, 2015.} \label{bib:rogaway}
    412 \end{enumerate}
    413 }
    414 \end{frame}
    415 
    416 
    417 \begin{frame}{The Distraction: Bitcoin}
    418 
    419 \begin{itemize}
    420 \item Unregulated payment system and currency:
    421 \item[] $\Rightarrow$ lack of regulation is a feature!
    422 \item Implemented in free software
    423 \item Decentralised peer-to-peer system   \pause
    424 \item Decentralised banking requires solving Byzantine consensus
    425 \item Creative solution: tie initial accumulation to solving consensus \pause
    426 \item[] $\Rightarrow$ Proof-of-work advances ledger
    427 \item[] $\Rightarrow$ Very expensive banking
    428 \end{itemize}
    429 \end{frame}
    430 
    431 
    432 \begin{frame}
    433   \frametitle{\includegraphics[height=0.5cm]{pics/bitcoin.png}?}
    434   \framesubtitle{Background: \url{https://blockchain.com/charts/}}
    435   \centering
    436 \noindent
    437 \includegraphics[width=\textwidth]{pics/btc-transaction-cost.png}
    438 
    439 Current average transaction value: $\approx$ 1000 USD
    440 \end{frame}
    441 
    442 
    443 \begin{frame}
    444   \frametitle{\includegraphics[height=0.5cm]{pics/zerocoin.png}?}
    445 
    446 Cryptography is rather primitive:
    447 \begin{center}
    448   {\bf All Bitcoin transactions are public and linkable!}
    449 \end{center}
    450 
    451 \begin{itemize}
    452 \item[] $\Rightarrow$ no privacy guarantees
    453 \item[] $\Rightarrow$ enhanced with ``laundering'' services
    454 \end{itemize}
    455 ZeroCoin, CryptoNote (Monero) and ZeroCash (ZCash) offer anonymity.
    456 \end{frame}
    457 
    458 
    459 \begin{frame}{Requirements: Online vs. Offline Digital Currencies}
    460 \framesubtitle{\url{https://taler.net/papers/euro-bearer-online-2021.pdf}}
    461 \begin{itemize}
    462     \item Offline capabilities are sometimes cited as a requirement for digital payment solutions
    463     \item All implementations must either use restrictive hardware elements and/or introduce
    464       counterparty risk.
    465     \item[$\Rightarrow$] Permanent offline features weaken a digital payment solution (privacy, security)
    466     \item[$\Rightarrow$] Introduces unwarranted competition for physical cash (endangers emergency-preparedness).
    467   \end{itemize}
    468   We recommend a tiered approach:
    469       \begin{enumerate}
    470         \item Online-first, bearer-based digital currency with Taler
    471         \item (Optional:) Limited offline mode for network outages
    472         \item Physical cash for emergencies (power outage, catastrophic cyber incidents)
    473       \end{enumerate}
    474 \end{frame}
    475 
    476 
    477 \section{How does it work?}
    478 \begin{frame}{How does it work?}
    479 We use a few ancient constructions:
    480   \begin{itemize}
    481   \item Cryptographic hash function (1989)
    482   \item Blind signature (1983)
    483   \item Schnorr signature (1989)
    484   \item Diffie-Hellman key exchange (1976)
    485   \item Cut-and-choose zero-knowledge proof (1985)
    486   \end{itemize}
    487 But of course we use modern instantiations.
    488 \end{frame}
    489 
    490 
    491 \begin{frame}{Definition: Taxability}
    492   We say Taler is taxable because:
    493   \begin{itemize}
    494   \item Merchant's income is visible from deposits.
    495   \item Hash of contract is part of deposit data.
    496   \item State can trace income and enforce taxation.
    497   \end{itemize}\pause
    498   Limitations:
    499   \begin{itemize}
    500   \item withdraw loophole
    501   \item {\em sharing} coins among family and friends
    502   \end{itemize}
    503 \end{frame}
    504 
    505 
    506 \begin{frame}{Exchange setup: Create a denomination key (RSA)}
    507    \begin{minipage}{6cm}
    508     \begin{enumerate}
    509     \item Pick random primes $p,q$.
    510     \item Compute $n := pq$, $\phi(n) = (p-1)(q-1)$
    511     \item Pick small $e < \phi(n)$ such that
    512           $d := e^{-1} \mod \phi(n)$ exists.
    513     \item Publish public key $(e,n)$.
    514     \end{enumerate}
    515   \end{minipage}
    516   \begin{minipage}{6cm}
    517   \begin{tikzpicture}
    518  \tikzstyle{def} = [node distance=1em and 1em, inner sep=0em, outer sep=.3em];
    519     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    520     \node (primes) [draw=none, below = of origin] at (0,0) {$(p, q)$};
    521     \node (seal) [def, draw=none, below left=of primes]{\includegraphics[width=0.15\textwidth]{seal.pdf}};
    522     \node (hammer) [def, draw=none, below right=of primes]{\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    523 
    524     \tikzstyle{C} = [color=black, line width=1pt]
    525 
    526     \draw [<-, C] (primes) -- (origin) node [midway, above, sloped] (TextNode) {};
    527     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    528     \draw [<-, C] (hammer) -- (primes) node [midway, above, sloped] (TextNode) {};
    529   \end{tikzpicture}
    530 %  \includegraphics[width=0.4\textwidth]{seal.pdf}
    531   \end{minipage}
    532 \end{frame}
    533 
    534 
    535 \begin{frame}{Merchant: Create a signing key (EdDSA)}
    536   \begin{minipage}{6cm}
    537     \begin{itemize}
    538   \item pick random $m \mod o$ as private key
    539   \item $M = mG$ public key
    540   \end{itemize}
    541   \end{minipage}
    542   \begin{minipage}{6cm}
    543   \begin{tikzpicture}
    544    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    545     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    546     \node (m) [draw=none, below = of origin] at (0,0) {$m$};
    547     \node (seal) [draw=none, below=of m]{M};
    548    \tikzstyle{C} = [color=black, line width=1pt]
    549 
    550     \draw [<-, C] (m) -- (origin) node [midway, above, sloped] (TextNode) {};
    551     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    552   \end{tikzpicture}
    553   \end{minipage}
    554   \parbox[t]{3cm}{{\bf Capability:} $m \Rightarrow$ }
    555   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{merchant-sign.pdf}}
    556 \end{frame}
    557 
    558 
    559 \begin{frame}{Customer: Create a planchet (EdDSA)}
    560   \begin{minipage}{8cm}
    561   \begin{itemize}
    562   \item Pick random $c \mod o$ private key
    563   \item $C = cG$ public key
    564   \end{itemize}
    565   \end{minipage}
    566   \begin{minipage}{4cm}
    567   \begin{tikzpicture}
    568    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    569     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    570     \node (c) [draw=none, below = of origin] at (0,0) {$c$};
    571     \node (planchet) [draw=none, below=of c]{\includegraphics[width=0.4\textwidth]{planchet.pdf}};
    572     \tikzstyle{C} = [color=black, line width=1pt]
    573 
    574     \draw [<-, C] (c) -- (origin) node [midway, above, sloped] (TextNode) {};
    575     \draw [<-, C] (planchet) -- (c) node [midway, above, sloped] (TextNode) {};
    576   \end{tikzpicture}
    577   \end{minipage}
    578   \parbox[t]{3cm}{{\bf Capability:} $c \Rightarrow$ }
    579   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{planchet-sign.pdf}}
    580 \end{frame}
    581 
    582 
    583 \begin{frame}{Customer: Blind planchet (RSA)}
    584   \begin{minipage}{6cm}
    585     \begin{enumerate}
    586     \item Obtain public key $(e,n)$
    587     \item Compute $f := FDH(C)$, $f < n$.
    588     \item Pick blinding factor $b \in \mathbb Z_n$
    589     \item Transmit $f' := f b^e \mod n$
    590     \end{enumerate}
    591   \end{minipage}
    592   \begin{minipage}{6cm}
    593   \begin{tikzpicture}
    594    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    595     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    596     \node (b) [def, draw=none, below = of origin] at (0,-0.2) {$b$};
    597     \node (blinded) [def, draw=none, below right=of b]{\includegraphics[width=0.2\textwidth]{blinded.pdf}};
    598     \node (planchet) [def, draw=none, above right=of blinded]{\includegraphics[width=0.15\textwidth]{planchet.pdf}};
    599     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    600     \tikzstyle{C} = [color=black, line width=1pt]
    601 
    602     \draw [<-, C] (b) -- (origin) node [midway, above, sloped] (TextNode) {};
    603     \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {};
    604     \draw [<-, C] (blinded) -- (b) node [midway, above, sloped] (TextNode) {};
    605     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    606   \end{tikzpicture}
    607   \end{minipage}
    608 \end{frame}
    609 
    610 
    611 \begin{frame}{Exchange: Blind sign (RSA)}
    612    \begin{minipage}{6cm}
    613     \begin{enumerate}
    614     \item Receive $f'$.
    615     \item Compute $s' := f'^d \mod n$.
    616     \item Send signature $s'$.
    617     \end{enumerate}
    618    \end{minipage}
    619   \begin{minipage}{6cm}
    620   \begin{tikzpicture}
    621    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    622     \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    623     \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}};
    624     \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    625     \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer};
    626     \tikzstyle{C} = [color=black, line width=1pt]
    627 
    628     \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {};
    629     \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {};
    630     \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}};
    631   \end{tikzpicture}
    632   \end{minipage}
    633 \end{frame}
    634 
    635 
    636 \begin{frame}{Customer: Unblind coin (RSA)}
    637   \begin{minipage}{6cm}
    638    \begin{enumerate}
    639     \item Receive $s'$.
    640     \item Compute $s := s' b^{-1} \mod n$ % \\
    641     % ($(f')^d = (f b^e)^d = f^d b$).
    642     \end{enumerate}
    643    \end{minipage}
    644   \begin{minipage}{6cm}
    645   \begin{tikzpicture}
    646    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    647     \node (b) [def, draw=none] at (0,0) {$b$};
    648     \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    649     \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
    650     \tikzstyle{C} = [color=black, line width=1pt]
    651 
    652     \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {};
    653     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
    654   \end{tikzpicture}
    655   \end{minipage}
    656 \end{frame}
    657 
    658 
    659 \begin{frame}{Customer: Build shopping cart}
    660   \begin{center}
    661   \begin{tikzpicture}
    662    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    663     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{shop.pdf}};
    664     \node (cart) [draw=none, below=of m]{\includegraphics[width=0.2\textwidth]{cart.pdf}};
    665     \node (merchant) [node distance=4em and 0.5em, draw, below =of cart]{Merchant};
    666     \tikzstyle{C} = [color=black, line width=1pt];
    667     \draw [<-, C] (cart) -- (origin) node [midway, above, sloped] (TextNode) {};
    668     \draw [<-, C] (merchant) -- (cart) node [midway, above, sloped] (TextNode) {{\small transmit}};
    669   \end{tikzpicture}
    670   \end{center}
    671 \end{frame}
    672 
    673 
    674 \begin{frame}{Merchant: Propose contract (EdDSA)}
    675    \begin{minipage}{6cm}
    676    \begin{enumerate}
    677     \item Complete proposal $D$.
    678     \item Send $D$, $EdDSA_m(D)$
    679     \end{enumerate}
    680    \end{minipage}
    681   \begin{minipage}{6cm}
    682   \begin{tikzpicture}
    683    \tikzstyle{def} = [node distance=2em and 0.5em, inner sep=0em, outer sep=.3em];
    684     \node (cart) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{cart.pdf}};
    685     \node (proposal) [def, draw=none, below right=of cart]{\includegraphics[width=0.5\textwidth]{merchant_propose.pdf}};
    686     \node (customer) [node distance=4em and 0.5em, draw, below =of proposal]{Customer};
    687     \tikzstyle{C} = [color=black, line width=1pt];
    688     \node (sign) [def, draw=none, above right=of proposal] {$m$};
    689     \tikzstyle{C} = [color=black, line width=1pt]
    690 
    691     \draw [<-, C] (proposal) -- (sign) node [midway, above, sloped] (TextNode) {};
    692     \draw [<-, C] (proposal) -- (cart) node [midway, above, sloped] (TextNode) {};
    693     \draw [<-, C] (customer) -- (proposal) node [midway, above, sloped] (TextNode) {{\small transmit}};
    694   \end{tikzpicture}
    695   \end{minipage}
    696 \end{frame}
    697 
    698 
    699 \begin{frame}{Customer: Spend coin (EdDSA)}
    700   \begin{minipage}{6cm}
    701    \begin{enumerate}
    702     \item Receive proposal $D$, $EdDSA_m(D)$.
    703     \item Send $s$, $C$, $EdDSA_c(D)$
    704     \end{enumerate}
    705    \end{minipage}
    706   \begin{minipage}{6cm}
    707   \begin{tikzpicture}
    708    \tikzstyle{def} = [node distance=2em and 0.4em, inner sep=0em, outer sep=.3em];
    709     \node (proposal) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{merchant_propose.pdf}};
    710     \node (contract) [def, draw=none, below right=of cart]{\includegraphics[width=0.3\textwidth]{contract.pdf}};
    711     \node (c) [def, draw=none, above=of contract] {$c$};
    712     \node (merchant) [node distance=4em and 0.5em, draw, below=of contract]{Merchant};
    713     \node (coin) [def, draw=none, right=of contract]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    714     \tikzstyle{C} = [color=black, line width=1pt]
    715 
    716     \draw [<-, C] (contract) -- (c) node [midway, above, sloped] (TextNode) {};
    717     \draw [<-, C] (contract) -- (proposal) node [midway, above, sloped] (TextNode) {};
    718     \draw [<-, C] (merchant) -- (contract) node [midway, above, sloped] (TextNode) {{\small transmit}};
    719     \draw [<-, C] (merchant) -- (coin) node [midway, below, sloped] (TextNode) {{\small transmit}};
    720   \end{tikzpicture}
    721   \end{minipage}
    722 \end{frame}
    723 
    724 
    725 \begin{frame}{Merchant and Exchange: Verify coin (RSA)}
    726    \begin{minipage}{6cm}
    727  \begin{equation*}
    728    s^e \stackrel{?}{\equiv} FDH(C) \mod n
    729    \end{equation*}
    730    \end{minipage}
    731   \begin{minipage}{6cm}
    732   \begin{minipage}{0.2\textwidth}
    733     \includegraphics[width=\textwidth]{coin.pdf}
    734   \end{minipage}
    735   $\stackrel{?}{\Leftrightarrow}$
    736   \begin{minipage}{0.2\textwidth}
    737     \includegraphics[width=\textwidth]{seal.pdf}
    738   \end{minipage}
    739   \end{minipage}
    740   \vfill
    741   The exchange does not only verify the signature, but also
    742   checks that the coin was not double-spent.
    743   \vfill
    744   \pause
    745   \begin{center}
    746   {\bf Taler is an online payment system.}
    747   \end{center}
    748   \vfill
    749 \end{frame}
    750 
    751 
    752 \begin{frame}{Giving change}
    753   It would be inefficient to pay EUR 100 with 1 cent coins!
    754   \begin{itemize}
    755   \item Denomination key represents value of a coin.
    756   \item Exchange may offer various denominations for coins.
    757   \item Wallet may not have exact change!
    758   \item Usability requires ability to pay given sufficient total funds.
    759   \end{itemize}\pause
    760   Key goals:
    761   \begin{itemize}
    762   \item maintain unlinkability
    763   \item maintain taxability of transactions
    764   \end{itemize}\pause
    765   Method:
    766   \begin{itemize}
    767     \item Contract can specify to only pay {\em partial value} of a coin.
    768     \item Exchange allows wallet to obtain {\em unlinkable change}
    769       for remaining coin value.
    770   \end{itemize}
    771 \end{frame}
    772 
    773 
    774 \begin{frame}{Diffie-Hellman (ECDH)}
    775   \begin{minipage}{8cm}
    776    \begin{enumerate}
    777     \item Create private keys $c,t \mod o$
    778     \item Define $C = cG$
    779     \item Define $T = tG$
    780     \item Compute DH \\ $cT = c(tG) = t(cG) = tC$
    781     \end{enumerate}
    782    \end{minipage}
    783   \begin{minipage}{6cm}
    784   \begin{tikzpicture}
    785    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    786     \node (t) [def, draw=none] at (0,0) {$t$};
    787     \node (ct) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{dh.pdf}};
    788     \node (c) [def, draw=none, above left= of ct]  {$c$};
    789     \tikzstyle{C} = [color=black, line width=1pt]
    790 
    791     \draw [<-, C] (ct) -- (c) node [midway, above, sloped] (TextNode) {};
    792     \draw [<-, C] (ct) -- (t) node [midway, above, sloped] (TextNode) {};
    793   \end{tikzpicture}
    794   \end{minipage}
    795 \end{frame}
    796 
    797 
    798 \begin{frame}{Strawman solution}
    799   \begin{minipage}{8cm}
    800     Given partially spent private coin key $c_{old}$:
    801    \begin{enumerate}
    802 %    \item Let $C_{old} := c_{old}G$ (as before)
    803     \item Pick random $c_{new} \mod o$ private key
    804     \item $C_{new} = c_{new}G$ public key
    805     \item Pick random $b_{new}$
    806     \item Compute $f_{new} := FDH(C_{new})$, $m < n$.
    807     \item Transmit $f'_{new} := f_{new} b_{new}^e \mod n$
    808    \end{enumerate}
    809    ... and sign request for change with $c_{old}$.
    810    \end{minipage}
    811   \begin{minipage}{4cm}
    812   \begin{tikzpicture}
    813    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    814     \node (blinded) [def, draw=none]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    815     \node (planchet) [def, draw=none, above left= of blinded]  {\includegraphics[width=0.15\textwidth]{planchet.pdf}};
    816     \node (cnew) [def, draw=none, above= of planchet]  {$c_{new}$};
    817     \node (bnew) [def, draw=none, above right= of blinded]  {$b_{new}$};
    818     \node (dice1) [def, draw=none, above = of cnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    819     \node (dice2) [def, draw=none, above = of bnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    820     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    821 
    822     \tikzstyle{C} = [color=black, line width=1pt]
    823 
    824     \draw [<-, C] (cnew) -- (dice1) node [midway, above, sloped] (TextNode) {};
    825     \draw [<-, C] (planchet) -- (cnew) node [midway, above, sloped] (TextNode) {};
    826     \draw [<-, C] (bnew) -- (dice2) node [midway, above, sloped] (TextNode) {};
    827     \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {};
    828     \draw [<-, C] (blinded) -- (bnew) node [midway, above, sloped] (TextNode) {};
    829     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    830   \end{tikzpicture}
    831   \end{minipage}
    832   \pause
    833   \vfill
    834   {\bf Problem: Owner of $c_{new}$ may differ from owner of $c_{old}$!}
    835 \end{frame}
    836 
    837 
    838 \begin{frame}{Customer: Transfer key setup (ECDH)}
    839   \begin{minipage}{8cm}
    840     Given partially spent private coin key $c_{old}$:
    841    \begin{enumerate}
    842     \item Let $C_{old} := c_{old}G$ (as before)
    843     \item Create random private transfer key $t \mod o$
    844     \item Compute $T := tG$
    845     \item Compute $X := c_{old}(tG) = t(c_{old}G) = tC_{old}$
    846     \item Derive $c_{new}$ and $b_{new}$ from $X$
    847     \item Compute $C_{new} := c_{new}G$
    848     \item Compute $f_{new} := FDH(C_{new})$
    849     \item Transmit $f_{new}' := f_{new} b_{new}^e$
    850     \end{enumerate}
    851    \end{minipage}
    852   \begin{minipage}{4cm}
    853   \begin{tikzpicture}
    854    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    855     \node (t) [def, draw=none] at (0,0) {$t$};
    856     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    857     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    858     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    859     \node (cp) [def, draw=none, below left= of dh]  {$c_{new}$};
    860     \node (bp) [def, draw=none, below right= of dh]  {$b_{new}$};
    861     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    862     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    863 
    864     \tikzstyle{C} = [color=black, line width=1pt]
    865 
    866     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    867     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    868     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    869     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    870     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    871     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    872     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    873     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    874   \end{tikzpicture}
    875   \end{minipage}
    876 \end{frame}
    877 
    878 
    879 \begin{frame}{Cut-and-Choose}
    880   \begin{minipage}{4cm}
    881   \begin{tikzpicture}
    882    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    883     \node (t) [def, draw=none] at (0,0) {$t_1$};
    884     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    885     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    886     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    887     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,1}$};
    888     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,1}$};
    889     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    890     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    891 
    892     \tikzstyle{C} = [color=black, line width=1pt]
    893 
    894     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    895     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    896     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    897     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    898     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    899     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    900     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    901     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    902   \end{tikzpicture}
    903   \end{minipage}
    904   \begin{minipage}{4cm}
    905   \begin{tikzpicture}
    906    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    907     \node (t) [def, draw=none] at (0,0) {$t_2$};
    908     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    909     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    910     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    911     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,2}$};
    912     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,2}$};
    913     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    914     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    915 
    916     \tikzstyle{C} = [color=black, line width=1pt]
    917 
    918     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    919     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    920     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    921     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    922     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    923     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    924     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    925     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    926   \end{tikzpicture}
    927   \end{minipage}
    928   \begin{minipage}{4cm}
    929   \begin{tikzpicture}
    930    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    931     \node (t) [def, draw=none] at (0,0) {$t_3$};
    932     \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}};
    933     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    934     \node (d) [def, draw=none, above left= of dh]  {$c_{old}$};
    935     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,3}$};
    936     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,3}$};
    937     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    938     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    939 
    940     \tikzstyle{C} = [color=black, line width=1pt]
    941 
    942     \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {};
    943     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    944     \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {};
    945     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    946     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    947     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    948     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    949     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    950   \end{tikzpicture}
    951   \end{minipage}
    952 \end{frame}
    953 
    954 
    955 \begin{frame}{Exchange: Choose!}
    956    \begin{center}
    957     \item Exchange sends back random $\gamma \in \{ 1, 2, 3 \}$ to the customer.
    958     \end{center}
    959 \end{frame}
    960 
    961 
    962 \begin{frame}{Customer: Reveal}
    963    \begin{enumerate}
    964    \item If $\gamma = 1$, send $t_2$, $t_3$ to exchange
    965    \item If $\gamma = 2$, send $t_1$, $t_3$ to exchange
    966    \item If $\gamma = 3$, send $t_1$, $t_2$ to exchange
    967   \end{enumerate}
    968 \end{frame}
    969 
    970 
    971 \begin{frame}{Exchange: Verify ($\gamma = 2$)}
    972   \begin{minipage}{4cm}
    973   \begin{tikzpicture}
    974    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    975     \node (h) [def, draw=none] at (0,0) {$t_1$};
    976     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
    977     \node (d) [def, draw=none, above left= of dh]  {$C_{old}$};
    978     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,1}$};
    979     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,1}$};
    980     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    981 
    982     \tikzstyle{C} = [color=black, line width=1pt]
    983 
    984     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
    985     \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {};
    986     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
    987     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
    988     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
    989     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
    990   \end{tikzpicture}
    991   \end{minipage}
    992   \begin{minipage}{4cm}
    993  \
    994   \end{minipage}
    995   \begin{minipage}{4cm}
    996   \begin{tikzpicture}
    997    \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
    998     \node (h) [def, draw=none] at (0,0) {$t_3$};
    999     \node (dh) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1000     \node (d) [def, draw=none, above left= of dh]  {$C_{old}$};
   1001     \node (cp) [def, draw=none, below left= of dh]  {$c_{new,3}$};
   1002     \node (bp) [def, draw=none, below right= of dh]  {$b_{new,3}$};
   1003     \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1004 
   1005     \tikzstyle{C} = [color=black, line width=1pt]
   1006 
   1007     \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {};
   1008     \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {};
   1009     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1010     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1011     \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {};
   1012     \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {};
   1013   \end{tikzpicture}
   1014   \end{minipage}
   1015 \end{frame}
   1016 
   1017 
   1018 \begin{frame}{Exchange: Blind sign change (RSA)}
   1019    \begin{minipage}{6cm}
   1020     \begin{enumerate}
   1021     \item Take $f_{new,\gamma}'$.
   1022     \item Compute $s' := f_{new,\gamma}'^d \mod n$.
   1023     \item Send signature $s'$.
   1024     \end{enumerate}
   1025    \end{minipage}
   1026   \begin{minipage}{6cm}
   1027   \begin{tikzpicture}
   1028    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
   1029     \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}};
   1030     \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}};
   1031     \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
   1032     \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer};
   1033     \tikzstyle{C} = [color=black, line width=1pt]
   1034 
   1035     \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {};
   1036     \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {};
   1037     \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}};
   1038   \end{tikzpicture}
   1039   \end{minipage}
   1040 \end{frame}
   1041 
   1042 
   1043 \begin{frame}{Customer: Unblind change (RSA)}
   1044   \begin{minipage}{6cm}
   1045    \begin{enumerate}
   1046     \item Receive $s'$.
   1047     \item Compute $s := s' b_{new,\gamma}^{-1} \mod n$.
   1048     \end{enumerate}
   1049    \end{minipage}
   1050   \begin{minipage}{6cm}
   1051   \begin{tikzpicture}
   1052    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
   1053     \node (b) [def, draw=none] at (0,0) {$b_{new,\gamma}$};
   1054     \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
   1055     \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   1056     \tikzstyle{C} = [color=black, line width=1pt]
   1057 
   1058     \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {};
   1059     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
   1060   \end{tikzpicture}
   1061   \end{minipage}
   1062 \end{frame}
   1063 
   1064 
   1065 \begin{frame}{Exchange: Allow linking change}
   1066   \begin{minipage}{7cm}
   1067     \begin{center}
   1068     Given $C_{old}$
   1069 
   1070     \vspace{1cm}
   1071 
   1072     return $T_\gamma$, $s := s' b_{new,\gamma}^{-1} \mod n$.
   1073   \end{center}
   1074    \end{minipage}
   1075   \begin{minipage}{5cm}
   1076    \begin{tikzpicture}
   1077     \tikzstyle{def} = [node distance= 3em and 0.5em, inner sep=0.5em, outer sep=.3em];
   1078     \node (co) [def, draw=none] at (0,0) {$C_{old}$};
   1079     \node (T) [def, draw=none, below left=of co]{$T_\gamma$};
   1080     \node (sign) [def, draw=none, below right=of co]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   1081     \node (customer) [def, draw, below right=of T] {Customer};
   1082 
   1083     \tikzstyle{C} = [color=black, line width=1pt]
   1084 
   1085     \draw [<-, C] (T) -- (co) node [midway, above, sloped] (TextNode) {};
   1086     \draw [<-, C] (sign) -- (co) node [midway, above, sloped] (TextNode) {};
   1087     \draw [<-, C] (customer) -- (T) node [midway, above, sloped] (TextNode) {link};
   1088     \draw [<-, C] (customer) -- (sign) node [midway, above, sloped] (TextNode) {link};
   1089   \end{tikzpicture}
   1090   \end{minipage}
   1091 \end{frame}
   1092 
   1093 
   1094 \begin{frame}{Customer: Link (threat!)}
   1095   \begin{minipage}{6.3cm}
   1096    \begin{enumerate}
   1097     \item Have $c_{old}$.
   1098     \item Obtain $T_\gamma$, $s$ from exchange
   1099     \item Compute $X_\gamma = c_{old}T_\gamma$
   1100     \item Derive $c_{new,\gamma}$ and $b_{new,\gamma}$ from $X_\gamma$
   1101     \item Unblind $s := s' b_{new,\gamma}^{-1} \mod n$
   1102   \end{enumerate}
   1103 
   1104    \end{minipage}
   1105   \begin{minipage}{5.7cm}
   1106   \begin{tikzpicture}
   1107   \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em];
   1108     \node (T) [def, draw=none] at (0,0) {$T_\gamma$};
   1109     \node (exchange) [def, inner sep=0.5em, draw, above left=of T] {Exchange};
   1110     \node (signed) [def, draw=none, below left=of T]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
   1111     \node (dh) [def, draw=none, below right=of T]{\includegraphics[width=0.2\textwidth]{ct.pdf}};
   1112     \node (bp) [def, draw=none, below left= of dh]  {$b_{new,\gamma}$};
   1113     \node (co) [def, draw=none, above right= of dh]  {$c_{old}$};
   1114     \node (cp) [def, draw=none, below= of dh]  {$c_{new,\gamma}$};
   1115     \node (coin) [def, draw=none, below left = of bp]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
   1116     \node (psign) [def, node distance=2.5em and 0em, draw=none, below = of cp]{\includegraphics[width=0.2\textwidth]{planchet-sign.pdf}};
   1117 
   1118     \tikzstyle{C} = [color=black, line width=1pt]
   1119 
   1120     \draw [<-, C] (dh) -- (co) node [midway, above, sloped] (TextNode) {};
   1121     \draw [<-, C] (dh) -- (T) node [midway, above, sloped] (TextNode) {};
   1122     \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1123     \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {};
   1124     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
   1125     \draw [<-, C] (coin) -- (bp) node [midway, above, sloped] (TextNode) {};
   1126     \draw [<-, C] (T) -- (exchange) node [midway, above, sloped] (TextNode) {link};
   1127     \draw [<-, C] (signed) -- (exchange) node [midway, below, sloped] (TextNode) {link};
   1128     \draw [<-, C, double] (psign) -- (cp) node [midway, below, sloped] (TextNode) {};
   1129   \end{tikzpicture}
   1130   \end{minipage}
   1131 \end{frame}
   1132 
   1133 
   1134 \begin{frame}{Refresh protocol summary}
   1135   \begin{itemize}
   1136   \item Customer asks exchange to convert old coin to new coin
   1137   \item Protocol ensures new coins can be recovered from old coin
   1138   \item[$\Rightarrow$] New coins are owned by the same entity!
   1139   \end{itemize}
   1140   Thus, the refresh protocol allows:
   1141   \begin{itemize}
   1142   \item To give unlinkable change.
   1143   \item To give refunds to an anonymous customer.
   1144   \item To expire old keys and migrate coins to new ones.
   1145   \item To handle protocol aborts.
   1146   \end{itemize}
   1147   \noindent
   1148   \begin{center}
   1149     \bf
   1150    Transactions via refresh are equivalent to {\em sharing} a wallet.
   1151 \end{center}
   1152 \end{frame}
   1153 
   1154 
   1155 
   1156 
   1157 
   1158 
   1159 
   1160 
   1161 \end{document}
   1162 
   1163 
   1164 
   1165 
   1166 \begin{frame}{Taler {\tt /withdraw/sign}}
   1167 % Customer withdrawing coins with blind signatures
   1168 % \bigskip
   1169   \begin{figure}[th]
   1170     \begin{minipage}[b]{0.45\linewidth}
   1171       \begin{center}
   1172         \begin{tikzpicture}[scale = 0.4,
   1173             transform shape,
   1174             msglabel/.style    = { text = Black, yshift = .3cm,
   1175                                    sloped, midway },
   1176             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1177                                    >=stealth },
   1178             rstmsg/.style      = { ->, color = BrickRed, thick,
   1179                                    >=stealth }
   1180           ]
   1181           \node[draw = MidnightBlue,
   1182             fill = CornflowerBlue,
   1183             minimum width = .3cm,
   1184             minimum height = 10cm
   1185           ] (h1) at (-4, 0) {};
   1186           \node[draw = MidnightBlue,
   1187             fill = CornflowerBlue,
   1188             minimum width = .3cm,
   1189             minimum height = 10cm
   1190           ] (h2) at (4, 0) {};
   1191           \node[above = 0cm of h1] {Wallet};
   1192           \node[above = 0cm of h2] {Exchange};
   1193 
   1194           \path[->, color = MidnightBlue, very thick, >=stealth]
   1195             (-5, 4.5) edge
   1196             node[rotate=90, text = Black, yshift = .3cm] {Time}
   1197             (-5, -4.5);
   1198           \path[okmsg, dashed]
   1199              ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge
   1200              node[msglabel] {SEPA(RK,A)}
   1201              ($(h2.west)+(0, 3.5)+(0, -1.0)$);
   1202           \path[okmsg]
   1203             ($(h1.east)+(0, -1.0)$) edge
   1204             node[msglabel] {POST {\tt /withdraw/sign} $S_{RK}(DK, B_b(C))$}
   1205             ($(h2.west)+(0, -1.5)$);
   1206           \path[okmsg]
   1207             ($(h2.west)+(0, -2.0)$) edge
   1208             node[msglabel] {200 OK: $S_{DK}(B_b(C))$)}
   1209             ($(h1.east)+(0, -2.5)$);
   1210           \path[rstmsg]
   1211             ($(h2.west)+(0, -3.5)$) edge
   1212             node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)}
   1213             ($(h1.east)+(0, -4)$);
   1214           \node at (5.3, 0) {};
   1215         \end{tikzpicture}
   1216       \end{center}
   1217       Result: $\langle c, S_{DK}(C) \rangle$.
   1218     \end{minipage}
   1219     \hspace{0.5cm}
   1220     \begin{minipage}[b]{0.45\linewidth}
   1221       \tiny
   1222       \begin{description}
   1223       \item[$A$] Some amount, $A \ge A_{DK}$
   1224       \item[$RK$] Reserve key
   1225       \item[$DK$] Denomination key
   1226       \item[$b$] Blinding factor
   1227       \item[$B_b()$] RSA-FDH blinding % DK supressed
   1228       \item[$C$] Coin public key $C := cG$
   1229       \item[$S_{RK}()$] EdDSA signature
   1230       \item[$S_{DK}()$] RSA-FDH signature
   1231       \end{description}
   1232     \end{minipage}
   1233   \end{figure}
   1234 \end{frame}
   1235 
   1236 
   1237 \begin{frame}[t]{Taler {\tt /deposit}}
   1238 Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$.
   1239 \bigskip
   1240   \begin{figure}[th]
   1241     \begin{minipage}[b]{0.45\linewidth}
   1242       \begin{center}
   1243         \begin{tikzpicture}[scale = 0.4,
   1244             transform shape,
   1245             msglabel/.style    = { text = Black, yshift = .3cm,
   1246                                    sloped, midway },
   1247             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1248                                    >=stealth },
   1249             rstmsg/.style      = { ->, color = BrickRed, thick,
   1250                                    >=stealth }
   1251           ]
   1252           \node[draw = MidnightBlue,
   1253             fill = CornflowerBlue,
   1254             minimum width = .3cm,
   1255             minimum height = 10cm
   1256           ] (h1) at (-4, 0) {};
   1257           \node[draw = MidnightBlue,
   1258             fill = CornflowerBlue,
   1259             minimum width = .3cm,
   1260             minimum height = 10cm
   1261           ] (h2) at (4, 0) {};
   1262           \node[above = 0cm of h1] {Merchant};
   1263           \node[above = 0cm of h2] {Exchange};
   1264 
   1265           \path[->, color = MidnightBlue, very thick, >=stealth]
   1266             (-5, 4.5) edge
   1267             node[rotate=90, text = Black, yshift = .3cm] {Time}
   1268             (-5, -4.5);
   1269           \path[->, color = MidnightBlue, thick, >=stealth]
   1270             ($(h1.east)+(0,3)$) edge
   1271             node[text = Black, yshift = .3cm, sloped] {POST {\tt /deposit} $S_{DK}(C), S_{c}(D)$}
   1272             ($(h2.west)+(0,2)$);
   1273           \path[->, color = MidnightBlue, thick, >=stealth]
   1274             ($(h2.west)+(0,0.5)$) edge
   1275             node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$}
   1276             ($(h1.east)+(0,-0.5)$);
   1277           \path[rstmsg]
   1278             ($(h2.west)+(0, -2.5)$) edge
   1279             node[msglabel] {409 CONFLICT: $S_{c}(D')$}
   1280             ($(h1.east)+(0, -3.5)$);
   1281           \node at (5.3, 0) {};
   1282         \end{tikzpicture}
   1283       \end{center}
   1284     \end{minipage}
   1285     \hspace{0.5cm}
   1286     \begin{minipage}[b]{0.45\linewidth}
   1287       \tiny
   1288       \begin{description}
   1289       \item[$DK$] Denomination key
   1290       \item[$S_{DK}()$] RSA-FDH signature using $DK$
   1291       \item[$c$] Private coin key, $C := cG$.
   1292       \item[$S_{C}()$] EdDSA signature using $c$
   1293       \item[$D$] Deposit details
   1294       \item[$SK$] Exchange's signing key
   1295       \item[$S_{SK}()$] EdDSA signature using $SK$
   1296       \item[$D'$] Conficting deposit details $D' \not= D$
   1297       \end{description}
   1298     \end{minipage}
   1299   \end{figure}
   1300 \end{frame}
   1301 
   1302 
   1303 \begin{frame}{Taler {\tt /refresh/melt}}
   1304   \begin{figure}[th]
   1305     \begin{minipage}[b]{0.45\linewidth}
   1306       \begin{center}
   1307 	\begin{tikzpicture}[scale = 0.4,
   1308             transform shape,
   1309             msglabel/.style    = { text = Black, yshift = .3cm,
   1310                                    sloped, midway },
   1311             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1312                                    >=stealth },
   1313             rstmsg/.style      = { ->, color = BrickRed, thick,
   1314                                    >=stealth }
   1315 	  ]
   1316 	  \node[draw = MidnightBlue,
   1317 	    fill = CornflowerBlue,
   1318 	    minimum width = .3cm,
   1319 	    minimum height = 10cm
   1320 	  ] (h1) at (-4, 0) {};
   1321 	  \node[draw = MidnightBlue,
   1322 	    fill = CornflowerBlue,
   1323 	    minimum width = .3cm,
   1324 	    minimum height = 10cm
   1325 	  ] (h2) at (4, 0) {};
   1326 	  \node[above = 0cm of h1] {Customer};
   1327 	  \node[above = 0cm of h2] {Exchange};
   1328 
   1329 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1330 	    (-5, 4.5) edge
   1331 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1332 	    (-5, -4.5);
   1333 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1334 	    ($(h1.east)+(0,3)$) edge
   1335 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$}
   1336 	    ($(h2.west)+(0,2)$);
   1337 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1338 	    ($(h2.west)+(0,0.5)$) edge
   1339 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$}
   1340 	    ($(h1.east)+(0,-0.5)$);
   1341 	  \path[rstmsg]
   1342 	    ($(h2.west)+(0, -2.5)$) edge
   1343 	    node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$}
   1344 	    ($(h1.east)+(0, -3.5)$);
   1345 	  \node at (5.3, 0) {};
   1346 	\end{tikzpicture}
   1347       \end{center}
   1348     \end{minipage}
   1349     \hspace{0.5cm}
   1350     \begin{minipage}[b]{0.45\linewidth}
   1351       \tiny
   1352       \begin{description}
   1353       \item[$\kappa$] System-wide security parameter, usually 3.
   1354       \\ \smallskip
   1355       \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\
   1356       $D + \sum_i A_{DK^{(i)}} < A_{DK}$
   1357       \item[$t_j$] Random scalar for $j<\kappa$
   1358       \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$
   1359       \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE
   1360       \item[$b_j^{(i)}$] $:= KDF_b(k_j,i)$ % blinding factor
   1361       \item[$c_j^{(i)}$] $:= KDF_c(k_j,i)$ % coin secret keys
   1362       \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys
   1363       \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\
   1364          $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$
   1365       \\ \smallskip
   1366       \item[$\gamma$] Random value in $[0,\kappa)$
   1367 %      \\ \smallskip
   1368 %      \item[$X$] Deposit or refresh
   1369       \end{description}
   1370     \end{minipage}
   1371   \end{figure}
   1372 \end{frame}
   1373 
   1374 
   1375 \begin{frame}{Taler {\tt /refresh/reveal}}
   1376   \begin{figure}[th]
   1377     \begin{minipage}[b]{0.45\linewidth}
   1378       \begin{center}
   1379 	\begin{tikzpicture}[scale = 0.4,
   1380             transform shape,
   1381             msglabel/.style    = { text = Black, yshift = .3cm,
   1382                                    sloped, midway },
   1383             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1384                                    >=stealth },
   1385             rstmsg/.style      = { ->, color = BrickRed, thick,
   1386                                    >=stealth }
   1387 	  ]
   1388 	  \node[draw = MidnightBlue,
   1389 	    fill = CornflowerBlue,
   1390 	    minimum width = .3cm,
   1391 	    minimum height = 10cm
   1392 	  ] (h1) at (-4, 0) {};
   1393 	  \node[draw = MidnightBlue,
   1394 	    fill = CornflowerBlue,
   1395 	    minimum width = .3cm,
   1396 	    minimum height = 10cm
   1397 	  ] (h2) at (4, 0) {};
   1398 	  \node[above = 0cm of h1] {Customer};
   1399 	  \node[above = 0cm of h2] {Exchange};
   1400 
   1401 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1402 	    (-5, 4.5) edge
   1403 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1404 	    (-5, -4.5);
   1405 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1406 	    ($(h1.east)+(0,3)$) edge
   1407 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$}
   1408 	    ($(h2.west)+(0,2)$);
   1409 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1410 	    ($(h2.west)+(0,0.5)$) edge
   1411 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$}
   1412 	    ($(h1.east)+(0,-0.5)$);
   1413 	  \path[rstmsg]
   1414 	    ($(h2.west)+(0, -2.5)$) edge
   1415 	    node[msglabel] {400 BAD REQUEST: $Z$}
   1416 	    ($(h1.east)+(0, -3.5)$);
   1417 	  \node at (5.3, 0) {};
   1418 	\end{tikzpicture}
   1419       \end{center}
   1420     \end{minipage}
   1421     \hspace{0.5cm}
   1422     \begin{minipage}[b]{0.45\linewidth}
   1423       \tiny
   1424       \begin{description}
   1425       \item[$\cal DK$] $:= [DK^{(i)}]_i$
   1426       \item[$t_j$] .. \\ \smallskip
   1427 
   1428       \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip
   1429 
   1430       \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$
   1431       \item[$b_\gamma^{(i)}$] $:= KDF_b(k_\gamma,i)$
   1432       \item[$c_\gamma^{(i)}$] $:= KDF_c(k_\gamma,i)$
   1433       \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$
   1434 
   1435       \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$
   1436       \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$
   1437       \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip
   1438 
   1439       \item[$Z$] Cut-and-choose missmatch information
   1440       \end{description}
   1441     \end{minipage}
   1442   \end{figure}
   1443 \end{frame}
   1444 
   1445 
   1446 \begin{frame}{Taler {\tt /refresh/link}}
   1447   \begin{figure}[th]
   1448     \begin{minipage}[b]{0.45\linewidth}
   1449       \begin{center}
   1450 	\begin{tikzpicture}[scale = 0.4,
   1451             transform shape,
   1452             msglabel/.style    = { text = Black, yshift = .3cm,
   1453                                    sloped, midway },
   1454             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1455                                    >=stealth },
   1456             rstmsg/.style      = { ->, color = BrickRed, thick,
   1457                                    >=stealth }
   1458 	  ]
   1459 	  \node[draw = MidnightBlue,
   1460 	    fill = CornflowerBlue,
   1461 	    minimum width = .3cm,
   1462 	    minimum height = 10cm
   1463 	  ] (h1) at (-4, 0) {};
   1464 	  \node[draw = MidnightBlue,
   1465 	    fill = CornflowerBlue,
   1466 	    minimum width = .3cm,
   1467 	    minimum height = 10cm
   1468 	  ] (h2) at (4, 0) {};
   1469 	  \node[above = 0cm of h1] {Customer};
   1470 	  \node[above = 0cm of h2] {Exchagne};
   1471 
   1472 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1473 	    (-5, 4.5) edge
   1474 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1475 	    (-5, -4.5);
   1476 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1477 	    ($(h1.east)+(0,3)$) edge
   1478 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$}
   1479 	    ($(h2.west)+(0,2)$);
   1480 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1481 	    ($(h2.west)+(0,0.5)$) edge
   1482 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$}
   1483 	    ($(h1.east)+(0,-0.5)$);
   1484 	  \path[rstmsg]
   1485 	    ($(h2.west)+(0, -2.5)$) edge
   1486 	    node[msglabel] {404 NOT FOUND}
   1487 	    ($(h1.east)+(0, -3.5)$);
   1488 	  \node at (5.3, 0) {};
   1489 	\end{tikzpicture}
   1490       \end{center}
   1491     \end{minipage}
   1492     \hspace{0.5cm}
   1493     \begin{minipage}[b]{0.45\linewidth}
   1494       \tiny
   1495       \begin{description}
   1496       \item[$C$] Old coind public key \\ \smallskip
   1497       \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$
   1498       \end{description}
   1499     \end{minipage}
   1500   \end{figure}
   1501 \end{frame}
   1502 
   1503 
   1504 \begin{frame}{Operational security}
   1505   \begin{center}
   1506     \resizebox{\textwidth}{!}{
   1507 \begin{tikzpicture}[
   1508   font=\sffamily,
   1509   every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm},
   1510   source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm},
   1511   process/.style={draw,thick,circle,fill=blue!20},
   1512   sink/.style={source,fill=green!20},
   1513   datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm},
   1514   dots/.style={gray,scale=2},
   1515   to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize},
   1516   every node/.style={align=center}]
   1517 
   1518   % Position the nodes using a matrix layout
   1519   \matrix{
   1520     \node[source] (wallet) {Wallet};
   1521       \& \node[process] (browser) {Browser};
   1522       \& \node[process] (shop) {Web shop};
   1523       \& \node[sink] (backend) {Taler backend}; \\
   1524   };
   1525 
   1526   % Draw the arrows between the nodes and label them.
   1527   \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract}
   1528       node[midway,below] {(signal)} (wallet);
   1529   \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)}
   1530       node[midway,below] {(5) signed coins} (browser);
   1531   \draw[<->] (browser) -- node[midway,above] {(3,6) custom}
   1532       node[midway,below] {(HTTPS)} (shop);
   1533   \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)}
   1534       node[midway,below] {(1) proposed contract / (7) signed coins} (backend);
   1535   \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation}
   1536       node[midway,below] {(HTTPS)} (shop);
   1537 \end{tikzpicture}
   1538 }
   1539 \end{center}
   1540 \end{frame}