marketing

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

2023-moztw-ecommerce.tex (35341B)


      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 \usepackage{xcolor}
     11 \usepackage[normalem]{ulem}
     12 \usepackage{listings}
     13 \usepackage{adjustbox}
     14 \usepackage{array}
     15 \usepackage{bbding}
     16 \usepackage{relsize}
     17 \usepackage{graphicx}
     18 \usepackage{tikz,eurosym,calc}
     19 \usetikzlibrary{tikzmark}
     20 \usetikzlibrary{shapes,arrows,arrows.meta}
     21 \usetikzlibrary{positioning,fit,patterns}
     22 \usetikzlibrary{calc}
     23 \usepackage{multicol}
     24 \usepackage{pgf-umlsd}
     25 \usepackage{relsize}
     26 
     27 
     28 % CSS
     29 \lstdefinelanguage{CSS}{
     30   basicstyle=\ttfamily\scriptsize,
     31   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},
     32   sensitive=true,
     33   morecomment=[l]{//},
     34   morecomment=[s]{/*}{*/},
     35   morestring=[b]',
     36   morestring=[b]",
     37   alsoletter={:},
     38   alsodigit={-}
     39 }
     40 
     41 % JavaScript
     42 \lstdefinelanguage{JavaScript}{
     43   basicstyle=\ttfamily\scriptsize,
     44   morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
     45   morecomment=[s]{/*}{*/},
     46   morecomment=[l]//,
     47   morestring=[b]",
     48   morestring=[b]'
     49 }
     50 
     51 \lstdefinelanguage{HTML5}{
     52   basicstyle=\ttfamily\scriptsize,
     53   language=html,
     54   sensitive=true,
     55   alsoletter={<>=-},
     56   morecomment=[s]{<!-}{-->},
     57   tag=[s],
     58   otherkeywords={
     59   % General
     60   >,
     61   % Standard tags
     62 	<!DOCTYPE,
     63   </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
     64 	% body
     65 	</body, <body,
     66 	% Divs
     67 	</div, <div, </div>,
     68 	% Paragraphs
     69 	</p, <p, </p>,
     70 	% scripts
     71 	</script, <script,
     72   % More tags...
     73   <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>
     74   },
     75   ndkeywords={
     76   % General
     77   =,
     78   % HTML attributes
     79   charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
     80   % SVG attributes
     81   fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
     82   % CSS properties
     83   margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:,
     84 	% CSS3 properties
     85   transform:, -moz-transform:, -webkit-transform:,
     86   animation:, -webkit-animation:,
     87   transition:,  transition-duration:, transition-property:, transition-timing-function:,
     88   }
     89 }
     90 
     91 \lstdefinelanguage{JavaScript}{
     92   basicstyle=\ttfamily\scriptsize,
     93   keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for},
     94   keywordstyle=\color{blue}\bfseries,
     95   ndkeywords={class, export, boolean, throw, implements, import, this},
     96   ndkeywordstyle=\color{darkgray}\bfseries,
     97   identifierstyle=\color{black},
     98   sensitive=false,
     99   comment=[l]{//},
    100   morecomment=[s]{/*}{*/},
    101   commentstyle=\color{purple}\ttfamily,
    102   stringstyle=\color{red}\ttfamily,
    103   morestring=[b]',
    104   morestring=[b]"
    105 }
    106 
    107 \setbeamersize{description width=1em}
    108 
    109 \definecolor{blue}{rgb}{0,0,0.7}
    110 \newcommand{\orange}[1]{{\color{orange}#1}}
    111 \newcommand{\blue}[1]{{\color{blue}#1}}
    112 \newcommand{\red}[1]{{\color{red}#1}}
    113 \newcommand{\Guardian}{\mathcal{G}}
    114 \newcommand{\Child}{\mathcal{C}}
    115 \newcommand{\Customer}{\mathcal{C}}
    116 \newcommand{\Merchant}{\mathcal{M}}
    117 \newcommand{\Exchange}{\mathcal{E}}
    118 
    119 \newcommand{\Commit}{\mathsf{Commit}}
    120 \newcommand{\Attest}{\mathsf{Attest}}
    121 \newcommand{\Verify}{\mathsf{Verify}}
    122 \newcommand{\Derive}{\mathsf{Derive}}
    123 \newcommand{\DeriveCompare}{\mathsf{DeriveCompare_\kappa}}
    124 \newcommand{\Compare}{\mathsf{Compare}}
    125 \newcommand{\AgeVer}{\mathsf{AgeVer}}
    126 
    127 \newcommand{\HashF}{\mathsf{H}}
    128 \newcommand{\Hash}{\mathsf{H}}
    129 \newcommand{\Block}{\mathbb{B}}
    130 \newcommand{\Pub}{\mathsf{Pub}}
    131 \newcommand{\Sign}{\mathsf{Sig}}
    132 \newcommand{\Ver}{\mathsf{Ver}}
    133 \newcommand{\Encoding}{\mathsf{Encoding}}
    134 \newcommand{\ECDSA}{\mathsf{ECDSA}}
    135 \newcommand{\Null}{\mathcal{O}}
    136 \newcommand{\EC}{\mathrm{ec}}
    137 \newcommand{\Curve}{\mathsf{Curve25519}}
    138 \newcommand{\SHA}{\mathsf{SHA256}}
    139 \newcommand{\SHAF}{\mathsf{SHA252}}
    140 \newcommand{\FDH}{\mathsf{FDH}}
    141 
    142 \newcommand{\negl}{\epsilon}
    143 
    144 \newcommand{\rand}{\mathsf{rand}}
    145 \newcommand{\age}{\mathsf{a}}
    146 \newcommand{\Age}{\mathsf{M}}
    147 \newcommand{\bage}{\mathsf{b}}
    148 \newcommand{\minage}{\mathsf{m}}
    149 \newcommand{\attest}{\mathsf{T}}
    150 \newcommand{\commitment}{\mathsf{Q}}
    151 \newcommand{\pruf}{\mathsf{P}}
    152 \newcommand{\Vcommitment}{\vec{\mathsf{Q}}}
    153 \newcommand{\Vpruf}{\vec{\mathsf{P}}}
    154 \newcommand{\blinding}{\beta}
    155 
    156 \newcommand{\ZN}{\mathbb{Z}_N}
    157 \newcommand{\Z}{\mathbb{Z}}
    158 \newcommand{\N}{\mathbb{N}}
    159 \newcommand{\A}{\mathbb{A}}
    160 \newcommand{\E}{\mathbb{E}}
    161 \newcommand{\F}{\mathbb{F}}
    162 \newcommand{\seck}{\mathsf{s}}
    163 \newcommand{\pubk}{\mathsf{P}}
    164 \renewcommand{\H}{\mathbb{H}}
    165 \newcommand{\K}{\mathbb{K}}
    166 \newcommand{\Proofs}{\mathbb{P}}
    167 \newcommand{\Commitments}{\mathbb{O}}
    168 \newcommand{\Attests}{\mathbb{T}}
    169 \newcommand{\Blindings}{\mathbb{B}}
    170 \newcommand{\Nil}{\perp}
    171 
    172 \newcommand{\p}{\mathsf{p}}
    173 \newcommand{\com}{\mathsf{com}}
    174 \newcommand{\prf}{\mathsf{prf}}
    175 
    176 \newcommand{\Adv}{\mathcal{A}}
    177 \newcommand{\PPT}{\mathfrak{A}}
    178 \newcommand{\Probability}{\mathrm{Pr}}
    179 \newcommand{\Algorithm}{f}
    180 \renewcommand{\Game}[1]{G_\Adv^\mathsf{#1}}
    181 
    182 \DeclareMathOperator{\Image}{Im}
    183 \DeclareMathOperator{\Mod}{mod}
    184 
    185 \newcommand{\Encode}[1]{\overbracket[0.5pt][2pt]{\,#1\,}}
    186 \newcommand{\Decode}[1]{\underbracket[0.5pt][3pt]{\,#1\,}}
    187 \newcommand{\FDHg}[1]{[#1]_g\,}
    188 \newcommand{\logg}{{\breve{g}}}
    189 
    190 
    191 \newcommand{\drawfrom}{\xleftarrow{\$}}
    192 \newcommand\Exists{%
    193 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    194 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}%
    195 	  \limits}
    196 
    197 \newcommand\Forall{%
    198 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    199 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\forall}}}}}}}%
    200 	  \limits}
    201 
    202 
    203 \title{GNU Taler}
    204 %\subtitle{}
    205 
    206 \setbeamertemplate{navigation symbols}{
    207   \includegraphics[width=0.4cm]{logo-bfh.pdf}
    208   \includegraphics[width=1.6cm]{fub.pdf}
    209   \includegraphics[width=1cm]{tud-logo.pdf}
    210   \includegraphics[width=1.4cm]{logo-tue.pdf}
    211   \includegraphics[width=1cm]{inria.pdf}
    212   \includegraphics[width=1cm]{logo-GlsBank.pdf}
    213   \includegraphics[width=0.6cm]{logo-MagNetBank.pdf} \
    214   \includegraphics[width=0.6cm]{logo-visualvest.pdf}
    215   \includegraphics[width=0.4cm]{ashoka.png}
    216   \includegraphics[width=0.4cm]{logo-esen.pdf}
    217   \includegraphics[width=0.4cm]{gnu.png}
    218   \includegraphics[width=0.4cm]{logo-HomoDigitalis.pdf}
    219   \includegraphics[width=0.4cm]{logo-nlnet.pdf}
    220   \includegraphics[width=0.4cm]{logo-codeblau.pdf}
    221   \includegraphics[width=0.4cm]{logo-ps.pdf}
    222   \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf}
    223   \hfill}
    224 
    225 \author[C. Grothoff]{J. Burdges, F. Dold, {\bf C. Grothoff}, M. Stanisci}
    226 \date{\today}
    227 \institute{The GNU Project}
    228 
    229 
    230 \begin{document}
    231 
    232 \justifying
    233 
    234 \begin{frame}
    235   \begin{center}
    236     \LARGE {\bf GNU}
    237 
    238     \vfill
    239 %    \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf}
    240     \includegraphics[width=0.66\textwidth]{taler-logo-2021-inkscape.pdf}
    241   \end{center}
    242   \begin{center}
    243       \includegraphics[width=0.15\textwidth]{logo-EU.pdf}
    244       \includegraphics[width=0.15\textwidth]{logo-SBFI.pdf}
    245   \end{center}
    246 \begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords)
    247     {\Large {\bf \href{https://taler.net/}{taler.net}} \\
    248     \href{https://twitter.com/taler}{taler@twitter} \\
    249     \href{https://taler-systems.com/}{taler-systems.com}}
    250 \end{textblock*}
    251 
    252 % Substitute based on who is giving the talk!
    253  \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords)
    254    {\hfill {\bf Christian Grothoff} \\
    255     \hfill grothoff@taler.net }
    256 \end{textblock*}
    257 
    258 \end{frame}
    259 
    260 \begin{frame}{What is Taler?}
    261   \framesubtitle{\url{https://taler.net/en/features.html}}  \noindent
    262 Taler is
    263   \vfill
    264   \begin{itemize}
    265     \item a Free/Libre software \emph{payment system} infrastructure project
    266     \item ... with a surrounding software ecosystem
    267     \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
    268       as widely as possible.
    269   \end{itemize}
    270   \vfill
    271 \noindent
    272  However, Taler is
    273   \begin{itemize}
    274     \item \emph{not} a currency or speculative asset
    275     \item \emph{not} a long-term store of value
    276     \item \emph{not} a network or instance of a system
    277     \item \emph{not} decentralized
    278     \item \emph{not} based on proof-of-work or proof-of-stake
    279   \end{itemize}
    280 \end{frame}
    281 
    282 
    283 \begin{frame}{Design principles}
    284   \framesubtitle{https://taler.net/en/principles.html}
    285 GNU Taler must ...
    286 \begin{enumerate}
    287   \item {... be implemented as {\bf free software}.}
    288   \item {... protect the {\bf privacy of buyers}.}
    289   \item {... must enable the state to {\bf tax income} and crack down on
    290     illegal business activities.}
    291   \item {... prevent payment fraud.}
    292   \item {... only {\bf disclose the minimal amount of information
    293     necessary}.}
    294   \item {... be usable.}
    295   \item {... be efficient.}
    296   \item {... avoid single points of failure.}
    297   \item {... foster {\bf competition}.}
    298 \end{enumerate}
    299 \end{frame}
    300 
    301 
    302 \begin{frame}
    303 \frametitle{Architecture of Taler}
    304 \begin{center}
    305   \includegraphics[width=1\textwidth]{operations.png}
    306 \end{center}
    307 \end{frame}
    308 
    309 
    310 \begin{frame}{Usability of Taler}
    311   \vfill
    312   \begin{center}
    313     \url{https://demo.taler.net/}
    314   \end{center}
    315   \begin{enumerate}
    316   \item Install browser extension.
    317   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    318   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    319   \end{enumerate}
    320   \vfill
    321 \end{frame}
    322 
    323 
    324 \begin{frame}{Real-world use}
    325 \vfill
    326 \begin{center}
    327 \includegraphics[width=1.0\textwidth]{taler-in-use.png}
    328 \end{center}
    329 \vfill
    330 \end{frame}
    331 
    332 
    333 
    334 \section{Protocol Basics}
    335 
    336 \begin{frame}
    337   \vfill
    338   \begin{center}
    339     {\bf Protocol Basics}
    340   \end{center}
    341   \vfill
    342 \end{frame}
    343 
    344 
    345 \begin{frame}{A Bachelor's Thesis Video}
    346   \begin{center}
    347     \movie[%scale=0.6,
    348            autostart,
    349            poster]
    350            {
    351                \includegraphics[height=0.6\textwidth,width=0.8\textwidth]{white.png}
    352            }
    353           {cs-movie.mp4}
    354   \end{center}
    355 \end{frame}
    356 
    357 
    358 \begin{frame}{Withdrawing coins on the Web}
    359   \begin{center}
    360     \includegraphics[height=0.9\textheight]{figs/taler-withdraw.pdf}
    361   \end{center}
    362 \end{frame}
    363 
    364 
    365 
    366 \begin{frame}{Payment processing with Taler}
    367   \begin{center}
    368     \includegraphics[height=0.9\textheight]{figs/taler-pay.pdf}
    369   \end{center}
    370 \end{frame}
    371 
    372 
    373 \section{Offline payments}
    374 
    375 \begin{frame}
    376   \vfill
    377   \begin{center}
    378     {\bf Offline payments}
    379   \end{center}
    380   \vfill
    381 \end{frame}
    382 
    383 
    384 \begin{frame}{Partially Offline Payments with GNU Taler}
    385 
    386 \begin{center}
    387 \resizebox{8cm}{7cm}{
    388 \begin{sequencediagram}
    389     \newinst{pos}{\shortstack{PoS \\
    390       \\ \begin{tikzpicture}
    391         \node [fill=gray!20,draw=black,thick ,align=center] {PoS key \\ PoS ID};
    392       \end{tikzpicture}
    393     }}
    394     \newinst[2]{customer}{\shortstack{Customer \\
    395       \\ \begin{tikzpicture}
    396         \node [fill=gray!20,draw=black,thick ,align=center] {Digital \\ Wallet};
    397       \end{tikzpicture}
    398     }}
    399     \newinst[2]{backend}{\shortstack{Merchant Backend \\
    400        \\ \begin{tikzpicture}[shape aspect=.5]
    401         \tikzset{every node/.style={cylinder, shape border rotate=90, draw,fill=gray!25}}
    402         \node at (1.5,0) {\shortstack{{\tiny PoS key} \\ {\tiny PoS ID}}};
    403        \end{tikzpicture}
    404     }}
    405     \postlevel
    406     \mess[0]{pos}{PoS ID}{customer}
    407     \begin{sdblock}{optional}{}
    408       \begin{callself}{customer}{Amount}{}
    409       \end{callself}
    410     \end{sdblock}
    411     \prelevel
    412     \prelevel
    413     \prelevel
    414     \prelevel
    415     \prelevel
    416     \begin{sdblock}{optional}{}
    417       \begin{callself}{pos}{Amount}{}
    418       \end{callself}
    419     \end{sdblock}
    420     \postlevel
    421     \mess[0]{customer}{PoS ID, [Amount]?}{backend}
    422     \mess[0]{backend}{Contract}{customer}
    423     \postlevel
    424     \mess[0]{customer}{Payment}{backend}
    425     \begin{callself}{pos}{OTP(PoS key)}{}
    426     \end{callself}
    427     \prelevel
    428     \prelevel
    429     \begin{callself}{backend}{OTP(PoS key)}{}
    430     \end{callself}
    431     \mess[0]{backend}{OTP code}{customer}
    432     \postlevel
    433     \mess[0]{customer}{OTP code}{pos}
    434 \end{sequencediagram}
    435 }
    436 \end{center}
    437 \end{frame}
    438 
    439 
    440 \section{Software architecture}
    441 
    442 \begin{frame}
    443   \vfill
    444   \begin{center}
    445     {\bf Software architecture}
    446   \end{center}
    447   \vfill
    448 \end{frame}
    449 
    450 
    451 \begin{frame}{Taler Exchange}
    452   The {\bf Exchange} is the core logic of the payment system.
    453 
    454   \begin{itemize}
    455     \item One exchange at minimum must be operated per currency
    456     \item Offers a REST API for merchants and customers
    457     \item Uses several helper processes for configuration and to
    458           interact with RTGS and cryptography
    459     \item KYC support via OAuth 2.0, KycAID or Persona APIs
    460     \item AML staff can analyze transactions and freeze income
    461     \item Implemented in C on top of GNU libmicrohttpd
    462   \end{itemize}
    463 \end{frame}
    464 
    465 
    466 \begin{frame}{Taler Merchant}
    467   The {\bf Merchant} is the software run by merchants to accept\\
    468   GNU Taler payments.
    469 
    470   \begin{minipage}{6cm}
    471   \begin{itemize}
    472     \item REST API for integration with e-commerce
    473     \item SPA provides Web interface for administration
    474     \item Features include:
    475       \begin{itemize}
    476       \item Multi-tenant support
    477       \item Refunds
    478       \item Rewards (Website pays visitor)
    479       \item Templates (static QR codes with payment request)
    480       \item Webhooks
    481       \item Inventory management
    482       \end{itemize}
    483     \item Implemented in C on top of GNU libmicrohttpd
    484   \end{itemize}
    485   \end{minipage}
    486   \begin{minipage}{5cm}
    487   \includegraphics[width=5cm]{screenshots/merchant-spa-settings}
    488   \end{minipage}
    489 \end{frame}
    490 
    491 
    492 \begin{frame}{Taler Wallet}
    493   The {\bf Wallet} is the software run by consumers to store
    494   their digital cash and authorize transactions.
    495 
    496   \begin{minipage}{8cm}
    497   \begin{itemize}
    498     \item {\bf wallet-core} is the logic shared by all interfaces
    499     \item Applications exist for Android, F-Droid, iOS,
    500           WebExtension (Chrome, Chromium, Firefox, etc.)
    501     \item Features include:
    502       \begin{itemize}
    503       \item Multi-currency support
    504       \item Wallet-to-wallet payments (NFC or QR code)
    505       \item CRDT-like data model
    506       \end{itemize}
    507     \item {\bf wallet-core} implemented in TypeScript
    508   \end{itemize}
    509   Can be integrated into other Apps if desired.
    510   \end{minipage}
    511   \begin{minipage}{3cm}
    512   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png}
    513   \end{minipage}
    514 \end{frame}
    515 
    516 
    517 \begin{frame}{Taler Auditor}
    518   The {\bf Auditor} is the software run by an independent auditor
    519   to validate the operation of an Exchange.
    520 
    521   \begin{itemize}
    522     \item REST API for additional report inputs by merchants (optional)
    523     \item Secure database replication logic
    524     \item Implemented in C on top of GNU libmicrohttpd
    525   \end{itemize}
    526 \end{frame}
    527 
    528 
    529 \begin{frame}{Pretix Taler payment plugin}
    530 \begin{center}
    531 \includegraphics[width=0.5\textwidth]{screenshots/pretix.png}
    532 \end{center}
    533 
    534   Pretix is a ticket sales system.
    535 
    536   \begin{itemize}
    537     \item Pretix payment plugin enables payments via GNU Taler
    538     \item Developed by Pretix.eu for \EUR{3,000} on behalf of Taler Systems SA
    539   \end{itemize}
    540 \end{frame}
    541 
    542 
    543 \begin{frame}{WooCommerce Taler payment plugin}
    544 \begin{minipage}{6cm}
    545   \begin{itemize}
    546     \item WooCommerce is an e-commerce plugin for WordPress.
    547     \item WooCommerce payment plugin enables payments via GNU Taler
    548     \item Features include:
    549       \begin{itemize}
    550       \item Trivial configuration
    551       \item Support for refunds
    552       \item Full internationalization
    553       \end{itemize}
    554     \item WooCommerce and its plugins are implemented in PHP
    555   \end{itemize}
    556 \end{minipage}
    557 \begin{minipage}{5cm}
    558   \includegraphics[width=4cm]{screenshots/woocommerce-cart.png}
    559   \includegraphics[width=4cm]{screenshots/woocommerce-settings.png}
    560   \end{minipage}
    561 \end{frame}
    562 
    563 
    564 \begin{frame}{Joomla! Taler payment plugin}
    565 \begin{minipage}{6cm}
    566   \begin{itemize}
    567     \item Joomla! is an e-commerce platform
    568     \item Joomla! payment plugin enables payments via GNU Taler
    569     \item Features include:
    570       \begin{itemize}
    571       \item Trivial configuration
    572       \item Support for refunds
    573       \item Full internationalization
    574       \end{itemize}
    575     \item Joomla! and its plugins are implemented in PHP
    576   \end{itemize}
    577 \end{minipage}
    578 % FIXME: add screenshots
    579 %\begin{minipage}{5cm}
    580 %  \includegraphics[width=4cm]{screenshots/woocommerce-cart.png}
    581 %  \includegraphics[width=4cm]{screenshots/woocommerce-settings.png}
    582 %  \end{minipage}
    583 \end{frame}
    584 
    585 
    586 \begin{frame}{Point-of-Sale App for Android}
    587 
    588 \begin{minipage}{7cm}
    589   \begin{itemize}
    590     \item Allows merchant to generate orders against Taler backend
    591           and display QR code to enable customer to pay in person
    592     \item Patterned after ViewTouch restaurant UI
    593     \item Features include:
    594       \begin{itemize}
    595       \item Internet-based configuration
    596       \item Products sorted by categories
    597       \item Easy undo of every operation
    598       \item Manages multiple concurrent orders
    599       \end{itemize}
    600     \item The Point-of-Sale App is implemented in Kotlin
    601   \end{itemize}
    602 \end{minipage}
    603 \begin{minipage}{4cm}
    604   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg}
    605   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg}
    606   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg}
    607 \end{minipage}
    608 \end{frame}
    609 
    610 
    611 \begin{frame}{Cashier App for Android}
    612 \begin{minipage}{4cm}
    613   \begin{itemize}
    614     \item Enables BFH staff to convert cash to e-cash
    615     \item Staff has special bank accounts with limited funds
    616     \item Students can pay staff in cash to receive e-cash
    617     \item The Cashier App is implemented in Kotlin
    618   \end{itemize}
    619   \end{minipage}
    620   \begin{minipage}{3cm}
    621   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103315.png}
    622   \end{minipage}
    623   \begin{minipage}{3cm}
    624   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103325.png}
    625   \end{minipage}
    626 \end{frame}
    627 
    628 
    629 \section{Future Work \& Conclusion}
    630 
    631 \begin{frame}
    632   \vfill
    633   \begin{center}
    634     {\bf Future Work \& Conclusion}
    635   \end{center}
    636   \vfill
    637 \end{frame}
    638 
    639 
    640 \begin{frame}{Competitor comparison}
    641   \begin{center} \small
    642     \begin{tabular}{l||c|c|c|c|c}
    643                 & Cash     & Bitcoin    & Zerocoin  & Creditcard & GNU Taler  \\ \hline \hline
    644     Online      &$-$$-$$-$ &   ++       &    ++     &     +      &   +++      \\ \hline
    645     Offline     & +++      &   $-$$-$   &    $-$$-$ &     +      &   $+$$+$   \\ \hline
    646     Trans. cost & +        & $-$$-$$-$  & $-$$-$$-$ &     $-$    &   ++       \\ \hline
    647     Speed       & +        & $-$$-$$-$  & $-$$-$$-$ &     o      &   ++       \\ \hline
    648     Taxation    & $-$      &   $-$$-$   & $-$$-$$-$ &    +++     &  +++       \\ \hline
    649     Payer-anon  &  ++      &   o        &    ++     &  $-$$-$$-$ &  +++       \\ \hline
    650     Payee-anon  & ++       &   o        &    ++     &  $-$$-$$-$ &  $-$$-$$-$ \\ \hline
    651     Security    &  $-$     &   o        &    o      &    $-$$-$  &  ++        \\ \hline
    652     Conversion  & +++      &  $-$$-$$-$ & $-$$-$$-$ &    +++     &  +++       \\ \hline
    653     Libre       &  $-$     &  +++       &    +++    & $-$ $-$ $-$&  +++       \\
    654   \end{tabular}
    655   \end{center}
    656 \end{frame}
    657 
    658 
    659 \begin{frame}{How to support?}
    660   \begin{description}
    661     \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}}
    662     \item[Develop:] \url{https://bugs.taler.net/}, \url{https://git.taler.net/}
    663     \item[Apply:] \url{https://nlnet.nl/propose}, \url{https://nlnet.nl/taler}
    664     \item[Translate:] \url{https://weblate.taler.net/}, \url{translation-volunteer@taler.net}
    665     \item[Integrate:] \url{https://docs.taler.net/}
    666     \item[Donate:] \url{https://gnunet.org/ev}
    667     \item[Partner:] \url{https://taler-systems.com/}
    668   \end{description}
    669 \end{frame}
    670 
    671 
    672 \begin{frame}{Conclusion}
    673   \begin{center}
    674     {\bf  What can we do?}
    675    \end{center}
    676   \vfill
    677 \begin{itemize}
    678  \item{Suffer mass-surveillance enabled by credit card oligopolies with high fees, and}
    679  \item{Engage in arms race with deliberately unregulatable blockchains}
    680 % \item{Enjoy the ``benefits'' of cash \\
    681 %  \hfill  \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill}
    682 \end{itemize}
    683 \vfill
    684 \begin{center}
    685   {\bf OR}
    686 \end{center}
    687 \vfill
    688 \begin{itemize}
    689  \item{Establish free software alternative balancing social goals!}
    690 \end{itemize}
    691 \vfill
    692 \end{frame}
    693 
    694 
    695 \end{document}
    696 
    697 
    698 
    699 
    700 \begin{frame}{Taler {\tt /withdraw/sign}}
    701 % Customer withdrawing coins with blind signatures
    702 % \bigskip
    703   \begin{figure}[th]
    704     \begin{minipage}[b]{0.45\linewidth}
    705       \begin{center}
    706         \begin{tikzpicture}[scale = 0.4,
    707             transform shape,
    708             msglabel/.style    = { text = Black, yshift = .3cm,
    709                                    sloped, midway },
    710             okmsg/.style       = { ->, color = MidnightBlue, thick,
    711                                    >=stealth },
    712             rstmsg/.style      = { ->, color = BrickRed, thick,
    713                                    >=stealth }
    714           ]
    715           \node[draw = MidnightBlue,
    716             fill = CornflowerBlue,
    717             minimum width = .3cm,
    718             minimum height = 10cm
    719           ] (h1) at (-4, 0) {};
    720           \node[draw = MidnightBlue,
    721             fill = CornflowerBlue,
    722             minimum width = .3cm,
    723             minimum height = 10cm
    724           ] (h2) at (4, 0) {};
    725           \node[above = 0cm of h1] {Wallet};
    726           \node[above = 0cm of h2] {Exchange};
    727 
    728           \path[->, color = MidnightBlue, very thick, >=stealth]
    729             (-5, 4.5) edge
    730             node[rotate=90, text = Black, yshift = .3cm] {Time}
    731             (-5, -4.5);
    732           \path[okmsg, dashed]
    733              ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge
    734              node[msglabel] {SEPA(RK,A)}
    735              ($(h2.west)+(0, 3.5)+(0, -1.0)$);
    736           \path[okmsg]
    737             ($(h1.east)+(0, -1.0)$) edge
    738             node[msglabel] {POST {\tt /withdraw/sign} $S_{RK}(DK, B_b(C))$}
    739             ($(h2.west)+(0, -1.5)$);
    740           \path[okmsg]
    741             ($(h2.west)+(0, -2.0)$) edge
    742             node[msglabel] {200 OK: $S_{DK}(B_b(C))$)}
    743             ($(h1.east)+(0, -2.5)$);
    744           \path[rstmsg]
    745             ($(h2.west)+(0, -3.5)$) edge
    746             node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)}
    747             ($(h1.east)+(0, -4)$);
    748           \node at (5.3, 0) {};
    749         \end{tikzpicture}
    750       \end{center}
    751       Result: $\langle c, S_{DK}(C) \rangle$.
    752     \end{minipage}
    753     \hspace{0.5cm}
    754     \begin{minipage}[b]{0.45\linewidth}
    755       \tiny
    756       \begin{description}
    757       \item[$A$] Some amount, $A \ge A_{DK}$
    758       \item[$RK$] Reserve key
    759       \item[$DK$] Denomination key
    760       \item[$b$] Blinding factor
    761       \item[$B_b()$] RSA-FDH blinding % DK supressed
    762       \item[$C$] Coin public key $C := cG$
    763       \item[$S_{RK}()$] EdDSA signature
    764       \item[$S_{DK}()$] RSA-FDH signature
    765       \end{description}
    766     \end{minipage}
    767   \end{figure}
    768 \end{frame}
    769 
    770 
    771 \begin{frame}[t]{Taler {\tt /deposit}}
    772 Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$.
    773 \bigskip
    774   \begin{figure}[th]
    775     \begin{minipage}[b]{0.45\linewidth}
    776       \begin{center}
    777         \begin{tikzpicture}[scale = 0.4,
    778             transform shape,
    779             msglabel/.style    = { text = Black, yshift = .3cm,
    780                                    sloped, midway },
    781             okmsg/.style       = { ->, color = MidnightBlue, thick,
    782                                    >=stealth },
    783             rstmsg/.style      = { ->, color = BrickRed, thick,
    784                                    >=stealth }
    785           ]
    786           \node[draw = MidnightBlue,
    787             fill = CornflowerBlue,
    788             minimum width = .3cm,
    789             minimum height = 10cm
    790           ] (h1) at (-4, 0) {};
    791           \node[draw = MidnightBlue,
    792             fill = CornflowerBlue,
    793             minimum width = .3cm,
    794             minimum height = 10cm
    795           ] (h2) at (4, 0) {};
    796           \node[above = 0cm of h1] {Merchant};
    797           \node[above = 0cm of h2] {Exchange};
    798 
    799           \path[->, color = MidnightBlue, very thick, >=stealth]
    800             (-5, 4.5) edge
    801             node[rotate=90, text = Black, yshift = .3cm] {Time}
    802             (-5, -4.5);
    803           \path[->, color = MidnightBlue, thick, >=stealth]
    804             ($(h1.east)+(0,3)$) edge
    805             node[text = Black, yshift = .3cm, sloped] {POST {\tt /deposit} $S_{DK}(C), S_{c}(D)$}
    806             ($(h2.west)+(0,2)$);
    807           \path[->, color = MidnightBlue, thick, >=stealth]
    808             ($(h2.west)+(0,0.5)$) edge
    809             node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$}
    810             ($(h1.east)+(0,-0.5)$);
    811           \path[rstmsg]
    812             ($(h2.west)+(0, -2.5)$) edge
    813             node[msglabel] {409 CONFLICT: $S_{c}(D')$}
    814             ($(h1.east)+(0, -3.5)$);
    815           \node at (5.3, 0) {};
    816         \end{tikzpicture}
    817       \end{center}
    818     \end{minipage}
    819     \hspace{0.5cm}
    820     \begin{minipage}[b]{0.45\linewidth}
    821       \tiny
    822       \begin{description}
    823       \item[$DK$] Denomination key
    824       \item[$S_{DK}()$] RSA-FDH signature using $DK$
    825       \item[$c$] Private coin key, $C := cG$.
    826       \item[$S_{C}()$] EdDSA signature using $c$
    827       \item[$D$] Deposit details
    828       \item[$SK$] Exchange's signing key
    829       \item[$S_{SK}()$] EdDSA signature using $SK$
    830       \item[$D'$] Conficting deposit details $D' \not= D$
    831       \end{description}
    832     \end{minipage}
    833   \end{figure}
    834 \end{frame}
    835 
    836 
    837 \begin{frame}{Taler {\tt /refresh/melt}}
    838   \begin{figure}[th]
    839     \begin{minipage}[b]{0.45\linewidth}
    840       \begin{center}
    841 	\begin{tikzpicture}[scale = 0.4,
    842             transform shape,
    843             msglabel/.style    = { text = Black, yshift = .3cm,
    844                                    sloped, midway },
    845             okmsg/.style       = { ->, color = MidnightBlue, thick,
    846                                    >=stealth },
    847             rstmsg/.style      = { ->, color = BrickRed, thick,
    848                                    >=stealth }
    849 	  ]
    850 	  \node[draw = MidnightBlue,
    851 	    fill = CornflowerBlue,
    852 	    minimum width = .3cm,
    853 	    minimum height = 10cm
    854 	  ] (h1) at (-4, 0) {};
    855 	  \node[draw = MidnightBlue,
    856 	    fill = CornflowerBlue,
    857 	    minimum width = .3cm,
    858 	    minimum height = 10cm
    859 	  ] (h2) at (4, 0) {};
    860 	  \node[above = 0cm of h1] {Customer};
    861 	  \node[above = 0cm of h2] {Exchange};
    862 
    863 	  \path[->, color = MidnightBlue, very thick, >=stealth]
    864 	    (-5, 4.5) edge
    865 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
    866 	    (-5, -4.5);
    867 	  \path[->, color = MidnightBlue, thick, >=stealth]
    868 	    ($(h1.east)+(0,3)$) edge
    869 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$}
    870 	    ($(h2.west)+(0,2)$);
    871 	  \path[->, color = MidnightBlue, thick, >=stealth]
    872 	    ($(h2.west)+(0,0.5)$) edge
    873 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$}
    874 	    ($(h1.east)+(0,-0.5)$);
    875 	  \path[rstmsg]
    876 	    ($(h2.west)+(0, -2.5)$) edge
    877 	    node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$}
    878 	    ($(h1.east)+(0, -3.5)$);
    879 	  \node at (5.3, 0) {};
    880 	\end{tikzpicture}
    881       \end{center}
    882     \end{minipage}
    883     \hspace{0.5cm}
    884     \begin{minipage}[b]{0.45\linewidth}
    885       \tiny
    886       \begin{description}
    887       \item[$\kappa$] System-wide security parameter, usually 3.
    888       \\ \smallskip
    889       \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\
    890       $D + \sum_i A_{DK^{(i)}} < A_{DK}$
    891       \item[$t_j$] Random scalar for $j<\kappa$
    892       \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$
    893       \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE
    894       \item[$b_j^{(i)}$] $:= KDF_b(k_j,i)$ % blinding factor
    895       \item[$c_j^{(i)}$] $:= KDF_c(k_j,i)$ % coin secret keys
    896       \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys
    897       \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\
    898          $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$
    899       \\ \smallskip
    900       \item[$\gamma$] Random value in $[0,\kappa)$
    901 %      \\ \smallskip
    902 %      \item[$X$] Deposit or refresh
    903       \end{description}
    904     \end{minipage}
    905   \end{figure}
    906 \end{frame}
    907 
    908 
    909 \begin{frame}{Taler {\tt /refresh/reveal}}
    910   \begin{figure}[th]
    911     \begin{minipage}[b]{0.45\linewidth}
    912       \begin{center}
    913 	\begin{tikzpicture}[scale = 0.4,
    914             transform shape,
    915             msglabel/.style    = { text = Black, yshift = .3cm,
    916                                    sloped, midway },
    917             okmsg/.style       = { ->, color = MidnightBlue, thick,
    918                                    >=stealth },
    919             rstmsg/.style      = { ->, color = BrickRed, thick,
    920                                    >=stealth }
    921 	  ]
    922 	  \node[draw = MidnightBlue,
    923 	    fill = CornflowerBlue,
    924 	    minimum width = .3cm,
    925 	    minimum height = 10cm
    926 	  ] (h1) at (-4, 0) {};
    927 	  \node[draw = MidnightBlue,
    928 	    fill = CornflowerBlue,
    929 	    minimum width = .3cm,
    930 	    minimum height = 10cm
    931 	  ] (h2) at (4, 0) {};
    932 	  \node[above = 0cm of h1] {Customer};
    933 	  \node[above = 0cm of h2] {Exchange};
    934 
    935 	  \path[->, color = MidnightBlue, very thick, >=stealth]
    936 	    (-5, 4.5) edge
    937 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
    938 	    (-5, -4.5);
    939 	  \path[->, color = MidnightBlue, thick, >=stealth]
    940 	    ($(h1.east)+(0,3)$) edge
    941 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$}
    942 	    ($(h2.west)+(0,2)$);
    943 	  \path[->, color = MidnightBlue, thick, >=stealth]
    944 	    ($(h2.west)+(0,0.5)$) edge
    945 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$}
    946 	    ($(h1.east)+(0,-0.5)$);
    947 	  \path[rstmsg]
    948 	    ($(h2.west)+(0, -2.5)$) edge
    949 	    node[msglabel] {400 BAD REQUEST: $Z$}
    950 	    ($(h1.east)+(0, -3.5)$);
    951 	  \node at (5.3, 0) {};
    952 	\end{tikzpicture}
    953       \end{center}
    954     \end{minipage}
    955     \hspace{0.5cm}
    956     \begin{minipage}[b]{0.45\linewidth}
    957       \tiny
    958       \begin{description}
    959       \item[$\cal DK$] $:= [DK^{(i)}]_i$
    960       \item[$t_j$] .. \\ \smallskip
    961 
    962       \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip
    963 
    964       \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$
    965       \item[$b_\gamma^{(i)}$] $:= KDF_b(k_\gamma,i)$
    966       \item[$c_\gamma^{(i)}$] $:= KDF_c(k_\gamma,i)$
    967       \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$
    968 
    969       \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$
    970       \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$
    971       \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip
    972 
    973       \item[$Z$] Cut-and-choose missmatch information
    974       \end{description}
    975     \end{minipage}
    976   \end{figure}
    977 \end{frame}
    978 
    979 
    980 \begin{frame}{Taler {\tt /refresh/link}}
    981   \begin{figure}[th]
    982     \begin{minipage}[b]{0.45\linewidth}
    983       \begin{center}
    984 	\begin{tikzpicture}[scale = 0.4,
    985             transform shape,
    986             msglabel/.style    = { text = Black, yshift = .3cm,
    987                                    sloped, midway },
    988             okmsg/.style       = { ->, color = MidnightBlue, thick,
    989                                    >=stealth },
    990             rstmsg/.style      = { ->, color = BrickRed, thick,
    991                                    >=stealth }
    992 	  ]
    993 	  \node[draw = MidnightBlue,
    994 	    fill = CornflowerBlue,
    995 	    minimum width = .3cm,
    996 	    minimum height = 10cm
    997 	  ] (h1) at (-4, 0) {};
    998 	  \node[draw = MidnightBlue,
    999 	    fill = CornflowerBlue,
   1000 	    minimum width = .3cm,
   1001 	    minimum height = 10cm
   1002 	  ] (h2) at (4, 0) {};
   1003 	  \node[above = 0cm of h1] {Customer};
   1004 	  \node[above = 0cm of h2] {Exchagne};
   1005 
   1006 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1007 	    (-5, 4.5) edge
   1008 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1009 	    (-5, -4.5);
   1010 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1011 	    ($(h1.east)+(0,3)$) edge
   1012 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$}
   1013 	    ($(h2.west)+(0,2)$);
   1014 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1015 	    ($(h2.west)+(0,0.5)$) edge
   1016 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$}
   1017 	    ($(h1.east)+(0,-0.5)$);
   1018 	  \path[rstmsg]
   1019 	    ($(h2.west)+(0, -2.5)$) edge
   1020 	    node[msglabel] {404 NOT FOUND}
   1021 	    ($(h1.east)+(0, -3.5)$);
   1022 	  \node at (5.3, 0) {};
   1023 	\end{tikzpicture}
   1024       \end{center}
   1025     \end{minipage}
   1026     \hspace{0.5cm}
   1027     \begin{minipage}[b]{0.45\linewidth}
   1028       \tiny
   1029       \begin{description}
   1030       \item[$C$] Old coind public key \\ \smallskip
   1031       \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$
   1032       \end{description}
   1033     \end{minipage}
   1034   \end{figure}
   1035 \end{frame}
   1036 
   1037 
   1038 \begin{frame}{Operational security}
   1039   \begin{center}
   1040     \resizebox{\textwidth}{!}{
   1041 \begin{tikzpicture}[
   1042   font=\sffamily,
   1043   every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm},
   1044   source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm},
   1045   process/.style={draw,thick,circle,fill=blue!20},
   1046   sink/.style={source,fill=green!20},
   1047   datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm},
   1048   dots/.style={gray,scale=2},
   1049   to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize},
   1050   every node/.style={align=center}]
   1051 
   1052   % Position the nodes using a matrix layout
   1053   \matrix{
   1054     \node[source] (wallet) {Wallet};
   1055       \& \node[process] (browser) {Browser};
   1056       \& \node[process] (shop) {Web shop};
   1057       \& \node[sink] (backend) {Taler backend}; \\
   1058   };
   1059 
   1060   % Draw the arrows between the nodes and label them.
   1061   \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract}
   1062       node[midway,below] {(signal)} (wallet);
   1063   \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)}
   1064       node[midway,below] {(5) signed coins} (browser);
   1065   \draw[<->] (browser) -- node[midway,above] {(3,6) custom}
   1066       node[midway,below] {(HTTPS)} (shop);
   1067   \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)}
   1068       node[midway,below] {(1) proposed contract / (7) signed coins} (backend);
   1069   \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation}
   1070       node[midway,below] {(HTTPS)} (shop);
   1071 \end{tikzpicture}
   1072 }
   1073 \end{center}
   1074 \end{frame}
   1075 
   1076 
   1077 \begin{frame}{Use Cases: Refugee Camps}
   1078   Today:
   1079   \begin{itemize}
   1080   \item Non-bankable
   1081   \item Direct distribution of goods to population
   1082   \item Limited economic activity in camps
   1083   \item High level of economic dependence
   1084   \end{itemize}\vfill\pause
   1085   With GNU Taler:
   1086   \begin{itemize}
   1087   \item Local currency issued as basic income backed by aid
   1088   \item Taxation possible based on economic status
   1089   \item Local governance enabled by local taxes
   1090   \item Increased economic independence and political participation
   1091   \end{itemize}
   1092 \end{frame}
   1093 
   1094 
   1095 \begin{frame}{Use Case: Anti-Spam}
   1096   \framesubtitle{Background: \url{https://pep.security/}}
   1097   Today, p$\equiv$p provides authenticated encryption for e-mail:
   1098   \begin{itemize}
   1099     \item Free software
   1100     \item Easy to use opportunistic encryption
   1101     \item Available for Outlook, Android, Enigmail
   1102     \item Spies \& spam filters can no longer inspect content
   1103   \end{itemize}\vfill\pause
   1104   With GNU Taler:
   1105   \begin{itemize}
   1106     \item Peer-to-peer payments via e-mail
   1107     \item If unsolicited sender, hide messages from user \&
   1108           automatically request payment from sender
   1109     \item Sender can attach payment to be moved to inbox
   1110     \item Receiver may grant refund to sender
   1111   \end{itemize}
   1112 \end{frame}