marketing

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

2023-lug.tex (24991B)


      1 \pdfminorversion=3
      2 \documentclass[fleqn,xcolor={usenames,dvipsnames},handout
      3 ]{beamer}
      4 \usepackage{amsmath}
      5 \usepackage{multimedia}
      6 \usepackage[utf8]{inputenc}
      7 \usepackage{framed,color,ragged2e}
      8 \usepackage[absolute,overlay]{textpos}
      9 \definecolor{shadecolor}{rgb}{0.8,0.8,0.8}
     10 \usetheme{boxes}
     11 \setbeamertemplate{navigation symbols}{}
     12 \usepackage{xcolor}
     13 \usepackage[normalem]{ulem}
     14 \usepackage{listings}
     15 \usepackage{adjustbox}
     16 \usepackage{array}
     17 \usepackage{bbding}
     18 \usepackage{relsize}
     19 \usepackage{graphicx}
     20 \usepackage{pgf-umlsd}
     21 \usepackage{tikz,eurosym,calc}
     22 \usetikzlibrary{tikzmark}
     23 \usetikzlibrary{shapes,arrows,arrows.meta}
     24 \usetikzlibrary{positioning,fit,patterns}
     25 \usetikzlibrary{calc}
     26 
     27 % CSS
     28 \lstdefinelanguage{CSS}{
     29   basicstyle=\ttfamily\scriptsize,
     30   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},
     31   sensitive=true,
     32   morecomment=[l]{//},
     33   morecomment=[s]{/*}{*/},
     34   morestring=[b]',
     35   morestring=[b]",
     36   alsoletter={:},
     37   alsodigit={-}
     38 }
     39 
     40 % JavaScript
     41 \lstdefinelanguage{JavaScript}{
     42   basicstyle=\ttfamily\scriptsize,
     43   morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
     44   morecomment=[s]{/*}{*/},
     45   morecomment=[l]//,
     46   morestring=[b]",
     47   morestring=[b]'
     48 }
     49 
     50 \lstdefinelanguage{HTML5}{
     51   basicstyle=\ttfamily\scriptsize,
     52   language=html,
     53   sensitive=true,
     54   alsoletter={<>=-},
     55   morecomment=[s]{<!-}{-->},
     56   tag=[s],
     57   otherkeywords={
     58   % General
     59   >,
     60   % Standard tags
     61 	<!DOCTYPE,
     62   </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
     63 	% body
     64 	</body, <body,
     65 	% Divs
     66 	</div, <div, </div>,
     67 	% Paragraphs
     68 	</p, <p, </p>,
     69 	% scripts
     70 	</script, <script,
     71   % More tags...
     72   <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>
     73   },
     74   ndkeywords={
     75   % General
     76   =,
     77   % HTML attributes
     78   charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
     79   % SVG attributes
     80   fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
     81   % CSS properties
     82   margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:,
     83 	% CSS3 properties
     84   transform:, -moz-transform:, -webkit-transform:,
     85   animation:, -webkit-animation:,
     86   transition:,  transition-duration:, transition-property:, transition-timing-function:,
     87   }
     88 }
     89 
     90 \lstdefinelanguage{JavaScript}{
     91   basicstyle=\ttfamily\scriptsize,
     92   keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for},
     93   keywordstyle=\color{blue}\bfseries,
     94   ndkeywords={class, export, boolean, throw, implements, import, this},
     95   ndkeywordstyle=\color{darkgray}\bfseries,
     96   identifierstyle=\color{black},
     97   sensitive=false,
     98   comment=[l]{//},
     99   morecomment=[s]{/*}{*/},
    100   commentstyle=\color{purple}\ttfamily,
    101   stringstyle=\color{red}\ttfamily,
    102   morestring=[b]',
    103   morestring=[b]"
    104 }
    105 
    106 \def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;}
    107 
    108 
    109 \setbeamersize{description width=1em}
    110 
    111 \definecolor{blue}{rgb}{0,0,0.7}
    112 \newcommand{\orange}[1]{{\color{orange}#1}}
    113 \newcommand{\blue}[1]{{\color{blue}#1}}
    114 \newcommand{\red}[1]{{\color{red}#1}}
    115 \newcommand{\Guardian}{\mathcal{G}}
    116 \newcommand{\Child}{\mathcal{C}}
    117 \newcommand{\Customer}{\mathcal{C}}
    118 \newcommand{\Merchant}{\mathcal{M}}
    119 \newcommand{\Exchange}{\mathcal{E}}
    120 
    121 \newcommand{\Commit}{\mathsf{Commit}}
    122 \newcommand{\Attest}{\mathsf{Attest}}
    123 \newcommand{\Verify}{\mathsf{Verify}}
    124 \newcommand{\Derive}{\mathsf{Derive}}
    125 \newcommand{\DeriveCompare}{\mathsf{DeriveCompare_\kappa}}
    126 \newcommand{\Compare}{\mathsf{Compare}}
    127 \newcommand{\AgeVer}{\mathsf{AgeVer}}
    128 
    129 \newcommand{\HashF}{\mathsf{H}}
    130 \newcommand{\Hash}{\mathsf{H}}
    131 \newcommand{\Block}{\mathbb{B}}
    132 \newcommand{\Pub}{\mathsf{Pub}}
    133 \newcommand{\Sign}{\mathsf{Sig}}
    134 \newcommand{\Ver}{\mathsf{Ver}}
    135 \newcommand{\Encoding}{\mathsf{Encoding}}
    136 \newcommand{\ECDSA}{\mathsf{ECDSA}}
    137 \newcommand{\Null}{\mathcal{O}}
    138 \newcommand{\EC}{\mathrm{ec}}
    139 \newcommand{\Curve}{\mathsf{Curve25519}}
    140 \newcommand{\SHA}{\mathsf{SHA256}}
    141 \newcommand{\SHAF}{\mathsf{SHA252}}
    142 \newcommand{\FDH}{\mathsf{FDH}}
    143 
    144 \newcommand{\negl}{\epsilon}
    145 
    146 \newcommand{\rand}{\mathsf{rand}}
    147 \newcommand{\age}{\mathsf{a}}
    148 \newcommand{\Age}{\mathsf{M}}
    149 \newcommand{\bage}{\mathsf{b}}
    150 \newcommand{\minage}{\mathsf{m}}
    151 \newcommand{\attest}{\mathsf{T}}
    152 \newcommand{\commitment}{\mathsf{Q}}
    153 \newcommand{\pruf}{\mathsf{P}}
    154 \newcommand{\Vcommitment}{\vec{\mathsf{Q}}}
    155 \newcommand{\Vpruf}{\vec{\mathsf{P}}}
    156 \newcommand{\blinding}{\beta}
    157 
    158 \newcommand{\ZN}{\mathbb{Z}_N}
    159 \newcommand{\Z}{\mathbb{Z}}
    160 \newcommand{\N}{\mathbb{N}}
    161 \newcommand{\A}{\mathbb{A}}
    162 \newcommand{\E}{\mathbb{E}}
    163 \newcommand{\F}{\mathbb{F}}
    164 \newcommand{\seck}{\mathsf{s}}
    165 \newcommand{\pubk}{\mathsf{P}}
    166 \renewcommand{\H}{\mathbb{H}}
    167 \newcommand{\K}{\mathbb{K}}
    168 \newcommand{\Proofs}{\mathbb{P}}
    169 \newcommand{\Commitments}{\mathbb{O}}
    170 \newcommand{\Attests}{\mathbb{T}}
    171 \newcommand{\Blindings}{\mathbb{B}}
    172 \newcommand{\Nil}{\perp}
    173 
    174 \newcommand{\p}{\mathsf{p}}
    175 \newcommand{\com}{\mathsf{com}}
    176 \newcommand{\prf}{\mathsf{prf}}
    177 
    178 \newcommand{\Adv}{\mathcal{A}}
    179 \newcommand{\PPT}{\mathfrak{A}}
    180 \newcommand{\Probability}{\mathrm{Pr}}
    181 \newcommand{\Algorithm}{f}
    182 \renewcommand{\Game}[1]{G_\Adv^\mathsf{#1}}
    183 
    184 \DeclareMathOperator{\Image}{Im}
    185 \DeclareMathOperator{\Mod}{mod}
    186 
    187 \newcommand{\Encode}[1]{\overbracket[0.5pt][2pt]{\,#1\,}}
    188 \newcommand{\Decode}[1]{\underbracket[0.5pt][3pt]{\,#1\,}}
    189 \newcommand{\FDHg}[1]{[#1]_g\,}
    190 \newcommand{\logg}{{\breve{g}}}
    191 
    192 
    193 \newcommand{\drawfrom}{\xleftarrow{\$}}
    194 \newcommand\Exists{%
    195 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    196 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}%
    197 	  \limits}
    198 
    199 \newcommand\Forall{%
    200 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    201 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\forall}}}}}}}%
    202 	  \limits}
    203 
    204 
    205 \title{GNU Taler}
    206 %\subtitle{}
    207 
    208 \setbeamertemplate{navigation symbols}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=1cm]{bfh.png} \includegraphics[width=1.6cm]{fub.pdf} \includegraphics[width=0.4cm]{ashoka.png}  \includegraphics[width=0.4cm]{gnu.png} \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf} \hfill}
    209 %\setbeamercovered{transparent=1}
    210 
    211 % Page numbers
    212 \addtobeamertemplate{navigation symbols}{}{%
    213     \usebeamerfont{footline}%
    214     \usebeamercolor[fg]{footline}%
    215     \hspace{1em}%
    216     \insertframenumber
    217 }
    218 
    219 \author[E. Benoist, F. Dold, C. Grothoff, M. Walrafen]{{\bf E. Benoist, F. Dold, C. Grothoff, M. Walrafen}}
    220 \date{\today}
    221 \institute{Taler Systems SA \& BFH \& The GNU Project}
    222 
    223 
    224 \begin{document}
    225 
    226 \justifying
    227 
    228 \begin{frame}
    229   \begin{center}
    230     \LARGE {\bf GNU} \\
    231     \vspace{0.3cm}
    232 %    \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf}
    233     \includegraphics[width=0.66\textwidth]{taler-logo-2021-inkscape.pdf}
    234     \vfill
    235   \end{center}
    236 \begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords)
    237     {\Large {\bf \href{https://taler.net/}{taler.net}} \\
    238     \href{https://twitter.com/taler}{taler@twitter} \\
    239     \href{https://taler-systems.com/}{taler-systems.com}}
    240 \end{textblock*}
    241 
    242 % Substitute based on who is giving the talk!
    243  \begin{textblock*}{8cm}(4.7cm,6.7cm) % {block width} (coords)
    244    {\hfill {{\bf Dr. Emmanuel Benoist} \\
    245     \hfill {\bf Dr. Florian Dold} \\
    246     \hfill {\bf Dr. Christian Grothoff} \\
    247     \hfill {\bf Marie Walrafen} \\ }
    248     \hfill \{benoist,dold,grothoff,walrafen\}@taler.net }
    249 \end{textblock*}
    250 
    251 \end{frame}
    252 
    253 \begin{frame}{Agenda}
    254 \tableofcontents
    255 \end{frame}
    256 
    257 \section{Introduction}
    258 
    259 \begin{frame}
    260   \vfill
    261   \begin{center}
    262     {\bf Part I: Introduction}
    263   \end{center}
    264   \vfill
    265 \end{frame}
    266 
    267 
    268 \section{What is Taler?}
    269 \begin{frame}{What is Taler?}
    270   \framesubtitle{\url{https://taler.net/en/features.html}}  \noindent
    271 Taler is
    272   \vfill
    273   \begin{itemize}
    274     \item a Free/Libre software \emph{payment system} infrastructure project
    275     \item ... with a surrounding software ecosystem
    276     \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
    277       as widely as possible.
    278   \end{itemize}
    279   \vfill
    280 \noindent
    281  However, Taler is
    282   \begin{itemize}
    283     \item \emph{not} a currency
    284     \item \emph{not} a long-term store of value
    285     \item \emph{not} a network or instance of a system
    286     \item \emph{not} decentralized
    287     \item \emph{not} based on proof-of-work or proof-of-stake
    288 %    \item combinable with a DLT back-end if requested
    289   \end{itemize}
    290 \end{frame}
    291 
    292 
    293 \begin{frame}{Design principles}
    294   \framesubtitle{https://taler.net/en/principles.html}
    295 GNU Taler must ...
    296 \begin{enumerate}
    297   \item {... be implemented as {\bf free software} (but {\em available} under a commercial license).}
    298   \item {... protect the {\bf privacy of buyers}.}
    299   \item {... must enable the state to {\bf tax income} and crack down on
    300     illegal business activities.}
    301   \item {... prevent payment fraud.}
    302   \item {... only {\bf disclose the minimal amount of information
    303     necessary}.}
    304   \item {... be usable.}
    305   \item {... be efficient.}
    306   \item {... avoid single points of failure.}
    307   \item {... foster {\bf competition} in associated services.}
    308 \end{enumerate}
    309 \end{frame}
    310 
    311 
    312 \begin{frame}
    313 \frametitle{Taler Overview}
    314 \begin{center}
    315 \begin{tikzpicture}
    316  \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em];
    317  \node (origin) at (0,0) {};
    318  \node (exchange) [def,above=of origin,draw]{Exchange};
    319  \node (customer) [def, draw, below left=of origin] {Customer};
    320  \node (merchant) [def, draw, below right=of origin] {Merchant};
    321  \node (auditor) [def, draw, above right=of origin]{Auditor};
    322 % \node (regulator) [def, draw, above=of auditor]{CSSF};
    323 
    324  \tikzstyle{C} = [color=black, line width=1pt]
    325 
    326  \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins};
    327  \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins};
    328  \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins};
    329  \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify};
    330 % \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report};
    331 
    332 \end{tikzpicture}
    333 \end{center}
    334 \end{frame}
    335 
    336 
    337 \begin{frame}{Architecture of Taler}
    338 \begin{center}
    339   \includegraphics[width=1\textwidth]{operations.png}
    340 \end{center}
    341 \end{frame}
    342 
    343 
    344 \begin{frame}{Consumer Impact of Taler}
    345 \begin{itemize}
    346 \item {\bf Convenient:} pay with one click instantly --– in Euro,
    347 Dollar, Swiss Franc or Bitcoin
    348 \item {\bf Friction-free security:} Payments do not require sign-up,
    349 login or multi-factor authentication
    350 \item {\bf Privacy-preserving:} payment requires/shares no personal information
    351 \item {\bf Bank account:} not required
    352 \end{itemize}
    353 \end{frame}
    354 
    355 
    356 \begin{frame}{Merchant Impact of Taler}
    357 \begin{itemize}
    358 \item {\bf Instant clearance:} one-click transactions and instant clearance at par
    359 \item {\bf Easy \& compliant:} GDPR \& PCI-DSS compliance-free and without any effort
    360 \item {\bf Major profit increase:} efficient protocol $+$ no fraud $=$ extremely low costs
    361 \item {\bf 1-click checkout:} without Amazon and without false
    362 positives in fraud detection
    363 \end{itemize}
    364 \end{frame}
    365 
    366 
    367 \begin{frame}{Usability of Taler}
    368   \vfill
    369   \begin{center}
    370     \url{https://demo.taler.net/}
    371   \end{center}
    372   \begin{enumerate}
    373   \item Install browser extension.
    374   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    375   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    376   \end{enumerate}
    377   \vfill
    378 \end{frame}
    379 
    380 
    381 \section{Component Zoo}
    382 
    383 \begin{frame}
    384   \vfill
    385   \begin{center}
    386     {\bf Part II: Component Zoo}
    387   \end{center}
    388   \vfill
    389 \end{frame}
    390 
    391 
    392 \begin{frame}{The Taler Software Ecosystem: Overview}
    393   \framesubtitle{\url{https://taler.net/en/docs.html}}
    394   Taler is based on modular components that work together to provide a
    395   complete payment system:
    396   \vfill
    397   \begin{itemize}
    398     \item {\bf Exchange:} Service provider for digital cash
    399       \begin{itemize}
    400         \item Core exchange software (cryptography, database)
    401         \item Air-gapped key management, real-time {\bf auditing}
    402         \item {\bf LibEuFin}: Modular integration with banking systems
    403       \end{itemize}
    404     \item {\bf Merchant:} Integration service for existing businesses
    405       \begin{itemize}
    406         \item Core merchant backend software (cryptography, database)
    407         \item {\bf Back-office interface} for staff
    408         \item {\bf Frontend integration} (E-commerce, Point-of-sale)
    409       \end{itemize}
    410     \item {\bf Wallet:} Consumer-controlled applications for e-cash
    411       \begin{itemize}
    412         \item Multi-platform wallet software (for browsers \& mobile phones)
    413         \item Wallet backup storage providers ({\bf sync})
    414         \item {\bf Anastasis}: Recovery of lost wallets based on secret splitting
    415       \end{itemize}
    416   \end{itemize}
    417 \end{frame}
    418 
    419 
    420 \begin{frame}{Taler Exchange}
    421   The {\bf Exchange} is the core logic of the payment system.
    422 
    423   \begin{itemize}
    424     \item One exchange at minimum must be operated per currency
    425     \item Offers a REST API for merchants and customers
    426     \item Uses several helper processes for configuration and to
    427           interact with RTGS and cryptography
    428     \item KYC support via OAuth 2.0, KycAID or Persona APIs
    429     \item Implemented in C on top of GNU libmicrohttpd
    430   \end{itemize}
    431   Scalability: 28'500 transactions/second measured % in BS-thesis
    432   in 2022 using two servers on Grid5000. Likely several times
    433   higher today (but we did not re-measure recently).
    434 \end{frame}
    435 
    436 
    437 \begin{frame}{Taler Merchant}
    438   The {\bf Merchant} is the software run by merchants to accept\\
    439   GNU Taler payments.
    440 
    441   \begin{minipage}{6cm}
    442   \begin{itemize}
    443     \item REST API for integration with e-commerce
    444     \item SPA provides Web interface for administration
    445     \item Features include:
    446       \begin{itemize}
    447       \item Multi-tenant support
    448       \item Refunds
    449       \item Tipping (Website pays visitor)
    450       \item Webhooks
    451       \item Inventory management (optional)
    452       \end{itemize}
    453     \item Implemented in C on top of GNU libmicrohttpd
    454   \end{itemize}
    455   \end{minipage}
    456   \begin{minipage}{5cm}
    457   \includegraphics[width=5cm]{screenshots/merchant-spa-settings}
    458   \end{minipage}
    459 \end{frame}
    460 
    461 
    462 \begin{frame}{Taler Wallet}
    463   The {\bf Wallet} is the software run by consumers to store
    464   their digital cash and authorize transactions.
    465 
    466   \begin{minipage}{8cm}
    467   \begin{itemize}
    468     \item {\bf wallet-core} is the logic shared by all interfaces
    469     \item Applications exist for Android, F-Droid,
    470           WebExtension (Chrome, Chromium, Firefox, etc.), iOS ({\bf WiP})
    471     \item Features include:
    472       \begin{itemize}
    473       \item Multi-currency support
    474       \item Wallet-to-wallet payments (NFC or QR code)
    475       \item CRDT-like data model
    476       \end{itemize}
    477     \item {\bf wallet-core} implemented in TypeScript
    478   \end{itemize}
    479   Can be integrated into other Apps if desired.
    480   \end{minipage}
    481   \begin{minipage}{3cm}
    482   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png}
    483   \end{minipage}
    484 \end{frame}
    485 
    486 
    487 \begin{frame}{Taler Auditor}
    488   The {\bf Auditor} is the software run by an independent auditor
    489   to validate the operation of an Exchange.
    490 
    491   \begin{itemize}
    492     \item REST API for additional report inputs by merchants (optional)
    493     \item Secure database replication logic
    494     \item Implemented in C on top of GNU libmicrohttpd
    495   \end{itemize}
    496 \end{frame}
    497 
    498 
    499 \begin{frame}{Pretix Taler payment plugin}
    500 \begin{center}
    501 \includegraphics[width=0.5\textwidth]{screenshots/pretix.png}
    502 \end{center}
    503 
    504   Pretix is a ticket sales system.
    505 
    506   \begin{itemize}
    507     \item Pretix payment plugin enables payments via GNU Taler
    508     \item Developed by Pretix.eu for \EUR{3,000} on behalf of Taler Systems SA
    509   \end{itemize}
    510 \end{frame}
    511 
    512 
    513 \begin{frame}{WooCommerce Taler payment plugin}
    514 \begin{minipage}{6cm}
    515   \begin{itemize}
    516     \item WooCommerce is an e-commerce plugin for WordPress.
    517     \item WooCommerce payment plugin enables payments via GNU Taler
    518     \item Features include:
    519       \begin{itemize}
    520       \item Trivial configuration
    521       \item Support for refunds
    522       \item Full internationalization
    523       \end{itemize}
    524     \item WooCommerce and its plugins are implemented in PHP
    525   \end{itemize}
    526 \end{minipage}
    527 \begin{minipage}{5cm}
    528   \includegraphics[width=4cm]{screenshots/woocommerce-cart.png}
    529   \includegraphics[width=4cm]{screenshots/woocommerce-settings.png}
    530   \end{minipage}
    531 \end{frame}
    532 
    533 
    534 \begin{frame}{Point-of-Sale App for Android}
    535 
    536 \begin{minipage}{7cm}
    537   \begin{itemize}
    538     \item Allows merchant to generate orders against Taler backend
    539           and display QR code to enable customer to pay in person
    540     \item Patterned after ViewTouch restaurant UI
    541     \item Features include:
    542       \begin{itemize}
    543       \item Internet-based configuration
    544       \item Products sorted by categories
    545       \item Easy undo of every operation
    546       \item Manages multiple concurrent orders
    547       \end{itemize}
    548     \item The Point-of-Sale App is implemented in Kotlin
    549   \end{itemize}
    550 \end{minipage}
    551 \begin{minipage}{4cm}
    552   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg}
    553   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg}
    554   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg}
    555 \end{minipage}
    556 \end{frame}
    557 
    558 
    559 \begin{frame}[c]{The Taler Snack Machine\footnote{by M. Boss and D. Hofer}}
    560   \framesubtitle{Integration of a MDB/ICP to Taler gateway.\\Implementation of a NFC or QR-Code to Taler wallet interface.}
    561 	\vfill
    562 	\begin{figure}
    563   \centering
    564   \includegraphics[width=1.0\textwidth]{design}
    565   \end{figure}
    566 \end{frame}
    567 
    568 \begin{frame}[c]{User story: Dr. Thomas Moser (SNB)}
    569 		\begin{figure}
    570 			\includegraphics[width=0.45\textwidth]{moser1.jpeg}
    571 			\includegraphics[width=0.45\textwidth]{moser2.jpeg}
    572 			\includegraphics[width=0.45\textwidth]{moser3.jpeg}
    573 			\includegraphics[width=0.45\textwidth]{moser4.jpeg}
    574 		\end{figure}
    575 \end{frame}
    576 
    577 
    578 \begin{frame}{LibEuFin}
    579   LibEuFin is a standalone project that provides adapters to bank account
    580   access APIs.
    581 
    582   \begin{itemize}
    583     \item LibEuFin provides both a generic access layer and an
    584       implementation of the Wire Gateway for the exchange
    585     \item Supports EBICS 2.5
    586     \item other APIs such as FinTS or PSD2-style XS2A APIs can be added
    587       without requiring changes to the Exchange
    588     \item tested with German bank GLS business account and real Euros
    589   \end{itemize}
    590   \vfill
    591   \begin{itemize}
    592     \item \texttt{libeufin-nexus} is the main service
    593     \item Almost all configuration (except DB credentials)
    594       is stored in the database and managed via a RESTful HTTP API
    595     \item \texttt{libeufin-sandbox} implements a toy EBICS host for protocol
    596       testing
    597     \item \texttt{libeufin-cli} is client for the HTTP API (only implements a subset
    598       of available functionality)
    599   \end{itemize}
    600 \end{frame}
    601 
    602 
    603 \begin{frame}{Cashier App for Android}
    604 \begin{minipage}{4cm}
    605   \begin{itemize}
    606     \item Enables BFH staff to convert cash to e-cash
    607     \item Staff has special bank accounts with limited funds
    608     \item Students can pay staff in cash to receive e-cash
    609     \item The Cashier App is implemented in Kotlin
    610   \end{itemize}
    611   \end{minipage}
    612   \begin{minipage}{3cm}
    613   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103315.png}
    614   \end{minipage}
    615   \begin{minipage}{3cm}
    616   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103325.png}
    617   \end{minipage}
    618 \end{frame}
    619 
    620 
    621 \begin{frame}{Depolymerization}
    622   Depolymerization is a bridge between GNU Taler and blockchains,
    623   making Taler a layer 2 system for crypto-currencies (like Lightning).
    624 
    625   \begin{itemize}
    626     \item Currently implemented for Bitcoin and Ethereum
    627           crypto-currencies, with the DLTs as the ``RTGS''
    628     \item Provides same API to Exchange as LibEuFin
    629 %   \item Transaction rate and speed limited by the underlying blockchain
    630     \item Implemented in Rust
    631   \end{itemize}
    632   \begin{center}
    633       \url{https://bitcoin.ice.bfh.ch/}
    634   \end{center}
    635 \end{frame}
    636 
    637 
    638 \begin{frame}{TalDir (WiP)}
    639   TalDir is an extension to the existing
    640   peer-to-peer payment functionality.
    641 
    642   \begin{itemize}
    643     \item Registry to associate wallets with network addresses
    644     \item Extensible to different types of network services:
    645       \begin{itemize}
    646     \item E-mail
    647     \item SMS
    648     \item Twitter
    649     \item ...
    650      \end{itemize}
    651     \item Send payments or invoices to wallets associated with network address
    652     \item Will {\bf not} require sending wallet to use same network service
    653   \end{itemize}
    654 \end{frame}
    655 
    656 
    657 \begin{frame}{Partially Offline Payments with GNU Taler}
    658 
    659 \begin{center}
    660 \resizebox{8cm}{7cm}{
    661 \begin{sequencediagram}
    662     \newinst{pos}{\shortstack{PoS \\
    663       \\ \begin{tikzpicture}
    664         \node [fill=gray!20,draw=black,thick ,align=center] {PoS key \\ PoS ID};
    665       \end{tikzpicture}
    666     }}
    667     \newinst[2]{customer}{\shortstack{Customer \\
    668       \\ \begin{tikzpicture}
    669         \node [fill=gray!20,draw=black,thick ,align=center] {Digital \\ Wallet};
    670       \end{tikzpicture}
    671     }}
    672     \newinst[2]{backend}{\shortstack{Merchant Backend \\
    673        \\ \begin{tikzpicture}[shape aspect=.5]
    674         \tikzset{every node/.style={cylinder, shape border rotate=90, draw,fill=gray!25}}
    675         \node at (1.5,0) {\shortstack{{\tiny PoS key} \\ {\tiny PoS ID}}};
    676        \end{tikzpicture}
    677     }}
    678     \postlevel
    679     \mess[0]{pos}{PoS ID}{customer}
    680     \begin{sdblock}{optional}{}
    681       \begin{callself}{customer}{Amount}{}
    682       \end{callself}
    683     \end{sdblock}
    684     \prelevel
    685     \prelevel
    686     \prelevel
    687     \prelevel
    688     \prelevel
    689     \begin{sdblock}{optional}{}
    690       \begin{callself}{pos}{Amount}{}
    691       \end{callself}
    692     \end{sdblock}
    693     \postlevel
    694     \mess[0]{customer}{PoS ID, [Amount]?}{backend}
    695     \mess[0]{backend}{Contract}{customer}
    696     \postlevel
    697     \mess[0]{customer}{Payment}{backend}
    698     \begin{callself}{pos}{OTP(PoS key)}{}
    699     \end{callself}
    700     \prelevel
    701     \prelevel
    702     \begin{callself}{backend}{OTP(PoS key)}{}
    703     \end{callself}
    704     \mess[0]{backend}{OTP code}{customer}
    705     \postlevel
    706     \mess[0]{customer}{OTP code}{pos}
    707 \end{sequencediagram}
    708 }
    709 \end{center}
    710 \end{frame}
    711 
    712 
    713 \begin{frame}{Feature comparison}
    714   \begin{center} \small
    715     \begin{tabular}{l||c|c|c|c|c}
    716                 & Cash & Bitcoin & Zerocoin & Creditcard & GNU Taler \\ \hline \hline
    717     Online      &$-$$-$$-$  &   ++    &    ++    &     +      &   +++  \\ \hline
    718     Offline     & +++  &   $-$$-$    &    $-$$-$    &     +      &   ++  \\ \hline
    719     Trans. cost & +    & $-$$-$$-$   & $-$$-$$-$  &     $-$      &   ++  \\ \hline
    720     Speed       & +    & $-$$-$$-$   & $-$$-$$-$  &     o      &   ++  \\ \hline
    721     Taxation    & $-$    &   $-$$-$    &  $-$$-$$-$   &    +++     &  +++  \\ \hline
    722     Payer-anon  &  ++  &   o     &    ++    &  $-$$-$$-$   &  +++  \\ \hline
    723     Payee-anon  & ++   &   o     &    ++    &  $-$$-$$-$    &  $-$$-$$-$ \\ \hline
    724     Security    &  $-$   &   o     &    o     &    $-$$-$      &  ++   \\ \hline
    725     Conversion  & +++  &  $-$$-$$-$   & $-$$-$$-$ &    +++     &  +++  \\ \hline
    726     Libre       &  $-$   &  +++    &    +++   & $-$ $-$ $-$      &  +++  \\
    727   \end{tabular}
    728   \end{center}
    729 \end{frame}
    730 
    731 
    732 \begin{frame}{Do you have any questions?}
    733   \framesubtitle{\url{https://taler.net/en/bibliography.html}}
    734   \vfill
    735 References:
    736 {\tiny
    737   \begin{enumerate}
    738  \item{David Chaum, Christian Grothoff and Thomas Moser.
    739        {\em How to issue a central bank digital currency}.
    740        {\bf SNB Working Papers, 2021}.}
    741  \item{Martin Summer and Hannes Hermanky.
    742        {\em A digital euro and the future of cash}.
    743        {\bf Monetary Policy \& The Economy Q1-Q2/22}.}
    744  \item{Antoine d’Aligny, Emmanuel Benoist, Florian Dold, Christian Grothoff, Özgür Kesim and Martin Schanzenbach.
    745        {\em Who comes after us? The correct mindset for designing a Central Bank Digital Currency}.
    746        {\bf SUERF Policy Notes 279/2022}.}
    747  \item{Florian Dold.
    748        {\em GNU Taler}.
    749        {\bf University of Rennes 1, PhD Thesis, 2019}.}
    750  \item{Christian Grothoff and Alex Pentland.
    751        {\em Digital cash and privacy: What are the alternatives to Libra?}.
    752        {\bf MIT Media Lab, 2019}.}
    753  \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci.
    754        {\em Enabling Secure Web Payments with GNU Taler}.
    755        {\bf SPACE 2016}.}
    756  \item{Özgür Kesim, Christian Grothoff, Florian Dold and Martin Schanzenbach.
    757        {\em Zero-Knowledge Age Restriction for GNU Taler}.
    758        {\bf ESORICS, 2022}.}
    759  \item{Gian Demarmels and Lucien Heuzeveldt.
    760        {\em Adding Schnorr's Blind Signature in Taler}.
    761        {\bf BFH, Bachelor's Thesis, 2022}.}
    762  \item{Marco Boss.
    763        {\em GNU Taler Scalability}.
    764        {\bf BFH, Bachelor's Thesis, 2022}.}
    765 \end{enumerate}
    766 }
    767 \end{frame}
    768 
    769 \end{document}
    770