marketing

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

2023-boj.tex (62357B)


      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{tikz,eurosym,calc}
     21 \usetikzlibrary{tikzmark}
     22 \usetikzlibrary{shapes,arrows,arrows.meta}
     23 \usetikzlibrary{positioning,fit,patterns}
     24 \usetikzlibrary{calc}
     25 
     26 % CSS
     27 \lstdefinelanguage{CSS}{
     28   basicstyle=\ttfamily\scriptsize,
     29   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},
     30   sensitive=true,
     31   morecomment=[l]{//},
     32   morecomment=[s]{/*}{*/},
     33   morestring=[b]',
     34   morestring=[b]",
     35   alsoletter={:},
     36   alsodigit={-}
     37 }
     38 
     39 % JavaScript
     40 \lstdefinelanguage{JavaScript}{
     41   basicstyle=\ttfamily\scriptsize,
     42   morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
     43   morecomment=[s]{/*}{*/},
     44   morecomment=[l]//,
     45   morestring=[b]",
     46   morestring=[b]'
     47 }
     48 
     49 \lstdefinelanguage{HTML5}{
     50   basicstyle=\ttfamily\scriptsize,
     51   language=html,
     52   sensitive=true,
     53   alsoletter={<>=-},
     54   morecomment=[s]{<!-}{-->},
     55   tag=[s],
     56   otherkeywords={
     57   % General
     58   >,
     59   % Standard tags
     60 	<!DOCTYPE,
     61   </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
     62 	% body
     63 	</body, <body,
     64 	% Divs
     65 	</div, <div, </div>,
     66 	% Paragraphs
     67 	</p, <p, </p>,
     68 	% scripts
     69 	</script, <script,
     70   % More tags...
     71   <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>
     72   },
     73   ndkeywords={
     74   % General
     75   =,
     76   % HTML attributes
     77   charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
     78   % SVG attributes
     79   fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
     80   % CSS properties
     81   margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:,
     82 	% CSS3 properties
     83   transform:, -moz-transform:, -webkit-transform:,
     84   animation:, -webkit-animation:,
     85   transition:,  transition-duration:, transition-property:, transition-timing-function:,
     86   }
     87 }
     88 
     89 \lstdefinelanguage{JavaScript}{
     90   basicstyle=\ttfamily\scriptsize,
     91   keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for},
     92   keywordstyle=\color{blue}\bfseries,
     93   ndkeywords={class, export, boolean, throw, implements, import, this},
     94   ndkeywordstyle=\color{darkgray}\bfseries,
     95   identifierstyle=\color{black},
     96   sensitive=false,
     97   comment=[l]{//},
     98   morecomment=[s]{/*}{*/},
     99   commentstyle=\color{purple}\ttfamily,
    100   stringstyle=\color{red}\ttfamily,
    101   morestring=[b]',
    102   morestring=[b]"
    103 }
    104 
    105 \def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;}
    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}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=2.3cm]{bfh.png} \includegraphics[width=1.6cm]{fub.pdf} \includegraphics[width=0.4cm]{ashoka.png}  \includegraphics[width=0.4cm]{gnu.png} \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf} \hfill}
    208 %\setbeamercovered{transparent=1}
    209 
    210 \author[C. Grothoff]{J. Burdges, {\bf F. Dold, C. Grothoff, M. Stanisci}}
    211 \date{\today}
    212 \institute{Taler Systems SA \& The GNU Project}
    213 
    214 
    215 \begin{document}
    216 
    217 \justifying
    218 
    219 \begin{frame}
    220   \begin{center}
    221     \LARGE {\bf GNU} \\
    222     \vspace{0.3cm}
    223 %    \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf}
    224     \includegraphics[width=0.66\textwidth]{taler-logo-2021-inkscape.pdf}
    225     \vfill
    226   \end{center}
    227 \begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords)
    228     {\Large {\bf \href{https://taler.net/}{taler.net}} \\
    229     \href{https://twitter.com/taler}{taler@twitter} \\
    230     \href{https://taler-systems.com/}{taler-systems.com}}
    231 \end{textblock*}
    232 
    233 % Substitute based on who is giving the talk!
    234  \begin{textblock*}{8cm}(4.7cm,6.7cm) % {block width} (coords)
    235    {\hfill {{\bf Dr. Emmanuel Benoist} \\
    236     \hfill {\bf Dr. Florian Dold} \\
    237     \hfill {\bf Dr. Andreas Habegger} \\
    238     \hfill {\bf Dr. Christian Grothoff} \\ }
    239     \hfill \{benoist,dold,habegger,grothoff\}@taler.net }
    240 \end{textblock*}
    241 
    242 \end{frame}
    243 
    244 \begin{frame}{GNU Taler}
    245   \vfill
    246   \begin{center}
    247     {\huge {\bf Digital} cash, made \textbf{socially responsible}.}
    248   \end{center}
    249   \vfill
    250   \begin{center}
    251   \includegraphics[scale=0.3]{taler-logo-2021-inkscape.pdf}
    252   \end{center}
    253   \vfill
    254   \begin{center}
    255     Privacy-Preserving, Practical, Taxable, Free Software, Efficient
    256   \end{center}
    257  \vfill
    258  \vfill
    259 \ %
    260 \end{frame}
    261 
    262 
    263 \begin{frame}{Agenda}
    264 \tableofcontents
    265 \end{frame}
    266 
    267 
    268 \section{Introduction}
    269 
    270 \begin{frame}
    271   \vfill
    272   \begin{center}
    273     {\bf Part I: Introduction}
    274   \end{center}
    275   \vfill
    276 \end{frame}
    277 
    278 
    279 \section{What is Taler?}
    280 \begin{frame}{What is Taler?}
    281   \framesubtitle{\url{https://taler.net/en/features.html}}  \noindent
    282 Taler is
    283   \vfill
    284   \begin{itemize}
    285     \item a Free/Libre software \emph{payment system} infrastructure project
    286     \item ... with a surrounding software ecosystem
    287     \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
    288       as widely as possible.
    289   \end{itemize}
    290   \vfill
    291 \noindent
    292  However, Taler is
    293   \begin{itemize}
    294     \item \emph{not} a currency
    295     \item \emph{not} a long-term store of value
    296     \item \emph{not} a network or instance of a system
    297     \item \emph{not} decentralized
    298 %    \item \emph{not} based on proof-of-work or proof-of-stake
    299     \item combinable with a DLT back-end if requested
    300   \end{itemize}
    301 \end{frame}
    302 
    303 
    304 \begin{frame}{Design principles}
    305   \framesubtitle{https://taler.net/en/principles.html}
    306 GNU Taler must ...
    307 \begin{enumerate}
    308   \item {... be implemented as {\bf free software} (but {\em available} under a commercial license).}
    309   \item {... protect the {\bf privacy of buyers}.}
    310   \item {... must enable the state to {\bf tax income} and crack down on
    311     illegal business activities.}
    312   \item {... prevent payment fraud.}
    313   \item {... only {\bf disclose the minimal amount of information
    314     necessary}.}
    315   \item {... be usable.}
    316   \item {... be efficient.}
    317   \item {... avoid single points of failure.}
    318   \item {... foster {\bf competition} in associated services.}
    319 \end{enumerate}
    320 \end{frame}
    321 
    322 
    323 \begin{frame}
    324 \frametitle{Taler Overview}
    325 \begin{center}
    326 \begin{tikzpicture}
    327  \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em];
    328  \node (origin) at (0,0) {};
    329  \node (exchange) [def,above=of origin,draw]{Exchange};
    330  \node (customer) [def, draw, below left=of origin] {Customer};
    331  \node (merchant) [def, draw, below right=of origin] {Merchant};
    332  \node (auditor) [def, draw, above right=of origin]{Auditor};
    333 % \node (regulator) [def, draw, above=of auditor]{CSSF};
    334 
    335  \tikzstyle{C} = [color=black, line width=1pt]
    336 
    337  \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins};
    338  \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins};
    339  \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins};
    340  \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify};
    341 % \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report};
    342 
    343 \end{tikzpicture}
    344 \end{center}
    345 \end{frame}
    346 
    347 
    348 \begin{frame}{Architecture of Taler}
    349 \begin{center}
    350   \includegraphics[width=1\textwidth]{operations.png}
    351 \end{center}
    352 \end{frame}
    353 
    354 
    355 \begin{frame}{Consumer Impact of Taler}
    356 \begin{itemize}
    357 \item {\bf Convenient:} pay with one click instantly --– in Euro, 
    358 Dollar, Yen or Bitcoin
    359 \item {\bf Friction-free security:} Payments do not require sign-up, 
    360 login or multi-factor authentication
    361 \item {\bf Privacy-preserving:} payment requires/shares no personal information
    362 \item {\bf Bank account:} not required
    363 \end{itemize}
    364 \end{frame}
    365 
    366 
    367 \begin{frame}{Merchant Impact of Taler}
    368 \begin{itemize}
    369 \item {\bf Instant clearance:} one-click transactions and instant clearance at par
    370 \item {\bf Easy \& compliant:} GDPR \& PCI-DSS compliance-free and without any effort
    371 \item {\bf Major profit increase:} efficient protocol $+$ no fraud $=$ extremely low costs
    372 \item {\bf 1-click checkout:} without Amazon and without false 
    373 positives in fraud detection
    374 \end{itemize}
    375 \end{frame}
    376 
    377 
    378 \begin{frame}{Taler: Unique Regulatory Features for Central Banks}
    379   \framesubtitle{\url{https://www.snb.ch/en/mmr/papers/id/working_paper_2021_03}}
    380   \begin{itemize}
    381     \item Central bank issues digital coins equivalent to issuing cash \\
    382           $\Rightarrow$ monetary policy remains under CB control
    383     \item Architecture with consumer accounts at commercial banks \\
    384           $\Rightarrow$ no competition for commercial banking (S\&L) \\
    385           $\Rightarrow$ CB does not have to manage KYC, customer support
    386     \item Withdrawal limits and denomination expiration \\
    387           $\Rightarrow$ protects against bank runs and hoarding
    388     \item Income transparency and possibility to set fees \\
    389           $\Rightarrow$ additional insights into economy and new policy options
    390     \item Revocation protocols and loss limitations \\
    391           $\Rightarrow$ exit strategy and handles catastrophic security incidents
    392     \item Privacy by cryptographic design not organizational compliance \\
    393           $\Rightarrow$ CB cannot be forced to facilitate mass-surveillance
    394   \end{itemize}
    395 \end{frame}
    396 
    397 
    398 \begin{frame}{Active collaborations}
    399 {\tiny
    400   \begin{description}
    401   \item {\bf Berner Fachhochschule:} \\ Snack machine \& blockchain integration \& scalability
    402   \item {\bf Technische Universit\"at Eindhoven:} \\ Post-quantum cryptography
    403   \item {\bf Freie Universit\"at Berlin:} \\ Programmability \& embedded systems
    404   \item {\bf The GNU Project}: \\ Integration into FLOSS software
    405   \item {\bf Code Blau GmbH}: \\ Independent auditor development
    406   \item {\bf Fraunhofer Gesellschaft}: \\ Identity management \& SSI \& wallet-to-wallet communication
    407   \item {\bf Fiscaltrust GmbH}: \\ Point-of-sale integration ({\bf 
    408 new})
    409   \item {\bf Bank of International Settlements}: \\ Participation in Point Zero Forum 2023 ({\bf new})
    410   \item {\bf Oesterreichische Nationalbank AG}: \\ Joint presentation 
    411 proposal for Re:publica 2023 ({\bf new})
    412   \end{description}
    413   }
    414 \end{frame}
    415 
    416 
    417 \begin{frame}{Launch Timeline}
    418   \begin{description}
    419     \item[2022] Internal deployment at BFH
    420     \item[Q1'2023] Deployment using Bitcoin at BFH (running, but not yet announced)
    421     \item[Q2-3'2023] Deployment of local currency Netzbon in Basel
    422     \item[Q3'2023] Public deployment of eCHF stablecoin in Switzerland, cleared by FINMA
    423     \item[2024] German bank executes ``new product process'' for launch in Eurozone
    424   \end{description}
    425 \end{frame}
    426 
    427 
    428 \begin{frame}{Usability of Taler}
    429   \vfill
    430   \begin{center}
    431     \url{https://demo.taler.net/}
    432   \end{center}
    433   \begin{enumerate}
    434   \item Install browser extension.
    435   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    436   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    437   \end{enumerate}
    438   \vfill
    439 \end{frame}
    440 
    441 
    442 \section{Component Zoo}
    443 
    444 \begin{frame}
    445   \vfill
    446   \begin{center}
    447     {\bf Part II: Component Zoo}
    448   \end{center}
    449   \vfill
    450 \end{frame}
    451 
    452 
    453 \begin{frame}{The Taler Software Ecosystem: Overview}
    454   \framesubtitle{\url{https://taler.net/en/docs.html}}
    455   Taler is based on modular components that work together to provide a
    456   complete payment system:
    457   \vfill
    458   \begin{itemize}
    459     \item {\bf Exchange:} Service provider for digital cash
    460       \begin{itemize}
    461         \item Core exchange software (cryptography, database)
    462         \item Air-gapped key management, real-time {\bf auditing}
    463         \item {\bf LibEuFin}: Modular integration with banking systems
    464       \end{itemize}
    465     \item {\bf Merchant:} Integration service for existing businesses
    466       \begin{itemize}
    467         \item Core merchant backend software (cryptography, database)
    468         \item {\bf Back-office interface} for staff
    469         \item {\bf Frontend integration} (E-commerce, Point-of-sale)
    470       \end{itemize}
    471     \item {\bf Wallet:} Consumer-controlled applications for e-cash
    472       \begin{itemize}
    473         \item Multi-platform wallet software (for browsers \& mobile phones)
    474         \item Wallet backup storage providers ({\bf sync})
    475         \item {\bf Anastasis}: Recovery of lost wallets based on secret splitting
    476       \end{itemize}
    477   \end{itemize}
    478 \end{frame}
    479 
    480 
    481 \begin{frame}{Taler Exchange}
    482   The {\bf Exchange} is the core logic of the payment system.
    483 
    484   \begin{itemize}
    485     \item One exchange at minimum must be operated per currency
    486     \item Offers a REST API for merchants and customers
    487     \item Uses several helper processes for configuration and to
    488           interact with RTGS and cryptography
    489     \item KYC support via OAuth 2.0, KycAID or Persona APIs
    490     \item Implemented in C on top of GNU libmicrohttpd
    491   \end{itemize}
    492   Scalability: 28'500 transactions/second measured % in BS-thesis
    493   in 2022 using two servers on Grid5000. Likely several times
    494   higher today (but we did not re-measure recently).
    495 \end{frame}
    496 
    497 
    498 \begin{frame}{Taler Merchant}
    499   The {\bf Merchant} is the software run by merchants to accept\\
    500   GNU Taler payments.
    501 
    502   \begin{minipage}{6cm}
    503   \begin{itemize}
    504     \item REST API for integration with e-commerce
    505     \item SPA provides Web interface for administration
    506     \item Features include:
    507       \begin{itemize}
    508       \item Multi-tenant support
    509       \item Refunds
    510       \item Tipping (Website pays visitor)
    511       \item Webhooks
    512       \item Inventory management (optional)
    513       \end{itemize}
    514     \item Implemented in C on top of GNU libmicrohttpd
    515   \end{itemize}
    516   \end{minipage}
    517   \begin{minipage}{5cm}
    518   \includegraphics[width=5cm]{screenshots/merchant-spa-settings}
    519   \end{minipage}
    520 \end{frame}
    521 
    522 
    523 \begin{frame}{Taler Wallet}
    524   The {\bf Wallet} is the software run by consumers to store
    525   their digital cash and authorize transactions.
    526 
    527   \begin{minipage}{8cm}
    528   \begin{itemize}
    529     \item {\bf wallet-core} is the logic shared by all interfaces
    530     \item Applications exist for Android, F-Droid,
    531           WebExtension (Chrome, Chromium, Firefox, etc.), iOS ({\bf WiP})
    532     \item Features include:
    533       \begin{itemize}
    534       \item Multi-currency support
    535       \item Wallet-to-wallet payments (NFC or QR code)
    536       \item CRDT-like data model
    537       \end{itemize}
    538     \item {\bf wallet-core} implemented in TypeScript
    539   \end{itemize}
    540   Can be integrated into other Apps if desired.
    541   \end{minipage}
    542   \begin{minipage}{3cm}
    543   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png}
    544   \end{minipage}
    545 \end{frame}
    546 
    547 
    548 \begin{frame}{Taler Auditor}
    549   The {\bf Auditor} is the software run by an independent auditor
    550   to validate the operation of an Exchange.
    551 
    552   \begin{itemize}
    553     \item REST API for additional report inputs by merchants (optional)
    554     \item Secure database replication logic
    555     \item Implemented in C on top of GNU libmicrohttpd
    556   \end{itemize}
    557 \end{frame}
    558 
    559 
    560 \begin{frame}{Pretix Taler payment plugin}
    561 \begin{center}
    562 \includegraphics[width=0.5\textwidth]{screenshots/pretix.png}
    563 \end{center}
    564 
    565   Pretix is a ticket sales system.
    566 
    567   \begin{itemize}
    568     \item Pretix payment plugin enables payments via GNU Taler
    569     \item Developed by Pretix.eu for \EUR{3,000} on behalf of Taler Systems SA
    570   \end{itemize}
    571 \end{frame}
    572 
    573 
    574 \begin{frame}{WooCommerce Taler payment plugin}
    575 \begin{minipage}{6cm}
    576   \begin{itemize}
    577     \item WooCommerce is an e-commerce plugin for WordPress.
    578     \item WooCommerce payment plugin enables payments via GNU Taler
    579     \item Features include:
    580       \begin{itemize}
    581       \item Trivial configuration
    582       \item Support for refunds
    583       \item Full internationalization
    584       \end{itemize}
    585     \item WooCommerce and its plugins are implemented in PHP
    586   \end{itemize}
    587 \end{minipage}
    588 \begin{minipage}{5cm}
    589   \includegraphics[width=4cm]{screenshots/woocommerce-cart.png}
    590   \includegraphics[width=4cm]{screenshots/woocommerce-settings.png}
    591   \end{minipage}
    592 \end{frame}
    593 
    594 
    595 \begin{frame}{Point-of-Sale App for Android}
    596 
    597 \begin{minipage}{7cm}
    598   \begin{itemize}
    599     \item Allows merchant to generate orders against Taler backend
    600           and display QR code to enable customer to pay in person
    601     \item Patterned after ViewTouch restaurant UI
    602     \item Features include:
    603       \begin{itemize}
    604       \item Internet-based configuration
    605       \item Products sorted by categories
    606       \item Easy undo of every operation
    607       \item Manages multiple concurrent orders
    608       \end{itemize}
    609     \item The Point-of-Sale App is implemented in Kotlin
    610   \end{itemize}
    611 \end{minipage}
    612 \begin{minipage}{4cm}
    613   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg}
    614   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg}
    615   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg}
    616 \end{minipage}
    617 \end{frame}
    618 
    619 
    620 \begin{frame}{LibEuFin}
    621   LibEuFin is a standalone project that provides adapters to bank account
    622   access APIs.
    623 
    624   \begin{itemize}
    625     \item LibEuFin provides both a generic access layer and an
    626       implementation of the Wire Gateway for the exchange
    627     \item Supports EBICS 2.5
    628     \item other APIs such as FinTS or PSD2-style XS2A APIs can be added
    629       without requiring changes to the Exchange
    630     \item tested with German bank GLS business account and real Euros
    631   \end{itemize}
    632   \vfill
    633   \begin{itemize}
    634     \item \texttt{libeufin-nexus} is the main service
    635     \item Almost all configuration (except DB credentials)
    636       is stored in the database and managed via a RESTful HTTP API
    637     \item \texttt{libeufin-sandbox} implements a toy EBICS host for protocol
    638       testing
    639     \item \texttt{libeufin-cli} is client for the HTTP API (only implements a subset
    640       of available functionality)
    641   \end{itemize}
    642 \end{frame}
    643 
    644 
    645 \begin{frame}{Cashier App for Android}
    646 \begin{minipage}{4cm}
    647   \begin{itemize}
    648     \item Enables BFH staff to convert cash to e-cash
    649     \item Staff has special bank accounts with limited funds
    650     \item Students can pay staff in cash to receive e-cash
    651     \item The Cashier App is implemented in Kotlin
    652   \end{itemize}
    653   \end{minipage}
    654   \begin{minipage}{3cm}
    655   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103315.png}
    656   \end{minipage}
    657   \begin{minipage}{3cm}
    658   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103325.png}
    659   \end{minipage}
    660 \end{frame}
    661 
    662 
    663 \begin{frame}{Depolymerization}
    664   Depolymerization is a bridge between GNU Taler and blockchains,
    665   making Taler a layer 2 system for crypto-currencies (like Lightning).
    666 
    667   \begin{itemize}
    668     \item Currently implemented for Bitcoin and Ethereum
    669           crypto-currencies, with the DLTs as the ``RTGS''
    670     \item Provides same API to Exchange as LibEuFin
    671 %   \item Transaction rate and speed limited by the underlying blockchain
    672     \item Implemented in Rust
    673   \end{itemize}
    674   \begin{center}
    675       \url{https://bitcoin.ice.bfh.ch/}
    676   \end{center}
    677 \end{frame}
    678 
    679 
    680 \begin{frame}{TalDir (WiP)}
    681   TalDir is an extension to the existing
    682   peer-to-peer payment functionality.
    683 
    684   \begin{itemize}
    685     \item Registry to associate wallets with network addresses
    686     \item Extensible to different types of network services:
    687       \begin{itemize}
    688     \item E-mail
    689     \item SMS
    690     \item Twitter
    691     \item ...
    692      \end{itemize}
    693     \item Send payments or invoices to wallets associated with network address
    694     \item Will {\bf not} require sending wallet to use same network service
    695   \end{itemize}
    696 \end{frame}
    697 
    698 
    699 \section{Basic Cryptography}
    700 
    701 \begin{frame}
    702   \vfill
    703   \begin{center}
    704     {\bf Part III: Basic Cryptography}
    705   \end{center}
    706   \vfill
    707 \end{frame}
    708 
    709 
    710 
    711 
    712 \begin{frame}{How does it work?}
    713 We use a few well established and tested constructions:
    714   \begin{itemize}
    715   \item Cryptographic hash function (1989)
    716   \item Blind signature (1983)
    717   \item Schnorr signature (1989)
    718   \item Diffie-Hellman key exchange (1976)
    719   \item Cut-and-choose zero-knowledge proof (1985)
    720   \end{itemize}
    721 But of course we use modern instantiations.
    722 \end{frame}
    723 
    724 
    725 \begin{frame}{Withdrawing coins on the Web}
    726   \begin{center}
    727     \includegraphics[height=0.9\textheight]{figs/taler-withdraw.pdf}
    728   \end{center}
    729 \end{frame}
    730 
    731 
    732 \begin{frame}{Payment processing with Taler}
    733   \begin{center}
    734     \includegraphics[height=0.9\textheight]{figs/taler-pay.pdf}
    735   \end{center}
    736 \end{frame}
    737 
    738 
    739 \begin{frame}{Giving change}
    740   It would be inefficient to pay EUR 100 with 1 cent coins!
    741   \begin{itemize}
    742   \item Denomination key represents value of a coin.
    743   \item Exchange may offer various denominations for coins.
    744   \item Wallet may not have exact change!
    745   \item Usability requires ability to pay given sufficient total funds.
    746   \end{itemize}\pause
    747   Key goals:
    748   \begin{itemize}
    749   \item maintain unlinkability
    750   \item maintain taxability of transactions
    751   \end{itemize}\pause
    752   Method:
    753   \begin{itemize}
    754     \item Contract can specify to only pay {\em partial value} of a coin.
    755     \item Exchange allows wallet to obtain {\em unlinkable change}
    756       for remaining coin value.
    757   \end{itemize}
    758 \end{frame}
    759 
    760 
    761 \section{Illustration of Programmable Money: Age Restrictions}
    762 
    763 \begin{frame}
    764   \vfill
    765   \begin{center}
    766     \vfill
    767     {\bf Part IV:}
    768     \vfill
    769     {\bf Illustration of Programmable Money}
    770     \vfill
    771     {\bf Zero-knowledge Age Restrictions}
    772     \vfill
    773   \end{center}
    774   \vfill
    775 \end{frame}
    776 
    777 
    778 \begin{frame}{Age restriction in e-commerce}
    779 
    780 	\begin{description}
    781 		\item[Problem:]~\\[1em]
    782 			Verification of minimum age requirements in e-commerce.\\[2em]
    783 
    784 		\item[Common solutions:]
    785 
    786 \begin{tabular}{l<{\onslide<2->}c<{\onslide<3->}cr<{\onslide}}
    787 	& \blue{Privacy} & \tikzmark{topau} \blue{Ext. authority}& \\[\medskipamount]
    788 	1. ID Verification     & bad   & required & \\[\medskipamount]
    789 	2. Restricted Accounts & bad   & required & \\[\medskipamount]
    790 	3. Attribute-based     & good  & required &\tikzmark{bottomau} \\[\medskipamount]
    791 \end{tabular}
    792 	\end{description}
    793 
    794 \uncover<4->{
    795 	\begin{tikzpicture}[overlay,remember picture]
    796 	\draw[orange,thick,rounded corners]
    797 		($(pic cs:topau) +(0,0.5)$) rectangle ($(pic cs:bottomau) -(0.3, 0.2)$);
    798 	\end{tikzpicture}
    799 	\begin{center}
    800 	\bf Principle of subsidiarity is violated
    801 	\end{center}
    802 }
    803 \end{frame}
    804 
    805 
    806 \begin{frame}{Age restriction design for GNU Taler}
    807 Design and implementation of an age restriction scheme\\
    808 with the following goals:
    809 
    810 \begin{enumerate}
    811 \item It ties age restriction to the \textbf{ability to pay} (not to ID's)
    812 \item maintains \textbf{anonymity of buyers}
    813 \item maintains \textbf{unlinkability of transactions}
    814 \item aligns with \textbf{principle of subsidiarity}
    815 \item is \textbf{practical and efficient}
    816 \end{enumerate}
    817 
    818 \end{frame}
    819 
    820 
    821 \begin{frame}{Age restriction}
    822 	\framesubtitle{Assumptions and scenario}
    823 
    824 	\begin{columns}
    825 		\column{7.5cm}
    826 	\begin{itemize}
    827 		\item<1-> Assumption: Checking accounts are under control of eligible adults/guardians.
    828 		\item<2-> \textit{Guardians} \textbf{commit} to an maximum age
    829 		\item<3-> \textit{Minors} \textbf{attest} their adequate age
    830 		\item<4-> \textit{Merchants} \textbf{verify} the attestations
    831 		\item<5-> Minors \textbf{derive} age commitments from existing ones
    832 		\item<6-> \textit{Exchanges} \textbf{compare} the derived age commitments
    833 	\end{itemize}
    834 		\column{5cm}
    835 		\uncover<7->
    836 		{
    837 		\begin{center}
    838 		\fontsize{7pt}{7pt}\selectfont
    839 	\begin{tikzpicture}[scale=.5]
    840 		\node[circle,minimum size=15pt,fill=black!15] at ( 60:4) (Exchange) {$\Exchange$};
    841 		\node[circle,minimum size=15pt,fill=black!15] at (  0:0) (Client) {$\Child$};
    842 		\node[circle,minimum size=15pt,fill=black!15] at (  0:4) (Merchant) {$\Merchant$};
    843 		\node[circle,minimum size=15pt,fill=blue!15]  at (140:3) (Guardian) {$\Guardian$};
    844 
    845 		\draw[->] (Guardian)   to [out=50,in=130, loop] node[above]
    846 			{$\Commit$} (Guardian);
    847 		\draw[->,blue] (Client)   to [out=-125,in=-190, loop] node[below,left]
    848 			{\blue{$\Attest$}} (Client);
    849 		\draw[->,blue] (Merchant) to [out=50,in=130, loop] node[above]
    850 			{\blue{$\Verify$}} (Merchant);
    851 		\draw[->,orange] (Client)   to [out=-35,in=-100, loop] node[below]
    852 			{\orange{$\Derive$}} (Client);
    853 		\draw[->,orange] (Exchange) to [out=50,in=130, loop] node[above]
    854 			{\orange{$\Compare$}} (Exchange);
    855 
    856 		\draw[orange,|->] (Client)   to node[sloped,above,align=left]
    857 			{\orange{\scriptsize }} (Exchange);
    858 		\draw[blue,|->] (Client)   to node[sloped, above]
    859 			{\blue{\scriptsize }} (Merchant);
    860 		\draw[,|->] (Guardian) to node[above,sloped,align=left]
    861 			{{\scriptsize }} (Client);
    862 	\end{tikzpicture}
    863 		\end{center}
    864 		}
    865 	\end{columns}
    866 	\vfill
    867 %	\uncover<7->{Note: Scheme is independent of payment service protocol.}
    868 \end{frame}
    869 
    870 
    871 \begin{frame}{Age Restrictions based on KYC}
    872 %		\item Our solution can in principle be used with any token-based payment scheme
    873 %		\item GNU Taler best aligned with our design goals (security, privacy and efficiency)
    874  Subsidiarity requires bank accounts being owned by adults
    875 			\begin{itemize}
    876 			\item Scheme can be adapted to case where minors have bank accounts
    877       		\item Assumption: banks provide minimum age
    878 						information during bank
    879 						transactions.
    880 			\end{itemize}
    881 \end{frame}
    882 
    883 
    884 \begin{frame}{Conclusion}
    885 	Age restriction is a technical, ethical and legal challenge.
    886 
    887 	Existing solutions are
    888 	\begin{itemize}
    889 		\item without strong protection of privacy or
    890 		\item based on identity management systems (IMS)
    891 	\end{itemize}
    892 	\vfill
    893 
    894 	Our age restriction scheme offers a solution that is
    895 	\begin{itemize}
    896 		\item based on subsidiarity
    897 		\item privacy-preserving
    898 		\item efficient
    899 		\item an alternative to IMS
    900 	\end{itemize}
    901     Other types of programmability (escrow, auctions) are under development.
    902 \end{frame}
    903 
    904 
    905 \section{Integration considerations}
    906 
    907 \begin{frame}
    908   \vfill
    909   \begin{center}
    910     {\bf Part V: Integration considerations}
    911   \end{center}
    912   \vfill
    913 \end{frame}
    914 
    915 
    916 \begin{frame}[fragile]{RFC 8905: \texttt{payto:} Uniform Identifiers for Payments and Accounts}
    917   \vfill
    918   Like \texttt{mailto:}, but for bank accounts instead of email accounts!
    919   \vfill
    920   \begin{verbatim}
    921     payto://<PAYMENT-METHOD>/<ACCOUNT-NR>
    922       ?subject=InvoiceNr42
    923       &amount=EUR:12.50
    924   \end{verbatim}
    925   \vfill
    926   Default action:  Open app to review and confirm payment.
    927   \vfill
    928 \includegraphics[width=0.25\textwidth]{einzahlschein-ch.jpeg}
    929 \hfill
    930 \includegraphics[width=0.2\textwidth]{de-ueberweisungsformular.png}
    931   \vfill
    932 \end{frame}
    933 
    934 
    935 \begin{frame}[fragile]{Benefits of {\tt payto://}}
    936   \begin{itemize}
    937     \item Standardized way to represent financial resources (bank account, bitcoin wallet)
    938       and payments to them
    939     \item Useful on the client-side on the Web and for FinTech backend applications
    940     \item Payment methods (such as IBAN, ACH, Bitcoin) are registered with
    941           IANA and allow extra options
    942   \end{itemize}
    943   \begin{center}
    944   {\bf Taler wallet can generate payto://-URI for withdraw!}
    945   \end{center}
    946 \end{frame}
    947 
    948 
    949 \begin{frame}{Fully Offline Payments {\bf (WiP)}}
    950 \framesubtitle{\url{https://docs.taler.net/design-documents/030-offline-payments.html}}
    951 Many central banks today demand offline capabilities for digital payment solutions.
    952 \vfill
    953 \noindent
    954 Three possible approaches:
    955 \begin{enumerate}
    956   \item Trust-based offline payments (has counterparty and/or privacy risks)
    957   \item Full HSM Taler wallet (has hardware costs)
    958   \item Light-weight HSM balance register
    959 \end{enumerate}
    960 \vfill
    961 \end{frame}
    962 
    963 
    964 \begin{frame}{Partially Offline Payments with GNU Taler}
    965 We have filed for a patent to address situations where only the merchant is offline:
    966 \begin{enumerate}
    967   \item Customer pays by scanning static QR code and entering amount on mobile phone.
    968   \item Merchant confirms payment by checking simple unique numeric confirmation code.
    969   \item[$\Rightarrow$] Allows for very simple, cheap and secure merchant on-boarding.
    970      Makes integration with existing PoS vendors optional.
    971 \end{enumerate}
    972 \begin{center}
    973        {\bf Needed Point-of-sale hardware costs only $\approx$ \EUR{10}}
    974 \end{center}
    975 \vfill
    976 \end{frame}
    977 
    978 
    979 \section{Blockchain Integration}
    980 
    981 \begin{frame}
    982   \vfill
    983   \begin{center}
    984     {\bf Part VI: Blockchain Integration}
    985   \end{center}
    986   \vfill
    987   Antoine d’Aligny, Emmanuel Benoist and Christian Grothoff: ``{\em Project Depolymerization: Tokenization of Blockchains}''. {\bf 4th Conference on Blockchain Research \& Applications for Innovative Networks and Services}, 2022
    988   \vfill
    989 \end{frame}
    990 
    991 
    992 \begin{frame}{Blockchain based cryptocurrencies}
    993     \begin{tikzpicture}[remember picture,overlay]
    994         \node (N1)[above right=5mm and 25mm of current page.center] {\includegraphics[width=34mm]{media/news1.png}};
    995         \node (N0)[below=-3mm of N1] {\includegraphics[width=34mm]{media/news0.png}};
    996         \node (N2)[below left=-26mm and -2.5mm of N1] {\includegraphics[width=34mm]{media/news2.png}};
    997     \end{tikzpicture}
    998     \begin{block}{Biggest cryptocurrencies}
    999         \begin{itemize}
   1000             \item \textbf{BTC} Bitcoin
   1001             \item \textbf{ETH} Ethereum
   1002         \end{itemize}
   1003     \end{block}
   1004     \begin{block}{Common blockchain limitations}
   1005         \begin{itemize}
   1006             \item \textbf{Delay} block and confirmation delay
   1007             \item \textbf{Cost} transaction fees
   1008             \item \textbf{Scalability} limited amount of transaction per second
   1009             \item \textbf{Ecological impact} computation redundancy
   1010             \item \textbf{Privacy}
   1011             \item \textbf{Regulatory risk}
   1012         \end{itemize}
   1013     \end{block}
   1014 \end{frame}
   1015 
   1016 \begin{frame}{Layer 2 solutions: Taler vs. Lightning}
   1017 
   1018 \begin{minipage}{5.5cm}
   1019 {\bf Taler:}
   1020 \begin{itemize}
   1021 \item[\checkmark] can be used with any currency or asset
   1022 \item[\checkmark] can make payments instantly between any two parties
   1023 \item[\checkmark] has income transparency and can accommodate KYC, AML and CFT
   1024 \item[\checkmark] has cryptographic privacy protections
   1025 \item[\checkmark] can be used immediately to make instant payments
   1026 \item[\checkmark] uses one or more central exchange service providers
   1027 \end{itemize}
   1028 \end{minipage}
   1029 \hfill
   1030 \begin{minipage}{5.5cm}
   1031 {\bf Lightning:}
   1032 \begin{itemize}
   1033 \item[$\times$] only works with Bitcoin
   1034 \item[$\times$] requires payment route establishment, which can fail
   1035 \item[$\times$] cannot enforce regulatory requirements
   1036 \item[$\times$] requires money to be locked in payment channels
   1037 \item[$\times$] requires expensive Bitcoin node or trusted service to transact
   1038 \item[$\times$] claims to be decentralized, but uses few and centralized nodes in practice
   1039 \end{itemize}
   1040 \end{minipage}
   1041 \end{frame}
   1042 
   1043 
   1044 \begin{frame}{Taler}{Blockchain settlement layer}
   1045     \begin{center}
   1046         \begin{tikzpicture}[
   1047                 rect/.style={rectangle, draw=black, minimum width=30mm},
   1048                 sym/.style={stealth-stealth, shorten >= 2pt, shorten <= 2pt},
   1049                 block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm},
   1050             ]
   1051 
   1052             %% Architecture
   1053             \node(Tt){Taler};
   1054             \node[rect,below=0cm of Tt](Tc){Exchange};
   1055             \node[rect,fit={(Tt) (Tc)}](T){};
   1056 
   1057             \node[rect,below=7mm of Tc](D) {\textbf{Depolymerization}};
   1058 
   1059             \node[rect,below=7mm of D](Bc){Node};
   1060             \node[below=0cm of Bc](Bt){Blockchain};
   1061             \node[rect,fit={(Bt) (Bc)}](B){};
   1062 
   1063             \draw[sym] (T) -- (D);
   1064             \draw[sym] (D) -- (B);
   1065 
   1066             %% Blockchain
   1067             \node[block,right=8mm of B] (1){};
   1068             \node[block,right=4mm of 1] (2){};
   1069             \node[block,right=4mm of 2] (3){};
   1070             \node[block,right=4mm of 3] (4){};
   1071             \node[block,right=4mm of 4] (5){};
   1072             \node[block,right=4mm of 5] (6){};
   1073             \draw[-stealth] (1) -- (2);
   1074             \draw[-stealth] (2) -- (3);
   1075             \draw[-stealth] (3) -- (4);
   1076             \draw[-stealth] (4) -- (5);
   1077             \draw[-stealth] (5) -- (6);
   1078 
   1079             \node[left=4mm of 1] (S){};
   1080             \node[right=4mm of 6] (E){};
   1081             \draw[-stealth] (S) -- (1);
   1082             \draw[-stealth] (6) -- (E);
   1083 
   1084             %% Taler
   1085             \node[block, below right=-7.5mm and 20.5mm of T] (off){Off-chain transactions};
   1086             \node[above=-0.5mm of off] {\includegraphics[height=7mm]{taler-logo-2021-inkscape.pdf}};
   1087 
   1088             %% Depolymerization
   1089             \node[right=11mm of D] {\small{Credit}};
   1090             \node[right=50mm of D] {\small{Debit}};
   1091             \draw[dashed,-stealth] (1.north) |- (off.west);
   1092             \draw[dashed,-stealth] (off.east) -| (6.north);
   1093         \end{tikzpicture}
   1094     \end{center}
   1095 \end{frame}
   1096 
   1097 
   1098 \begin{frame}{Depolymerization}{Architecture}
   1099     \begin{center}
   1100         \begin{tikzpicture}[
   1101                 rect/.style={rectangle, draw=black, minimum height=6mm, minimum width=28mm},
   1102                 sym/.style={stealth-stealth, shorten >= 2pt, shorten <= 2pt}
   1103             ]
   1104             \node[rect](1) {Taler Exchange};
   1105             \node[rect,below=of 1](2) {Wire Gateway};
   1106             \node[rect,right=of 2](3) {PostgreSQL};
   1107             \node[rect,right=of 3](4) {DLT Adapter};
   1108             \node[rect,above=of 4](5) {DLT Full Node};
   1109 
   1110             \draw[sym] (1) -- node [midway,right] {\tiny HTTP} (2);
   1111             \draw[sym] (2) -- node [midway,above] {\tiny SQL} (3);
   1112             \draw[sym] (3) -- node [midway,above] {\tiny SQL} (4);
   1113             \draw[sym] (4) -- node [midway,left ] {\tiny RPC} (5);
   1114 
   1115 
   1116             \node[above= 2mm of 1]{\small{\emph{Wire Gateway API}}};
   1117             \node[above= 2mm of 5]{\small{\emph{DLT specific}}};
   1118             \node[above=22mm of 3](T) {};
   1119             \draw[dotted] (3) -- (T);
   1120         \end{tikzpicture}
   1121     \end{center}
   1122     \begin{itemize}
   1123         \item Common database to store transactions state and communicate
   1124               with notifications
   1125         \item Wire Gateway for Taler API compatibility
   1126         \item DLT specific adapter
   1127     \end{itemize}
   1128 \end{frame}
   1129 
   1130 \begin{frame}{Storing metadata}{Bitcoin}
   1131     \begin{block}{Bitcoin - Credit}
   1132         \begin{itemize}
   1133             \item Transactions from code
   1134             \item Only 32B + URI
   1135             \item \textbf{OP\_RETURN}
   1136         \end{itemize}
   1137     \end{block}
   1138     \begin{block}{Bitcoin - Debit}
   1139         \begin{itemize}
   1140             \item Transactions from common wallet software
   1141             \item Only 32B
   1142             \item \textbf{Fake Segwit Addresses}
   1143         \end{itemize}
   1144     \end{block}
   1145 \end{frame}
   1146 \begin{frame}{Storing metadata}{Ethereum}
   1147     \begin{block}{Smart contracts}
   1148         \begin{itemize}
   1149             \item Logs in smart contract is the recommend way {\tiny (ethereum.org)}
   1150             \item Expensive (additional storage and execution fees)
   1151             \item Avoidable attack surface (error prone)
   1152         \end{itemize}
   1153     \end{block}
   1154     \begin{block}{Custom input format}
   1155         Use input data in transactions, usually used to call smart contract, to
   1156         store our metadata.
   1157     \end{block}
   1158 \end{frame}
   1159 
   1160 \begin{frame}{Handling blockchain reorganization}
   1161     \begin{center}
   1162         \begin{tikzpicture}[
   1163                 block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm},
   1164                 conf/.style={draw=black!60!green,fill=black!60!green!10},
   1165                 nconf/.style={dotted},
   1166                 err/.style={draw=black!60!red,fill=black!60!red!10},
   1167                 ar/.style={-stealth}
   1168             ]
   1169             % Common
   1170             \node[block,conf](1){};
   1171             \node[block,conf,right=5mm of 1](2){$D_0$};
   1172             \node[block,conf,right=5mm of 2](3){};
   1173             \draw[ar] (1) -- (2);
   1174             \draw[ar] (2) -- (3);
   1175 
   1176             % Current
   1177             \only<1>{
   1178                 \node [block,nconf,right=5mm of 3](4){};
   1179             }
   1180             \only<2->{
   1181                 \node [block,conf,right=5mm of 3](4){\only<3>{$D_3$}};
   1182             }
   1183             \node[block,nconf,right=5mm of 4](5){};
   1184             \node[block,nconf,right=5mm of 5](6){$D_1$};
   1185             \draw[ar] (3) -- (4);
   1186             \draw[ar] (4) -- (5);
   1187             \draw[ar] (5) -- (6);
   1188 
   1189             % Fork
   1190             \only<-2>{
   1191                 \node [block,nconf,above=7mm of 4](4p){};
   1192             }
   1193             \only<3>{
   1194                 \node [block,dashed,err,above=7mm of 4](4p){$D_3'$};
   1195             }
   1196             \node[block,nconf,right=5mm of 4p](5p){$D_2$};
   1197             \node[block,nconf,right=5mm of 5p](6p){};
   1198             \node[block,nconf,right=5mm of 6p](7p){};
   1199             \draw[ar] (3.east) -- (4p.west);
   1200             \draw[ar] (4p) -- (5p);
   1201             \draw[ar] (5p) -- (6p);
   1202             \draw[ar] (6p) -- (7p);
   1203 
   1204             % Indication
   1205             \node [right=5mm of 7p]{\emph{fork}};
   1206             \node [right=17mm of 6]{\emph{active}};
   1207         \end{tikzpicture}
   1208     \end{center}
   1209     \only<1>{As small reorganizations are common, Satoshi already recommended to
   1210         apply a confirmation delay to handle most disturbances and attacks.}
   1211     \only<2>{If a reorganization longer than the confirmation delay happens,
   1212         but it did not remove credits, Depolymerizer is safe and automatically
   1213         resumes.}
   1214     \only<3>{If a fork removed a confirmed debit, an attacker may create a
   1215         conflicting transaction. Depolymerizer suspends operation until lost
   1216         credits reappear.}
   1217 \end{frame}
   1218 
   1219 \begin{frame}{Adaptive confirmation}
   1220     \begin{center}
   1221         \begin{tikzpicture}[
   1222                 block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm},
   1223                 conf/.style={draw=black!60!green,fill=black!60!green!10},
   1224                 nconf/.style={dotted},
   1225                 conft/.style={text=black!60!green},
   1226                 confl/.style={draw=black!60!green},
   1227                 ar/.style={-stealth}
   1228             ]
   1229             % Common
   1230             \node(0){};
   1231             \node[block,conf,right=5mm of 0](1){};
   1232             \node[block,conf,right=5mm of 1](2){};
   1233             \draw[ar] (0) -- (1);
   1234             \draw[ar] (1) -- (2);
   1235 
   1236             % Current
   1237             \node[block,conf,right=5mm of 2](3){};
   1238             \node[block,nconf,right=5mm of 3](4){};
   1239             \node[block,nconf,right=5mm of 4](5){};
   1240             \node[block,nconf,right=5mm of 5](6){};
   1241             \draw[ar] (2) -- (3);
   1242             \draw[ar] (3) -- (4);
   1243             \draw[ar] (4) -- (5);
   1244             \draw[ar] (5) -- (6);
   1245 
   1246             % Fork
   1247             \node[block,nconf,above=7mm of 3](3p){};
   1248             \node[block,nconf,right=5mm of 3p](4p){};
   1249             \node[block,nconf,right=5mm of 4p](5p){};
   1250             \node[block,nconf,right=5mm of 5p](6p){};
   1251             \node[block,nconf,right=5mm of 6p](7p){};
   1252             \draw[ar] (2.east) -- (3p.west);
   1253             \draw[ar] (3p) -- (4p);
   1254             \draw[ar] (4p) -- (5p);
   1255             \draw[ar] (5p) -- (6p);
   1256             \draw[ar] (6p) -- (7p);
   1257 
   1258             % Indication
   1259             \node[right=5mm of 7p]{\emph{fork}};
   1260             \node[right=17mm of 6]{\emph{active}};
   1261 
   1262             % Confirmation
   1263             \path (0) -- (1) node[conft,midway, below=6mm] (M) {Max};
   1264             \path (2) -- (3) node[conft,midway, below=6mm] (N) {New};
   1265             \path (3) -- (4) node[conft,midway, below=6mm] (I) {Initial};
   1266             \node[above=25mm of M] (Mp) {};
   1267             \node[above=25mm of N] (Np) {};
   1268             \node[above=25mm of I] (Ip) {};
   1269             \draw[confl,thick,dotted](M) -- (Mp);
   1270             \draw[confl](N) -- (Np);
   1271             \draw[confl,thick,dotted](I) -- (Ip);
   1272         \end{tikzpicture}
   1273     \end{center}
   1274     If we experience a reorganization once, its likely for another
   1275     reorganization of a similar scope to happen again.
   1276     Depolymerizer learns from reorganizations by increasing its confirmation delay.
   1277 \end{frame}
   1278 
   1279 
   1280 \begin{frame}{Project Depolymerization Summary}
   1281     Taler can be used as a layer 2 for existing
   1282     crypto-currencies and stablecoins with Depolymerizer:
   1283 
   1284     \begin{itemize}
   1285         \item [$-$] Trust exchange operator or auditors
   1286         \item [$+$] Fast and cheap
   1287         \item [$+$] Realtime: transactions with milliseconds of latency
   1288         \item [$+$] Linear scalability
   1289         \item [$+$] Ecological
   1290         \item [$+$] Privacy when it can, transparency when it must (avoid tax evasion and money laundering)
   1291     \end{itemize}
   1292 \end{frame}
   1293 
   1294 
   1295 \section{Conclusion}
   1296 
   1297 \begin{frame}
   1298   \vfill
   1299   \begin{center}
   1300     {\bf Part VII: Conclusion}
   1301   \end{center}
   1302   \vfill
   1303 \end{frame}
   1304 
   1305 
   1306 \begin{frame}{Feature comparison}
   1307   \begin{center} \small
   1308     \begin{tabular}{l||c|c|c|c|c}
   1309                 & Cash & Bitcoin & Zerocoin & Creditcard & GNU Taler \\ \hline \hline
   1310     Online      &$-$$-$$-$  &   ++    &    ++    &     +      &   +++  \\ \hline
   1311     Offline     & +++  &   $-$$-$    &    $-$$-$    &     +      &   ++  \\ \hline
   1312     Trans. cost & +    & $-$$-$$-$   & $-$$-$$-$  &     $-$      &   ++  \\ \hline
   1313     Speed       & +    & $-$$-$$-$   & $-$$-$$-$  &     o      &   ++  \\ \hline
   1314     Taxation    & $-$    &   $-$$-$    &  $-$$-$$-$   &    +++     &  +++  \\ \hline
   1315     Payer-anon  &  ++  &   o     &    ++    &  $-$$-$$-$   &  +++  \\ \hline
   1316     Payee-anon  & ++   &   o     &    ++    &  $-$$-$$-$    &  $-$$-$$-$ \\ \hline
   1317     Security    &  $-$   &   o     &    o     &    $-$$-$      &  ++   \\ \hline
   1318     Conversion  & +++  &  $-$$-$$-$   & $-$$-$$-$ &    +++     &  +++  \\ \hline
   1319     Libre       &  $-$   &  +++    &    +++   & $-$ $-$ $-$      &  +++  \\
   1320   \end{tabular}
   1321   \end{center}
   1322 \end{frame}
   1323 
   1324 
   1325 \begin{frame}{Summary of Taler Solution}
   1326 
   1327 \begin{enumerate}
   1328 \item {\bf Frictionless one click}, cash-like digital payments \& instant
   1329 confirmation for all fiat- and crypto-currencies and for all users,
   1330 unbanked, young and old.
   1331 \item With {\bf income-transparency on the recipient side} is
   1332 crime-preventing \& Taler coins are as secure as cash without
   1333 counterfeits. No ID theft.
   1334 \item {\bf Guaranteed privacy} for spender \& data minimization: payment
   1335 requires/shares no personal information.
   1336 \item {\bf No bank account needed}
   1337 \item Highly efficient in power, processing \& storage, extremely low
   1338 cost \& {\bf highly scalable} to 100’000 transactions/sec.
   1339 \item Economically viable (sub-cent) instant {\bf micro-transactions} for
   1340 e-commerce, Internet of Things, metaverse, machine2machine, $\ldots$
   1341 \end{enumerate}
   1342 \end{frame}
   1343 
   1344 
   1345 \begin{frame}{Collaboration with BoJ}
   1346 \framesubtitle{Discussion Proposal}
   1347 Taler Systems SA can provide:
   1348 \begin{itemize}
   1349 \item Integration with Japanese banking APIs
   1350 \item Sandbox setup for evaluation by BoJ
   1351 \item Support in maintenance \& roll-outs
   1352 \end{itemize}
   1353 Additionally:
   1354 \begin{itemize}
   1355 \item I will have a sabbatical in Fall/Winter 2023
   1356 \item Objective is to visit financial institutions to present
   1357       contemporary capabilities and gather requirements for
   1358       further research
   1359 \item I would be happy to spend part of it in Japan
   1360 \end{itemize}
   1361 \end{frame}
   1362 
   1363 
   1364 
   1365 \begin{frame}{Do you have any questions?}
   1366   \framesubtitle{\url{https://taler.net/en/bibliography.html}}
   1367   \vfill
   1368 References:
   1369 {\tiny
   1370   \begin{enumerate}
   1371  \item{David Chaum, Christian Grothoff and Thomas Moser.
   1372        {\em How to issue a central bank digital currency}.
   1373        {\bf SNB Working Papers, 2021}.}
   1374  \item{Martin Summer and Hannes Hermanky.
   1375        {\em A digital euro and the future of cash}.
   1376        {\bf Monetary Policy \& The Economy Q1-Q2/22}.}
   1377  \item{Antoine d’Aligny, Emmanuel Benoist, Florian Dold, Christian Grothoff, Özgür Kesim and Martin Schanzenbach.
   1378        {\em Who comes after us? The correct mindset for designing a Central Bank Digital Currency}.
   1379        {\bf SUERF Policy Notes 279/2022}.}
   1380  \item{Florian Dold.
   1381        {\em GNU Taler}.
   1382        {\bf University of Rennes 1, PhD Thesis, 2019}.}
   1383  \item{Christian Grothoff and Alex Pentland.
   1384        {\em Digital cash and privacy: What are the alternatives to Libra?}.
   1385        {\bf MIT Media Lab, 2019}.}
   1386  \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci.
   1387        {\em Enabling Secure Web Payments with GNU Taler}.
   1388        {\bf SPACE 2016}.}
   1389  \item{Özgür Kesim, Christian Grothoff, Florian Dold and Martin Schanzenbach.
   1390        {\em Zero-Knowledge Age Restriction for GNU Taler}.
   1391        {\bf ESORICS, 2022}.}
   1392  \item{Gian Demarmels and Lucien Heuzeveldt.
   1393        {\em Adding Schnorr's Blind Signature in Taler}.
   1394        {\bf BFH, Bachelor's Thesis, 2022}.}
   1395  \item{Marco Boss.
   1396        {\em GNU Taler Scalability}.
   1397        {\bf BFH, Bachelor's Thesis, 2022}.}
   1398 \end{enumerate}
   1399 }
   1400 \end{frame}
   1401 
   1402 \end{document}
   1403 
   1404 
   1405 
   1406 
   1407 \begin{frame}{Taler {\tt /withdraw/sign}}
   1408 % Customer withdrawing coins with blind signatures
   1409 % \bigskip
   1410   \begin{figure}[th]
   1411     \begin{minipage}[b]{0.45\linewidth}
   1412       \begin{center}
   1413         \begin{tikzpicture}[scale = 0.4,
   1414             transform shape,
   1415             msglabel/.style    = { text = Black, yshift = .3cm,
   1416                                    sloped, midway },
   1417             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1418                                    >=stealth },
   1419             rstmsg/.style      = { ->, color = BrickRed, thick,
   1420                                    >=stealth }
   1421           ]
   1422           \node[draw = MidnightBlue,
   1423             fill = CornflowerBlue,
   1424             minimum width = .3cm,
   1425             minimum height = 10cm
   1426           ] (h1) at (-4, 0) {};
   1427           \node[draw = MidnightBlue,
   1428             fill = CornflowerBlue,
   1429             minimum width = .3cm,
   1430             minimum height = 10cm
   1431           ] (h2) at (4, 0) {};
   1432           \node[above = 0cm of h1] {Wallet};
   1433           \node[above = 0cm of h2] {Exchange};
   1434 
   1435           \path[->, color = MidnightBlue, very thick, >=stealth]
   1436             (-5, 4.5) edge
   1437             node[rotate=90, text = Black, yshift = .3cm] {Time}
   1438             (-5, -4.5);
   1439           \path[okmsg, dashed]
   1440              ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge
   1441              node[msglabel] {SEPA(RK,A)}
   1442              ($(h2.west)+(0, 3.5)+(0, -1.0)$);
   1443           \path[okmsg]
   1444             ($(h1.east)+(0, -1.0)$) edge
   1445             node[msglabel] {POST {\tt /withdraw/sign} $S_{RK}(DK, B_b(C))$}
   1446             ($(h2.west)+(0, -1.5)$);
   1447           \path[okmsg]
   1448             ($(h2.west)+(0, -2.0)$) edge
   1449             node[msglabel] {200 OK: $S_{DK}(B_b(C))$)}
   1450             ($(h1.east)+(0, -2.5)$);
   1451           \path[rstmsg]
   1452             ($(h2.west)+(0, -3.5)$) edge
   1453             node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)}
   1454             ($(h1.east)+(0, -4)$);
   1455           \node at (5.3, 0) {};
   1456         \end{tikzpicture}
   1457       \end{center}
   1458       Result: $\langle c, S_{DK}(C) \rangle$.
   1459     \end{minipage}
   1460     \hspace{0.5cm}
   1461     \begin{minipage}[b]{0.45\linewidth}
   1462       \tiny
   1463       \begin{description}
   1464       \item[$A$] Some amount, $A \ge A_{DK}$
   1465       \item[$RK$] Reserve key
   1466       \item[$DK$] Denomination key
   1467       \item[$b$] Blinding factor
   1468       \item[$B_b()$] RSA-FDH blinding % DK supressed
   1469       \item[$C$] Coin public key $C := cG$
   1470       \item[$S_{RK}()$] EdDSA signature
   1471       \item[$S_{DK}()$] RSA-FDH signature
   1472       \end{description}
   1473     \end{minipage}
   1474   \end{figure}
   1475 \end{frame}
   1476 
   1477 
   1478 \begin{frame}[t]{Taler {\tt /deposit}}
   1479 Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$.
   1480 \bigskip
   1481   \begin{figure}[th]
   1482     \begin{minipage}[b]{0.45\linewidth}
   1483       \begin{center}
   1484         \begin{tikzpicture}[scale = 0.4,
   1485             transform shape,
   1486             msglabel/.style    = { text = Black, yshift = .3cm,
   1487                                    sloped, midway },
   1488             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1489                                    >=stealth },
   1490             rstmsg/.style      = { ->, color = BrickRed, thick,
   1491                                    >=stealth }
   1492           ]
   1493           \node[draw = MidnightBlue,
   1494             fill = CornflowerBlue,
   1495             minimum width = .3cm,
   1496             minimum height = 10cm
   1497           ] (h1) at (-4, 0) {};
   1498           \node[draw = MidnightBlue,
   1499             fill = CornflowerBlue,
   1500             minimum width = .3cm,
   1501             minimum height = 10cm
   1502           ] (h2) at (4, 0) {};
   1503           \node[above = 0cm of h1] {Merchant};
   1504           \node[above = 0cm of h2] {Exchange};
   1505 
   1506           \path[->, color = MidnightBlue, very thick, >=stealth]
   1507             (-5, 4.5) edge
   1508             node[rotate=90, text = Black, yshift = .3cm] {Time}
   1509             (-5, -4.5);
   1510           \path[->, color = MidnightBlue, thick, >=stealth]
   1511             ($(h1.east)+(0,3)$) edge
   1512             node[text = Black, yshift = .3cm, sloped] {POST {\tt /deposit} $S_{DK}(C), S_{c}(D)$}
   1513             ($(h2.west)+(0,2)$);
   1514           \path[->, color = MidnightBlue, thick, >=stealth]
   1515             ($(h2.west)+(0,0.5)$) edge
   1516             node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$}
   1517             ($(h1.east)+(0,-0.5)$);
   1518           \path[rstmsg]
   1519             ($(h2.west)+(0, -2.5)$) edge
   1520             node[msglabel] {409 CONFLICT: $S_{c}(D')$}
   1521             ($(h1.east)+(0, -3.5)$);
   1522           \node at (5.3, 0) {};
   1523         \end{tikzpicture}
   1524       \end{center}
   1525     \end{minipage}
   1526     \hspace{0.5cm}
   1527     \begin{minipage}[b]{0.45\linewidth}
   1528       \tiny
   1529       \begin{description}
   1530       \item[$DK$] Denomination key
   1531       \item[$S_{DK}()$] RSA-FDH signature using $DK$
   1532       \item[$c$] Private coin key, $C := cG$.
   1533       \item[$S_{C}()$] EdDSA signature using $c$
   1534       \item[$D$] Deposit details
   1535       \item[$SK$] Exchange's signing key
   1536       \item[$S_{SK}()$] EdDSA signature using $SK$
   1537       \item[$D'$] Conficting deposit details $D' \not= D$
   1538       \end{description}
   1539     \end{minipage}
   1540   \end{figure}
   1541 \end{frame}
   1542 
   1543 
   1544 \begin{frame}{Taler {\tt /refresh/melt}}
   1545   \begin{figure}[th]
   1546     \begin{minipage}[b]{0.45\linewidth}
   1547       \begin{center}
   1548 	\begin{tikzpicture}[scale = 0.4,
   1549             transform shape,
   1550             msglabel/.style    = { text = Black, yshift = .3cm,
   1551                                    sloped, midway },
   1552             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1553                                    >=stealth },
   1554             rstmsg/.style      = { ->, color = BrickRed, thick,
   1555                                    >=stealth }
   1556 	  ]
   1557 	  \node[draw = MidnightBlue,
   1558 	    fill = CornflowerBlue,
   1559 	    minimum width = .3cm,
   1560 	    minimum height = 10cm
   1561 	  ] (h1) at (-4, 0) {};
   1562 	  \node[draw = MidnightBlue,
   1563 	    fill = CornflowerBlue,
   1564 	    minimum width = .3cm,
   1565 	    minimum height = 10cm
   1566 	  ] (h2) at (4, 0) {};
   1567 	  \node[above = 0cm of h1] {Customer};
   1568 	  \node[above = 0cm of h2] {Exchange};
   1569 
   1570 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1571 	    (-5, 4.5) edge
   1572 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1573 	    (-5, -4.5);
   1574 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1575 	    ($(h1.east)+(0,3)$) edge
   1576 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$}
   1577 	    ($(h2.west)+(0,2)$);
   1578 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1579 	    ($(h2.west)+(0,0.5)$) edge
   1580 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$}
   1581 	    ($(h1.east)+(0,-0.5)$);
   1582 	  \path[rstmsg]
   1583 	    ($(h2.west)+(0, -2.5)$) edge
   1584 	    node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$}
   1585 	    ($(h1.east)+(0, -3.5)$);
   1586 	  \node at (5.3, 0) {};
   1587 	\end{tikzpicture}
   1588       \end{center}
   1589     \end{minipage}
   1590     \hspace{0.5cm}
   1591     \begin{minipage}[b]{0.45\linewidth}
   1592       \tiny
   1593       \begin{description}
   1594       \item[$\kappa$] System-wide security parameter, usually 3.
   1595       \\ \smallskip
   1596       \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\
   1597       $D + \sum_i A_{DK^{(i)}} < A_{DK}$
   1598       \item[$t_j$] Random scalar for $j<\kappa$
   1599       \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$
   1600       \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE
   1601       \item[$b_j^{(i)}$] $:= KDF_b(k_j,i)$ % blinding factor
   1602       \item[$c_j^{(i)}$] $:= KDF_c(k_j,i)$ % coin secret keys
   1603       \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys
   1604       \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\
   1605          $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$
   1606       \\ \smallskip
   1607       \item[$\gamma$] Random value in $[0,\kappa)$
   1608 %      \\ \smallskip
   1609 %      \item[$X$] Deposit or refresh
   1610       \end{description}
   1611     \end{minipage}
   1612   \end{figure}
   1613 \end{frame}
   1614 
   1615 
   1616 \begin{frame}{Taler {\tt /refresh/reveal}}
   1617   \begin{figure}[th]
   1618     \begin{minipage}[b]{0.45\linewidth}
   1619       \begin{center}
   1620 	\begin{tikzpicture}[scale = 0.4,
   1621             transform shape,
   1622             msglabel/.style    = { text = Black, yshift = .3cm,
   1623                                    sloped, midway },
   1624             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1625                                    >=stealth },
   1626             rstmsg/.style      = { ->, color = BrickRed, thick,
   1627                                    >=stealth }
   1628 	  ]
   1629 	  \node[draw = MidnightBlue,
   1630 	    fill = CornflowerBlue,
   1631 	    minimum width = .3cm,
   1632 	    minimum height = 10cm
   1633 	  ] (h1) at (-4, 0) {};
   1634 	  \node[draw = MidnightBlue,
   1635 	    fill = CornflowerBlue,
   1636 	    minimum width = .3cm,
   1637 	    minimum height = 10cm
   1638 	  ] (h2) at (4, 0) {};
   1639 	  \node[above = 0cm of h1] {Customer};
   1640 	  \node[above = 0cm of h2] {Exchange};
   1641 
   1642 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1643 	    (-5, 4.5) edge
   1644 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1645 	    (-5, -4.5);
   1646 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1647 	    ($(h1.east)+(0,3)$) edge
   1648 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$}
   1649 	    ($(h2.west)+(0,2)$);
   1650 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1651 	    ($(h2.west)+(0,0.5)$) edge
   1652 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$}
   1653 	    ($(h1.east)+(0,-0.5)$);
   1654 	  \path[rstmsg]
   1655 	    ($(h2.west)+(0, -2.5)$) edge
   1656 	    node[msglabel] {400 BAD REQUEST: $Z$}
   1657 	    ($(h1.east)+(0, -3.5)$);
   1658 	  \node at (5.3, 0) {};
   1659 	\end{tikzpicture}
   1660       \end{center}
   1661     \end{minipage}
   1662     \hspace{0.5cm}
   1663     \begin{minipage}[b]{0.45\linewidth}
   1664       \tiny
   1665       \begin{description}
   1666       \item[$\cal DK$] $:= [DK^{(i)}]_i$
   1667       \item[$t_j$] .. \\ \smallskip
   1668 
   1669       \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip
   1670 
   1671       \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$
   1672       \item[$b_\gamma^{(i)}$] $:= KDF_b(k_\gamma,i)$
   1673       \item[$c_\gamma^{(i)}$] $:= KDF_c(k_\gamma,i)$
   1674       \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$
   1675 
   1676       \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$
   1677       \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$
   1678       \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip
   1679 
   1680       \item[$Z$] Cut-and-choose missmatch information
   1681       \end{description}
   1682     \end{minipage}
   1683   \end{figure}
   1684 \end{frame}
   1685 
   1686 
   1687 \begin{frame}{Taler {\tt /refresh/link}}
   1688   \begin{figure}[th]
   1689     \begin{minipage}[b]{0.45\linewidth}
   1690       \begin{center}
   1691 	\begin{tikzpicture}[scale = 0.4,
   1692             transform shape,
   1693             msglabel/.style    = { text = Black, yshift = .3cm,
   1694                                    sloped, midway },
   1695             okmsg/.style       = { ->, color = MidnightBlue, thick,
   1696                                    >=stealth },
   1697             rstmsg/.style      = { ->, color = BrickRed, thick,
   1698                                    >=stealth }
   1699 	  ]
   1700 	  \node[draw = MidnightBlue,
   1701 	    fill = CornflowerBlue,
   1702 	    minimum width = .3cm,
   1703 	    minimum height = 10cm
   1704 	  ] (h1) at (-4, 0) {};
   1705 	  \node[draw = MidnightBlue,
   1706 	    fill = CornflowerBlue,
   1707 	    minimum width = .3cm,
   1708 	    minimum height = 10cm
   1709 	  ] (h2) at (4, 0) {};
   1710 	  \node[above = 0cm of h1] {Customer};
   1711 	  \node[above = 0cm of h2] {Exchagne};
   1712 
   1713 	  \path[->, color = MidnightBlue, very thick, >=stealth]
   1714 	    (-5, 4.5) edge
   1715 	    node[rotate=90, text = Black, yshift = .3cm] {Time}
   1716 	    (-5, -4.5);
   1717 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1718 	    ($(h1.east)+(0,3)$) edge
   1719 	    node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$}
   1720 	    ($(h2.west)+(0,2)$);
   1721 	  \path[->, color = MidnightBlue, thick, >=stealth]
   1722 	    ($(h2.west)+(0,0.5)$) edge
   1723 	    node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$}
   1724 	    ($(h1.east)+(0,-0.5)$);
   1725 	  \path[rstmsg]
   1726 	    ($(h2.west)+(0, -2.5)$) edge
   1727 	    node[msglabel] {404 NOT FOUND}
   1728 	    ($(h1.east)+(0, -3.5)$);
   1729 	  \node at (5.3, 0) {};
   1730 	\end{tikzpicture}
   1731       \end{center}
   1732     \end{minipage}
   1733     \hspace{0.5cm}
   1734     \begin{minipage}[b]{0.45\linewidth}
   1735       \tiny
   1736       \begin{description}
   1737       \item[$C$] Old coind public key \\ \smallskip
   1738       \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$
   1739       \end{description}
   1740     \end{minipage}
   1741   \end{figure}
   1742 \end{frame}
   1743 
   1744 
   1745 \begin{frame}{Operational security}
   1746   \begin{center}
   1747     \resizebox{\textwidth}{!}{
   1748 \begin{tikzpicture}[
   1749   font=\sffamily,
   1750   every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm},
   1751   source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm},
   1752   process/.style={draw,thick,circle,fill=blue!20},
   1753   sink/.style={source,fill=green!20},
   1754   datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm},
   1755   dots/.style={gray,scale=2},
   1756   to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize},
   1757   every node/.style={align=center}]
   1758 
   1759   % Position the nodes using a matrix layout
   1760   \matrix{
   1761     \node[source] (wallet) {Wallet};
   1762       \& \node[process] (browser) {Browser};
   1763       \& \node[process] (shop) {Web shop};
   1764       \& \node[sink] (backend) {Taler backend}; \\
   1765   };
   1766 
   1767   % Draw the arrows between the nodes and label them.
   1768   \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract}
   1769       node[midway,below] {(signal)} (wallet);
   1770   \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)}
   1771       node[midway,below] {(5) signed coins} (browser);
   1772   \draw[<->] (browser) -- node[midway,above] {(3,6) custom}
   1773       node[midway,below] {(HTTPS)} (shop);
   1774   \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)}
   1775       node[midway,below] {(1) proposed contract / (7) signed coins} (backend);
   1776   \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation}
   1777       node[midway,below] {(HTTPS)} (shop);
   1778 \end{tikzpicture}
   1779 }
   1780 \end{center}
   1781 \end{frame}
   1782 
   1783 
   1784 \begin{frame}{Use Cases: Refugee Camps}
   1785   Today:
   1786   \begin{itemize}
   1787   \item Non-bankable
   1788   \item Direct distribution of goods to population
   1789   \item Limited economic activity in camps
   1790   \item High level of economic dependence
   1791   \end{itemize}\vfill\pause
   1792   With GNU Taler:
   1793   \begin{itemize}
   1794   \item Local currency issued as basic income backed by aid
   1795   \item Taxation possible based on economic status
   1796   \item Local governance enabled by local taxes
   1797   \item Increased economic independence and political participation
   1798   \end{itemize}
   1799 \end{frame}
   1800 
   1801 
   1802 \begin{frame}{Use Case: Anti-Spam}
   1803   \framesubtitle{Background: \url{https://pep.security/}}
   1804   Today, p$\equiv$p provides authenticated encryption for e-mail:
   1805   \begin{itemize}
   1806     \item Free software
   1807     \item Easy to use opportunistic encryption
   1808     \item Available for Outlook, Android, Enigmail
   1809     \item Spies \& spam filters can no longer inspect content
   1810   \end{itemize}\vfill\pause
   1811   With GNU Taler:
   1812   \begin{itemize}
   1813     \item Peer-to-peer payments via e-mail
   1814     \item If unsolicited sender, hide messages from user \&
   1815           automatically request payment from sender
   1816     \item Sender can attach payment to be moved to inbox
   1817     \item Receiver may grant refund to sender
   1818   \end{itemize}
   1819 \end{frame}