marketing

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

2023-cbt.tex (44397B)


      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[normalem]{ulem}
     13 \usepackage{listings}
     14 \usepackage{adjustbox}
     15 \usepackage{array}
     16 \usepackage{bbding}
     17 \usepackage{relsize}
     18 \usepackage{graphicx}
     19 \usepackage{tikz,eurosym,calc}
     20 \usetikzlibrary{tikzmark}
     21 \usetikzlibrary{shapes,arrows,arrows.meta}
     22 \usetikzlibrary{positioning,fit,patterns}
     23 \usetikzlibrary{calc}
     24 \usepackage{multicol}
     25 \usepackage{pgf-umlsd}
     26 \usepackage{relsize}
     27 
     28 
     29 % CSS
     30 \lstdefinelanguage{CSS}{
     31   basicstyle=\ttfamily\scriptsize,
     32   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},
     33   sensitive=true,
     34   morecomment=[l]{//},
     35   morecomment=[s]{/*}{*/},
     36   morestring=[b]',
     37   morestring=[b]",
     38   alsoletter={:},
     39   alsodigit={-}
     40 }
     41 
     42 % JavaScript
     43 \lstdefinelanguage{JavaScript}{
     44   basicstyle=\ttfamily\scriptsize,
     45   morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
     46   morecomment=[s]{/*}{*/},
     47   morecomment=[l]//,
     48   morestring=[b]",
     49   morestring=[b]'
     50 }
     51 
     52 \lstdefinelanguage{HTML5}{
     53   basicstyle=\ttfamily\scriptsize,
     54   language=html,
     55   sensitive=true,
     56   alsoletter={<>=-},
     57   morecomment=[s]{<!-}{-->},
     58   tag=[s],
     59   otherkeywords={
     60   % General
     61   >,
     62   % Standard tags
     63 	<!DOCTYPE,
     64   </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
     65 	% body
     66 	</body, <body,
     67 	% Divs
     68 	</div, <div, </div>,
     69 	% Paragraphs
     70 	</p, <p, </p>,
     71 	% scripts
     72 	</script, <script,
     73   % More tags...
     74   <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>
     75   },
     76   ndkeywords={
     77   % General
     78   =,
     79   % HTML attributes
     80   charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
     81   % SVG attributes
     82   fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
     83   % CSS properties
     84   margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:,
     85 	% CSS3 properties
     86   transform:, -moz-transform:, -webkit-transform:,
     87   animation:, -webkit-animation:,
     88   transition:,  transition-duration:, transition-property:, transition-timing-function:,
     89   }
     90 }
     91 
     92 \lstdefinelanguage{JavaScript}{
     93   basicstyle=\ttfamily\scriptsize,
     94   keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for},
     95   keywordstyle=\color{blue}\bfseries,
     96   ndkeywords={class, export, boolean, throw, implements, import, this},
     97   ndkeywordstyle=\color{darkgray}\bfseries,
     98   identifierstyle=\color{black},
     99   sensitive=false,
    100   comment=[l]{//},
    101   morecomment=[s]{/*}{*/},
    102   commentstyle=\color{purple}\ttfamily,
    103   stringstyle=\color{red}\ttfamily,
    104   morestring=[b]',
    105   morestring=[b]"
    106 }
    107 
    108 \setbeamersize{description width=1em}
    109 
    110 \definecolor{blue}{rgb}{0,0,0.7}
    111 \newcommand{\orange}[1]{{\color{orange}#1}}
    112 \newcommand{\blue}[1]{{\color{blue}#1}}
    113 \newcommand{\red}[1]{{\color{red}#1}}
    114 \newcommand{\Guardian}{\mathcal{G}}
    115 \newcommand{\Child}{\mathcal{C}}
    116 \newcommand{\Customer}{\mathcal{C}}
    117 \newcommand{\Merchant}{\mathcal{M}}
    118 \newcommand{\Exchange}{\mathcal{E}}
    119 
    120 \newcommand{\Commit}{\mathsf{Commit}}
    121 \newcommand{\Attest}{\mathsf{Attest}}
    122 \newcommand{\Verify}{\mathsf{Verify}}
    123 \newcommand{\Derive}{\mathsf{Derive}}
    124 \newcommand{\DeriveCompare}{\mathsf{DeriveCompare_\kappa}}
    125 \newcommand{\Compare}{\mathsf{Compare}}
    126 \newcommand{\AgeVer}{\mathsf{AgeVer}}
    127 
    128 \newcommand{\HashF}{\mathsf{H}}
    129 \newcommand{\Hash}{\mathsf{H}}
    130 \newcommand{\Block}{\mathbb{B}}
    131 \newcommand{\Pub}{\mathsf{Pub}}
    132 \newcommand{\Sign}{\mathsf{Sig}}
    133 \newcommand{\Ver}{\mathsf{Ver}}
    134 \newcommand{\Encoding}{\mathsf{Encoding}}
    135 \newcommand{\ECDSA}{\mathsf{ECDSA}}
    136 \newcommand{\Null}{\mathcal{O}}
    137 \newcommand{\EC}{\mathrm{ec}}
    138 \newcommand{\Curve}{\mathsf{Curve25519}}
    139 \newcommand{\SHA}{\mathsf{SHA256}}
    140 \newcommand{\SHAF}{\mathsf{SHA252}}
    141 \newcommand{\FDH}{\mathsf{FDH}}
    142 
    143 \newcommand{\negl}{\epsilon}
    144 
    145 \newcommand{\rand}{\mathsf{rand}}
    146 \newcommand{\age}{\mathsf{a}}
    147 \newcommand{\Age}{\mathsf{M}}
    148 \newcommand{\bage}{\mathsf{b}}
    149 \newcommand{\minage}{\mathsf{m}}
    150 \newcommand{\attest}{\mathsf{T}}
    151 \newcommand{\commitment}{\mathsf{Q}}
    152 \newcommand{\pruf}{\mathsf{P}}
    153 \newcommand{\Vcommitment}{\vec{\mathsf{Q}}}
    154 \newcommand{\Vpruf}{\vec{\mathsf{P}}}
    155 \newcommand{\blinding}{\beta}
    156 
    157 \newcommand{\ZN}{\mathbb{Z}_N}
    158 \newcommand{\Z}{\mathbb{Z}}
    159 \newcommand{\N}{\mathbb{N}}
    160 \newcommand{\A}{\mathbb{A}}
    161 \newcommand{\E}{\mathbb{E}}
    162 \newcommand{\F}{\mathbb{F}}
    163 \newcommand{\seck}{\mathsf{s}}
    164 \newcommand{\pubk}{\mathsf{P}}
    165 \renewcommand{\H}{\mathbb{H}}
    166 \newcommand{\K}{\mathbb{K}}
    167 \newcommand{\Proofs}{\mathbb{P}}
    168 \newcommand{\Commitments}{\mathbb{O}}
    169 \newcommand{\Attests}{\mathbb{T}}
    170 \newcommand{\Blindings}{\mathbb{B}}
    171 \newcommand{\Nil}{\perp}
    172 
    173 \newcommand{\p}{\mathsf{p}}
    174 \newcommand{\com}{\mathsf{com}}
    175 \newcommand{\prf}{\mathsf{prf}}
    176 
    177 \newcommand{\Adv}{\mathcal{A}}
    178 \newcommand{\PPT}{\mathfrak{A}}
    179 \newcommand{\Probability}{\mathrm{Pr}}
    180 \newcommand{\Algorithm}{f}
    181 \renewcommand{\Game}[1]{G_\Adv^\mathsf{#1}}
    182 
    183 \DeclareMathOperator{\Image}{Im}
    184 \DeclareMathOperator{\Mod}{mod}
    185 
    186 \newcommand{\Encode}[1]{\overbracket[0.5pt][2pt]{\,#1\,}}
    187 \newcommand{\Decode}[1]{\underbracket[0.5pt][3pt]{\,#1\,}}
    188 \newcommand{\FDHg}[1]{[#1]_g\,}
    189 \newcommand{\logg}{{\breve{g}}}
    190 
    191 
    192 \newcommand{\drawfrom}{\xleftarrow{\$}}
    193 \newcommand\Exists{%
    194 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    195 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}%
    196 	  \limits}
    197 
    198 \newcommand\Forall{%
    199 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    200 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\forall}}}}}}}%
    201 	  \limits}
    202 
    203 
    204 \title{GNU Taler}
    205 %\subtitle{}
    206 
    207 \setbeamertemplate{navigation symbols}{
    208   \includegraphics[width=0.4cm]{logo-bfh.pdf}
    209   \includegraphics[width=1.6cm]{fub.pdf}
    210   \includegraphics[width=1cm]{tud-logo.pdf}
    211   \includegraphics[width=1.4cm]{logo-tue.pdf}
    212   \includegraphics[width=1cm]{inria.pdf}
    213   \includegraphics[width=1cm]{logo-GlsBank.pdf}
    214   \includegraphics[width=0.6cm]{logo-MagNetBank.pdf} \
    215   \includegraphics[width=0.6cm]{logo-visualvest.pdf}
    216   \includegraphics[width=0.4cm]{ashoka.png}
    217   \includegraphics[width=0.4cm]{logo-esen.pdf}
    218   \includegraphics[width=0.4cm]{gnu.png}
    219   \includegraphics[width=0.4cm]{logo-HomoDigitalis.pdf}
    220   \includegraphics[width=0.4cm]{logo-nlnet.pdf}
    221   \includegraphics[width=0.4cm]{logo-codeblau.pdf}
    222   \includegraphics[width=0.4cm]{logo-ps.pdf}
    223   \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf}
    224   \hfill}
    225 %\setbeamercovered{transparent=1}
    226 
    227 \author[C. Grothoff]{J. Burdges, F. Dold, {\bf C. Grothoff}, M. Stanisci}
    228 \date{\today}
    229 \institute{The GNU Project}
    230 
    231 
    232 \begin{document}
    233 
    234 \justifying
    235 
    236 \begin{frame}
    237   \begin{center}
    238     \LARGE {\bf GNU}
    239 
    240     \vfill
    241 %    \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf}
    242     \includegraphics[width=0.66\textwidth]{taler-logo-2021-inkscape.pdf}
    243   \end{center}
    244   \begin{center}
    245       \includegraphics[width=0.15\textwidth]{logo-EU.pdf}
    246       \includegraphics[width=0.15\textwidth]{logo-SBFI.pdf}
    247   \end{center}
    248 \begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords)
    249     {\Large {\bf \href{https://taler.net/}{taler.net}} \\
    250     \href{https://twitter.com/taler}{taler@twitter} \\
    251     \href{https://taler-systems.com/}{taler-systems.com}}
    252 \end{textblock*}
    253 
    254 % Substitute based on who is giving the talk!
    255  \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords)
    256    {%\hfill {\Large {\bf Florian Dold \&} \\
    257     \hfill {\bf Christian Grothoff}} \\
    258     \hfill {grothoff@taler.net }
    259 \end{textblock*}
    260 
    261 \end{frame}
    262 
    263 
    264 \begin{frame}{Agenda}
    265   \tableofcontents
    266 \end{frame}
    267 
    268 
    269 \section{GNU Taler: Introduction}
    270 
    271 \begin{frame}{What is Taler?}
    272   \framesubtitle{\url{https://taler.net/en/features.html}}  \noindent
    273 Taler is
    274   \vfill
    275   \begin{itemize}
    276     \item a Free/Libre software \emph{payment system} infrastructure project
    277     \item ... with a surrounding software ecosystem
    278     \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
    279       as widely as possible.
    280   \end{itemize}
    281   \vfill
    282 \noindent
    283  However, Taler is
    284   \begin{itemize}
    285     \item \emph{not} a currency or speculative asset
    286     \item \emph{not} a long-term store of value
    287     \item \emph{not} a network or instance of a system
    288     \item \emph{not} decentralized
    289     \item \emph{not} based on proof-of-work or proof-of-stake
    290   \end{itemize}
    291 \end{frame}
    292 
    293 
    294 \begin{frame}{Design principles}
    295   \framesubtitle{https://taler.net/en/principles.html}
    296 GNU Taler must ...
    297 \begin{enumerate}
    298   \item {... be implemented as {\bf free software}.}
    299   \item {... protect the {\bf privacy of buyers}.}
    300   \item {... must enable the state to {\bf tax income} and crack down on
    301     illegal business activities.}
    302   \item {... prevent payment fraud.}
    303   \item {... only {\bf disclose the minimal amount of information
    304     necessary}.}
    305   \item {... be usable.}
    306   \item {... be efficient.}
    307   \item {... avoid single points of failure.}
    308   \item {... foster {\bf competition}.}
    309 \end{enumerate}
    310 \end{frame}
    311 
    312 
    313 \begin{frame}
    314 \frametitle{Architecture of Taler}
    315 \begin{center}
    316   \includegraphics[width=1\textwidth]{operations.png}
    317 \end{center}
    318 \end{frame}
    319 
    320 
    321 \begin{frame}{Consumer Impact of Taler}
    322 \begin{itemize}
    323 \item {\bf Convenient:} pay with one click instantly --– in Euro, 
    324 Dollar, Yen or Bitcoin
    325 \item {\bf Friction-free security:} Payments do not require sign-up, 
    326 login or multi-factor authentication
    327 \item {\bf Privacy-preserving:} payment requires/shares no personal information
    328 \item {\bf Bank account:} not required
    329 \end{itemize}
    330 \end{frame}
    331 
    332 
    333 \begin{frame}{Merchant Impact of Taler}
    334 \begin{itemize}
    335 \item {\bf Instant clearance:} one-click transactions and instant clearance at par
    336 \item {\bf Easy \& compliant:} GDPR \& PCI-DSS compliance-free and without any effort
    337 \item {\bf Major profit increase:} efficient protocol $+$ no fraud $=$ extremely low costs
    338 \item {\bf 1-click checkout:} without Amazon and without false 
    339 positives in fraud detection
    340 \end{itemize}
    341 \end{frame}
    342 
    343 
    344 \begin{frame}{Taler: Unique Regulatory Features for Central Banks}
    345   \framesubtitle{\url{https://www.snb.ch/en/mmr/papers/id/working_paper_2021_03}}
    346   \begin{itemize}
    347     \item Central bank issues digital coins equivalent to issuing cash \\
    348           $\Rightarrow$ monetary policy remains under CB control
    349     \item Architecture with consumer accounts at commercial banks \\
    350           $\Rightarrow$ no competition for commercial banking (S\&L) \\
    351           $\Rightarrow$ CB does not have to manage KYC, customer support
    352     \item Withdrawal limits and denomination expiration \\
    353           $\Rightarrow$ protects against bank runs and hoarding
    354     \item Income transparency and possibility to set fees \\
    355           $\Rightarrow$ additional insights into economy and new policy options
    356     \item Revocation protocols and loss limitations \\
    357           $\Rightarrow$ exit strategy and handles catastrophic security incidents
    358     \item Privacy by cryptographic design not organizational compliance \\
    359           $\Rightarrow$ CB cannot be forced to facilitate mass-surveillance
    360   \end{itemize}
    361 \end{frame}
    362 
    363 
    364 \begin{frame}{Usability of Taler}
    365   \vfill
    366   \begin{center}
    367     \url{https://demo.taler.net/}
    368   \end{center}
    369   \begin{enumerate}
    370   \item Install browser extension.
    371   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    372   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    373   \end{enumerate}
    374   \vfill
    375 \end{frame}
    376 
    377 
    378 \section{Protocol Basics}
    379 
    380 \begin{frame}
    381   \vfill
    382   \begin{center}
    383     {\bf Protocol Basics}
    384   \end{center}
    385   \vfill
    386 \end{frame}
    387 
    388 
    389 \begin{frame}{A Bachelor's Thesis Video}
    390   \begin{center}
    391     \movie[%scale=0.6,
    392            autostart,
    393            poster]
    394            {
    395                \includegraphics[height=0.6\textwidth,width=0.8\textwidth]{white.png}
    396            }
    397           {cs-movie.mp4}
    398   \end{center}
    399 \end{frame}
    400 
    401 
    402 \begin{frame}{How does it work?}
    403 We use a few ancient constructions:
    404   \begin{itemize}
    405   \item Cryptographic hash function (1989)
    406   \item Blind signature (1983)
    407   \item Schnorr signature (1989)
    408   \item Diffie-Hellman key exchange (1976)
    409   \item Cut-and-choose zero-knowledge proof (1985)
    410   \end{itemize}
    411 But of course we use modern instantiations.
    412 \end{frame}
    413 
    414 
    415 \begin{frame}{Double Spending}
    416   \vfill
    417   The exchange does not only verify the signature, but also
    418   checks that the coin was not double-spent.
    419   \vfill
    420   \pause
    421   \begin{center}
    422   {\bf Taler is an online payment system.}
    423   \end{center}
    424   \vfill
    425 \end{frame}
    426 
    427 
    428 \section{Offline payments}
    429 
    430 \begin{frame}{Requirements: Online vs. Offline Digital Currencies}
    431 \framesubtitle{\url{https://taler.net/papers/euro-bearer-online-2021.pdf}}
    432 \begin{itemize}
    433     \item Offline capabilities are sometimes cited as a requirement for digital payment solutions
    434     \item All implementations must either use restrictive hardware elements and/or introduce
    435       counterparty risk.
    436     \item[$\Rightarrow$] Permanent offline features weaken a digital payment solution (privacy, security)
    437     \item[$\Rightarrow$] Introduces unwarranted competition for physical cash (endangers emergency-preparedness).
    438   \end{itemize}
    439   We recommend a tiered approach:
    440       \begin{enumerate}
    441         \item Online-first, bearer-based digital currency with Taler
    442         \item (Optional:) Limited offline mode for network outages
    443         \item Physical cash for emergencies (power outage, catastrophic cyber incidents)
    444       \end{enumerate}
    445 \end{frame}
    446 
    447 
    448 \begin{frame}{Partially Offline Payments with GNU Taler}
    449 
    450 \begin{center}
    451 \resizebox{8cm}{7cm}{
    452 \begin{sequencediagram}
    453     \newinst{pos}{\shortstack{PoS \\
    454       \\ \begin{tikzpicture}
    455         \node [fill=gray!20,draw=black,thick ,align=center] {PoS key \\ PoS ID};
    456       \end{tikzpicture}
    457     }}
    458     \newinst[2]{customer}{\shortstack{Customer \\
    459       \\ \begin{tikzpicture}
    460         \node [fill=gray!20,draw=black,thick ,align=center] {Digital \\ Wallet};
    461       \end{tikzpicture}
    462     }}
    463     \newinst[2]{backend}{\shortstack{Merchant Backend \\
    464        \\ \begin{tikzpicture}[shape aspect=.5]
    465         \tikzset{every node/.style={cylinder, shape border rotate=90, draw,fill=gray!25}}
    466         \node at (1.5,0) {\shortstack{{\tiny PoS key} \\ {\tiny PoS ID}}};
    467        \end{tikzpicture}
    468     }}
    469     \postlevel
    470     \mess[0]{pos}{PoS ID}{customer}
    471     \begin{sdblock}{optional}{}
    472       \begin{callself}{customer}{Amount}{}
    473       \end{callself}
    474     \end{sdblock}
    475     \prelevel
    476     \prelevel
    477     \prelevel
    478     \prelevel
    479     \prelevel
    480     \begin{sdblock}{optional}{}
    481       \begin{callself}{pos}{Amount}{}
    482       \end{callself}
    483     \end{sdblock}
    484     \postlevel
    485     \mess[0]{customer}{PoS ID, [Amount]?}{backend}
    486     \mess[0]{backend}{Contract}{customer}
    487     \postlevel
    488     \mess[0]{customer}{Payment}{backend}
    489     \begin{callself}{pos}{OTP(PoS key)}{}
    490     \end{callself}
    491     \prelevel
    492     \prelevel
    493     \begin{callself}{backend}{OTP(PoS key)}{}
    494     \end{callself}
    495     \mess[0]{backend}{OTP code}{customer}
    496     \postlevel
    497     \mess[0]{customer}{OTP code}{pos}
    498 \end{sequencediagram}
    499 }
    500 \end{center}
    501 \end{frame}
    502 
    503 
    504 
    505 \section{Programmable money: Age restrictions}
    506 
    507 \begin{frame}
    508   \vfill
    509   \begin{center}
    510     {\bf Programmable money: Age restrictions}
    511   \end{center}
    512   \vfill
    513 \end{frame}
    514 
    515 
    516 \begin{frame}{Age-restricted money in GNU Taler}
    517   \framesubtitle{\url{https://taler.net/papers/esorics2022-age-restriction.pdf}}
    518 Designed and implemented an age restriction scheme with the following goals:
    519 
    520 \begin{enumerate}
    521 \item It ties age restriction to the \textbf{ability to pay} (not to ID's)
    522 \item maintains \textbf{anonymity of buyers}
    523 \item maintains \textbf{unlinkability of transactions}
    524 \item aligns with \textbf{principle of subsidiartiy}
    525 \item is \textbf{practical and efficient}
    526 \end{enumerate}
    527 \end{frame}
    528 
    529 
    530 \section{Software architecture}
    531 
    532 \begin{frame}
    533   \vfill
    534   \begin{center}
    535     {\bf Software architecture}
    536   \end{center}
    537   \vfill
    538 \end{frame}
    539 
    540 
    541 \begin{frame}{Taler Exchange}
    542   The {\bf Exchange} is the core logic of the payment system.
    543 
    544   \begin{itemize}
    545     \item One exchange at minimum must be operated per currency
    546     \item Offers a REST API for merchants and customers
    547     \item Uses several helper processes for configuration and to
    548           interact with RTGS and cryptography
    549     \item KYC support via OAuth 2.0, KycAID or Persona APIs
    550     \item AML staff can analyze transactions and freeze income
    551   \end{itemize}
    552 \end{frame}
    553 
    554 
    555 \begin{frame}{Taler Merchant}
    556   The {\bf Merchant} is the software run by merchants to accept\\
    557   GNU Taler payments.
    558 
    559   \begin{minipage}{6cm}
    560   \begin{itemize}
    561     \item REST API for integration with e-commerce
    562     \item SPA provides Web interface for administration
    563     \item Features include:
    564       \begin{itemize}
    565       \item Multi-tenant support
    566       \item Refunds
    567       \item Rewards (Website pays visitor)
    568       \item Templates (static QR codes with payment request)
    569       \item Webhooks
    570       \item Inventory management
    571       \end{itemize}
    572     \item Implemented in C on top of GNU libmicrohttpd
    573   \end{itemize}
    574   \end{minipage}
    575   \begin{minipage}{5cm}
    576   \includegraphics[width=5cm]{screenshots/merchant-spa-settings}
    577   \end{minipage}
    578 \end{frame}
    579 
    580 
    581 \begin{frame}{Taler Wallet}
    582   The {\bf Wallet} is the software run by consumers to store
    583   their digital cash and authorize transactions.
    584 
    585   \begin{minipage}{8cm}
    586   \begin{itemize}
    587     \item {\bf wallet-core} is the logic shared by all interfaces
    588     \item Applications exist for Android, F-Droid, iOS
    589           WebExtension (Chrome, Chromium, Firefox, etc.)
    590     \item Features include:
    591       \begin{itemize}
    592       \item Multi-currency support
    593       \item Wallet-to-wallet payments (NFC or QR code)
    594       \item CRDT-like data model
    595       \end{itemize}
    596     \item {\bf wallet-core} implemented in TypeScript
    597   \end{itemize}
    598   Can be integrated into other Apps if desired.
    599   \end{minipage}
    600   \begin{minipage}{3cm}
    601   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png}
    602   \end{minipage}
    603 \end{frame}
    604 
    605 
    606 \begin{frame}{Taler Auditor}
    607   The {\bf Auditor} is the software run by an independent auditor
    608   to validate the operation of an Exchange.
    609 
    610   \begin{itemize}
    611     \item REST API for additional report inputs by merchants (optional)
    612     \item Secure database replication logic
    613     \item Implemented in C on top of GNU libmicrohttpd
    614   \end{itemize}
    615 \end{frame}
    616 
    617 
    618 \begin{frame}{Pretix Taler payment plugin}
    619 \begin{center}
    620 \includegraphics[width=0.5\textwidth]{screenshots/pretix.png}
    621 \end{center}
    622 
    623   Pretix is a ticket sales system.
    624 
    625   \begin{itemize}
    626     \item Pretix payment plugin enables payments via GNU Taler
    627     \item Developed by Pretix.eu for \EUR{3,000} on behalf of Taler Systems SA
    628   \end{itemize}
    629 \end{frame}
    630 
    631 
    632 \begin{frame}{WooCommerce Taler payment plugin}
    633 \begin{minipage}{6cm}
    634   \begin{itemize}
    635     \item WooCommerce is an e-commerce plugin for WordPress.
    636     \item WooCommerce payment plugin enables payments via GNU Taler
    637     \item Features include:
    638       \begin{itemize}
    639       \item Trivial configuration
    640       \item Support for refunds
    641       \item Full internationalization
    642       \end{itemize}
    643     \item WooCommerce and its plugins are implemented in PHP
    644   \end{itemize}
    645 \end{minipage}
    646 \begin{minipage}{5cm}
    647   \includegraphics[width=4cm]{screenshots/woocommerce-cart.png}
    648   \includegraphics[width=4cm]{screenshots/woocommerce-settings.png}
    649   \end{minipage}
    650 \end{frame}
    651 
    652 
    653 \begin{frame}{Point-of-Sale App for Android}
    654 
    655 \begin{minipage}{7cm}
    656   \begin{itemize}
    657     \item Allows merchant to generate orders against Taler backend
    658           and display QR code to enable customer to pay in person
    659     \item Patterned after ViewTouch restaurant UI
    660     \item Features include:
    661       \begin{itemize}
    662       \item Internet-based configuration
    663       \item Products sorted by categories
    664       \item Easy undo of every operation
    665       \item Manages multiple concurrent orders
    666       \end{itemize}
    667     \item The Point-of-Sale App is implemented in Kotlin
    668   \end{itemize}
    669 \end{minipage}
    670 \begin{minipage}{4cm}
    671   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg}
    672   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg}
    673   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg}
    674 \end{minipage}
    675 \end{frame}
    676 
    677 
    678 \begin{frame}{Cashier App for Android}
    679 \begin{minipage}{4cm}
    680   \begin{itemize}
    681     \item Enables BFH staff to convert cash to e-cash
    682     \item Staff has special bank accounts with limited funds
    683     \item Students can pay staff in cash to receive e-cash
    684     \item The Cashier App is implemented in Kotlin
    685   \end{itemize}
    686   \end{minipage}
    687   \begin{minipage}{3cm}
    688   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103315.png}
    689   \end{minipage}
    690   \begin{minipage}{3cm}
    691   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103325.png}
    692   \end{minipage}
    693 \end{frame}
    694 
    695 
    696 \begin{frame}{LibEuFin}
    697   LibEuFin is a standalone project that provides adapters to bank account
    698   access APIs.
    699 
    700   \begin{itemize}
    701     \item LibEuFin provides both a generic access layer and an
    702       implementation of the Wire Gateway for the exchange
    703     \item Supports EBICS 2.5 and 3.0
    704     \item other APIs such as FinTS or PSD2-style XS2A APIs can be added
    705       without requiring changes to the Exchange
    706     \item tested with German bank GLS business account and real Euros
    707   \end{itemize}
    708   \vfill
    709   \begin{itemize}
    710     \item \texttt{libeufin-nexus} is the main service
    711     \item \texttt{libeufin-bank} implements a bank
    712       (suitable for regional currencies)
    713     \item \texttt{libeufin-sandbox} implements a toy EBICS host for protocol
    714       testing
    715   \end{itemize}
    716 \end{frame}
    717 
    718 
    719 
    720 \section{Performance Experiments}
    721 
    722 \begin{frame}
    723   \vfill
    724   \begin{center}
    725     {\bf Performance}
    726   \end{center}
    727   \vfill
    728 \end{frame}
    729 
    730 
    731 \begin{frame}\frametitle{Horizontal Distribution}
    732   \begin{figure}
    733     \centering
    734     \includegraphics[width=0.75\linewidth]{dist-hori-more}
    735   \end{figure}
    736 \end{frame}
    737 
    738 
    739 \begin{frame}[fragile]{Dashboard}
    740   \begin{center}
    741   \movie[poster, width=0.75\textwidth, showcontrols]{
    742     \includegraphics[width=0.75\textwidth]{white.png}}
    743     {dashboards.mp4}
    744   \end{center}
    745 \end{frame}
    746 
    747 
    748 
    749 
    750 \section{Future Work \& Conclusion}
    751 
    752 \begin{frame}
    753   \vfill
    754   \begin{center}
    755     {\bf Future Work \& Conclusion}
    756   \end{center}
    757   \vfill
    758 \end{frame}
    759 
    760 
    761 \begin{frame}{Competitor comparison}
    762   \begin{center} \small
    763     \begin{tabular}{l||c|c|c|c|c}
    764                 & Cash     & Bitcoin    & Zerocoin  & Creditcard & GNU Taler  \\ \hline \hline
    765     Online      &$-$$-$$-$ &   ++       &    ++     &     +      &   +++      \\ \hline
    766     Offline     & +++      &   $-$$-$   &    $-$$-$ &     +      &   $+$$+$   \\ \hline
    767     Trans. cost & +        & $-$$-$$-$  & $-$$-$$-$ &     $-$    &   ++       \\ \hline
    768     Speed       & +        & $-$$-$$-$  & $-$$-$$-$ &     o      &   ++       \\ \hline
    769     Taxation    & $-$      &   $-$$-$   & $-$$-$$-$ &    +++     &  +++       \\ \hline
    770     Payer-anon  &  ++      &   o        &    ++     &  $-$$-$$-$ &  +++       \\ \hline
    771     Payee-anon  & ++       &   o        &    ++     &  $-$$-$$-$ &  $-$$-$$-$ \\ \hline
    772     Security    &  $-$     &   o        &    o      &    $-$$-$  &  ++        \\ \hline
    773     Conversion  & +++      &  $-$$-$$-$ & $-$$-$$-$ &    +++     &  +++       \\ \hline
    774     Libre       &  $-$     &  +++       &    +++    & $-$ $-$ $-$&  +++       \\
    775   \end{tabular}
    776   \end{center}
    777 \end{frame}
    778 
    779 
    780 \begin{frame}{Taler: Project Status}
    781 \framesubtitle{\url{https://docs.taler.net/}}
    782 \begin{itemize}
    783     \item Cryptographic protocols are stable
    784     \item Pilot project at Bern University of Applied Sciences cafeteria
    785     \item Regional currency projects in Switzerland preparing for launch
    786     \item Internal alpha deployment with GLS Bank (Germany)
    787   \end{itemize}
    788 \end{frame}
    789 
    790 
    791 \begin{frame}{Active collaborations}
    792   \begin{description}
    793   \item {\bf Freie Universit\"at Berlin:} \\ Programmability 
    794   \item {\bf Technical University Dresden:} \\ embedded systems
    795   \item {\bf The GNU Project}: \\ Integration into FLOSS software
    796   \item {\bf Anastasis SARL}: \\ Distributed key escrow for backups
    797   \item {\bf Fraunhofer Gesellschaft}: \\ Identity management \& SSI \& wallet-to-wallet communication
    798   \item {\bf Chelpis (Ming Chih)}: Regional support partner for Taiwan ({\bf new}, \url{https://www.taiwannews.com.tw/en/news/4958467})
    799 %  \item {\bf Fiscaltrust GmbH}: \\ Point-of-sale integration ({\bf new})
    800   \end{description}
    801 \end{frame}
    802 
    803 \begin{frame}{NGI TALER PILOT}
    804 \framesubtitle{\url{https://taler.net/en/consortium.html}}
    805  
    806  \begin{itemize}
    807     \item EU Project started December 2023 to deploy GNU Taler
    808     \item 3 financial institutions (GLS Bank, Magnet Bank, Visual Vest),
    809           2 academic institutions (Berner FH, TU Eindhoven), 3 SMEs (Taler Systems SA, Code Blau GmbH, Petit Singularites), 3 non-profits (NLnet Foundation, E-Seniors Association, Homo Digitalis)
    810     \item $\approx$ \EUR 5M budget over 3 years
    811     \item Objective: {\bf Deploy GNU Taler in Europe}
    812   \end{itemize}
    813 \end{frame}
    814 
    815 
    816 \begin{frame}{Key NGI PILOT Activities}
    817   \begin{itemize}
    818     \item Integration (core banking, online publishers, e-commerce, public transportation)
    819     \item Compliant (establish compliance processes at each bank)
    820     \item Availability (packaging, porting to more platforms, browsers)
    821     \item Hardware support (offline payments, vending machines)
    822     \item Security audits of code and design
    823     \item Accessible (old people, children, blind users)
    824     \item Future-proof (post-quantum, standardized)
    825     \item Widely known and used (community building, open calls)
    826   \end{itemize}
    827 \end{frame}
    828 
    829 
    830 \begin{frame}{Other ongoing developments}
    831   \begin{itemize}
    832     \item Privacy-preserving auctions (trading, currency exchange)
    833     \item Hardware and software support for embedded systems
    834     \item GNU Name System registry with GNU Taler payments
    835     \item Performance improvements for RSA in FLOSS crypto libraries
    836     \item Parallel verification of RSA signatures on GPUs
    837     \item Tax-deductable receipts for donations to charities 
    838     \item Unlinkable anonymous subscriptions and discount tokens
    839   \end{itemize}
    840 \end{frame}
    841 
    842 
    843 \begin{frame}{How to support?}
    844   \begin{description}
    845     \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}}
    846     \item[Develop:] \url{https://git.taler.net/}
    847     \item[Integrate:] \url{https://docs.taler.net/}
    848     \item[Partner:] \url{https://taler-systems.com/}
    849   \end{description}
    850 \end{frame}
    851 
    852 
    853 \begin{frame}{Conclusion}
    854   \begin{center}
    855     {\bf  What can we do?}
    856    \end{center}
    857   \vfill
    858 \begin{itemize}
    859  \item{Suffer mass-surveillance enabled by credit card oligopolies with high fees, and}
    860  \item{Engage in arms race with deliberately unregulatable blockchains}
    861 % \item{Enjoy the ``benefits'' of cash \\
    862 %  \hfill  \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill}
    863 \end{itemize}
    864 \vfill
    865 \begin{center}
    866   {\bf OR}
    867 \end{center}
    868 \vfill
    869 \begin{itemize}
    870  \item{Establish free software alternative balancing social goals!}
    871 \end{itemize}
    872 \vfill
    873 \end{frame}
    874 
    875 
    876 \begin{frame}
    877 \frametitle{Do you have any questions?}
    878 \vfill
    879 References:
    880 {\tiny
    881   \begin{enumerate}
    882  \item{David Chaum, Christian Grothoff and Thomas Moser.
    883        {\em How to issue a central bank digital currency}.
    884        {\bf SNB Working Papers, 2021}.}
    885  \item{Christian Grothoff, Bart Polot and Carlo von Loesch.
    886        {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}.
    887        {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.}
    888  \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci.
    889        {\em Enabling Secure Web Payments with GNU Taler}.
    890        {\bf SPACE 2016}.}
    891  \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff.
    892        {\em Taler: Taxable Anonymous Libre Electronic Reserves}.
    893        Available upon request. 2016.}
    894  \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza.
    895        {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}.
    896        {\bf IEEE Symposium on Security \& Privacy, 2016}.}
    897  \item{David Chaum, Amos Fiat and Moni Naor.
    898        {\em Untraceable electronic cash}.
    899        {\bf Proceedings on Advances in Cryptology, 1990}.}
    900   \item{Phillip Rogaway.
    901        {\em The Moral Character of Cryptographic Work}.
    902        {\bf Asiacrypt}, 2015.} \label{bib:rogaway}
    903 \end{enumerate}
    904 }
    905 \begin{center}
    906   {\bf Let me know what is missing to make this interesting for you!}
    907 \end{center}
    908 
    909 \end{frame}
    910 
    911 
    912 \begin{frame}{Rights}
    913   \begin{itemize}
    914     \item GNUnet e.V. shared copyrights of their AGPLv3+ licensed code with Taler Systems SA
    915     \item Taler Systems SA holds copyrights to entire GNU Taler code base (AGPLv3+, GPLv3+,
    916       dual-licensing exclusive domain of Taler Systems SA)
    917     \item Taler Systems SA applied for patent on offline payment solution
    918     \item Taler Systems SA holds trademark on ``Taler''.
    919     \item FSF holds trademark on ``GNU'', we are authorized to use ``GNU Taler''.
    920     \item Taler Systems SA owns {\tt taler.net} and {\tt taler-systems.com}.
    921   \end{itemize}
    922 \end{frame}
    923 
    924 
    925 \end{document}
    926 
    927 
    928 
    929 
    930 \begin{frame}{Taler {\tt /withdraw/sign}}
    931 % Customer withdrawing coins with blind signatures
    932 % \bigskip
    933   \begin{figure}[th]
    934     \begin{minipage}[b]{0.45\linewidth}
    935       \begin{center}
    936         \begin{tikzpicture}[scale = 0.4,
    937             transform shape,
    938             msglabel/.style    = { text = Black, yshift = .3cm,
    939                                    sloped, midway },
    940             okmsg/.style       = { ->, color = MidnightBlue, thick,
    941                                    >=stealth },
    942             rstmsg/.style      = { ->, color = BrickRed, thick,
    943                                    >=stealth }
    944           ]
    945           \node[draw = MidnightBlue,
    946             fill = CornflowerBlue,
    947             minimum width = .3cm,
    948             minimum height = 10cm
    949           ] (h1) at (-4, 0) {};
    950           \node[draw = MidnightBlue,
    951             fill = CornflowerBlue,
    952             minimum width = .3cm,
    953             minimum height = 10cm
    954           ] (h2) at (4, 0) {};
    955           \node[above = 0cm of h1] {Wallet};
    956           \node[above = 0cm of h2] {Exchange};
    957 
    958           \path[->, color = MidnightBlue, very thick, >=stealth]
    959             (-5, 4.5) edge
    960             node[rotate=90, text = Black, yshift = .3cm] {Time}
    961             (-5, -4.5);
    962           \path[okmsg, dashed]
    963              ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge
    964              node[msglabel] {SEPA(RK,A)}
    965              ($(h2.west)+(0, 3.5)+(0, -1.0)$);
    966           \path[okmsg]
    967             ($(h1.east)+(0, -1.0)$) edge
    968             node[msglabel] {POST {\tt /withdraw/sign} $S_{RK}(DK, B_b(C))$}
    969             ($(h2.west)+(0, -1.5)$);
    970           \path[okmsg]
    971             ($(h2.west)+(0, -2.0)$) edge
    972             node[msglabel] {200 OK: $S_{DK}(B_b(C))$)}
    973             ($(h1.east)+(0, -2.5)$);
    974           \path[rstmsg]
    975             ($(h2.west)+(0, -3.5)$) edge
    976             node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)}
    977             ($(h1.east)+(0, -4)$);
    978           \node at (5.3, 0) {};
    979         \end{tikzpicture}
    980       \end{center}
    981       Result: $\langle c, S_{DK}(C) \rangle$.
    982     \end{minipage}
    983     \hspace{0.5cm}
    984     \begin{minipage}[b]{0.45\linewidth}
    985       \tiny
    986       \begin{description}
    987       \item[$A$] Some amount, $A \ge A_{DK}$
    988       \item[$RK$] Reserve key
    989       \item[$DK$] Denomination key
    990       \item[$b$] Blinding factor
    991       \item[$B_b()$] RSA-FDH blinding % DK supressed
    992       \item[$C$] Coin public key $C := cG$
    993       \item[$S_{RK}()$] EdDSA signature
    994       \item[$S_{DK}()$] RSA-FDH signature
    995       \end{description}
    996     \end{minipage}
    997   \end{figure}
    998 \end{frame}
    999 
   1000 
   1001 \begin{frame}[t]{Taler {\tt /deposit}}
   1002 Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$.
   1003 \bigskip
   1004   \begin{figure}[th]
   1005     \begin{minipage}[b]{0.45\linewidth}
   1006       \begin{center}
   1007         \begin{tikzpicture}[scale = 0.4,
   1008             transform shape,
   1009             msglabel/.style    = { text = Black, yshift = .3cm,
   1010                                    sloped, midway },
   1011             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1012                                    >=stealth },
   1013             rstmsg/.style      = { ->, color = BrickRed, thick,
   1014                                    >=stealth }
   1015           ]
   1016           \node[draw = MidnightBlue,
   1017             fill = CornflowerBlue,
   1018             minimum width = .3cm,
   1019             minimum height = 10cm
   1020           ] (h1) at (-4, 0) {};
   1021           \node[draw = MidnightBlue,
   1022             fill = CornflowerBlue,
   1023             minimum width = .3cm,
   1024             minimum height = 10cm
   1025           ] (h2) at (4, 0) {};
   1026           \node[above = 0cm of h1] {Merchant};
   1027           \node[above = 0cm of h2] {Exchange};
   1028 
   1029           \path[->, color = MidnightBlue, very thick, >=stealth]
   1030             (-5, 4.5) edge
   1031             node[rotate=90, text = Black, yshift = .3cm] {Time}
   1032             (-5, -4.5);
   1033           \path[->, color = MidnightBlue, thick, >=stealth]
   1034             ($(h1.east)+(0,3)$) edge
   1035             node[text = Black, yshift = .3cm, sloped] {POST {\tt /deposit} $S_{DK}(C), S_{c}(D)$}
   1036             ($(h2.west)+(0,2)$);
   1037           \path[->, color = MidnightBlue, thick, >=stealth]
   1038             ($(h2.west)+(0,0.5)$) edge
   1039             node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$}
   1040             ($(h1.east)+(0,-0.5)$);
   1041           \path[rstmsg]
   1042             ($(h2.west)+(0, -2.5)$) edge
   1043             node[msglabel] {409 CONFLICT: $S_{c}(D')$}
   1044             ($(h1.east)+(0, -3.5)$);
   1045           \node at (5.3, 0) {};
   1046         \end{tikzpicture}
   1047       \end{center}
   1048     \end{minipage}
   1049     \hspace{0.5cm}
   1050     \begin{minipage}[b]{0.45\linewidth}
   1051       \tiny
   1052       \begin{description}
   1053       \item[$DK$] Denomination key
   1054       \item[$S_{DK}()$] RSA-FDH signature using $DK$
   1055       \item[$c$] Private coin key, $C := cG$.
   1056       \item[$S_{C}()$] EdDSA signature using $c$
   1057       \item[$D$] Deposit details
   1058       \item[$SK$] Exchange's signing key
   1059       \item[$S_{SK}()$] EdDSA signature using $SK$
   1060       \item[$D'$] Conficting deposit details $D' \not= D$
   1061       \end{description}
   1062     \end{minipage}
   1063   \end{figure}
   1064 \end{frame}
   1065 
   1066 
   1067 \begin{frame}{Taler {\tt /refresh/melt}}
   1068   \begin{figure}[th]
   1069     \begin{minipage}[b]{0.45\linewidth}
   1070       \begin{center}
   1071 	\begin{tikzpicture}[scale = 0.4,
   1072             transform shape,
   1073             msglabel/.style    = { text = Black, yshift = .3cm,
   1074                                    sloped, midway },
   1075             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1076                                    >=stealth },
   1077             rstmsg/.style      = { ->, color = BrickRed, thick,
   1078                                    >=stealth }
   1079 	  ]
   1080 	  \node[draw = MidnightBlue,
   1081 	    fill = CornflowerBlue,
   1082 	    minimum width = .3cm,
   1083 	    minimum height = 10cm
   1084 	  ] (h1) at (-4, 0) {};
   1085 	  \node[draw = MidnightBlue,
   1086 	    fill = CornflowerBlue,
   1087 	    minimum width = .3cm,
   1088 	    minimum height = 10cm
   1089 	  ] (h2) at (4, 0) {};
   1090 	  \node[above = 0cm of h1] {Customer};
   1091 	  \node[above = 0cm of h2] {Exchange};
   1092 
   1093 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1094 	    (-5, 4.5) edge
   1095 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1096 	    (-5, -4.5);
   1097 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1098 	    ($(h1.east)+(0,3)$) edge
   1099 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$}
   1100 	    ($(h2.west)+(0,2)$);
   1101 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1102 	    ($(h2.west)+(0,0.5)$) edge
   1103 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$}
   1104 	    ($(h1.east)+(0,-0.5)$);
   1105 	  \path[rstmsg]
   1106 	    ($(h2.west)+(0, -2.5)$) edge
   1107 	    node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$}
   1108 	    ($(h1.east)+(0, -3.5)$);
   1109 	  \node at (5.3, 0) {};
   1110 	\end{tikzpicture}
   1111       \end{center}
   1112     \end{minipage}
   1113     \hspace{0.5cm}
   1114     \begin{minipage}[b]{0.45\linewidth}
   1115       \tiny
   1116       \begin{description}
   1117       \item[$\kappa$] System-wide security parameter, usually 3.
   1118       \\ \smallskip
   1119       \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\
   1120       $D + \sum_i A_{DK^{(i)}} < A_{DK}$
   1121       \item[$t_j$] Random scalar for $j<\kappa$
   1122       \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$
   1123       \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE
   1124       \item[$b_j^{(i)}$] $:= KDF_b(k_j,i)$ % blinding factor
   1125       \item[$c_j^{(i)}$] $:= KDF_c(k_j,i)$ % coin secret keys
   1126       \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys
   1127       \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\
   1128          $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$
   1129       \\ \smallskip
   1130       \item[$\gamma$] Random value in $[0,\kappa)$
   1131 %      \\ \smallskip
   1132 %      \item[$X$] Deposit or refresh
   1133       \end{description}
   1134     \end{minipage}
   1135   \end{figure}
   1136 \end{frame}
   1137 
   1138 
   1139 \begin{frame}{Taler {\tt /refresh/reveal}}
   1140   \begin{figure}[th]
   1141     \begin{minipage}[b]{0.45\linewidth}
   1142       \begin{center}
   1143 	\begin{tikzpicture}[scale = 0.4,
   1144             transform shape,
   1145             msglabel/.style    = { text = Black, yshift = .3cm,
   1146                                    sloped, midway },
   1147             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1148                                    >=stealth },
   1149             rstmsg/.style      = { ->, color = BrickRed, thick,
   1150                                    >=stealth }
   1151 	  ]
   1152 	  \node[draw = MidnightBlue,
   1153 	    fill = CornflowerBlue,
   1154 	    minimum width = .3cm,
   1155 	    minimum height = 10cm
   1156 	  ] (h1) at (-4, 0) {};
   1157 	  \node[draw = MidnightBlue,
   1158 	    fill = CornflowerBlue,
   1159 	    minimum width = .3cm,
   1160 	    minimum height = 10cm
   1161 	  ] (h2) at (4, 0) {};
   1162 	  \node[above = 0cm of h1] {Customer};
   1163 	  \node[above = 0cm of h2] {Exchange};
   1164 
   1165 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1166 	    (-5, 4.5) edge
   1167 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1168 	    (-5, -4.5);
   1169 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1170 	    ($(h1.east)+(0,3)$) edge
   1171 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$}
   1172 	    ($(h2.west)+(0,2)$);
   1173 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1174 	    ($(h2.west)+(0,0.5)$) edge
   1175 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$}
   1176 	    ($(h1.east)+(0,-0.5)$);
   1177 	  \path[rstmsg]
   1178 	    ($(h2.west)+(0, -2.5)$) edge
   1179 	    node[msglabel] {400 BAD REQUEST: $Z$}
   1180 	    ($(h1.east)+(0, -3.5)$);
   1181 	  \node at (5.3, 0) {};
   1182 	\end{tikzpicture}
   1183       \end{center}
   1184     \end{minipage}
   1185     \hspace{0.5cm}
   1186     \begin{minipage}[b]{0.45\linewidth}
   1187       \tiny
   1188       \begin{description}
   1189       \item[$\cal DK$] $:= [DK^{(i)}]_i$
   1190       \item[$t_j$] .. \\ \smallskip
   1191 
   1192       \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip
   1193 
   1194       \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$
   1195       \item[$b_\gamma^{(i)}$] $:= KDF_b(k_\gamma,i)$
   1196       \item[$c_\gamma^{(i)}$] $:= KDF_c(k_\gamma,i)$
   1197       \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$
   1198 
   1199       \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$
   1200       \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$
   1201       \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip
   1202 
   1203       \item[$Z$] Cut-and-choose missmatch information
   1204       \end{description}
   1205     \end{minipage}
   1206   \end{figure}
   1207 \end{frame}
   1208 
   1209 
   1210 \begin{frame}{Taler {\tt /refresh/link}}
   1211   \begin{figure}[th]
   1212     \begin{minipage}[b]{0.45\linewidth}
   1213       \begin{center}
   1214 	\begin{tikzpicture}[scale = 0.4,
   1215             transform shape,
   1216             msglabel/.style    = { text = Black, yshift = .3cm,
   1217                                    sloped, midway },
   1218             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1219                                    >=stealth },
   1220             rstmsg/.style      = { ->, color = BrickRed, thick,
   1221                                    >=stealth }
   1222 	  ]
   1223 	  \node[draw = MidnightBlue,
   1224 	    fill = CornflowerBlue,
   1225 	    minimum width = .3cm,
   1226 	    minimum height = 10cm
   1227 	  ] (h1) at (-4, 0) {};
   1228 	  \node[draw = MidnightBlue,
   1229 	    fill = CornflowerBlue,
   1230 	    minimum width = .3cm,
   1231 	    minimum height = 10cm
   1232 	  ] (h2) at (4, 0) {};
   1233 	  \node[above = 0cm of h1] {Customer};
   1234 	  \node[above = 0cm of h2] {Exchagne};
   1235 
   1236 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1237 	    (-5, 4.5) edge
   1238 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1239 	    (-5, -4.5);
   1240 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1241 	    ($(h1.east)+(0,3)$) edge
   1242 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$}
   1243 	    ($(h2.west)+(0,2)$);
   1244 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1245 	    ($(h2.west)+(0,0.5)$) edge
   1246 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$}
   1247 	    ($(h1.east)+(0,-0.5)$);
   1248 	  \path[rstmsg]
   1249 	    ($(h2.west)+(0, -2.5)$) edge
   1250 	    node[msglabel] {404 NOT FOUND}
   1251 	    ($(h1.east)+(0, -3.5)$);
   1252 	  \node at (5.3, 0) {};
   1253 	\end{tikzpicture}
   1254       \end{center}
   1255     \end{minipage}
   1256     \hspace{0.5cm}
   1257     \begin{minipage}[b]{0.45\linewidth}
   1258       \tiny
   1259       \begin{description}
   1260       \item[$C$] Old coind public key \\ \smallskip
   1261       \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$
   1262       \end{description}
   1263     \end{minipage}
   1264   \end{figure}
   1265 \end{frame}
   1266 
   1267 
   1268 \begin{frame}{Operational security}
   1269   \begin{center}
   1270     \resizebox{\textwidth}{!}{
   1271 \begin{tikzpicture}[
   1272   font=\sffamily,
   1273   every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm},
   1274   source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm},
   1275   process/.style={draw,thick,circle,fill=blue!20},
   1276   sink/.style={source,fill=green!20},
   1277   datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm},
   1278   dots/.style={gray,scale=2},
   1279   to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize},
   1280   every node/.style={align=center}]
   1281 
   1282   % Position the nodes using a matrix layout
   1283   \matrix{
   1284     \node[source] (wallet) {Wallet};
   1285       \& \node[process] (browser) {Browser};
   1286       \& \node[process] (shop) {Web shop};
   1287       \& \node[sink] (backend) {Taler backend}; \\
   1288   };
   1289 
   1290   % Draw the arrows between the nodes and label them.
   1291   \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract}
   1292       node[midway,below] {(signal)} (wallet);
   1293   \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)}
   1294       node[midway,below] {(5) signed coins} (browser);
   1295   \draw[<->] (browser) -- node[midway,above] {(3,6) custom}
   1296       node[midway,below] {(HTTPS)} (shop);
   1297   \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)}
   1298       node[midway,below] {(1) proposed contract / (7) signed coins} (backend);
   1299   \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation}
   1300       node[midway,below] {(HTTPS)} (shop);
   1301 \end{tikzpicture}
   1302 }
   1303 \end{center}
   1304 \end{frame}
   1305 
   1306 
   1307 \begin{frame}{Use Cases: Refugee Camps}
   1308   Today:
   1309   \begin{itemize}
   1310   \item Non-bankable
   1311   \item Direct distribution of goods to population
   1312   \item Limited economic activity in camps
   1313   \item High level of economic dependence
   1314   \end{itemize}\vfill\pause
   1315   With GNU Taler:
   1316   \begin{itemize}
   1317   \item Local currency issued as basic income backed by aid
   1318   \item Taxation possible based on economic status
   1319   \item Local governance enabled by local taxes
   1320   \item Increased economic independence and political participation
   1321   \end{itemize}
   1322 \end{frame}
   1323 
   1324 
   1325 \begin{frame}{Use Case: Anti-Spam}
   1326   \framesubtitle{Background: \url{https://pep.security/}}
   1327   Today, p$\equiv$p provides authenticated encryption for e-mail:
   1328   \begin{itemize}
   1329     \item Free software
   1330     \item Easy to use opportunistic encryption
   1331     \item Available for Outlook, Android, Enigmail
   1332     \item Spies \& spam filters can no longer inspect content
   1333   \end{itemize}\vfill\pause
   1334   With GNU Taler:
   1335   \begin{itemize}
   1336     \item Peer-to-peer payments via e-mail
   1337     \item If unsolicited sender, hide messages from user \&
   1338           automatically request payment from sender
   1339     \item Sender can attach payment to be moved to inbox
   1340     \item Receiver may grant refund to sender
   1341   \end{itemize}
   1342 \end{frame}